Towards programmable address spaces

Andrew Gozillon, Paul Keir

    Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

    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)9788394625375, 9788394625382
    ISBN (Print)9788394625399
    DOIs
    Publication statusPublished - 28 Sept 2017
    EventWorkshop on Advances In Programming Languages 2017 - Prague, Czech Republic
    Duration: 3 Sept 20176 Sept 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
    Country/TerritoryCzech Republic
    CityPrague
    Period3/09/176/09/17
    Internet address

    Keywords

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

    Fingerprint

    Dive into the research topics of 'Towards programmable address spaces'. Together they form a unique fingerprint.

    Cite this