Les bénéfices du M1 Max dans mon quotidien de développeur

Florent Morin |

Quand Apple a présenté sa puce M1, le bond de performances vis-à-vis des processeurs Intel était assez impressionnant, et ce à un tarif raisonnable. En cette fin 2021, c’est la gamme professionnelle qui a été révélée. Vu le tarif des nouveaux MacBook Pro, il est légitime de s’interroger sur le gain réellement obtenu. Je vous propose un premier retour d’expérience en tant que développeur iOS avec quelques mesures opérées dans la vie de tous les jours.

Les configurations testées sont les suivantes :

  • MacBook Pro 15 pouces 2018, Intel Core i9 2,9 GHz, 32 Go de mémoire
  • Mac mini 2020, M1, 16 Go de mémoire
  • MacBook Pro 16 pouces 2021, M1 Max, 64 Go de mémoire

Les tests ont été effectués sur macOS 12.1 avec Xcode 13.2. Les mesures ont été prises avec et sans le nouveau système de compilation Xcode 13.2 activé via la commande defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1.

Résultats via XcodeBenchmark

Le premier test a été réalisé via le projet XcodeBenchmark qui permet de mesurer les performances de Xcode au travers d’un projet très hétérogène. Dans la configuration non optimisée, les performances du i9 au M1 sont quasiment multipliées par 1,9. Et du M1 au M1 Max, on est aux alentours de 35 %. En configuration optimisée, le passage du i9 au M1 permet de multiplier les performances par 2. Et les performances du M1 au M1 Max sont multipliées par 3.

J’ai testé le procédé sur plusieurs projets personnels ou de clients : le gain n’est pas toujours aussi significatif au niveau du nouveau système de compilation. Par contre, le bénéfice en termes de performances entre les différentes puces est toujours bien marqué.

Même si la compilation est une action récurrente qui est effectuée des dizaines de fois par jour par les développeurs, les tests dans les simulateurs sont aussi une source de frustration, en particulier au moment du lancement.

Délai de lancement du simulateur iOS

J’ai donc pris un projet dont le lancement est fastidieux et j’ai mesuré le temps entre le clic pour déclencher le lancement de l’app et l’affichage du premier écran, le tout en partant d’un simulateur vierge de toute installation. Le bénéfice entre i9 et M1 est de 20 % environ. Et, si on passe du M1 au M1 Max, le bénéfice est de 35 %.

Enfin, j’ai également effectué quelques tests assez basiques d’apprentissage automatique avec Core ML. Sans entrer dans des détails qui nécessiteraient un article entier, les performances sont remarquables sur M1 Max mais absolument identiques à celles du M1 dans mon cas. En gros, j’en suis à 10 000 traitements par minute, soit pratiquement 2 fois plus qu’avec un Mac Intel et sans entendre le ventilateur souffler.

Au bout du compte, le M1 Max est pleinement satisfaisant, bien que sous-exploité aujourd’hui. On sent qu’il a encore beaucoup à donner. Le nouveau système de compilation de Xcode 13.2 illustre parfaitement le potentiel de la machine. Une simple mise à jour logicielle fait s’envoler les performances. J’ai aussi effectué plusieurs tests avec Swift Concurrency : on est encore loin de la maturité de Grand Central Dispatch en termes d’exécution de tâches concurrentes, bien que la technologie soit extrêmement prometteuse. C’est encore un levier sur lequel Apple pourra s’appuyer à l’avenir.

Ceci étant, les puces professionnelles M1 Pro et M1 Max réussissent déjà à se distinguer des puces M1 grand public. En tant que développeur, je vois nettement la différence au quotidien. Là où c’était rapide, c’est devenu très rapide. Et ce n’est que le début, vivement la WWDC22 !

avatar Dimemas | 

On se pose les mêmes questions on dirait ;)

avatar pboudoin | 

Bien évidemment que le GPU aura un impact. Ce qu'il faut comprendre avec la mémoire unifiée c'est que la RAM et la RAM vidéo (celle de la carte graphique) sont maintenant fusionnées. C'est à dire qu'avant lorsqu'on avait un mbp avec 16Go de RAM et une carte graphique avec 4Go au final on peut voir ca un peu comme un équivalent de 20Go de mémoire unifiée.
Pour rappels la RAM vidéo est grandement utilisé par les cartes graphiques pour stocker les textures de la 3D. Sur des textures très détaillées et des environnements 3D assez vastes, cette RAM est vite consommée.
De plus un M1 Pro et M1 Max disposent de coeurs graphiques plus nombreux que les M1. Les frames de rendu seront calculées plus rapidement et donc le logiciel sera plus fluide.

avatar raoolito | 

Je vais être volontairement mauvaise langue mais voilà si on partait du principe que Xcode existait sur Windows et était aussi bien optimisé que sur Mac
À ce moment-là la vraie question serait à prix égal quelles seraient les performances optimales que l'on pourrait obtenir avec un PC par rapport au temps de compilation et c'est seulement là que l'on aurait une idée réelle de l'avantage fourni par les puces m1 ( normal, pro et max)
c'est pour cela que les vraies performances de ses nouvelles puces ne peuvent à mon avis être jugées que sur des logiciels qui sont Multi plate-formes mais cela pose la question évidente de l'optimisation de ces mêmes logiciels par rapport aux plates-formes

