Keeping The Ryzen Threadripper Busy With An Array Of Compiler Benchmarks
A 36 second defconfig Linux x86-64 kernel build isn't quite the fastest I've ever encountered with recently getting closer to 20 seconds with this dual Xeon Gold + Tyan 1U combination, but it is the fastest build time of my single socket CPU tests ever... It will be interesting to see how EPYC compares with its compile times once I get my hands on those parts, hopefully in just a matter of days. It used to take plenty of time to enjoy a coffee (or beer) while the Linux kernel compiled, but with the modern high-end processors from AMD and Intel, it can be easily done in less than one minute.
The @AMDRyzen #Threadripper 1950X managing a #Linux kernel build in about 36 seconds, not bad! pic.twitter.com/vQJwZKpakJ— Phoronix (@phoronix) August 24, 2017
See this morning's article for a plethora of Threadripper 1950X benchmark results compared to various AMD/Intel systems on Ubuntu while this article is just some complementary data, mostly looking at different compile times. GCC 4.9.4, GCC 6.3, GCC 7.2, GCC 8.0, LLVM Clang 4.0, and LLVM Clang 6.0 SVN were the compilers tested on this Threadripper box for these additional reference points... Mostly driven out of curiosity for seeing how much more I could reasonably squeeze out of the build times on this high-end desktop processor, short of dropping the compiler optimization levels or other big differences.
I did also try some runs when the tests were installed to tmpfs/zram, but that showed the Corsair MP500 NVMe SSD wasn't actually the bottleneck that the build times weren't getting reduced in any meaningful way. In a follow-up article in the days/weeks ahead I'll have a formal article looking at various compiler tuning / GCC/Clang benchmarks for Threadripper besides today's attempt at seeing how fast Threadripper can build some popular open-source/Linux programs.
All of these compiler benchmarks were facilitated in a fully-automated and reproducible manner using the open-source Phoronix Test Suite benchmarking software.
First up was the timed Apache HTTPD web-server build times.... LLVM Clang has gotten slower in some recent releases while GCC has also worked to improve its build times, but these Apache build times show LLVM Clang is still coming out up to a few seconds faster than the GNU Compiler Collection. GCC 8.0 SVN was the slowest compiler tested while Clang SVN was the fastest.
Next up is a look at how quickly the GCC releases could build out the GNU Compiler Collection 7.2 release. The oldest release tested, GCC 4.9.4, was the quickest at building the GNU compiler given over time more optimization passes and other features get added to GCC that often times slow it down. Fortunately though going from GCC 7.2 to GCC 8.0 is currently yielding a small build time improvement.
When building the ImageMagick graphics program, LLVM Clang could build it in 18 seconds while GCC was at 20 seconds and beyond. The older GCC 4.9.4 was the fastest GCC Compiler release tested.
Most exciting to many is the Linux kernel compilation times... Sadly, the mainline LLVM/Clang compiler can still not build yet the mainline Linux kernel. The LLVMLinux project that's been trying to advance the Clang-building-Linux effort has been stalled the past few years and there isn't much to report at this time on those prospects. With these releases tested on Ubuntu 17.04, the kernel build times were 42~46 seconds (my earlier 36 second build time was on Ubuntu 16.04 LTS).
Next is a look at the time to compile LLVM (not including Clang) with the various compilers. The GCC8 boost in compilation time here is rather surprising, but from initial tests look like that it may have been generating faulty code, so take that result worth a grain of salt for now.
Lastly with the PHP build times we see LLVM Clang running the fastest on the AMD Threadripper Ubuntu system. Amazing to see that PHP can be built in almost 10 seconds thanks to Threadripper!
Overall it was quite fascinating to see how quickly AMD's Threadripper 1950X was able to build some of these popular open-source packages as well as seeing which compilers were performing the best. More interesting Linux (and BSD) tests of the AMD Threadripper coming on Phoronix in the days ahead, but be sure to see this morning's AMD 1950X review if you have not already done so; this $999 USD CPU has a lot to offer for heavily threaded Linux workloads.