Articles

GCC 10 vs. Clang 10 Compilerleistung auf AMD Zen 2 + Intel Cascade Lake

Wir haben viele Benchmarks von Clang 10.0 auf verschiedenen CPUs geliefert, nachdem die LLVM-Compiler-Stack-Version Anfang dieses Jahres aktualisiert wurde. Mit GCC 10, das Anfang dieses Monats veröffentlicht wurde, haben wir mit dem Benchmarking dieses jährlichen Feature-Releases für die GNU Compiler Collection begonnen. Zunächst werfen wir einen Blick auf die Compilerleistung von GCC 9 vs. GCC 10 vs. LLVM Clang 10 auf AMD Zen 2- und Intel Cascade Lake-Systemen.

Diese erste Benchmarking-Runde für GCC 10 vs. Clang 10 befasst sich mit den Release-Builds jedes plus GCC 9.3 beim Testen auf AMD Ryzen Threadripper 3990X und Intel Core i9 10980XE Workstations. Der Threadripper 3990X läuft aus dem System76 Thelio Major. Auf beiden Systemen lief Ubuntu 20.04 LTS mit dem Linux 5.4-Kernel und alle Compiler wurden im selben Release-Modus erstellt. Es gibt RAM / SSD-Unterschiede zwischen den Systemen, wobei nicht beabsichtigt wird, die Leistung von AMD und Intel zu vergleichen, sondern vielmehr, wie diese LLVM-Clang- und GCC-Compiler in mehreren CPU-Familien funktionieren. Zusätzliche CPU-Benchmarks werden mit diesen Compilern in Kürze verfügbar sein.

Während des gesamten Benchmarking wurden die CFLAGS / CXXFLAGS sowohl für die AMD Zen 2- als auch für die Intel Cascade Lake-Systeme auf „-O3 -march=native“ gesetzt. Über die Phoronix-Testsuite wurde eine breite Palette von C / C ++ – Benchmarks ausgeführt, während die Open-Source-Benchmarks unter jedem der verschiedenen getesteten Compiler neu erstellt wurden.

Mit dem Blosc-Kompressor war die Clang 10.0-Leistung im Wesentlichen mit GCC 10 verbunden, während GCC mit der Core i9 10980XE-Leistung eine bessere Leistung lieferte als diese neueste Clang-Version.

Bei den Crypto ++ – Benchmarks gab es keinen großen Unterschied zwischen GCC 9.3 und GCC 10.1, während die Leistung von Clang 10.0 GCC auf dem Cascade Lake HEDT-System weiterhin hinterherhinkte. Auf dem Threadripper Thelio Major-System lief die Clang-Leistung tendenziell gut gegen GCC, mit Ausnahme des Integer- und Elliptic Curve Public Key Algorithms-Tests, bei dem GCC messbar stärker herauskam.

LCZero mit seinem Eigen-Backend verzeichnete einige geringfügige Zuwächse aus GCC 10 und eine noch bessere Leistung mit Clang 10, während das i9-10980XE-System eine etwas schnellere Leistung auf GCC 9.3 erzielte.

Die LAMMPS-Binärleistung von Clang entsprach auf beiden Systemen GCC.