数码之家

 找回密码
 立即注册
搜索
查看: 1141|回复: 0

[业界] 微软探索 LTO+PGO 以优化 Linux 内核

[复制链接]
发表于 2020-8-28 11:52:30 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
稿源:开源中国

当越来越多的软件厂商采用链接时优化(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 编译器。

点此查看微软工程师在 LPC2020 大会上的演讲幻灯片



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-18 02:55 , Processed in 0.156000 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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