Using SYCL as an implementation framework for HPX.Compute
Document Type
Conference Proceeding
Publication Date
5-16-2017
Abstract
The recent advancements in High Performance Computing and ongoing research to reach Exascale has been heavily supported by introducing dedicated massively parallel accelerators. Programmers wishing to maximize utilization of current supercomputers are required to develop software which not only involves scaling across multiple nodes but are capable of offloading data-parallel computation to dedicated hardware such as graphic processors. Introduction of new types of hardware has been followed by developing new languages, extensions, compilers and libraries. Unfortunately, none of those solutions seem to be fully portable and independent from specific vendor and type of hardware. HPX. Compute, a programming model developed on top of HPX, a C++ standards library for concurrency and parallelism, uses existing and proposed C++ language and library capabilities to support various types of parallelism. It aims to provide a generic interface allowing for writing code which is portable between hardware architectures. We have implemented a new backend for HPX.Compute based on SYCL, a Khronos standard for single-source programming of OpenCL devices in C++. We present how this runtime may be used to target OpenCL devices through our C++ API.We have evaluated performance of new implementation on graphic processors with STREAM benchmark and compare results with existing CUD Abased implementation.
Publication Source (Journal or Book title)
ACM International Conference Proceeding Series
Recommended Citation
Copik, M., & Kaiser, H. (2017). Using SYCL as an implementation framework for HPX.Compute. ACM International Conference Proceeding Series, Part F127755 https://doi.org/10.1145/3078155.3078187