LLVM/Clang 6.0 和 5.0 的编译器 Benchmark 测试这次会在四个不同的系统上进行,包括了 Intel/AMD Linux 平台,其中 Intel 和 AMD 各占两个。
四个系统都运行了 Ubuntu Linux x86_64,Intel 和 AMD 平台分别的配置如下:Intel Core i7 8700K (Coffeelake)、dual Xeon Gold 6138 (Skylake X)、Ryzen 7 1700 (Znver1) 以及 AMD EPYC 7601 (Znver1)。
除了默认的 C++14/GNU++14,Clang 6.0 还正式完成了 AMD Zen "znver1" 的程序调度模型,而英特尔方面也对多代 CPU 进行了调度程序的改进。
参与测试的 LLVM 5.0.1 和 LLVM 6.0.0 稳定版都是来自 apt.llvm.org。测试期间,每个系统都将其 CFLAGS/CXXFLAGS 设置为 "-O3 -march=native"。这次编译器 Benchmark 测试使用了开源的 Phoronix Benchmark 测试套件。
接下来,我们看看测试结果如何:
从 PolyBench-C Benchmark 测试可以看到,Clang 6.0 在 AMD Zen 系统似乎有明显的回落,而在英特尔平台上,性能没有太大的变动。
在大多数 benchmark 测试中,Clang 6.0 的表现与 Clang 5.0.1 相比几乎没有什么变化,这里也省略了许多结果。
使用 Clang 6.0 时,BLAKE2 似乎对英特尔 Skylake/Coffeelake 的设置稍有改进,而对于 Znver1 处理器则保持不变。
在一些测试中,我们发现 Core i7 8700K Coffeelake 系统在全新的 Clang 编译器更新中拥有更好的性能。
在 SciMark2 的 FFT 测试中,i7-8700K 明显是最大的赢家。
在其他的子测试中,i7-8700K的运行时间更短。在某些情况下,AMD 方面也有一些小幅度的改进。
TSCP chess benchmark 测试显示,i7-8700K 的速度稍慢,而其他系统则略有改善。
我们发现,强大的 EPYC 和 Xeon 系统在使用 Clang 6.0 时确实有更快的 John The Ripper 性能。
除了 dual Xeon Gold 外,其他系统的 AVX-heavy Himeno 压力求解器的性能都得到了改善。
但随着 LLVM 和 Clang 增加更多的优化和功能,在这项测试中,6.0 版本的编译时间显然比在 5.0 版本下显着减慢。
C-Ray 多线程射线追踪器(ray-tracer) z在 LLVM 6.0 上也变慢。
不过在其他一些测试中,Core i7 8700K 再次显示出 LLVM Clang 6.0 的一些小的性能改进。
可以看到,在使用 Linux x86_64 的流行英特尔和 AMD 平台上,LLVM Clang 5.0 和 6.0 之间的性能只发生了微小的变化。不过随着 LLVM/Clang 在过去的几年里已经成熟了许多,而且现在几乎与 GCC 在很多工作负载上并驾齐驱。
领取专属 10元无门槛券
私享最新 技术干货