Co-Designing an OpenMP GPU Runtime and Optimizations for Near-Zero Overhead Execution
Co-Designing an OpenMP GPU Runtime and Optimizations for Near-Zero Overhead Execution
复制标题
共同设计 OpenMP GPU 运行时和优化以实现接近零开销的执行
DOI:
--
复制
发表时间:
2022
期刊:
影响因子:
--
通讯作者:
G. Georgakoudis
中科院分区:
文献类型:
--
作者:
J. Doerfert;Atmn Patel;Joseph Huber;Shilei Tian;J. M. Diaz;Barbara M. Chapman;G. Georgakoudis
GPU accelerators are ubiquitous in modern HPC systems. To program them, users have the choice between vendor-specific, native programming models, such as CUDA, which provide simple parallelism semantics with minimal runtime support, or portable alternatives, such as OpenMP, which offer rich parallel semantics and feature an extensive runtime library to support execution. While the operations of such a runtime can easily limit performance and drain resources, it was to some degree regarded an unavoidable overhead. In this work we present a co-design methodology for optimizing applications using a specifically crafted OpenMP GPU runtime such that most use cases induce near-zero overhead. Specifically, our approach exposes runtime semantics and state to the compiler such that optimization effectively eliminating abstractions and runtime state from the final binary. With the help of user provided assumptions we can further optimize common patterns that otherwise increase resource consumption. We evaluated our prototype build on top of the LLVM/OpenMP GPU offloading infrastructure with multiple HPC proxy applications and benchmarks. Comparison of CUDA, the original OpenMP runtime, and our co-designed alternative show that, by our approach, performance is significantly improved and resource consumption is significantly lowered. Oftentimes we can closely match the CUDA implementation without sacrificing the versatility and portability of OpenMP.
DOI:
10.1109/p3hpc49587.2019.00006
发表时间:
2019
期刊:
--
影响因子:
--
作者:
Deakin T
通讯作者:
Deakin T