L'Apple M4 est plus qu'une mise à jour mineure, grâce aux instructions SME et SVE

Pierre Dandumont |

Il y a moins d'un mois, Apple lançait ses premiers appareils équipés d'une puce M4, les nouveaux iPad Pro. Si les premiers retours montraient que la nouvelle puce en avait sous le coude, certains points étaient un peu flous, notamment les réelles innovations du système sur puce. Mais depuis, une nouvelle information intéressante a été découverte : l’ajout des instructions SVE et SME dans la puce. Cet ajout prouve que la mise à jour est finalement plus significative qu’escomptée, en plus de modifications architecturales.

L

L'Apple M4 débarque dans les iPad Pro : une nouvelle puce qui souffle le chaud et le froid

Avant de commencer, un petit rappel est peut-être nécessaire : les processeurs d'Apple et plus largement tous les composants qui forment les systèmes sur puce restent assez obscurs et sont peu documentés publiquement. Certaines informations peuvent venir de diverses publications techniques de la firme, mais l'ensemble est fermé et beaucoup de détails ne peuvent être obtenus que par rétro-ingénierie. Qui plus est, la fiabilité des données fournies par Apple n’est pas toujours bonne : la puce M2 de l'iPad Air a par exemple un cœur GPU désactivé et les pages de spécifications ne l'ont indiqué qu'après plusieurs jours.

L'Apple M4 selon Apple.

Un jeu d'instructions, ce n'est pas amusant

Avant de parler des instructions SME (et de l'AMX d'Apple), la nouveauté la plus marquante, il faut expliquer le principe d’un jeu d'instructions. Pour employer une analogie assez basique, c’est l’équivalent du langage compris par le processeur. Il s'agit de l'ensemble des instructions ou commandes qu'il peut exécuter et il faut savoir qu’il ne peut gérer qu’un seul jeu d’instructions. Nous pouvons ainsi le comparer à une personne qui ne comprendrait que le français.

Il existe de nombreux jeux d'instructions et les plus connus actuellement sont le x86 d'Intel, l'ARM de chez Arm ou encore le RISC-V. Si nous retournons dans le passé, nous pourrions aussi évoquer ceux qui animaient les 68000 (Motorola) ou les PowerPC. Chaque jeu d’instructions est un langage précis comme peut l’être l’anglais ou le français et ils sont tous fondamentalement incompatibles… même si les concepts sous-jacents sont proches.

La révolution RISC-V (1/4) : l

La révolution RISC-V (1/4) : l'Agence tous RISC

De la même façon qu'il existe des mots pour désigner des choses identiques en français et en anglais, vous trouverez des instructions pour effectuer des additions dans tous les types de CPU, mais la syntaxe (l'ordre des commandes) peut varier. Pour continuer l'analogie, les processeurs ne sont pas bilingues : un CPU compatible ARM ne comprend que les instructions ARMv8 et pas les instructions x861 par exemple. Si vous voulez exécuter du code x86 sur votre processeur ARM, vous aurez besoin d’un traducteur, comme Rosetta d’Apple ou de manière générale un émulateur, un programme écrit avec des instructions ARM qui va traduire le code x86 pour le transformer en code ARM.

Tags
avatar the_optimist | 

Merci pour cet article,
Il en faudrait une sur le NPU, ou Apple semble avoir amplifié les chiffres sur les M4 qui sont malgré tout plus faible que sur le snap dragon est les futurs Intel et amd

avatar iftwst | 

Merci pierre ! Genre de super article que l’on ne peut lire que sur MacG !

avatar melaure | 

@iftwst

Merci aussi Pierre, très interessant et abordable par la plupart !

C’est sur qu’ils sont économes mais parfois on aimerait qu’ils pompent quelques watts de plus avec un GPU qui dépote.

avatar Nesus | 

Comme quoi cher Pierre, je le disais lors de ton article expliquant que le simple dump via la fréquence mènerait Apple dans une impasse ; il ne faut pas présager de l’avenir.
Plus le temps passe et plus je doute qu’Apple ai de franche rupture avec le Mx. Pour plusieurs raisons, cohérence de gamme (et donc choix tarifaire pour les clients), logique commerciale d’écologie, compatibilité des systèmes (qui doivent sortir chaque années), etc…
Par petite touche chaque année, c’est plus simple, moins cher en développement et ça suffit à maintenir la concurrence à bonne distance. Alors oui, c’est moins impressionnant, mais c’est efficace. En plus ça permet de s’auto comparer (et donc vraiment de maintenir la concurrence loin).
Ou alors ça ne sera pas le cas et les critiques sont fondées. L’avenir nous le dira.

