L’Apple A12 est optimisé spécifiquement pour JavaScript [MàJ]

Nicolas Furno |

Le nouveau processeur intégré à l’Apple A12 des iPhone XS et XR représente une évolution plus significative que prévue pour de multiples raisons. Nous avons évoqué sa meilleure gestion de la mémoire, mais ce n’est pas le seul changement. La puce d’Apple est la première à utiliser une nouvelle spécification ARM, notée ARMv8.3. Comme le note Greg Parker sur Twitter, celle-ci ajoute des instructions spécifiques pour JavaScript.

Grâce à ces instructions, les processeurs ARM sont nettement plus rapides pour traiter du code en JavaScript, en particulier parce qu’ils sont compatibles avec le format de stockage des nombres du langage. Jusque-là, ils devaient convertir chaque nombre avant de le traiter, ce qui n’a l’air de rien, mais ce qui représentait un goulot d’étranglement dans l’exécution du code.

En s’adaptant ainsi au langage le plus populaire du moment, sur le web et aussi dans les apps avec des solutions comme React Native, les processeurs ARM peuvent améliorer leurs performances dans bon nombre de cas. Le changement doit d’ailleurs expliquer pourquoi un iPhone XS peut obtenir un meilleur score qu’un iMac Pro à un benchmark JavaScript. On imagine que le processeur Xeon utilisé par le tout-en-un n’est pas optimisé aussi spécifiquement pour ce langage, ce qui le handicape malgré sa puissance brute incomparable à celle de l’Apple A12.

[MàJ 12/10/2018 13h45] : un développeur d’Apple révèle que le moteur JavaScript de Safari ne prend pas encore compte cette nouveauté apportée par ARM. En clair, les progrès liés à la nouveauté ne sont pas encore en place dans les iPhone XS, et les bons résultats sur les benchmarks s’expliquent uniquement par la qualité du processeur.

Ce qui veut aussi dire que l’on peut s’attendre à des performances encore meilleures dans ce domaine prochainement. On imagine qu’iOS 12.1 sera la première version à en bénéficier.

avatar Pse | 

Je suis de plus en plus surpris par la quantité d’effort que met Apple dans la conception de ses propres puces Ax et des résultats qu’ils obtiennent.

Le ratio puissance / Watt est sidérant!

Vivement qu’ils les intègrent dans un portable, voire un iMac !

avatar Linker | 

@Pse

ça sera pas pour tout de suite :D

avatar tigre2010 | 

@Pse

Je me suis fait la même réflexion.
Vu la puissance par watt, ne peut on pas faire un proc avec 16 coeurs physique ou même 32, on aurait la même consommation qu’un proc intel mais avec une puissance énorme.
Il suffit juste d’améliorer l’optimisation des apps gourmandes en multi coeurs

avatar fte | 

@tigre2010

"on aurait la même consommation qu’un proc intel mais avec une puissance énorme."

Tu crois. Croire n’en fait pas une vérité.

"il suffit"

Quand ce sont les autres qui s’y collent, en effet, il suffit... que d’autres s’y collent. Le faire soi-même est une autre paire de manches.

avatar fte | 

@Pse

"Je suis de plus en plus surpris par la quantité d’effort que met Apple dans la conception de ses propres puces Ax et des résultats qu’ils obtiennent."

Les spécifications arm ne viennent pas d’Apple, mais... d’arm.

avatar iPop | 

@Pse

Je pense que c’est presque impossible. On partirait d’une ancienneté logicielle chaotique sur quelque chose de mesuré et organisée...pas sûr que ce soit envisageable moins de laisser tomber l’ancien.

avatar cecile_aelita | 

Encore un bel exemple que ce qui compte ce n’est pas ce qui va apparaître sur l’étiquette des rayons de la FNAC (46Go de Ram, processeur à 196 cœurs etc ...mais qui qui c’est qui a la plus grosse?), mais bien du quotidien des utilisateurs

