Towards Programmable Address Spaces

Andrew Gozillon, Paul Keir
2017 Proceedings of the 2017 Federated Conference on Computer Science and Information Systems  
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
more » ... e 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.
doi:10.15439/2017f217 dblp:conf/fedcsis/GozillonK17 fatcat:bz7rvbshqzdqhay5dmjzy6slpm