Articles

GCC 10 vs. Clang 10 performanța compilatorului pe AMD Zen 2 + Intel Cascade Lake

am livrat multe repere ale Clang 10.0 pe diferite procesoare, urmând ca versiunea actualizată a compilatorului LLVM să fie lansată la începutul acestui an. Cu GCC 10 lansat la începutul acestei luni, am început analiza comparativă a acestei versiuni anuale de caracteristici pentru colecția GNU Compiler. În primul rând este o privire asupra performanței compilatorului gcc 9 vs.GCC 10 vs. LLVM Clang 10 pe sistemele AMD Zen 2 și Intel Cascade Lake.

această rundă inițială de benchmarking pentru GCC 10 vs.Clang 10 se uită la versiunile de lansare ale fiecărui plus GCC 9.3 la testarea pe stațiile de lucru AMD Ryzen Threadripper 3990x și Intel Core i9 10980xe. Threadripper 3990x se termină din System76 Thelio Major. Ambele sisteme rulau Ubuntu 20.04 LTS cu kernel-ul Linux 5.4 și toate compilatoarele au fost construite în același mod de lansare. Există diferențe RAM / SSD între sisteme, care nu intenționează să compare performanța AMD vs.Intel, ci mai degrabă să analizeze modul în care aceste compilatoare LLVM Clang și GCC funcționează în mai multe familii de procesoare. Repere CPU suplimentare vor fi viitoare cu aceste compilatoare.

în timpul tuturor benchmarking-ului, CFLAGS / CXXFLAGS au fost setate la „- O3-march=native” atât pentru sistemele AMD Zen 2, cât și pentru Intel Cascade Lake. Prin intermediul suitei de testare Phoronix, o gamă largă de repere C / C++ au fost rulate în timp ce reconstruiau reperele open-source sub fiecare dintre compilatoarele diferite testate.

cu compresorul Blosc, performanța Clang 10.0 A fost practic legată de GCC 10, în timp ce performanța Core i9 10980xe a văzut GCC oferind performanțe mai bune decât această ultimă versiune Clang.

cu valorile de referință Crypto++ nu a existat o mare diferență între GCC 9.3 și GCC 10.1, în timp ce performanța Clang 10.0 A continuat să GCC pe sistemul Cascade Lake HEDT. Pe sistemul Thelio Major Threadripper, performanța Clang a avut tendința de a funcționa bine împotriva GCC, cu excepția testului algoritmilor cheii publice întregi și a curbei eliptice, unde GCC a ieșit măsurabil mai puternic.

LCZero cu back-end-ul său Eigen a înregistrat câteva câștiguri minore din GCC 10 și performanțe chiar mai bune cu Clang 10, în timp ce sistemul i9-10980xe a înregistrat performanțe ușor mai rapide pe GCC 9.3.

performanța binară Lammps a lui Clang a fost în conformitate cu GCC pe ambele sisteme.