发明名称 Compiler for X86-based many-core coprocessors
摘要 A system and method for compiling includes, for a parallelizable code portion of an application stored on a computer readable storage medium, determining one or more variables that are to be transferred to and/or from a coprocessor if the parallelizable code portion were to be offloaded. A start location and an end location are determined for at least one of the one or more variables as a size in memory. The parallelizable code portion is transformed by inserting an offload construct around the parallelizable code portion and passing the one or more variables and the size as arguments of the offload construct such that the parallelizable code portion is offloaded to a coprocessor at runtime.
申请公布号 US8918770(B2) 申请公布日期 2014.12.23
申请号 US201213594464 申请日期 2012.08.24
申请人 NEC Laboratories America, Inc. 发明人 Ravi Nishkam;Bao Tao;Ozturk Ozcan;Chakradhar Srimat
分类号 G06F9/45;G06F9/52 主分类号 G06F9/45
代理机构 代理人 Kolodka Joseph
主权项 1. A method for compiling, comprising: receiving an annotated application having parallelizable code portions for a many-core coprocessor; for a parallelizable code portion of the annotated application stored on a computer readable storage medium, determining one or more variables that are to be transferred to and/or from a coprocessor if the parallelizable code portion were to be offloaded with a liveness analysis to determine variables to be copied in to (live-in variables) and out of (live-out variables) the many-core coprocessor; determining a start location and an end location for at least one of the one or more variables as a size in memory; and transforming the parallelizable code portion by inserting an offload construct around the parallelizable code portion and passing the one or more variables and the size as arguments of the offload construct such that the parallelizable code portion is offloaded to said coprocessor at runtime, wherein the parallelizable code portion is guarded by an if condition that invokes a cost-benefit analysis at the runtime to determine whether offloading a particular code section to the many-core coprocessor is beneficial; optimizing the transformed parallelizable code portion by performing optimizing operations unrelated to the determination of the cost-benefit analysis; invoking the cost-benefit analysis to the parallelizable code portion at the runtime as a condition for making a determination to offload the parallelizable code portion to the coprocessor is beneficial, wherein the cost benefit analysis is based on a number of iterations for every loop compared to a first threshold, a total amount of work over all loops compared to a second threshold, a ratio of total central processing unit (CPU) operations to total data transfer size as compared to a third threshold, and a ratio of total CPU operations to total memory operations compared to a fourth threshold; and offloading the parallelizable code portion to the many-core coprocessor if necessary.
地址 Princeton NJ US
您可能感兴趣的专利