论文标题

加速GPU上的高阶模具

Accelerating High-Order Stencils on GPUs

论文作者

Sai, Ryuichi, Mellor-Crummey, John, Meng, Xiaozhu, Araya-Polo, Mauricio, Meng, Jie

论文摘要

模具计算广泛用于HPC应用中。如今,许多HPC平台使用GPU作为加速器。结果,了解如何在GPU上快速执行模具计算很重要。虽然在文献中对低阶模具的实施策略进行了充分研究,但并非所有提出的增强功能都适合于高阶模具,例如用于地震建模的模型。此外,应对边界条件通常需要不同的计算逻辑,这使对GPU上线程级并行性的有效开发变得复杂。在本文中,我们研究了高阶模具及其在GPU上的独特特征。我们手动制作了在CUDA和相关边界条件下的25分地震建模模型的实现集合。我们评估了它们的代码形状,内存层次结构使用情况,数据取得图案和其他性能属性。我们使用多种成熟和新兴工具对这些模板进行了经验评估,并讨论了我们的定量发现。在我们的实施中,我们实现了在C中开发的专有代码的两倍,并使用OpenACC映射到GPU。此外,我们的一些实现具有出色的性能可移植性。

Stencil computations are widely used in HPC applications. Today, many HPC platforms use GPUs as accelerators. As a result, understanding how to perform stencil computations fast on GPUs is important. While implementation strategies for low-order stencils on GPUs have been well-studied in the literature, not all of proposed enhancements work well for high-order stencils, such as those used for seismic modeling. Furthermore, coping with boundary conditions often requires different computational logic, which complicates efficient exploitation of the thread-level parallelism on GPUs. In this paper, we study high-order stencils and their unique characteristics on GPUs. We manually crafted a collection of implementations of a 25-point seismic modeling stencil in CUDA and related boundary conditions. We evaluate their code shapes, memory hierarchy usage, data-fetching patterns, and other performance attributes. We conducted an empirical evaluation of these stencils using several mature and emerging tools and discuss our quantitative findings. Among our implementations, we achieve twice the performance of a proprietary code developed in C and mapped to GPUs using OpenACC. Additionally, several of our implementations have excellent performance portability.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源