avatar Ielvin | 

@romainB84

Ça me rappelle les pub vantant des ordi à 1000 go ! Écrit en gros , très gros. Et à côté en tout petit 2go de ram, Intel i3 et Windows starter.

Oh wait, j’ai revu un truc similaire l’autre jour.

avatar armandgz123 | 

@Ielvin

C’est toujours mieux qu’un MacBook Pro avec 128go à 1500€ en 2018...

avatar pfx | 

Et si Apple se lançait dans la conception de puce x86 sous licence Intel? Ils pourraient y intégrer directement du ARM (gain de place sur la CM + divers autres avantages) et ne seraient plus bloqués par l’évolution lente et aléatoire d’Intel.

avatar minipapy | 

Ça veut dire quoi de la conception de puce x86 dans laquelle on intégrerait du ARM ?

avatar Ramlec | 

@minipapy

J’aimerai bien savoir aussi.
Il est possible de coupler les deux architectures sur une seule puce ? ?

avatar minipapy | 

@Ramlec

En l’état de mes connaissances, ce n’est pas possible et ça sonne comme une aberration à mes oreilles.

On peut avoir un CPU x86 et un CPU ARM qui travaillent de concert, mais un CPU x86 qui fonctionne avec de l’ARM n’a aucun sens pour moi.

avatar Pyr0h | 

@minipapy

C’est une aberration

avatar fte | 

@Ramlec

"Il est possible de coupler les deux architectures sur une seule puce ? ?"

Oui. Pourquoi pas ?

avatar Ramlec | 

@fte

Simple question. Mes connaissances en puces sont assez limitées et je ne pensais pas possible de coupler les deux architectures sur une même puce ☺️

avatar fte | 

@Ramlec

"Simple question."

Il n’y a pas d’impossibilité. Une puce CPU contient déjà plein de trucs qui se ressemblent moins que deux coeurs ayant des jeux d’instructions différents : coeurs, mémoires, processeur graphique, etc. Je ne dis pas que c’est simple par contre hein. C’est un job pointu.

avatar fte | 

@minipapy

Coeurs x86 et coeurs ARM sur la même puce.

avatar minipapy | 

@fte

Dans ce cas ok, mais ce n’est pas de l’intégration de ARM dans x86 (qui ne me semble avoir aucun sens, mais les cours d’archi sont lointains !).

On se retrouve avec une puce hybride qui propose ET des unités de calcul x86 ET des unités de calcul ARM. Pas l’un qui se mêle à l’autre.

Au final, la puce n’est pas x86, elle contient un CPU x86 et un ARM.

C’est un peu comme ce qu’avait fait Nvidia avec Intel il y a quelques temps avec le CPU et le GPU sur la même puce. Mais ça ne revient qu’à miniaturiser le circuit pour le place sur un seul chip, non ?

J’émets des hypothèses sans être péremptoire, je ne suis pas un expert du domaine, j’ai juste eu des cours d’archi quand j’étais à l’école.

avatar fte | 

@minipapy

"On se retrouve avec une puce hybride qui propose ET des unités de calcul x86 ET des unités de calcul ARM. Pas l’un qui se mêle à l’autre."

Ah non, mélanger des jeux d’instructions dans un seul coeur, ça ça n’ira pas.

Pas que ce soit impossible, mais certainement challenging (modèles programmeur différent - registres en particulier), et je doute qu’il y ait un quelconque bénéfice à procéder ainsi. Mais je peux me tromper.

Je pensais bien à des coeurs séparés, partageant la même architecture caches - mémoire - IO.

avatar minipapy | 

@fte

Dans ce cas, on est totalement d’accord et cela correspond bien à la façon dont je m’étais imaginé les choses. ?

avatar ney | 

@pfx

Je crois pas que le x86 puisse être conçu sous licence, c’est un fonctionnement assez différemment par rapport à ARM

avatar IceWizard | 