avatar joneskind | 

@raoolito

Il n'y a pas que Xcode dans la vie.

Il y a des compileurs en ligne de commande qui sont cross-plateforme Linux/Windows/macOS. Tu as Unity3D et Unreal Engine qui existent sur Mac et PC. Tu as toute la foultitude de frameworks JavaScript, Python.

Les moyens de juger de la qualité exceptionnelle des puces Apple Silicon ne manquent pas. En tout cas pour la partie CPU.

Pour la partie GPU c'est (beaucoup) plus compliqué. La plupart des outils de 3D sont développés autour de CUDA et n'ont donc très logiquement pas du tout été portés sur Mac depuis qu'Apple a quitté Nvidia.

Il y a un truc que je suis de très près, c'est le travail d'Apple avec Blender. Le travail d'optimisation de Blender pour le M1 est déjà bien entamé, mais il reste du boulot.

Le moteur temps réel EEVEE de Blender utilise admirablement le GPU des M1, mais le moteur de rendu n'utilise encore que le CPU, donc c'est très lent, même par rapport à un petit GPU Nvidia d'entrée de gamme. Il va falloir attendre quelques mois encore pour voir ce que le M1+Metal a dans le ventre, mais je pense que le benchmark Blender Open Data va devenir une référence pour comparer Apple Silicon / Nvidia via Metal / CUDA

avatar raoolito | 

@joneskind

ah merci '

avatar Dimemas | 

A joneskind : c’est exactement ce que je voulais lire !
Je suis d’accord pour la partie gpu qui ne veut pas tellement dire grand chose quand on voit les résultats (et ne me servent pas vraiment)

Et d’ailleurs d’accord avec toi sur blender, cela pourrait d’ailleurs me faire rester sur mon M1

avatar M-Rick | 

@joneskind @raoolito

C'est clair. J'ai eu l'occasion de pouvoir tester un Mac mini M1 16 Gb. J'ai testé QGIS qui est mon logiciel de travail. J'ai pris mon projet le plus lourd. Dedans il y a un calcul à réaliser qui nécessite environ 30 mn normalement. Sur le Mac mini M1, cette opération a pris moins de 1 mn ! Et en plus, QGIS est en mode Rosetta et probablement pas le logiciel le plus optimisé qui soit.

avatar fte | 

@M-Rick

"30 mn normalement"

Que veut dire « normalement » ?

Non parce que lorsque j’étais patron, si un de mes devs s’était pointé avec une démo d’une accélération par 30 d’un job permettant de gagner 30 minutes chaque jour par dev, c’était commande immédiate d’une machine pour chacun. Il m’en fallait bien moins pour renouveler leur équipement en fait…

avatar Un Type Vrai | 

Normalement, j'ai Qemu sur un iBook G3 700 qui host un Windows Vista en x86...

Ha c'est pas normal ?

avatar fte | 

Les comparaisons sont difficiles ne pouvant véritablement égaliser les choses.

Disons toutefois que la comparaison est ici faite entre une machine de 2021 dotée du meilleur de ce qu’Apple livré à ce jour, vs un processeur Intel vieux de 3 générations, d’une génération particulièrement loupée. Face à Alder Lake / Zen, le résultat serait un peu différent sans doute.

Anyhow, basiquement on observe une belle progression entre du matériel vieux de 3 ans et du matériel neuf. Heureusement dirais-je. Même Intel n’a pas osé en passant aux 9k, 10k puis 11k, et pourtant qu’elles sont mauvaises ces generations !

Et au final, la question est la même que depuis 20 ans, et la réponse est la même également : est-il profitable de remplacer une machine ancienne par une machine nouvelle ? Et la réponse est : oui si les gains sont suffisants pour amortir la machine sur la durée d’exploitation envisagée, et c’est pratiquement invariablement le cas à chaque génération de machine. Sauf justement pendant les errances d’Intel entre les 7k et 12k, où la réponse positive était à chercher chez AMD.

Shrug.

avatar Dimemas | 

Tu parle de la gen 12 mais même celle-là est a des années lumières de ce que Apple silicon et amd propose !
Oui il y a de la puissance mais à quel prix ?
Pat fait le fanfaron mais il oublie un détail crucial sur un laptop, c’est la consommation qui est gigantesque et donc l’autonomie est nulle nulle nulle !

Ceux de mauvaise foi nous répondront qu’on s’en fout de l’autonomie mais c’est faux et surtout cela montre que les processeurs Apple silicon sont complètement dingues et extrêmement bien conçus contrairement à ceux d’intel qui a puissance égale consomment 2 fois plus et ce sans gpu vraiment capable de faire face au GPU du couple M1 pro/max

avatar fte | 

@Dimemas

"qu’on s’en fout de l’autonomie"

C’est qui "on" ?

