Implementing Multi-GPU Scientific Computing Miniapps Across Performance Portable Frameworks
Johansell Villalobos, Josef Ruzicka, Silvio Rizzi
超大规模时代的科学计算需要提高计算能力,以解决各个领域的复杂问题。 随着异构计算架构的兴起,对供应商无关的需求,性能可移植性框架得到了强调。 像Kokkos这样的库对于使高性能计算应用程序能够以最小的代码更改在不同的硬件平台上高效执行至关重要。 朝这个方向,本文为两个具有代表性的科学计算应用提出了初步的时间到解决方案结果:N-body模拟和结构化网格模拟。 这两个应用程序都通过四个性能可移植性框架(Kokokos、OpenMP、RAJA和OCCA)使用分布式内存方法和硬件加速。 在 Polaris 超级计算机的单个节点上使用 4 个 NVIDIA A100 GPU 进行的实验显示,框架之间的性能差异很大。 OCCA为小规模验证问题展示了更快的执行时间,这可能是由于JIT编译,但它缺乏优化的还原算法可能会限制更大模拟的可扩展性,同时使用开箱即用的API。 OpenMP在结构化网格模拟中表现不佳,很可能是由于节点间数据同步和通信效率低下。 这些发现突出表明需要进一步优化,以最大限度地发挥每个框架的能力。 未来的工作将侧重于增强还原算法,数据通信,内存管理以及执行可扩展性研究,以及全面的统计分析,以评估和比较框架性能。
Scientific computing in the exascale era demands increased computational power to solve complex problems across various domains. With the rise of heterogeneous computing architectures the need for vendor-agnostic, performance portability frameworks has been highlighted. Libraries like Kokkos have become essential for enabling high-performance computing applications to execute efficiently across different hardware platforms with minimal code changes. In this direction, this paper presents prelimi...