驱动之家 5小时前
改两行代码性能提升12%!AMD Zen 5的隐藏性能被GCC补丁挖出
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

快科技 8 月 24 日消息,AMD 编译器工程师 Venkataramanan Kumar 近日向 GCC(GNU 编译器套件)提交了一则仅两行代码的补丁,将 Zen 4 和 Zen 5 处理器的分支预测错误成本参数上调了 3 个单位。

这一微调在 SPEC CPU 2017 的 544.nab_r 基准测试中,为 Zen 5 带来了 12% 的性能提升,Zen 4 也获得了 9% 的增益。

分支预测是现代 CPU 实现高速运行的核心技术之一。CPU 在执行指令时,会提前猜测条件分支(如 if 语句)的走向并预先加载指令,若猜对则效率极高。

但若猜错,整个流水线将被清空,造成数十个时钟周期的性能损失。随着 Zen 4 和 Zen 5 的流水线越来越深,分支预测错误的实际代价远高于 GCC 成本表中的预设值。

编译器如何应对这一差异?实际上,GCC 编译器内部维护着一张 " 成本表 ",用以评估不同指令操作的周期消耗,并据此决定是否将分支代码转换为无分支的条件传送指令。

若表中设定的分支预测错误成本过低,编译器会保留过多本应被优化的分支,导致 CPU 频繁因预测失误而清空流水线。

此次补丁将 Zen 4 和 Zen 5 成本表中的分支预测错误成本参数从 COSTS_N_INSNS ( 2 ) 调整为 COSTS_N_INSNS ( 2 ) +3,使编译器在生成代码时更积极地消除分支。

值得注意的是,此次优化并非 AMD 独创思路。2026 年 6 月,英特尔软件工程师 Lili Cui 曾在 GCC 通用 x86 调优中做过完全相同的修改,同样上调了 3 个单位,为英特尔 Granite Rapids 带来了 12.7% 的性能提升,Zen 5 也获得了 12.1% 的增益。

该补丁目前仍在 GCC 邮件列表审核中,预计将纳入明年发布的 GCC 17 稳定版,并可能反向移植到 GCC 16.3 小版本。

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

英特尔 amd 工程师 核心技术
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论