快科技 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 小版本。



登录后才可以发布评论哦
打开小程序可以发布评论哦