令人兴奋的是,就在几分钟前,AMD 发布了他们在 GNU 编译器集合(GCC)中为 -march=znver6 目标启用 Zen 6 处理器支持的第一个补丁。
上个月,AMD 发布了他们为 Zen 6 准备的 GNU Binutils 补丁,确认了这些新一代 Ryzen 和 EPYC 处理器的新指令集(ISA)特性。因此,过去几周我们已经知道 Zen 6 将带来的新 ISA 功能:AVX512_BMM、AVX_NE_CONVERT、AVX_IFMA、AVX_VNNI_INT8、AVX512_FP16。相比 Zen 5,Zen 6 主要带来了更多的 AVX/AVX-512 扩展功能,值得一提的是新的 AVX-512 BMM,这是用于矩阵乘法和位反转的新位操作指令。目前,AVX-512 BMM 并未出现在任何 Intel 处理器上,而其他 AVX 扩展功能已经整合进 GCC 中,因为它们被部分 Intel 处理器所使用。
此次针对 GCC 的初始补丁为 AMD Zen 6 添加了基于 Family/Model ID 的 CPU 检测功能,同时目前也通过检测新的 AVX-512 BMM 指令来识别 Zen 6。该补丁随后启用了各种 ISA 特性。目前,Zen 6 的指令成本表仅仅是复制粘贴了 Zen 5 的成本表,没有进行任何特殊的调优。

AMD 工程师 Umesh Kalvakuntla 对今天发布的 GCC 补丁发表了评论:
“此补丁添加了对 AMD znver6 处理器的支持。对于 avx512bmm 指令,此补丁添加了内联函数支持。未来将通过其他补丁添加代码生成和运行时测试。”
过去,AMD 通常不会在新 CPU/ISA 特性发布之前发布编译器补丁,直到他们的新处理器实际发布。这是一个大错误,尤其是在 GCC 方面,因为他们的年度重大版本发布,甚至在 LLVM 方面,虽然有六个月的发布周期,但大多数 Linux 发行版也不会准时迁移到新的编译器点版本。幸运的是,随着 Zen 5 的推出,我们看到了早期的编译器支持,而 Zen 6 则开始在新 EPYC/Ryzen 处理器 2026 年发布之前出现编译器工具链补丁。希望在发布前他们还能发布更多调优/成本表和其他优化的补丁。
考虑到时间安排,这个初始的 AMD znver6 补丁应该能在 GCC 16 稳定版本(GCC 16.1)发布前安全地合并,GCC 16.1 将在 3 月至 4 月推出。
转自 AMD Starts Enabling Zen 6 “znver6” Compiler Support In GCC – Phoronix
Linuxeden开源社区