2010
DOI: 10.1007/978-3-642-11515-8_25
|View full text |Cite
|
Sign up to set email alerts
|

Offload – Automating Code Migration to Heterogeneous Multicore Systems

Abstract: Abstract. We present Offload, a programming model for offloading parts of a C++ application to run on accelerator cores in a heterogeneous multicore system. Code to be offloaded is enclosed in an offload scope; all functions called indirectly from an offload scope are compiled for the accelerator cores. Data defined inside/outside an offload scope resides in accelerator/host memory respectively, and code to move data between memory spaces is generated automatically by the compiler. This is achieved by distingu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
25
0

Year Published

2011
2011
2017
2017

Publication Types

Select...
5
2
2

Relationship

3
6

Authors

Journals

citations
Cited by 39 publications
(25 citation statements)
references
References 12 publications
0
25
0
Order By: Relevance
“…In the case of GPGPUs those (low-level) libraries include Brook [13], NVidia CUDA, and OpenCL. At a higher-level, Offload [14] enables offloading of parts of a C++ application, which are wrapped in offload blocks, onto hardware accelerators for asynchronous execution; OMPSs [15] enables the offloading of OpenCL and CUDA kernels as an OpenMP extension [16]. FastFlow, in contrast with these frameworks, does not target specific (hardware) accelerators but realizes a virtual accelerator running on the main CPUs and thus does not require the development of specific code.…”
Section: Related Workmentioning
confidence: 99%
“…In the case of GPGPUs those (low-level) libraries include Brook [13], NVidia CUDA, and OpenCL. At a higher-level, Offload [14] enables offloading of parts of a C++ application, which are wrapped in offload blocks, onto hardware accelerators for asynchronous execution; OMPSs [15] enables the offloading of OpenCL and CUDA kernels as an OpenMP extension [16]. FastFlow, in contrast with these frameworks, does not target specific (hardware) accelerators but realizes a virtual accelerator running on the main CPUs and thus does not require the development of specific code.…”
Section: Related Workmentioning
confidence: 99%
“…These codelets can either be hand-written for a specific architecture or be generated by some code generator. Offload [18] is a programming model for offloading portions of C++ applications to run on accelerators. Code to be offloaded is wrapped in an offload block, indicating that the code should be compiled for an accelerator, and executed asynchronously as a separate thread.…”
Section: Related Workmentioning
confidence: 99%
“…E is a source to source compiler, translating from the 'F' subset of Fortran 95 to Offload C++ [6]: a C++ language extension utilising pointer locality. The compiler targets heterogeneous multicore architectures, and in particular the CBE.…”
Section: The E Compilermentioning
confidence: 99%
“…E translates from 'F' to Offload C++, a C++ language extension and runtime library [6] targeting heterogeneous architectures. The most prominent language feature of Offload C++ is the offload block which provides a traditional 'C' compound statement, prefixed with the keyword offload, to be executed asynchronously to the main thread.…”
Section: Targeting Offload C++mentioning
confidence: 99%