avatar Pierre Dandumont | 

Le problème, c'est que ça mène toujours dans une impasse, en fait. Modifier par petite touche n'amène jamais de gros gains, et comme on part d'une solution qui a été pensée pour des cas finalement assez précis, les marges d'améliorations sont faibles.

De façon régulière, il est nécessaire de repartir d'une page blanche, et la question ici est simple : est-ce qu'Apple peut le faire avec succès ? C'est une solution a double tranchant : parfois ça marche (Zen chez AMD par exemple) et parfois non (Bulldozer chez AMD).

avatar Nesus | 

@Pierre Dandumont

C’est une certitude, à un moment il faudra une rupture pour créer un nouvelle grosse évolution. Nous verrons.

avatar yod75 | 

@Pierre Dandumont

Le M1 est l'exemple type de la rupture couronnée de succès.
A côté de la réussite technique se pose également l'aspect économique tant pour l'entreprise que pour les clients : la rupture nécessite des investissements conséquents qui ne peuvent être amortis que sur la durée, ou en augmentant les prix. Voir si c'est acceptable par le marché.
Par ailleurs chaque rupture se traduit par une obsolescence plus rapide des appareils déjà vendus. A notre époque de plus en plus nombreux sont ceux qui s'y opposent. Innovation et obsolescence vont de pair, la recherche d'un équilibre sera de plus en plus difficile.

Merci pour l'article ; j'espère que vous continuerez à aller dans le détail et à considérer que le lecteur à plus de 1 neurone et est capable de lire plus de 2 paragraphes de 4 lignes sans zapper ;)

avatar Nesus | 

@yod75

C’est d’autant plus vrai que la fracture dans le Mac est encore bien présente et le sera encore temps qu’Apple n’aura pas abandonné les Intel. Je les vois mal faire une rupture dans ses conditionS.

avatar Smy | 

Merci pour cet article, un plaisir de lecture du dimanche matin :)

avatar Mac1978 | 

Vraiment intéressant. Merci pour cet article qui égaie un dimanche matin maussade.

Une ou deux petites questions d’une non initiée.

Les compilateurs doivent-ils intégrer des modifications pour tenir compte des nouveaux jeux d’instruction ?

Et les softs qui sont directement concernés par ces évolutions (en/dé-codage, IA, traitement de l’image…) doivent-ils simplement être recompilés ou faut-il réécrire du code ?

avatar Phiphi | 

@Mac1978

"Les compilateurs doivent-ils intégrer des modifications pour tenir compte des nouveaux jeux d’instruction ?"

Forcément. Un compilateur c’est un peu comme un traducteur qui ne peut traiter que des instructions connues pour en faire l’assembleur prédéterminé correspondant. À la rigueur le dictionnaire dont il dispose peut être dans une ressource séparée et dans certains cas on pourra ne modifier que cette ressource.

avatar Pierre Dandumont | 

Pour les compilateurs : Oui, forcément. Ils doivent intégrer les instructions en question.

Pour la question du code, oui et non. Oui, dans le sens ou le compilateur peut employer les instructions, donc accélérer certains points. Mais non, dans le sens ou les optimisations des compilateurs sont basiques : ça nécessite quand même généralement de faire de l'assembleur ou au minimum comprendre comment le compilateur va effectuer les modifications.

avatar 421 | 

Merci pour cet effort pédagogique sur les jeux d’instructions et le fonctionnement de ces M4

avatar raoolito | 

excellent et passionnant article, malgré un sujet oh combien ardu !! 😰

merci Pierre !!

avatar andmag | 

Merci pour la vulgarisation, c’est intéressant et instructif.

avatar Meyot | 

Merci pour ce genre d'article, un vrai plus du club 😎

avatar Faabb | 

Merci Pierre de nous rendre cet article accessible !
Il me semble que les Mx max et ultra ont 2 et même 4 NPU non?, mais que seul un est utilisé.
Est-il possible d’espérer que les m4 changeront cela et que tous les NPUs seront utilisables ?

avatar Pierre Dandumont | 
Les puces Ultra actuelles ont deux NPU, parce qu'il s'agit techniquement de deux puces reliées. Les rumeurs indiquent qu'on part peut-être vers une autre voie dans les versions suivantes.
avatar Faabb | 

