L’Apple A12 Bionic serait-il plus performant que le Kirin 980 puisque les deux ont 6,9 milliards de transistors et qu’iOS serait mieux optimisé pour fonctionner sur l’A12 Bionic qu’Android Oreo ou Android Pie sur le Kirin 980 ? Artboard


TL;DR

L'Apple A12 Bionic serait plus performant que le Kirin 980, et ce n'est pas non plus par une petite marge. Il surpassera le Kirin 980 en termes de performances du processeur, du GPU et du NPU également. Le seul domaine dans lequel l'A12 n'est pas à la hauteur est la bande passante 4G LTE, car la puce n'a pas de modem et doit en utiliser un conçu par Intel. Maintenant, pour tous ceux qui vont me traiter de fanboy d'Apple, je vais être franc dès maintenant et vous dire que cette réponse sera impartiale, et que je présenterai des informations factuelles sous la forme de chiffres bruts de benchmark.


Le CPU

D'abord, l'histoire. Depuis l'avènement de l'iPhone 4 et de son System on a Chip (SoC) A4, Apple conçoit son propre silicium. Par conception, j'entends qu'elle a obtenu une licence pour des conceptions standard d'ARM, sous la forme du processeur ARM Cortex A8 (oui, singulier. Il n'avait qu'un seul cœur), ainsi que des conceptions de GPU standard d'Imagination Technologies, sous la forme du GPU PowerVR SGX535. En 2012, Apple a décidé que l'octroi de licences pour des composants standard était un facteur limitant majeur de ce qu'elle souhaitait réaliser, et a donc conçu son tout premier cœur de CPU maison, sous le nom de code Swift. L'année 2013 a été marquée par une révolution massive sur le marché des processeurs mobiles, lorsqu'Apple a lancé la puce A7 dotée des tout premiers cœurs de processeurs 64 bits mobiles, dont le nom de code est "Cyclone". C'était un changement massif, non pas parce qu'il s'agissait d'un processeur 64 bits, mais parce qu'Apple ne plaisantait pas en vantant les mérites d'un "processeur de classe bureau". La conception du noyau ressemblait plus à l'architecture Haswell d'Intel qu'à toute autre architecture mobile. Les deux images suivantes présentent le schéma fonctionnel du cœur Swift d'Apple et du cœur concurrent Qualcomm Krait, qui était également conçu sur mesure :


main-qimg-b99bc62748e5034ab87b4c289a159e69 main-qimg-73d84b1555b470296c6396804e9f6c8e

.......Et voici Cyclone.......

main-qimg-de7f8d5b5d3af0623c48c642a98268de

Il ne faut pas être un expert pour voir que Cyclone était une conception de CPU beaucoup plus complexe. Il avait un frontal de 6 largeurs (signifié par les blocs décodeurs en haut en bleu), contre 3 largeurs pour Swift et Krait. Cela a permis à Cyclone de décoder beaucoup plus d'informations par horloge, ce qui a entraîné une augmentation de 100% des performances par rapport à Swift, tout en conservant les mêmes vitesses d'horloge. Juste pour les merdes et les rires, je jette dans le diagramme de bloc pour Haswell:

main-qimg-02bfa1c9e22718e0babd3b9e894b12ed.webp

Notez certaines des similitudes : Haswell et Cyclone avaient tous deux des tampons de réorganisation (ROB) de 192 entrées, et ils avaient également tous deux 8 ports à la fin. C'était un énorme écart par rapport à la conception traditionnelle des processeurs mobiles.

Avance rapide de 6 ans, l'Apple A12 a une paire de cœurs 64 bits à haute performance de 7 largeurs, nom de code "Vortex", qui fonctionne à 2,5 GHz en pointe, et quatre cœurs d'efficacité énergétique nom de code "Tempest", qui est une conception de 3 largeurs avec une fréquence de pointe de 1.58GHz, très probablement une réutilisation des cœurs Swift dans l'A6, mais redessinés pour être 64 bits, et combinés avec une chiée de cache supplémentaire.

