从合并框架到合并恒星:使用HPX、Kokkos与SIMD类型的经验
分布式、并行与集群计算
2023-05-10 v2
摘要
Octo-Tiger是一个用于恒星并合的大规模3D AMR代码,它结合使用HPX、Kokkos和显式SIMD类型,旨在为广泛的异构硬件实现性能可移植性。然而,在A64FX CPU上,我们遇到了若干缺失环节,因引发SIMD向量化问题而阻碍了性能。因此,我们在Octo-Tiger的Kokkos核函数中添加了std::experimental::simd作为与Kokkos SIMD并列使用的选项,并进一步新增了一个SVE(可扩展向量扩展)SIMD后端。此外,我们修补了Octo-Tiger水动力求解器内Kokkos核函数中缺失的SIMD实现。我们通过在三种不同CPU(A64FX、Intel Icelake和AMD EPYC CPU)上运行Octo-Tiger来测试我们的更改,评估SIMD加速和节点级性能。我们在A64FX CPU上获得了良好的SIMD加速,并在另外两种CPU平台上获得了显著的加速。然而,我们在EPYC CPU上也遇到了扩展性问题。
引用
@article{arxiv.2210.06439,
title = {From Merging Frameworks to Merging Stars: Experiences using HPX, Kokkos and SIMD Types},
author = {Gregor Daiß and Srinivas Yadav Singanaboina and Patrick Diehl and Hartmut Kaiser and Dirk Pflüger},
journal= {arXiv preprint arXiv:2210.06439},
year = {2023}
}