GCC自动并行编译可行性结果帮助高达3.3倍

2020-09-04 19:50:25

我们依赖您的支持:您知道您每月只需不到3美元就可以获得Phoronix Premium吗?今天就试着在一个页面上查看我们的网站无广告、多页文章,以及更多内容,这样我们就可以写更多的Linux硬件评论了。Google Summer of Code2020中最有趣的项目之一是正在进行的允许并行编译单个代码文件的工作,这是在去年解决GCC并行化瓶颈问题的基础上进行的。GSOC 2020年关于这项工作的最终报告已经发布。 与传统的使用构建系统中的多个作业并行编译多个文件相比,这项工作的重点在于能够并行编译大型源文件。对于大型源文件,进一步增强GCC的并行化能力,在内核/线程数量不断增加的时代是一大胜利。 学生开发者朱利亚诺·贝里纳西(Giuliano Belinassi)在他的工作中取得了成功,并在这个夏天结束了对他的补丁的重新定位,理想的情况是在不久的将来看到合并到主干上。最终,他发现该项目带来了从0.95倍到3.3倍的加速。这项工作被认为至少在实验状态下已经准备好了。 阶段性代码提供了GCC分支(AUTOPAR_DEVELL)。当想要测试与打补丁的编译器并行编译文件时,可以使用";-fallel-job=";标志指定并行作业的数量。 至于GSOC2020项目的结论,它强调了未来可以做的工作,以改善具有大量核心计数的系统上的GCC编译时间: 这个项目还有很多地方可以改进。例如,单看上表,我们就可以得出这样的结论: *将静态提升到全局可以增加编译上的并行化机会。 *即使有IO流开销,LTO模拟并行度也比我们的方法更快。这意味着要么我们的分割器速度很慢,要么我们正在浪费时间去做一些可以改进的事情。 *这可以作为减少多核机器整体编译时间的一种方式。

对于对此主题感兴趣的人,请查看完整的报告。考虑到他在过去两个夏天取得的成功,Belinassi有望继续为GNU编译器集合做出贡献。