Pendant ce temps, le Kirin 980 utilise quatre CPU ARM Cortex A76 sur étagère, deux cadencés à 2,6GHz, et et deux cadencés à 1,9 GHz. Le Cortex A76 est une révision majeure de la conception du Cortex A75, cette fois avec un front de 4 largeurs au lieu de 3 pour le prédécesseur. Le Kirin 980 est également livré avec 4 cœurs Cortex A55 cadencés à 1,8 GHz pour les tâches à faible consommation, bien que selon les conclusions d'AnandTech, les petits cœurs étaient si lents que c'était insuffisant pour la plupart des tâches, et souvent les cœurs à haute performance étaient utilisés à la place.

AnandTech a effectué toute une suite de benchmarks qui ont testé les performances en nombres entiers et en virgule flottante, ainsi que les performances du cache et autres. La suite de benchmarks qu'il a utilisée est Spec2006, qui n'est pas aussi bien connue que Geekbench, peut-être parce que ce n'est't aussi simple que de télécharger une application et de l'exécuter sur votre téléphone. Néanmoins, cette suite de benchmarks est la norme industrielle pour les mobiles et les PC, et est utilisée pour tester les performances en nombres entiers et en virgule flottante pour de nombreuses tâches, telles que les simulations physiques et le traitement d'images. Voici les résultats :

main-qimg-f30e843d6916ed46930df6b81b3e57c5

Pour les performances en nombres entiers, le cœur Vortex surpasse la concurrence, généralement avec une marge énorme. Dans le même temps, sur la partie gauche du graphique, il consomme moins d'énergie en exécutant les benchmarks. Jetons un coup d'œil aux performances en virgule flottante.

main-qimg-5c7e59cc799530f1819d88954d14d58d

Encore une fois, le cœur Vortex d'Apple bat assez largement la concurrence, ne perdant que dans le benchmark 447,dealII à la fois en performance et en consommation d'énergie.

main-qimg-fa9f98ae6b10579acabe70624b5f27d4

Enfin, ce graphique résume les scores moyens de tous les benchmarks entiers et FP, ainsi que la consommation d'énergie des puces. Les cœurs Vortex sont presque deux fois plus rapides que leur plus proche concurrent, les cœurs M3 conçus sur mesure sur l'Exynos 9810, et consomment beaucoup moins d'énergie que tous les concurrents. Les cœurs Cortex A76 ne figurent pas dans cette liste, car ils n'ont pas été évalués au moment de la rédaction de cette réponse. Cependant, Huawei eux-mêmes ont déclaré que le Kirin 980 aura une augmentation de performance de 75% par rapport au Kirin 970, qui utilise toujours le Cortex A73 d'il y a deux ans, et aura également une augmentation de performance de 37% par rapport aux cœurs Kryo 385 Gold trouvés sur le Snapdragon 845, qui était une version semi-personnalisée du Cortex A75 de l'année dernière. En utilisant ces métriques à l'esprit, le Kirin 980 devrait avoir un score moyen SpecInt2006 d'environ 23, ce qui est loin du score entier de 44,92 de l'A12.

main-qimg-b8e8098d3dea7c74cb2bdf8b711154e3

Les performances sont encore validées par les informations répertoriées sur le site Web d'ARM. ARM revendique une amélioration de 90 % des performances en nombres entiers par rapport au Cortex A73, mais c'est lorsque le cœur A76 était cadencé à 3 GHz. En regardant l'augmentation des performances en virgule flottante du Cortex A76, nous voyons une augmentation de 150% par rapport à l'A73. En le ramenant à la fréquence de 2,6 GHz sur le Kirin 980, il devrait y avoir une augmentation d'environ 110%, en supposant que l'échelle soit parfaite. Cela porterait le score Specfp2006 supposé à environ 33,8, moins que même les cœurs Monsoon de l'A11, beaucoup moins pour dire le Vortex de l'A12.