@ney
"Je crois pas que le x86 puisse être conçu sous licence, c’est un fonctionnement assez différemment par rapport à ARM"

Cela fait prés de 30 ans qu'ADM commercialise des processeurs x86, concurrents de ceux d'Intel. Alors oui, c'est possible ..

avatar ney | 

@IceWizard

Sous licence Intel ? ?

avatar 421 | 

Encore un exemple de l’ancien slogan de Michelin : « sans maîtrise, la puissance n’est rien »

avatar backfromcharly | 

@421

C’est pas Michelin mais Pirelli ;-)

avatar blanca12 | 

Je suis de plus en plus surpris par la quantité d’effort que met Apple dans la conception de ses propres puces Ax et des résultats qu’ils obtiennent.

avatar Tachikoma | 

Si jamais DaringFireball a mis à jour l’article en précisant que le moteur de Safari sur iPhone n’utilise pas encore la nouvelle instruction; les résultats sont donc juste du à la puissance de l’A12...

avatar asseb | 

@Tachikoma

Ce n’est pas parce que safari n’utilise pas encore ces instructions que les benchs n’en profitent pas.

avatar Nicolas Furno | 

@Tachikoma

Bien vu, je vais préciser ici aussi.

avatar iVador | 

Impossible de mélanger x86 et ARM dans le même cpu.
Les échanges , les conversions de données causeraient un énorme goulot d’étranglement et des pertes de performances sensibles

avatar fte | 

@iVador

"Impossible de mélanger x86 et ARM dans le même cpu."

Pourquoi impossible ? D’ailleurs, dessous, tu expliques ce qui se passerait si on le faisait. C’edt possible donc ? Explication fausse mais pourquoi se donner cette peine si c’est impossible ?

"Les échanges , les conversions de données causeraient un énorme goulot d’étranglement et des pertes de performances sensibles"

Qui parle de programmes hybrides utilisant les deux architectures et échangeant des données sans arrêt ? Et d’ailleurs, arm est bi-endian. Pas de problème à ce niveau donc. Les nombres entiers sont normalisés complément à 2 depuis longtemps, ainsi que les flottants 32 et 64 bits. Le problème n’est pas non plus à ce niveau. Des coeurs supplémentaires peuvent causer des goulots en effet, mais c’est sans rapport avec l’architecture du coeur, c’est en rapport avec l’architecture mémoire. Qui peut / doit être adaptée. Donc pas vraiment de problème ici non plus, juste des choix à reviser.

Où donc, précisément ?

avatar Nihao | 

Vous vous rappelez de la techno de la société VIA? Si je me rappelle bien ils faisaient une sort d’emulation x86 sur le processeur ? Est ce qu’apple pourrait faire une puce dediee à l’emulation des instructions x86-64 sur Arm? Pas à la sauce logiciel bersion microsoft mais directement au niveau du materiel...
Le debat il y a quelques annees portaient sur les avantages des procs CISC (intel à l’epoque) contre les procs RISC (powerpc)...mais depuis intel à integrer beaucoup de notions RISC dans ses processeurs, alors oui comme fte je me demande aussi si ce ne serait pas faisable un processur hybride...

avatar fte | 

@Nihao

"alors oui comme fte je me demande aussi si ce ne serait pas faisable un processur hybride..."

Oh, je ne me demande pas. C’est possible. Et ça existe déjà, à divers niveaux. Pas x86+arm à ma connaissance, mais c’est faisable.

avatar Mdtdamien | 

Arm et x86 fonctionne déjà de paire dans l’iPhone. Car aujourd’hui les puces radio des iPhone sont de fabrication Intel et donc de structure x86 (je suppose)

Ils ne sont pas dans le même composant par compte. Choses qui sera peut être vrai un jour si Apple choisi de vouloir contrôler la partie communication, ce qui semble logique après le processeur et la carte graphique

avatar Bigdidou | 

Safari va vraiment être plus rapide ? ?

CONNEXION UTILISATEUR