- By:
- Gonzalez-Tallada, Marc; Valero Lara, Pedro ; Monil, Mohammad Alaul Haque ; Lee, Seyong ; Johnston, Beau E; Young, Aaron R; Miniskar, Narasinga Rao ; Teranishi, Keita ; Vetter, Jeffrey S
- Journal Name:
- Future Generation Computer Systems
- Page Number:
- 108479
- Volume:
- 182
- Publication Date:
- September 15, 2026
- View DOI Listing:
- https://doi.org/10.1016/j.future.2026.108479
Abstract
This work describes the Accl++ programming language for heterogeneous computing. Accl++ is embedded in the C++ language and implemented as a C++ library. The language allows for describing device code and execution libraries and includes primitives for runtime compilation (RTC), thereby enabling code portability across disparate devices. Here, we demonstrate Accl++’s capability by coding different benchmarks from different domains. This work also describes an analysis of the overheads introduced by the Accl++ RTC support as well as the performance of the generated code for the Accl++ kernels. Accl++ improves heterogeneous code portability without incurring high levels of overhead. In two different heterogeneous systems—one composed of two 32-core AMD EPYC 7513 CPUs and two NVIDIA A100 GPUs and the other composed of two 12-core AMD EPYC 7272 CPUs and two AMD MI100 GPUs—Accl++ enables the execution of the same binary application with observed RTC overheads in the range of 3%–10% of the total kernel execution time, resulting in performance levels similar to those of native CUDA/HIP/OpenCL code.