Pour tourner notre attention vers les petits cœurs, le rédacteur d'AnandTech, Andrei Frumusanu, avait ceci à dire à propos des petits cœurs :

Le cœur Tempest est une microarchitecture out-of-order à 3 largeurs : Dès le départ, cela signifie qu'il a très peu à voir avec les propres "petits" cœurs d'Arm, tels que les A53 et A55, car ce sont des conceptions in-order plus simples.

L'exécution out-of-order (OoO) signifie que si un élément de données prend plus de temps que d'habitude dans le pipeline, le CPU peut traiter d'autres éléments de données hors de l'ordre original, puis les données sont introduites dans un tampon de réorganisation (ROB) pour être replacées dans l'ordre. Cela permet d'économiser de nombreux cycles de CPU qui sont autrement gaspillés dans une conception dans l'ordre.

main-qimg-1803b6a4364d165abb0163b720e65449

En regardant ce graphique, ce qui ressort vraiment, c'est que les petits cœurs de l'A12, et aussi de l'A11 de l'année dernière, ont en fait des performances en nombres entiers similaires à celles des gros cœurs du Snapdragon 835 et du Kirin 970, bien que les performances en virgule flottante montrent que Tempest et Mistral sont légèrement à la traîne.

AnandTech a également souligné que l'exécution de la suite de tests Spec2006 sur les Cortex A55 et A53 (les petits cœurs d'ARM) était laborieusement lente, et que les données qu'ils ont pu recueillir étaient incomplètes. A partir de ces données, ils ont pu conclure que Tempest et Mistral étaient au moins 2 à 3 fois plus rapides que les cœurs propriétaires d'ARM. Alors que Tempest n'a pas vraiment amélioré le Mistral en termes de performances, ils ont consommé moins d'énergie.

Le GPU

Avec tous les benchmarks qu'AnandTech a exécuté pour stresser le GPU, les résultats étaient bien différents des tests CPU, qui en raison de sa nature beaucoup plus complexe, les résultats dépendaient de la façon dont les benchmarks étaient optimisés pour le silicium, ainsi que de la puissance brute du silicium. Sur certains tests, le GPU A12 est tombé derrière le Snapdragon 845, et sur d'autres, il a tiré une énorme avance.

main-qimg-4dc6cd77f3336820d40299846ef52141

Ce premier graphique est le test physique utilisé dans 3DMark Sling Shot Extreme. C'est un test CPU, mais c'est un exemple d'une charge de travail mal optimisée sur le CPU. En regardant les résultats, ils ne reflètent tout simplement pas les gains massifs du CPU de l'A12 sur la concurrence. AnandTech a détaillé un article à ce sujet il y a quelques années, expliquant pourquoi l'iPhone 5s avec l'A7, qui était deux fois plus rapide que l'A6, obtenait des résultats identiques les uns aux autres sur 3DMark. Le coupable était le moteur Bullet Physics utilisé par 3DMark, qui n'utilisait pas le pipeline de 6 largeurs sur l'iPhone 5s, mais favorisait plutôt plus de cœurs et des vitesses d'horloge plus élevées. Comme l'A7 avait le même nombre de cœurs et la même vitesse d'horloge que l'A6, leurs performances étaient très similaires. Je prédis son cas similaire ici avec le CPU A12, ayant 6 cœurs contre les 8 cœurs des autres CPU.

main-qimg-703f409448765190daab629fd4b53fcd

Sautant dans certains benchmarks graphiques, le A12 a des performances plutôt "médiocres" dans les tests 3DMark. Il est difficile de prédire où le Kirin 980 atterrirait dans ce test.

main-qimg-44c671117d878de1716a5098d0933c0b

