分享热点新闻
打造优质自媒体!

微软探索LTO PGO优化Linux内核

当越来越多的软件供应商使用LTO(链接时间优化)和PGO(配置文件引导优化)来提高编译器的性能时,微软的工程师们正在为他们自己的Linux内核探索LTO PGO,以获得更好的Linux性能。

在Linux内核上使用链接时进行优化并不是一个新概念。过去,许多制造商已经发布了Linux内核的LTO补丁,但是它通常不会带来很大的变化。莱纳斯托瓦兹和其他人以前对支持LTO的Linux内核并不乐观,部分原因是因为过去GCC的LTO地位不佳。然而,随着现代GCC编译器的发展,LTO逐渐变得更好。例如,Fedora在打包他们的发行版安装包时默认使用LTO,一些像Clear Linux这样的公司将通过使用AutoFDO(基于程序性能分析工具的反馈编译优化)来进一步提高他们的发行版的性能。

相对而言,在Linux内核上很少使用配置文件来指导优化。因为由配置文件引导的优化完全依赖于配置文件,所以它被反馈给编译器以帮助它执行优化启发式处理。因此,对于实际使用,配置文件的准确性非常重要。考虑到在Linux上看到的各种工作负载,以及各种硬件和驱动程序,生成对PGO有用的、可以被广泛使用的并且可以帮助大多数用户的配置文件是一项困难的任务。因此,Linux内核中的PGO更面向个人用户/组织,他们可以采用PGO并根据自己的实际情况进行调整。

在本周举行的Linux管道工会议上,微软,的软件工程经理Ian Bearman介绍了他们对优化Linux内核配置文件指导的探索。

微软探索LTO PGO优化Linux内核 科学快报 第1张

他们对PGO的兴趣源于对Linux性能的“内部客户要求”。但话说回来,微软致力于优化Linux性能似乎并不奇怪。另一位微软工程师为FSGSBASE补丁的开发做出了贡献,并最终被并入了Linux内核5.9。

Redis是一个公开的案例,他们展示了在内核中探索和使用PGO并从中受益。

微软探索LTO PGO优化Linux内核 科学快报 第2张

微软将继续探索Linux内核的PGO。有趣的是,人们发现LTO PGO在视窗系统中被广泛使用。据说在Windows实例中,他们看到这些编译器的性能提高了5~20%,他们一定使用了自己的MSVC编译器。

评论 抢沙发

9 + 2 =