设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 594|回复: 0
收起左侧

微软探索 LTO+PGO 以实现更好的 Linux 性能

[复制链接]
发表于 2020-9-3 23:50:38 | 显示全部楼层 |阅读模式
当越来越多的软件厂商采用链接时优化(LTO, link-time optimizations)和配置文件引导优化(PGO, profile-guided optimizations)来利用编译器榨取性能的时候,微软工程师正在为自用的 Linux 内核探索 LTO+PGO,以实现更好的 Linux 性能。

在 Linux 内核上使用链接时优化并不是新概念,过去已有多家厂商发布了针对 Linux 内核的 LTO 补丁,但通常不会带来很大的变化。此前 Linus Torvalds 和其他人一直对支持 LTO 的 Linux 内核不看好,部分原因是过去 GCC 的 LTO 状况不佳。但如今随着现代 GCC 编译器(和 Clang)的发展,LTO 也逐渐变得更好,像 Fedora 在打包他们的发行版安装包时都会默认使用 LTO,也有像 Clear Linux 这样的公司通过使用 AutoFDO(基于程序性能分析工具的反馈式编译优化)来进一步提升其发行版的性能。

相对而言,在 Linux 内核上使用配置文件引导优化的案例则比较鲜见。由于配置文件引导优化完全依赖于配置文件,反馈给编译器以帮助其进行优化启发式处理。因此,对于实际使用情况而言,配置文件的准确性至关重要。考虑到在 Linux 上看到的工作负载非常多样化,以及各种不同的硬件和驱动程序,要生成对 PGO 有用的、能被广泛使用的、能帮助绝大多数用户的配置文件是一项艰巨的任务。因此,对于 Linux 内核中的 PGO,更多的是针对个人用户/组织,他们可以采用 PGO,并根据自身的实际情况进行调整。

微软软件工程经理 Ian Bearman 在本周举办的 Linux Plumbers 大会上介绍了他们对 Linux 内核的配置文件引导优化的探索。


                               
登录/注册后可看大图

他们对 PGO 的兴趣源于对 Linux 性能的“内部客户要求”。不过话又说回来,微软致力于优化 Linux 性能现在看来并不是什么奇怪的事情,另一位微软工程师曾是推动 FSGSBASE 补丁开发的贡献者,最后还被合并进 Linux Kernel 5.9。

Redis 是他们一直展示的在内核探索使用 PGO 并获益的公开案例之一。


                               
登录/注册后可看大图

微软会继续探索用于 Linux 内核的 PGO,有趣的是,人们发现 Windows 确实广泛使用了 LTO + PGO。据说在 Windows 实例中,他们看到这些编译器优化的性能提升了 5~20%,想必是使用了他们自己的 MSVC 编译器。

原文来自:https://www.linuxprobe.com/ltopgo-linux-guided.html

编辑:向金平,审核员:清蒸github

Linux命令大全:https://www.linuxcool.com/


您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-19 13:28 , Processed in 0.058887 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表