Articles

Performances du compilateur GCC 10 vs Clang 10 Sur AMD Zen 2 + Intel Cascade Lake

Nous avons livré de nombreux benchmarks de Clang 10.0 sur divers PROCESSEURS suite à la mise à jour de la pile du compilateur LLVM plus tôt cette année. Avec la sortie de GCC 10 au début du mois, nous avons commencé notre analyse comparative de cette version annuelle de la fonctionnalité à la Collection du compilateur GNU. Tout d’abord, un aperçu des performances du compilateur GCC 9 contre GCC 10 contre LLVM Clang 10 sur les systèmes AMD Zen 2 et Intel Cascade Lake.

Cette première série de benchmarking pour GCC 10 vs Clang 10 examine les versions de chaque version plus GCC 9.3 lors des tests sur les stations de travail AMD Ryzen Threadripper 3990X et Intel Core i9 10980XE. Le Threadripper 3990X est à court du Système76 Leio Major. Les deux systèmes exécutaient Ubuntu 20.04 LTS avec le noyau Linux 5.4 et tous les compilateurs ont été construits de la même manière en mode de publication. Il existe des différences de RAM / SSD entre les systèmes sans avoir l’intention de comparer les performances AMD par rapport à Intel, mais plutôt de voir comment ces compilateurs LLVM Clang et GCC fonctionnent sur plusieurs familles de processeurs. Des benchmarks CPU supplémentaires seront disponibles avec ces compilateurs.

Pendant toute l’analyse comparative, les CFLAGS/CXXFLAGS ont été définis sur « -O3-march=native » pour les systèmes AMD Zen 2 et Intel Cascade Lake. Via la suite de tests Phoronix, une large gamme de benchmarks C/C++ ont été exécutés tout en reconstruisant les benchmarks open-source sous chacun des différents compilateurs testés.

Avec le compresseur Blosc, les performances de Clang 10.0 étaient essentiellement liées à GCC 10 tandis que les performances du Core i9 10980XE voyaient GCC offrir de meilleures performances que cette dernière version de Clang.

Avec les benchmarks Crypto++, il n’y avait pas beaucoup de différence entre GCC 9.3 et GCC 10.1 alors que les performances de Clang 10.0 continuaient à suivre CCG sur le système Cascade Lake HEDT. Sur le système Thelio Major Threadripper, les performances de Clang avaient tendance à bien fonctionner contre GCC, à l’exception du test des algorithmes à clé publique à courbe entière et elliptique, où GCC est sorti mesurablement plus fort.

LCZero avec son back-end propre a vu des gains mineurs sur GCC 10 et des performances encore meilleures avec Clang 10 tandis que le système i9-10980XE a vu des performances légèrement plus rapides sur GCC 9.3.

Les performances binaires LAMMPS de Clang étaient conformes à GCC sur les deux systèmes.