Processeurs : Intel soupçonné d’avoir truqué les tests de performance
Près de 2 600 résultats publiés à propos de la puissance de calcul des précédents Xeon Sapphire Rapids auraient été falsifiés. Le compilateur utilisé produisait des codes rapides uniquement lors des tests.
L’organisme SPEC, qui développe des algorithmes de tests de performance et fédère leurs résultats sur son site, vient d’invalider environ 2 600 résultats précédemment partagés par Intel à propos de ses processeurs Xeon d’avant-dernière génération, les Sapphire Rapids. Plus exactement, ces résultats sont toujours présents dans la base de données SPEC à titre historique (par exemple ici ou encore ici), mais s’accompagnent désormais d’une note indiquant :
« SPEC a statué que le compilateur utilisé pour ce résultat effectuait une compilation qui améliore spécifiquement les performances des benchmarks 523.xalancbmk_r / 623.xalancbmk_s en utilisant une connaissance a priori du code SPEC et de l’ensemble des données, de sorte à effectuer un traitement dont l’applicabilité est limitée (en conditions réelles). Afin d’encourager les optimisations qui ont une applicabilité en conditions réelles, l’organisme SPEC ne publiera plus les résultats utilisant cette optimisation. »
En clair, l’organisme aurait découvert que les versions parues en 2022, du compilateur baptisé oneAPI DPC++/C++ qu’Intel a écrit pour ses Xeon et qu’il utilise pour les tester, seraient truquées. Plutôt qu’effectuer réellement certains calculs afin de mesurer le temps qu’ils mettent à s’accomplir, le processeur qui exécute un code généré par ce compilateur pour les tests spécifiques du SPEC collerait le résultat attendu sans nécessairement le calculer, de sorte à paraître excessivement rapide.
Contacté par LeMagIT, Intel n’a pas encore été en mesure de fournir une explication officielle.
Selon l’organisme SPEC, le problème aurait disparu des versions du compilateur parues fin 2023 et qui, elles, sont consacrées à la toute dernière génération de Xeon, la cinquième, dite Emerald Rapids.
Les compilateurs optimisés restent légitimes
Les tests impactés font partie des benchmarks SPEC CPU 2 017 qui servent à mesurer les performances des serveurs en termes de rapidité de calcul. Ces performances sont attribuables à divers facteurs : la fréquence des cœurs (exprimée en GHz), qui exprime leur rapidité intrinsèque, la vitesse de chargement des données depuis la mémoire et son accélération potentielle via la mémoire cache, ou encore la présence de circuits optimisés pour telle opération.
Ces caractéristiques changent d’une génération de processeur à l’autre – comme d’une marque à l’autre – et c’est pourquoi Intel écrit à chaque fois des compilateurs spécifiques pour les prendre en charge.
La compilation consiste à transformer un algorithme, écrit dans un langage de haut niveau, en un code binaire exécutable par le processeur. Un compilateur générique ne produit que du code x86 standard, dépourvu des instructions spécifiques qui activent les avantages électroniques d’un certain modèle de processeur.
L’utilisation de compilateurs proposés par le fabricant du processeur est donc tolérée dans le cadre des tests. Et elle est même encouragée auprès des développeurs, afin qu’ils produisent des applications le plus optimisées possible pour un type de serveurs. C’est notamment parce que des applications sont compilées ainsi qu’elles sont certifiées pour des processeurs Intel, mais pas pour des processeurs AMD.
Cette révélation a lieu dans un contexte où les Xeon d’Intel, bien que toujours en tête des ventes, perdent des parts de marché depuis plusieurs mois face à leurs challengers, les processeurs Epyc d’AMD. Ces derniers ont su démontrer un meilleur rapport performances/prix grâce à une fabrication plus fine dans les usines du Taiwanais TSMC, lesquelles ont une avance technologique par rapport aux usines d’Intel.
Depuis que les Epyc s’affirment comme une alternative aux Xeon dans les serveurs, Intel ne cesse de vouloir démontrer que le design supérieur de ses puces est plus bénéfique aux performances que la finesse de gravure.