中文

利用 AVX2 与 AVX-512 指令的伦纳德-琼斯势 SIMD 向量化

数学软件 2019-02-20 v2 计算工程、金融与科学

摘要

本文描述了利用 Intel AVX2 与 AVX-512 指令集对伦纳德-琼斯势的力计算进行 SIMD 向量化。由于分子动力学方法的力计算内核涉及对内存的间接访问,数据布局是向量化中最重要的因素之一。我们发现,经适当向量化与优化后,带填充的结构体数组 (AoS) 比数组结构体 (SoA) 表现出更优性能。特别地,512 位宽度的 AoS 在各类架构中性能最佳。虽然 AoS 与 SoA 在 AVX2 向量化下性能差异显著,但在 AVX-512 下差异微小。本文还讨论了其他优化技术(如软件流水线与向量化结合)的效果。我们给出了在三种 CPU 架构上的基准测试结果:Intel Haswell (HSW)、Knights Landing (KNL) 与 Skylake (SKL)。与不向量化而优化的代码相比,HSW 上向量化带来的性能提升约为 42%。在 KNL 上,手工向量化代码比 Intel 编译器自动向量化代码性能高 34%。在 SKL 上,用 AVX2 向量化的代码比用 AVX-512 向量化的代码性能略优。

关键词

引用

@article{arxiv.1806.05713,
  title  = {SIMD Vectorization for the Lennard-Jones Potential with AVX2 and AVX-512 instructions},
  author = {Hiroshi Watanabe and Koh M. Nakagawa},
  journal= {arXiv preprint arXiv:1806.05713},
  year   = {2019}
}

备注

9 pages, 12 figures