En passant à une suite de benchmarks différente, GFXBench, nous remarquons d'énormes gains de performance sur l'A12 par rapport aux autres SoC. Il faut également noter l'énorme écart de performance entre les performances maximales et les performances soutenues. Au pic de performance, le GPU consomme 6,1 W, soit environ 1 à 2 W de plus que la concurrence (ce qui n'est généralement pas une bonne chose. Plus de puissance signifie plus de chaleur et une décharge plus rapide de la batterie). Cependant, en cas de performances soutenues, le GPU s'étrangle à seulement 3,9 W, ce qui est dans la fourchette basse des normes actuelles, tout en continuant à fournir des fréquences d'images qui correspondent aux performances maximales de l'A11. Pendant ce temps, les puces de Huawei sont assises près du bas de la liste.

Je suis assez sceptique à l'égard des puces de Huawei lorsqu'il s'agit du GPU, et la raison en est qu'ils ont récemment été pris en train de tricher sur des applications de benchmarking telles que GFXBench et 3DMark. Voici deux exécutions du benchmark T-Rex de GFXBench, avec la détection de benchmark activée et désactivée :

main-qimg-dda11093d8a72c39a13f8b666209bb4a

Lorsqu'un benchmark est détecté, le GPU est porté à une puissance absurde de 8,57W, atteignant le double de FPS qu'auparavant, ce qui signifie que dans les jeux réels, vous ne verrez jamais ce niveau de performance. C'est pourquoi il m'est difficile de prédire les performances du GPU du Kirin 980. Tout ce que je peux dire, c'est qu'ils affirment que son accélération est de 46 % par rapport à l'année dernière, et qu'il est 178 % plus efficace.

C'est le bon moment pour moi d'expliquer pourquoi l'A12 est tellement plus performant que le Kirin 980, alors que les deux ont à peu près le même nombre de transistors. Tout se résume à la façon dont la logique est disposée dans le silicium, ainsi qu'à la façon dont les transistors sont utilisés. Prenons par exemple le Snapdragon 845 et l'Exynos 9810. Tous deux ont été fabriqués selon un processus de fabrication de 10 nm, de sorte que la densité de transistors est à peu près équivalente. En ce qui concerne les performances graphiques, l'Adreno 630 du S845 est un double cœur qui n'occupe que 10 mm² de silicium sur la matrice, mais il surpasse le GPU Mali G72 à 18 cœurs de l'Exynos, qui occupe 20 mm² sur la matrice. L'Adreno 630 a une bien meilleure utilisation des transistors, et a fini par obtenir de meilleures performances que le Mali G72 à 18 cœurs avec beaucoup plus de transistors.

Voici d'autres benchmarks que vous pouvez interpréter par vous-même :

main-qimg-9e1c6615cfd29aa9cd32ce43053a464d main-qimg-a4bc68a1225149888eefc84c6c65d771

Traitement des réseaux neuronaux - test des processeurs IA.

Huawei était assez connu pour être la première entreprise à apporter un cœur d'apprentissage profond dédié dans leurs processeurs. Ils n'étaient certainement pas'la première entreprise à utiliser l'apprentissage automatique et la reconnaissance des objets sur les appareils - cela a été inauguré par Apple en 2016 lorsqu'ils ont publié iOS 10, bien qu'ils n'aient pas de matériel dédié pour exécuter les réseaux neuronaux.

L'annonce du Kirin 970 était similaire à cette année lorsque Huawei a annoncé le Kirin 980 - ils ont été les premiers à annoncer un processeur mobile avec un cœur d'apprentissage profond, mais le silicium n'est pas arrivé sur le marché avant que l'A11 soit sorti sur l'iPhone 8 plus. Certaines personnes ont naturellement dit que le A11 Bionic était le premier SoC mobile à inclure du matériel de traitement neuronal dédié pour cette raison même, mais je ne suis pas d'accord. L'A11 comprenait un processeur d'apprentissage profond à double cœur baptisé Neural Engine, bien que le silicium de première génération ait été conçu pour des tâches très spécialisées telles que l'éclairage des portraits, FaceID, ainsi que la reconnaissance faciale. Le Neural Engine n'étant pas accessible aux développeurs, tout travail d'inférence tiers devait être effectué sur le GPU. Ainsi, le Kirin 970 était techniquement le premier à être commercialisé avec un cœur d'apprentissage profond dédié auquel les développeurs peuvent accéder.

