发明名称 Method for partitioning programs between a general purpose core and one or more accelerators
摘要 Partitioning programs between a general purpose core and one or more accelerators is provided. A compiler front end is provided for converting a program source code in a corresponding high level programming language into an intermediate code representation. This intermediate code representation is provided to an interprocedural optimizer which determines which core processor or accelerator each portion of the program should execute on and partitions the program into sub-programs based on this set of decisions. The interprocedural optimizer may further add instructions to the partitions to coordinate and synchronize the sub-programs as required. Each sub-program is compiled on an appropriate compiler backend for the instruction set architecture of the particular core processor or accelerator selected to execute the sub-program. The compiled sub-programs and then linked to thereby generate an executable program.
申请公布号 US9038040(B2) 申请公布日期 2015.05.19
申请号 US200611339592 申请日期 2006.01.25
申请人 International Business Machines Corporation 发明人 O'Brien John Kevin Patrick;O'Brien Kathryn M.;Prener Daniel A.
分类号 G06F9/45 主分类号 G06F9/45
代理机构 代理人 Lammes Francis;Walder, Jr. Stephen J.;Tyson Thomas E.
主权项 1. A method, in a data processing system, for optimizing code to be run in a heterogeneous data processing environment, comprising: generating a call graph for program code; identifying characteristics of procedures in the call graph, wherein identifying the characteristics of the procedures in the call graph further comprises, for each procedure in the procedures: identifying functions performed as part of the procedure; andidentifying at least one of a type service or another function called by the procedure; comparing the characteristics of the procedures to characteristics of processing units in the heterogeneous data processing environment, wherein comparing characteristics of the procedures to characteristics of processing units in the heterogeneous data processing environment comprises: identifying, for each characteristic of a procedure, a comparison rule for that characteristic, wherein the comparison rule identifies a characteristic of a processing unit that may offer a required feature for satisfying the characteristic of the procedure and wherein the comparison rule is established in a program partition engine;determining a degree of matching of each processing unit of the heterogeneous data processing environment to the characteristics of the procedure; andselecting a processing unit based on the degree of matching of each processing unit of the heterogeneous data processing environment; selecting, for each of the procedures, a processing unit to execute the procedure based on results of the comparison by evaluating negative characteristics of the processing units, including latency, to generate a decision as to which processing units are to be used to execute a corresponding procedure; annotating the call graph based on the selected processing unit to process each procedure, functions, type service, or another function called by the procedure; partitioning the program code in accordance with the selection of the processing unit for each procedure based on the annotations in the annotated call graph; and generating executable program code based on the partitioned program code.
地址 Armonk NY US