Apple M1 : les ‘petits’ cœurs Icestorm se mesurent aux ‘gros’ cœurs Firestorm

Les vainqueurs sont connus d’avance, mais les coeurs Icestorm jouissent d’un excellent rapport performance / consommation.

La puce M1 d’Apple possède 8 cœurs CPU en tout, mais de deux types : 4 cœurs haute performance, appelés Firestorm, et 4 cœurs basse consommation, les Icestorm. Si les performances des premiers et de la puce dans son ensemble ont été examinées à travers de nombreux tests, jusqu’à présent, nous ne savions pas ce que valaient les cœurs Icestorm lorsqu’ils œuvraient seuls. Le site The Eclectic Light Company nous apporte des réponses.

Image 1 : Apple M1 : les 'petits' cœurs Icestorm se mesurent aux 'gros' cœurs Firestorm

Le testeur a soumis les petits cœurs Icestorm à des calculs en virgule flottante et comparé les résultats à ceux obtenus par les cœurs Firestorm. Afin qu’à chaque fois, seuls les cœurs Icestorm ou Firestorm travaillent, il a joué sur le QoS (Quality of Service) de macOS.

Les tests portent sur quatre scénarios : “une boucle serrée en langage assembleur utilisant des instructions SIMD mixtes sur des tableaux de 4 largeurs de nombres à virgule flottante en simple précision ; l’appel SIMD d’Apple (un parent des bibliothèques Accelerate) simd_dot() sur deux tableaux simd_float4, en utilisant Swift ; Swift simple pour utiliser des boucles imbriquées ; une boucle imbriquée Swift plus ‘idiomatique’ utilisant map et reduce”. En somme, les quatre tests visent à couvrir un large éventail de scénarios, du plus bas niveau (en assembleur) à l’exécution plus réaliste et classique d’une app macOS (code Swift). Les codes utilisés dans la boucle itérative figurent en fin d’article.

Apple concocterait un Mac Mini armé d’un SoC M1X à 12 cœurs CPU / 16 cœurs GPU

Résultats

Les temps des cœurs Firestorm servent de référence avec une base 100 %. Autrement dit, 100 % représente un temps identique, et 200 % le double de ce temps. Le tableau ci-dessous rassemble les temps mis par les cœurs Icestorm dans les différents scénarios et ceux des cœurs Firestorm.

TâchesSMIDAssemblySwift simple“Idiomatique” Swift
Cœurs Firestorm0,0938 secondes0,142 secondes0,451 secondes15,7 secondes
Cœurs Icestorm0,309 secondes0,271 secondes1,27 secondes86,3 secondes
Performance relative (sur base de 100 %)330 %190 %280 %550 %

Comme l’on pouvait s’y attendre, plus les codes deviennent complexes, plus les cœurs Icestorm accusent du retard. Rien de dramatique, puisque ce n’est pas leur rôle. Et surtout, il faut mettre ces résultats en perspective avec la consommation : les cœurs Icestorm sont nettement plus frugaux que leurs grands frères, puisqu’ils consomment 4 fois moins d’énergie.

Image 2 : Apple M1 : les 'petits' cœurs Icestorm se mesurent aux 'gros' cœurs Firestorm

Source ; The Electric Light Company