Abstract
High-performance computing increasingly makes use of heterogeneous many-core parallelism. Individual processor cores within such systems are radically simpler than their predecessors; and tasks previously the responsibility of hardware, are delegated to software. Rather than use a cache, fast on-chip memory, is exposed through a handful of address space annotations; associating pointers with discrete sections of memory, within trivially distinct programming languages. Our work aims to improve the programmability of address spaces by exposing new functionality within the LLVM compiler, and then the existing template metaprogramming system of C++. This is achieved firstly via a new LLVM attribute, ext_address_space which facilitates integration with the non-type template parameters of C++. We also present a type traits API which encapsulates the address space annotations, to allow execution on both conventional and extended C++ compilers; and illustrate its applicability to OpenCL 2.x.
Original language | English |
---|---|
Title of host publication | Proceedings of the 2017 Federated Conference on Computer Science and Information Systems |
Publisher | IEEE |
Pages | 697-700 |
Number of pages | 4 |
ISBN (Electronic) | 9788394625375, 9788394625382 |
ISBN (Print) | 9788394625399 |
DOIs | |
Publication status | Published - 28 Sept 2017 |
Event | Workshop on Advances In Programming Languages 2017 - Prague, Czech Republic Duration: 3 Sept 2017 → 6 Sept 2017 https://fedcsis.org/2017/wapl |
Publication series
Name | Annals of Computer Science and Information Systems |
---|---|
Publisher | IEEE |
Volume | 11 |
ISSN (Print) | 2300-5963 |
Workshop
Workshop | Workshop on Advances In Programming Languages 2017 |
---|---|
Abbreviated title | WAPL 2017 |
Country/Territory | Czech Republic |
City | Prague |
Period | 3/09/17 → 6/09/17 |
Internet address |
Keywords
- address space
- __global
- __local
- __shared
- OpenCL
- Clang
- LLVM
- Compiler
- C++
- C++ Templates
- Metaprogramming