arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2404.04441cs.DC
收藏

当前GPU架构上模板计算编程模型与性能评估

Evaluation of Programming Models and Performance for Stencil Computation on Current GPU Architectures

Baodi Shan, Mauricio Araya-Polo

AI总结:

本文在NVIDIA A100和GH200上评估CUDA、OpenACC与OpenMP目标卸载三种编程模型下的模板计算性能,揭示新架构行为并给出优化建议,其中最佳CUDA实现比优化OpenACC快2.1倍。

摘要:

加速计算已广泛应用于高性能计算领域,因此,实验并探索如何在相关应用中更好地利用最新几代GPGPU至关重要。本文展示了针对NVIDIA Ampere(A100)和Hopper(GH200)架构高度调优的基于模板(stencil)的内核的结果并分享了相关见解。性能结果为这些新型加速器上此类算法的行为提供了有用的认识,这些知识可以被许多涉及模板计算的科学应用所借鉴。此外,我们在上述加速器上对三种不同的编程模型进行了评估:CUDA、OpenACC和OpenMP目标卸载。我们广泛研究了每种编程模型下各种内核的性能和可移植性,并提供了相应的优化建议。进一步地,我们比较了不同编程模型在上述架构上的性能。对于同一类别的高度优化内核,与上一代GPGPU架构相比,性能提升最高可达58%,所有类别最高可达42%。在编程模型方面,在考虑可移植性的前提下,优化的OpenACC实现比OpenMP实现性能高出33%。如果不考虑可移植性,我们最佳调优的CUDA实现比优化的OpenACC实现性能高出2.1倍。

英文摘要:

Accelerated computing is widely used in high-performance computing. Therefore, it is crucial to experiment and discover how to better utilize GPUGPUs latest generations on relevant applications. In this paper, we present results and share insights about highly tuned stencil-based kernels for NVIDIA Ampere (A100) and Hopper (GH200) architectures. Performance results yield useful insights into the behavior of this type of algorithms for these new accelerators. This knowledge can be leveraged by many scientific applications which involve stencils computations. Further, evaluation of three different programming models: CUDA, OpenACC, and OpenMP target offloading is conducted on aforementioned accelerators. We extensively study the performance and portability of various kernels under each programming model and provide corresponding optimization recommendations. Furthermore, we compare the performance of different programming models on the mentioned architectures. Up to 58% performance improvement was achieved against the previous GPGPU's architecture generation for an highly optimized kernel of the same class, and up to 42% for all classes. In terms of programming models, and keeping portability in mind, optimized OpenACC implementation outperforms OpenMP implementation by 33%. If portability is not a factor, our best tuned CUDA implementation outperforms the optimized OpenACC one by 2.1x.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