作为更新 LLVM Clang 的“-mtune”处理以迎合新处理器的努力的一部分,今年晚些时候具有 LLVM/Clang 15 的 AMD Zen 处理器将能够享受更快、更准确的平方根计算,并调整为使用 SQRTSS/SQRTPS指示。
今天合并到 LLVM/Clang 15 的主线(不要与下个月发布的分支 LLVM/Clang 14 混淆)是快速 SQRTSS(计算标量单精度值的平方根)/SQRTPS(单精度浮点的平方根-点值)调整 AMD Zen 处理器内核。在 Zen 1 和更新版本中,这些指令被发现比现有代码路径足够快且值得,同时也更准确。
这种针对 AMD Zen 的调整是在英特尔方面进行的,他们已经启用了 TuningFastScalarFSQRT 并返回到 Sandy Bridge,并且 TuningFastVectorFSQRT 自 Skylake 以来一直存在。虽然此 LLVM 调整更改会影响所有可追溯到 Zen 1 的 Zen CPU,但 LLVM 更改现在仅在 2022 年发生。
此针对 AMD Zen 的平方根指令调整是作为改进-mtune通用行为的更广泛讨论的一部分提出的现代 CPU,类似于 GCC 的 -mtune 默认值,适合 Haswell。正如该讨论中所指出的,“ znver1/znver2 调度模型还有很多不足之处。 ”遗憾的是,LLVM(和 GCC)对 AMD 编译器的调整不如英特尔方面那么激进。
Zen 1 已经有 5 年的历史了,而 LLVM/Clang 15 的这种变化将在 2022 年 9 月左右保持稳定。遗憾的是,这种变化只是 AMD 软件优化迟来的另一个例子(而且通常留给独立方/开源社区),特别是在编译器方面,而英特尔通常在他们的新 CPU 系列目标方面很早,并确保它们通过准确的成本表得到很好的优化,能够利用新指令等。
这个针对 Zen 的 SQRTSS/SQRTPS 调优是自去年 9 月以来针对 LLVM的第一个 AMD Zen 特定活动。希望今年我们会看到更多的 AMD 开源编译器调整——我们还没有看到 znver4 的引入,而英特尔在 2020 年中期开始了他们的 Alder Lake 和 Sapphire Rapids 编译器拼凑。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun124825.html