Skip to main content
QUICK REVIEW

[论文解读] Toward Performance-Portable PETSc for GPU-based Exascale Systems

Richard T. Mills, Mark F. Adams|arXiv (Cornell University)|Nov 2, 2020
Parallel Computing and Optimization Techniques参考文献 16被引用 5
一句话总结

本文提出了一种面向 PETSc 的性能可移植 GPU 编程模型,使科学计算应用能够在不损失性能或可移植性的情况下利用多种 GPU 编程模型(例如 CUDA、Kokkos、HIP、SYCL)。通过将应用程序的编程模型与 PETSc 内部后端解耦,该框架在当前 GPU 系统上实现了高性能,并为实现具备无缝互操作性和最小数据移动的百亿亿次计算铺平了道路。

ABSTRACT

The Portable Extensible Toolkit for Scientific computation (PETSc) library delivers scalable solvers for nonlinear time-dependent differential and algebraic equations and for numerical optimization.The PETSc design for performance portability addresses fundamental GPU accelerator challenges and stresses flexibility and extensibility by separating the programming model used by the application from that used by the library, and it enables application developers to use their preferred programming model, such as Kokkos, RAJA, SYCL, HIP, CUDA, or OpenCL, on upcoming exascale systems. A blueprint for using GPUs from PETSc-based codes is provided, and case studies emphasize the flexibility and high performance achieved on current GPU-based systems.

研究动机与目标

  • 在基于 GPU 的百亿亿次系统上,实现跨多种编程模型的 PETSc 性能可移植性。
  • 克服 GPU 库开发中的根本性挑战,包括内存带宽限制和异构硬件问题。
  • 允许应用开发者使用其偏好的 GPU 编程模型(例如 Kokkos、RAJA、SYCL),同时依赖 PETSc 的可扩展求解器和时间积分能力。
  • 通过真实世界偏微分方程和等离子体物理求解器的案例研究,展示高性能与灵活性。
  • 为在 PETSc 应用中集成 GPU 加速提供蓝图,实现性能损失最小化且无需数据复制。

提出的方法

  • 将应用程序的编程模型与 PETSc 内部后端编程模型解耦,实现 GPU 模型的独立选择。
  • 在应用程序与 PETSc 编程模型之间共享数据,无需复制,从而保持性能并避免运行时开销。
  • 使用多种后端(CUDA、Kokkos、HIP、SYCL)实现 GPU 内核,同时与优化的厂商库(如 cuBLAS、cuSPARSE、rocBLAS)进行接口对接。
  • 采用分层、可组合的求解器和时间积分例程,完全在 GPU 上运行,支持隐式时间推进和伴随方法。
  • 使用自适应网格(p4est)和数据并行抽象(如 Kokkos parallel_for、RAJA、DPC++)来表达可移植且高性能的内核。
  • 优化内存访问模式和内核启动方式,以维持高带宽利用率并最小化延迟。

实验结果

研究问题

  • RQ1PETSc 如何在百亿亿次系统上实现跨多种 GPU 编程模型(如 CUDA、Kokkos、HIP、SYCL)的性能可移植性?
  • RQ2哪些架构设计模式能够在解耦应用层编程模型与 PETSc 内部 GPU 内核的同时实现高性能?
  • RQ3PETSc 后端支持在当前 GPU 系统上实现高性能的程度如何,且不牺牲灵活性或无需应用层重写?
  • RQ4不同编程模型(如 CUDA 与 Kokkos)在 PETSc GPU 后端中的内核性能和可维护性方面有何影响?
  • RQ5GPU 加速的 PETSc 求解器中的关键性能瓶颈是什么,如何通过内核和数据结构设计加以缓解?

主要发现

  • PETSc 后端 GPU 支持在当前系统上实现了高性能,求解器和矩阵组装时间在多种 GPU 编程模型下均表现出高效的可扩展性。
  • 采用 CUDA 和 Kokkos 实现的 Landau 碰撞算子内核表现出与粒子种类数成线性关系的扩展性,表明其行为受内存限制而非计算限制。
  • Kokkos 版本的 Landau 内核由于变长数组和并行归约的抽象开销,略慢于 CUDA 版本,但代码可维护性更优。
  • 在不同编程模型之间共享数据避免了昂贵的数据复制,实现了应用程序代码(如 Kokkos)与 PETSc GPU 内核(如 CUDA)之间的无缝互操作。
  • 该框架支持混合模型执行,允许应用在一个工作流中同时使用多种编程模型(如 OpenMP offload 与 HIP,或 Kokkos 与 CUDA)。
  • 该设计支持代数求解器的完整 GPU 执行,并支持设备端矩阵组装的持续开发,这是实现 PDE 模拟全 GPU 加速的关键一步。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。