En ce qui me concerne, je m’en fous. Mes machines ont toutes une autonomie de fou, des semaines, des mois même. Et elles n’ont pas de batterie. Juste un câble d’alimentation.

L’autonomie n’est d’aucune utilité pour mon job, ni n’améliore ma productivité.

Sinon, hormis redire ce que je disais à savoir que ces générations d’Intel sont ratées, tu voulais ajouter quoi ?

Qu’Alder Lake est loupé aussi ? Non, il n’est pas. Qu’il suce du jus ? Bin oui, il suce. Mais cf. les paragraphes ci-avant. Que les M1 Pro enfoncent les 9k ? Bin ouai. Ils enfoncent aussi les A12X de l’époque des 9k d’ailleurs. Surprise.

Duh.

avatar Dimemas | 

Ah ouais tu as vachement lu mon message !
En général lorsque quelqu’un demande « c’est qui on », c’est qu’on touche le fond dans la discussion…
Paix sur toi ✌️

avatar fte | 

@Dimemas

"En général lorsque quelqu’un demande « c’est qui on », c’est qu’on touche le fond dans la discussion…"

C’est absolument vrai. C’est le signe d’une généralisation abusive bien souvent. Pas la meilleure façon de converser, clairement.

Mais faute avouée est à demi-pardonnée il parait. Tu en es conscient au moins on dirait.

Heureux de t’avoir aidé.

Bonjour chez toi.

avatar joneskind | 

@fte

Les comparaisons sont difficiles ne pouvant véritablement égaliser les choses

https://www.youtube.com/c/AlexanderZiskind

Tu auras une comparaison du meilleur des derniers MacBook Pro Intel VS un MBA M1, un MBP 14 8 cores et et un MBP 16 10 cores, dans un environnement de développement varié. Des dizaines de vidéos qui comparent autonomie, bruit, chauffe, vitesse etc... On ne peut pas faire beaucoup mieux que ça.

avatar marc_os | 

@ fte

> Anyhow

😄 😄 😄 MDR

> Les comparaisons sont difficiles ne pouvant véritablement égaliser les choses.

Hein ? « égaliser les choses »... 😳

avatar Martin40 | 

Rien avoir avec l'article mais..
Je sais que vous êtes un site gratuit mais depuis 1 mois, j'ai l'impression que 90% des articles sont des pubs..

Je n'arrive vraiment pas à vous lire, entre Black Friday, Promo, %, et les "sponso cachées", ça gâche vraiment l'experience du site.

avatar swiftrabbit | 

J’aimerais bien savoir le temps de compilation pour device va simulator comparé à Intel. Gains de performance encore plus significatifs sur architecture arm similaire?

avatar fte | 

Il y a une chose qui me surprend beaucoup…

Il y a eu quelques articles de ce thème ces dernières semaines : renouvellement de machine pour devs ou IT ou "informaticiens".

C’est une bonne pratique, commune dans les boites sérieuses qui savent comment fonctionnent ces métiers, de renouveler fréquemment ces équipements. Je n’ai que très exceptionnellement gardé mes machines ou les machines de mes devs inchangées plus d’une année. Une machine pas à jour devient très rapidement plus coûteuse qu’un renouvellement…

Or j’ai l’impression que c’est une découverte que l’évolution des matériels apporte des gains de temps, de confort, d’autonomie, de connectivité… les régressions chez Apple ou les stagnations chez Intel vous ont à ce point aveuglés que vous redécouvrez que les technologies informatiques progressent somme toute encore très rapidement ?

Je n’ai jamais amorti mes ordinateurs en suivant les règles fiscales usuelles, j’avais un compte dédié aux "technologies de production" amorties sur trois semestres. Les machines anciennes avaient un usage de test avec d’anciens systèmes ou de consultation de docs, tâches secondaires et plus de production, donc de valeur quasi-nulle pour le business.

avatar Un Type Vrai | 

ça dépend quand même de ce qu'on fait sur les ordinateurs.

Je suis assez surpris (enfin, je ne suis plus surpris depuis un moment...) que dans de grandes boites on te prête un ordi recyclé, vieux, lent, mal équipé mais obligatoire pour aller sur certains "outils internes" et en même temps on t'y interdit d'y installer des applications, les droits d'admins etc ce qui oblige tout le monde à utiliser son PC perso à travers le VPN.

Mais il y a pire, des boites du CAC40 qui t'obligent à bosser avec leur machine obsolète sans RAM etc.
ça interdit directement l'innovation, parce que avant de tester des trucs (même très populaires, comme k8s par exemple) il faut déjà réussir à convaincre des types qu'il faut ajouter un "logiciel" dans le catalogue dispo et autoriser ton n+1 à t'autoriser à installer un truc (donc faire un profil, un groupe etc).

Evidement, dans d'autres entreprises, même grande, quand tu arrives on te demande si tu as besoin d'un ordi ou si tu utilise ton perso et si tu veux un ordi de prêt, tu as la choix entre Mac ou PC (souvent récent, formaté et où on est admin)

Pages

CONNEXION UTILISATEUR