Towards Programmable Address Spaces

Research output: Chapter in Book/Report/Conference proceedingConference contribution

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 languageEnglish
Title of host publicationProceedings of the 2017 Federated Conference on Computer Science and Information Systems
PublisherIEEE
Pages697-700
Number of pages4
ISBN (Electronic)978-83-946253-7-5, 978-83-946253-8-2
ISBN (Print)978-83-946253-9-9
DOIs
Publication statusPublished - 28 Sep 2017
EventWorkshop on Advances In Programming Languages 2017 - Prague, Czech Republic
Duration: 3 Sep 20176 Sep 2017
https://fedcsis.org/2017/wapl

Publication series

NameAnnals of Computer Science and Information Systems
PublisherIEEE
Volume11
ISSN (Print)2300-5963

Workshop

WorkshopWorkshop on Advances In Programming Languages 2017
Abbreviated titleWAPL 2017
CountryCzech Republic
CityPrague
Period3/09/176/09/17
Internet address

Fingerprint

Data storage equipment
Application programming interfaces (API)
Computer programming languages
Hardware

Keywords

  • address space
  • __global
  • __local
  • __shared
  • OpenCL
  • Clang
  • LLVM
  • Compiler
  • C++
  • C++ Templates
  • Metaprogramming

Cite this

Gozillon, A., & Keir, P. (2017). Towards Programmable Address Spaces. In Proceedings of the 2017 Federated Conference on Computer Science and Information Systems (pp. 697-700). (Annals of Computer Science and Information Systems; Vol. 11). IEEE. https://doi.org/10.15439/2017F217
Gozillon, Andrew ; Keir, Paul. / Towards Programmable Address Spaces. Proceedings of the 2017 Federated Conference on Computer Science and Information Systems. IEEE, 2017. pp. 697-700 (Annals of Computer Science and Information Systems).
@inproceedings{6b4f39f4a13b4d2bb3236d727027dffd,
title = "Towards Programmable Address Spaces",
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.",
keywords = "address space, __global, __local, __shared, OpenCL, Clang, LLVM, Compiler, C++, C++ Templates, Metaprogramming",
author = "Andrew Gozillon and Paul Keir",
note = "The paper has been peer-reviewed and accepted, however I must present it at the WAPL workshop which is part of the FEDCSIS conference in September to get it published in IEEExplore. So it's still in the final step where I need to attend the workshop.",
year = "2017",
month = "9",
day = "28",
doi = "10.15439/2017F217",
language = "English",
isbn = "978-83-946253-9-9",
series = "Annals of Computer Science and Information Systems",
publisher = "IEEE",
pages = "697--700",
booktitle = "Proceedings of the 2017 Federated Conference on Computer Science and Information Systems",
address = "United States",

}

Gozillon, A & Keir, P 2017, Towards Programmable Address Spaces. in Proceedings of the 2017 Federated Conference on Computer Science and Information Systems. Annals of Computer Science and Information Systems, vol. 11, IEEE, pp. 697-700, Workshop on Advances In Programming Languages 2017, Prague, Czech Republic, 3/09/17. https://doi.org/10.15439/2017F217

Towards Programmable Address Spaces. / Gozillon, Andrew; Keir, Paul.

Proceedings of the 2017 Federated Conference on Computer Science and Information Systems. IEEE, 2017. p. 697-700 (Annals of Computer Science and Information Systems; Vol. 11).

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Towards Programmable Address Spaces

AU - Gozillon, Andrew

AU - Keir, Paul

N1 - The paper has been peer-reviewed and accepted, however I must present it at the WAPL workshop which is part of the FEDCSIS conference in September to get it published in IEEExplore. So it's still in the final step where I need to attend the workshop.

PY - 2017/9/28

Y1 - 2017/9/28

N2 - 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.

AB - 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.

KW - address space

KW - __global

KW - __local

KW - __shared

KW - OpenCL

KW - Clang

KW - LLVM

KW - Compiler

KW - C++

KW - C++ Templates

KW - Metaprogramming

U2 - 10.15439/2017F217

DO - 10.15439/2017F217

M3 - Conference contribution

SN - 978-83-946253-9-9

T3 - Annals of Computer Science and Information Systems

SP - 697

EP - 700

BT - Proceedings of the 2017 Federated Conference on Computer Science and Information Systems

PB - IEEE

ER -

Gozillon A, Keir P. Towards Programmable Address Spaces. In Proceedings of the 2017 Federated Conference on Computer Science and Information Systems. IEEE. 2017. p. 697-700. (Annals of Computer Science and Information Systems). https://doi.org/10.15439/2017F217