本周合并到 GNU C 库”glibc”代码中,该库移除了 ldbl-96 FMA 实现,因为在移除后发现该实现使 AMD Zen 3 硬件的吞吐量和延迟提升了 4 倍。
用 64 位双精度 FMA 实现替换 Glibc 的 96 位精度长双精度内部计算实现,最终为这个广泛使用的 libc 实现带来了显著的性能提升。
在”最近的 x86 硬件”上,ldbl-64 实现远远超过了从 Glibc Git 中移除的 ldbl-96 代码。在 x86_64 基准测试中,AMD Zen 3 测试的吞吐量提高了 4.06 倍,延迟也提高了 4.00 倍。对于 i686 模式,仍然有 2.2~2.3 倍的大幅提升。

Glibc 数学代码中移除 ldbl-96 FMA 实现的变化,随着现在 Glibc Git 中的这次提交发生。
这将随着 Glibc 2.43 一起发布,预计将于 2 月份发布。Glibc 2.43 还将带来对新 CPU 的检测、MSEAL 函数以及其他性能优化。
转自 Glibc Math Code Sees 4x Improvement On AMD Zen By Changing FMA Implementation – Phoronix
Linuxeden开源社区