来源:开源中国 时间:2023-06-16 11:36:56
(资料图)
LLVM/Clang 17 是一个开源的编译器套件,它可以为多种平台和架构生成优化的代码。最近,LLVM 17 在 Git 仓库中添加了一个重要的特性:针对 Arm Neoverse-V2 处理器核心的调度模型。
Arm Neoverse-V2 是 Arm 公司推出的一款面向服务器市场的高性能处理器,旨在提供最佳的性能和成本效益。Arm 公司去年宣布了 Neoverse-V2 的计划,并且在开源编译器和其他组件中开始提交相关的补丁,为未来基于 Neoverse-V2 平台的服务器硬件做好准备。
调度模型是编译器在生成代码时考虑处理器的微架构特征,如指令延迟、流水线阶段、功能单元等,从而优化指令顺序和资源利用率的一种机制。一个合适的调度模型可以显著提高二进制文件在目标处理器上的运行效率。
在此之前,LLVM 17 针对 Neoverse-V2 的目标只是使用了 Neoverse-N2 的调度模型,而 Neoverse-N2 是另一款 Arm 的服务器处理器,与 Neoverse-V2 有一定的差异。现在,LLVM 17 根据 Neoverse-V2 的软件优化指南,添加了一个专门针对 Neoverse-V2 的调度模型。这意味着 LLVM/Clang 17 可以更好地适应 Neoverse-V2 的核心特性,为其生成更高效的 AArch64 二进制文件。
LLVM/Clang 17 预计将于今年九月发布稳定版本。届时,我们将可以看到基于 LLVM/Clang 17 编译的软件在 Neoverse-V2 平台上的表现。
相关链接、相关信息来源: [1]: https://www.phoronix.com/news/LLVM-17-Neoverse-V2-Sched-Model "LLVM 17 Lands Arm Neoverse-V2 Scheduling Model - Phoronix" [2]: https://twitter.com/phoronix/status/1669305518991572992 "Phoronix on Twitter: \"#LLVM 17 Lands #Arm Neoverse-V2 Scheduling Model\"" [3]: https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20220704/1054520.html "[PATCH] D128631: [AArch64] Initial sched model for Neoverse N2"