Articles

GCC 10 vs. Clang 10 Wydajność kompilatora na AMD Zen 2 + Intel Cascade Lake

dostarczyliśmy wiele benchmarków Clang 10.0 na różnych procesorach po tym zaktualizowanym wydaniu kompilatora LLVM na początku tego roku. Wraz z wydaniem GCC 10 na początku tego miesiąca rozpoczęliśmy benchmarking tego corocznego wydania funkcji do GNU Compiler Collection. Najpierw przyjrzyjmy się wydajności kompilatora GCC 9 vs GCC 10 vs LLVM Clang 10 na systemach AMD Zen 2 i Intel Cascade Lake.

ta pierwsza runda benchmarkingu dla GCC 10 vs.Clang 10 dotyczy kompilacji wydań każdego plus GCC 9.3 podczas testowania na stacjach roboczych AMD Ryzen Threadripper 3990x i Intel Core i9 10980xe. Threadripper 3990X wyczerpuje się System76. Oba systemy działały na Ubuntu 20.04 LTS z jądrem Linux 5.4 i wszystkie Kompilatory były zbudowane w tym samym trybie wydania. Istnieją różnice RAM / SSD między systemami, nie zamierzając porównywać wydajności AMD vs. Intel, ale patrząc na to, jak te Kompilatory LLVM Clang i GCC działają w wielu rodzinach procesorów. Dodatkowe benchmarki CPU będą dostępne w tych kompilatorach.

podczas wszystkich testów cflags/CXXFLAGS ustawiono na „-O3-march=native” dla Systemów AMD ZEN 2 i Intel Cascade Lake. Za pośrednictwem Phoronix Test Suite uruchomiono szeroką gamę benchmarków C / C++ podczas przebudowy benchmarków open-source pod każdym z testowanych kompilatorów.

dzięki kompresorowi Blosc wydajność Clang 10.0 była zasadniczo powiązana z GCC 10, podczas gdy wydajność Core i9 10980xe zapewniała lepszą wydajność niż najnowsza wersja Clang.

w benchmarkach Crypto++ nie było dużej różnicy między GCC 9.3 a GCC 10.1, podczas gdy wydajność Clang 10.0 nadal rosła GCC w systemie kaskadowym Lake HEDT. W systemie Threadripper Thelio Major wydajność Clang miała tendencję do dobrze działać przeciwko GCC z wyjątkiem testu algorytmów klucza publicznego krzywej całkowitej i eliptycznej, w którym GCC okazał się znacznie silniejszy.

LCZero z zapleczem Eigen odnotował niewielkie zyski z GCC 10 i jeszcze lepszą wydajność z Clang 10, podczas gdy system i9-10980xe odnotował nieco szybszą wydajność na GCC 9.3.

wydajność binarna lamps clanga była zgodna z GCC w obu systemach.