La différence de performance était assez claire ; avec le matériel dédié, le Kirin 970 était capable d'inférer des images jusqu'à 2000 par minute, là où l'A11 utilisant son GPU n'a pu atteindre que 1200 via le même réseau neuronal (je ne suis pas trop sûr de celui qu'ils ont utilisé). Cette victoire a été de courte durée, car plus tard, le Snapdragon 845 avec son combo DSP et GPU a atteint 2200 images par minute. **REMARQUE : le nombre d'images par minute dépend du benchmark. Chaque réseau neuronal a un nombre différent de couches, ce qui se traduit par des temps et des mesures différents. Les métriques présentées ci-dessus ont été étalonnées à l'aide du même réseau neuronal.

Avance rapide jusqu'à aujourd'hui, où Huawei a lancé le Mate 20 pro avec le Kirin 980 avec un cœur d'apprentissage profond supplémentaire, doublant les performances de l'IA de la génération précédente. Cette année, Apple a fait un énorme bond en avant dans le traitement de l'IA, en intégrant l'A12 avec 8 cœurs d'apprentissage profond conçus sur mesure (ceux de l'année dernière n'étaient en fait pas conçus sur mesure - ils étaient sous licence d'une société appelée CEVA). Les performances sont ainsi multipliées par 8 par rapport au moteur neuronal de l'année dernière, et par 9 par rapport au GPU. Plus important encore, ce Neural Engine de nouvelle génération était ouvert aux développeurs et au framework CoreML d'Apple.

Il n'y a pas de benchmarks adaptés aux consommateurs sur l'App store ou Google Play, donc les benchmarks utilisés étaient les standards de l'industrie Inception V3 et ResNet34. Voici les résultats.

main-qimg-d4b2e17dbf898d6f1ebdfd368947f9c5 main-qimg-0c1369996cd3af897fe01aceb5297726

Encore une fois, personne n'a vraiment mis la main sur le Kirin 980 pour le benchmarking, mais il y avait une diapositive sur la Keynote du Kirin 980 qui détaillait les résultats du benchmarking de Inception V3 et ResNet34:

main-qimg-73d64ba286fbd82cd060537c36303bac

Je m'excuse pour la résolution de merde - c'était une capture d'écran recadrée sur une vidéo 720p. Heureusement, vous pouvez voir les résultats. Le Kirin 980 a obtenu 117FPS et 61FPS sur ResNet34 et Inception V3, respectivement. L'A12 a obtenu 147FPS et 84FPS respectivement. Par conséquent, la puissance d'apprentissage profond de l'A12 est de 25 % à 38 % supérieure à celle du Kirin 980.

Conclusions

Selon les données empiriques présentées ci-dessus, l'A12 Bionic est effectivement beaucoup plus rapide que le Kirin 980 en termes de CPU, de graphiques et, plus surprenant encore, d'inférence de réseau neuronal. Il ne s'agit que d'examiner les performances matérielles des puces ; le logiciel peut avoir un impact énorme sur l'expérience de l'utilisateur final, et un logiciel mal écrit (iOS 11) peut vraiment embourber même le plus puissant des chipsets.

Il reste encore beaucoup à tester - le FAI, la Secure Enclave et les contrôleurs de stockage. Mais cela devra attendre, car je n'ai la possibilité de recueillir que des données de seconde main. Cela dit, j'espère que vous avez appris quelque chose d'intéressant en lisant cette réponse laborieusement longue. Il est 2h04 du matin ici à Edmonton, je vais dormir. Paix.

Toutes les images sont ici en courtoisie de AnandTech. La dernière capture d'écran provient de la Keynote de Huawei sur le Kirin 980.