@Pierre Dandumont

Ahhh, un NPU central, sur une carte fille par exemple ?
Vivement qu’on en sache davantage sur les m4 desktop !

avatar Berechit | 

Bravo pour le « Toute ressemblance avec une numérotation plus proche de nous serait une coïncidence. » ! Comme quoi on peut être sérieux et glisser des gags !

avatar hclic76 | 

Un passage du code en 128 bits est-il déjà envisagé ? Quel en serait son bénéfice ?

avatar Faabb | 

@hclic76

Il me semble que le principal intérêt du 64bits était la possibilité d’adresser des registres mémoires beaucoup beaucoup plus larges (16 exaoctets) qu’en 32 bits (4gigaoctets).
Par ailleurs, les processeurs 64bits sont capables de réaliser des calculs sur des entiers en 64 bits en un cycle d’horloge, là où un processeur 32 bits aura besoin de deux cycles (2 morceaux de 32 bits).
Les logiciels de simulation physique par exemple font leurs calculs en flottant double précision. (64 bits).
Coder des petits nombres sur une précision trop grande ou dans un mot binaire trop grand (128bits) peut se révéler pénalisant en termes de performances.

avatar Pierre Dandumont | 

@hclic76 : L'opposition simplifiée 8 bits vs. 16/32/64 bits n'a plus lieu d'être.

On travaillait sur des données 64 bits avant l'arrivée des jeux d'instructions 64 bits. En général, quand on parle de 64 bits, c'est essentiellement parce qu'on peut adresser sur 64 bits et donc gérer beaucoup (beaucoup) de mémoire. On n'a pas d'intérêt pour le moment à aller plus loin, on reste loin de la limite en pratique.

Et techniquement, les puces actuelles peuvent travailler sur des données de 128, 256 ou même 512 bits.

avatar GaspardNic92 | 

Ça me rappelle ma première émotion de puissance en assembleur : LDIR sur …Z80

avatar NathanRDN | 

Merci pour ces articles toujours aussi intéressant et captivant !

avatar Ingmar97432 | 

J’en rajoute une couche: merci bcp Pierre

avatar horatius | 

Merci Pierre d’écrire des articles aussi clairs sur des sujets auxquels normalement je ne comprends rien. Une vraie plus du club.

avatar nickyrabbit | 

Dommage que le jeu d’instructions 6502 des Apple I et Apple ][ ne soit pas cité 🤣

avatar Moebius13 | 

Ce qui devrait faire plaisir à ceux qui ont acheté un MacBook Air ou Pro équipé d’un Soc M3 récemment…

Ça me rappel l’Ipad 3 et l’Ipad 4 sortis la même année (2012), une belle quenelle pour les acheteurs de l’Ipad 3 qui se retrouvait avec un IPad déjà bien limité à sa sortie.

Bon là les possesseurs d’un MacBook M3 ne seront pas « limités » mais ça la fout mal quand même de sortir si rapidement une version M4, surtout si c’est plus qu’une mise à jour mineure et qu’elle semble avoir pour objectif de soutenir l’IA made in Apple.

avatar Faabb | 

@Moebius13

Les processeurs desktop et ceux des portables n’arriveront qu‘en fin d’année. Visiblement Apple a bousculé sa feuille de route.

avatar Kikila | 

La plupart des acheteurs de matériel Apple ne regardent même pas quel type de processeur équipe leur ordinateur/tablette/smartphone.
Il suffit de se souvenir de l'argumentaire des vendeurs en Apple Store au moment de la bascule vers Apple Silicon. J'en ai entendu plusieurs, et à chaque fois, le client écoutait d'une oreille distraite, pour finalement demander s'il pourraient utiliser les logiciels qu'ils utilisaient déjà.
Les MacBook M3 ne deviennent pas de mauvaises machines parce qu'un nouveau processeur apparaît, les Macs Intel fonctionnent toujours très bien.

avatar Captain Bumper | 

@Moebius13 : d’ici à ce que les compilateurs et les logiciels exploitent ces instructions et que ça ait une influence réelle sur les performances, de l’eau aura bien coulé sous les pontd.

avatar F7rt | 

Merci Pierre. Article très intéressant avec de chouettes clins d’œil !

avatar Flagada | 

Super article! Il manque juste une conclusion qui résume le propos pour le lecteur pressé… 😉👍

avatar totoguile | 

CONNEXION UTILISATEUR