高层编程模型在百亿亿次节点上的性能与可移植性评估:Julia、Python/Numba 与 Kokkos
分布式、并行与集群计算
2023-09-20 v1 编程语言
摘要
我们探究了高层编程模型——基于 LLVM 的 Julia 与 Python/Numba,以及 Kokkos——在高性能计算(HPC)节点上的性能与可移植性:包括 Frontier 测试床 Crusher 系统上的 AMD Epyc CPU 与 MI250X 图形处理单元(GPU),以及橡树岭领导计算设施 Wombat 系统上的 Ampere Arm 架构 CPU 与 NVIDIA A100 GPU。我们将 CPU 上手工编写的稠密矩阵乘法算法的默认性能与厂商编译的 C/OpenMP 实现进行比较,并将各 GPU 上与 CUDA 和 HIP 进行比较。我们并未聚焦于内核优化本身,而是选取这一朴素方法以类比科学中的探索性工作,并作为性能下限以隔离各编程模型的影响。Julia 与 Kokkos 在 CPU 上可与 C/OpenMP 相媲美,而 Julia 实现在 GPU 上可与 CUDA 和 HIP 竞争。在 NVIDIA A100 GPU 上,Julia 的单精度与 Kokkos 以及所有场景下的 Python/Numba 均存在性能差距。我们还就半精度支持、生产力、性能可移植性度量与平台就绪情况作了评述。随着首代百亿亿次系统的部署,我们期望为 HPC 中高层、高生产力语言的理解与发展方向作出贡献。
引用
@article{arxiv.2303.06195,
title = {Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes},
author = {William F. Godoy and Pedro Valero-Lara and T. Elise Dettling and Christian Trefftz and Ian Jorquera and Thomas Sheehy and Ross G. Miller and Marc Gonzalez-Tallada and Jeffrey S. Vetter and Valentin Churavy},
journal= {arXiv preprint arXiv:2303.06195},
year = {2023}
}
备注
Accepted at the 28th HIPS workshop, held in conjunction with IPDPS 2023. 10 pages, 9 figures