比较不同编译器在X86和ARM CPU上向量化能力
性能
2025-02-21 v1 分布式、并行与集群计算
摘要
大多数现代处理器包含可同时对多个操作数执行相同算术运算的向量单元。编译器自动向量化代码的能力对于有效利用这些单元至关重要。了解这一能力对编写计算密集型、高性能和可移植代码的开发者至关重要。我们测试了Several个编译器在x86和ARM平台上的向量化能力。我们使用TSVC2套件,并对其进行了使其更贴近实际代码的修改。在x86上,GCC将套件中45%的循环报告为已向量化,ICX报告50%,Clang报告46%。在ARM上,GCC报告56%的循环已向量化,ACFL报告54%,Clang报告47%。我们发现,向量化代码并不总是优于未向量化代码。在某些情况下,给定两个非常相似且可向量化的循环,编译器会对一个进行向量化而对另一个不进行向量化。我们还报告了编译器仅在两个平台中的一个上对循环进行向量化的情况。基于我们的实验,我们无法确定任何一个编译器在给定平台上在向量化方面显著优于其他编译器。
引用
@article{arxiv.2502.11906,
title = {Comparison of Vectorization Capabilities of Different Compilers for X86 and ARM CPUs},
author = {Nazmus Sakib and Tarun Prabhu and Nandakishore Santhi and John Shalf and Abdel-Hameed A. Badawy},
journal= {arXiv preprint arXiv:2502.11906},
year = {2025}
}
备注
IEEE HPEC 2024