GLOpenCL: OpenCL support on hardware- and software-managed cache multicores
dc.creator | Daloukas, K. | en |
dc.creator | Antonopoulos, C. D. | en |
dc.creator | Bellas, N. | en |
dc.date.accessioned | 2015-11-23T10:25:05Z | |
dc.date.available | 2015-11-23T10:25:05Z | |
dc.date.issued | 2011 | |
dc.identifier | 10.1145/1944862.1944868 | |
dc.identifier.isbn | 9781450302418 | |
dc.identifier.uri | http://hdl.handle.net/11615/26866 | |
dc.description.abstract | OpenCL is an industry supported standard for writing programs that execute on multicore platforms as well as on accelerators, such as GPUs or the SPEs of the Cell B.E. In this paper we introduce GLOpenCL, a unified development framework which supports OpenCL on both homogeneous, shared memory, as well as on heterogeneous, distributed memory multicores. The framework consists of a compiler, based on the LLVM compiler infrastructure, and a run-time library, sharing the same basic architecture across all target platforms. The compiler recognizes OpenCL constructs, performs source-to-source code transformations targeting both efficiency and semantic correctness, and adds calls to the run-time library. The latter of fers functionality for work creation, management and execution, as well as for data transfers. We evaluate our framework using benchmarks from the distributions of OpenCL implementations by hardware vendors. We find that our generic system performs comparably or better than customized, platform-specific vendor distributions. OpenCL is designed and marketed as a write-once run-anywhere software development framework. However, the standard leaves enough room for target platform specific optimizations. Our experimentation with different, customized implementations of kernels reveals that optimized, hardware mapped implementations are both possible and necessary in the context of OpenCL - especially on non-conventional multicores - if performance is considered a higher priority than programmability. Copyright 2011 ACM. | en |
dc.source.uri | http://www.scopus.com/inward/record.url?eid=2-s2.0-79952970613&partnerID=40&md5=0734f1b9f2f876169c22d7ab41e2e54d | |
dc.subject | Compilers | en |
dc.subject | Hardware-managed cache multicores | en |
dc.subject | OpenCL | en |
dc.subject | Runtime | en |
dc.subject | Software-managed cache multicores | en |
dc.subject | Distributed Memory | en |
dc.subject | Generic system | en |
dc.subject | LLVM compilers | en |
dc.subject | Multi-core platforms | en |
dc.subject | Multi-cores | en |
dc.subject | Programmability | en |
dc.subject | Run-time library | en |
dc.subject | Runtimes | en |
dc.subject | Shared memories | en |
dc.subject | Software development framework | en |
dc.subject | Source code transformation | en |
dc.subject | Write once | en |
dc.subject | Cosine transforms | en |
dc.subject | Data transfer | en |
dc.subject | Embedded systems | en |
dc.subject | Hardware | en |
dc.subject | Optimization | en |
dc.subject | Program compilers | en |
dc.subject | Semantics | en |
dc.subject | Software design | en |
dc.subject | Standardization | en |
dc.subject | Multicore programming | en |
dc.title | GLOpenCL: OpenCL support on hardware- and software-managed cache multicores | en |
dc.type | conferenceItem | en |
Dateien zu dieser Ressource
Dateien | Größe | Format | Anzeige |
---|---|---|---|
Zu diesem Dokument gibt es keine Dateien. |