自上次报告 GNU C 库(glibc)取得令人振奋的性能提升以来,已过去一段时间。但今天这一局面发生了改变——glibc 再次为现代 x86_64 CPU 带来了一项出色的优化。
来自 Linaro 的开发者 Adhemerval Zanella 为现代 x86_64 架构的 Intel/AMD 处理器启用了基于 FMA 指令集优化的双曲余弦函数 cosh()。当针对 x86_64-v3 微架构特征级别进行编译时,该 FMA 版本的 cosh() 函数性能提升约 35%。

这是对双曲余弦函数 cosh 性能的一次显著改进,也是 glibc 持续优化、更好利用现代 x86_64 指令集架构(ISA)能力的又一例证。相比现有的 SSE2 实现版本,cosh() 函数获得 35% 的速度提升无疑是非常可观的进步。
这项 FMA 优化已通过补丁合入 glibc 的 Git 仓库,与今日合并的其他多个补丁一同提交,均由 Adhemerval Zanella 贡献。今天合并的其他补丁还包括对 tanh 和 sinh 函数使用 CORE-MATH 库的性能改进,但效果参差不齐,尤其是在面向较老 CPU 或指令集架构(如 SSE2)时表现不一,例如:

此次最新的 glibc 开发工作正在为预计于 8 月发布的 glibc 2.44 版本做准备。如果延续以往传统,很可能在 glibc 2.44 正式发布前,还会看到更多性能优化陆续合入。
转自 GNU C Library Lands x86_64 FMA’ed cosh For A ~35% Improvement – Phoronix
Linuxeden开源社区