中文

从合并框架到合并恒星:使用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}
}