Corrfunc:利用 AVX512F SIMD 内建指令实现极速相关函数计算
天体物理仪器与方法
2021-05-12 v1 宇宙学与河外天体物理
星系天体物理
数据结构与算法
摘要
相关函数被广泛用于河外天体物理中,以提取关于星系如何占据暗物质晕的见解,以及用于宇宙学中以对宇宙学参数施加严格约束。相关函数从根本上需要计算两组点之间的成对距离,然后计算距离的直方图。Corrfunc 是一个现有的开源、高性能软件包,用于高效计算多种相关函数。在本文中,我们将讨论 Corrfunc 中的 SIMD AVX512F 内核,能够一次处理 16 个单精度浮点数或 8 个双精度浮点数。最新手动实现的 Corrfunc AVX512F 内核相对于编译器生成的双精度计算代码显示出高达约 4× 的加速。AVX512F 内核相对于 AVX 内核显示出约 1.6× 的加速,并且优于 2× 的理论最大值。此外,通过剪枝最小可能距离过大的点对,我们在所有 SIMD 内核上实现了约 5—10% 的加速。此类加速凸显了对于编译器无法有效向量化的复杂计算,使用 SIMD 向量内建指令显式编程的重要性。Corrfunc 公开可用:https://github.com/manodeep/Corrfunc/。
引用
@article{arxiv.1911.08275,
title = {Corrfunc: Blazing fast correlation functions with AVX512F SIMD Intrinsics},
author = {Manodeep Sinha and Lehman H. Garrison},
journal= {arXiv preprint arXiv:1911.08275},
year = {2021}
}
备注
Paper II for the Corrfunc software package, paper I is on arXiv here: arXiv:1911.03545. Appeared in the refereed proceedings for the "Second Workshop on Software Challenges to Exascale Computing"