Comment le M1 d’Apple va-t-il affecter l’apprentissage automatique ? (Partie 1)

Apple a présenté le tout premier processeur Apple silicium pour ordinateur de bureau/ordinateur portable basé sur les processeurs Apple série A de la gamme iPad et iPhone. Ils ont présenté ce nouveau processeur en même temps que trois nouveaux Mac, y compris les nouveaux MacBook Air M1, MacBook Pro M1 et Mac mini M1.

Ces nouveaux Mac M1 annoncent des spécifications incroyables en utilisant le nouveau processeur M1, des vitesses de CPU jusqu’à 3,5x plus rapide. Des vitesses de GPU jusqu’à 5 fois plus rapides, et en utilisant le nouveau Neural Engine, un apprentissage automatique jusqu’à 9 fois plus rapide. En ce qui concerne la durée de vie de la batterie, le MacBook Air annonce 15 heures de navigation sans fil sur Internet et 18 heures de lecture de films (une petite mise en garde concerne la lecture de films avec l’application Apple TV). Pas sûr que cela fasse une différence, mais seul le temps nous le dira quand quelqu’un sur Youtube le testera. Quant au MacBook Pro, son autonomie est de 17 heures de navigation sans fil sur Internet et de 20 heures de lecture de films avec l’application Apple TV. Je ne sais pas pour vous, mais 20 heures, c’est incroyable. J’utilise actuellement le MacBook Pro 16 pouces i9, et je pensais que l’autonomie de 11 heures de celui-ci était remarquable.

Architecture M1

La nouvelle architecture M1 est réalisée à l’aide de la dernière technologie 5nm. Elle comporte 1 processeur, 1 GPU, 1 moteur neuronal et des unités DRAM intégrées au processeur. Comme la mémoire vive est intégrée au processeur, tous les composants accèdent à la même mémoire. Qu’est-ce que cela signifie ? Eh bien, cela signifie qu’il n’y a plus de perte de performances due au déplacement et au remodelage de la mémoire d’un composant à l’autre. Plus besoin d’essayer de savoir si votre modèle peut s’adapter aux spécifications de mémoire du GPU.

CPU

Le CPU est un CPU à 8 cœurs, 4 cœurs étant des cœurs à haute performance pour le traitement des données et les tâches qui nécessitent de hautes performances et 4 cœurs surnommés « e-cores » ou cœurs à haute efficacité fournissant un traitement avec plus d’efficacité et une consommation d’énergie plus faible.

Sur le site web, Apple ne revendique aucune vitesse de processeur ; cependant, un listing Geekbench posté sur gadgets.ndtv.com affiche une fréquence de base de 3,2 GHz, ce qui est supérieur à la fréquence de base du processeur Intel Core i9-9880H que l’on trouve dans le Macbook Pro 16″.

Comparons quelques scores Geekbench sur le nouveau processeur M1.

Comparant les résultats de 4 processeurs très populaires, l’Apple M1 les surpasse tous, même le processeur i9 dans le Macbook Pro 16″ confortablement dans le score à un seul cœur. Ce n’est que lorsque vous arrivez au multicœur où vous commencez à voir les autres, en particulier les processeurs AMD, rivaliser avec le M1.

Que signifie tout cela pour l’apprentissage automatique ?

Bien, tout d’abord, la RAM étant partagée entre le CPU et le GPU devrait augmenter les performances en raison de l’absence de latence dans le transfert des données de la RAM du CPU à la RAM du GPU.

Pour ce qui est du score single-core par rapport au score multi-core, la plupart des bibliothèques de prétraitement des données ne tirent pas profit des multiples cœurs du processeur ; par conséquent, le score multi-core fait très peu pour le prétraitement des données. Avoir un meilleur score monocœur donnera de meilleurs résultats dans le prétraitement des données.

GPU

Le GPU intégré est un GPU à 8 cœurs, qui peut exécuter 25 000 threads simultanément. Apple affirme qu’il s’agit du « graphisme intégré le plus rapide au monde dans un ordinateur personnel » avec un débit de 2,6 TFLOPS (FP32). Il est certain que c’est impressionnant pour un GPU intégré, mais en tant que scientifiques des données, nous sommes intéressés par les performances globales.

Regardons quelques autres pour des comparaisons.

En regardant ces valeurs, cela fonctionnerait probablement bien pour le traitement vidéo, le traitement d’images, Apple Arcade, ou les jeux. Le GPU ne fonctionnera pas bien pour l’apprentissage automatique. Il pourrait, mais juste pas les performances que moi et vous recherchez probablement. Quelque chose comme le Razer Blade Pro 17 avec le RTX 2080 Super ferait mieux avec 11,2 TFLOPS. Vous auriez raison de penser ainsi. Cependant, Apple a également ajouté dans le M1 un moteur neuronal intégré au processeur spécifiquement pour l’efficacité de l’apprentissage automatique.

Moteur neuronal

Le processeur M1 apporte également le moteur neuronal d’Apple, leader de l’industrie, spécifiquement conçu pour les processus d’apprentissage automatique. Le moteur neuronal a déjà été ajouté au processeur de la série A sur l’iPad et l’iPhone, mais il n’était pas encore sur le Mac jusqu’à présent.

Apple revendique 11 TOPS (Trillion Operations Per Second) sur son nouveau moteur neuronal à 16 cœurs.

*11 TOPS ? Est-ce qu’ils veulent dire 11 TFLOPS ? Si c’est 11 TFLOPS, alors il pourrait être un concurrent dans l’espace.

Lorsque vous combinez cette vitesse avec une mémoire intégrée (latence réduite) et 20 heures d’autonomie, cela pourrait changer la donne pour les scientifiques de données en déplacement. Vous obtenez non seulement un GPU comparable à un RTX 2080 Super, un processeur qui a l’un des meilleurs scores monocœur de l’industrie, un facteur de forme du MacBook Air, mais aussi 18 à 20 heures d’autonomie. Wow!

Une autre pensée à ce sujet serait que certains des cadres ML puissent tirer parti à la fois du GPU et du moteur neuronal afin de s’entraîner et d’effectuer l’inférence.

Apple M1 et le support logiciel

Parlons maintenant du support logiciel. Mes questions ici sont :

Est-ce que M1 fonctionne avec certains des logiciels les plus utilisés ? (par exemple, Python, VSCode, Jetbrains, Anaconda, Excel, Juypter Notebooks)

Le Silicium d’Apple utilise une architecture de jeu d’instructions basée sur ARM. Python fonctionne déjà sur de nombreuses autres plateformes, notamment ARM, MIPS, PowerPC, i386 et x86-64. Il ne devrait pas y avoir de problème avec Python.

Juypter Notebook

Il n’est pas clair actuellement si les ordinateurs portables Juypter fonctionnent avec le processeur M1 d’Apple. J’ai trouvé un lien qui fait fonctionner les ordinateurs portables juypter sur une architecture ARM en utilisant docker. Le temps nous dira ce qu’il en est. Peut-être que VSCode une fois qu’il sera prêt pour la production aura une extension Juypter qui fonctionnera.

VSCode

Microsoft a annoncé le 10 novembre 2020, sur Twitter, qu’ils travaillent sur une construction universelle de VSCode pour l’Apple M1. Au moment d’écrire ces lignes, ils ont la build expérimentale ARM sur leur site situé ici.

Microsoft Excel

Microsoft a également annoncé le 11 novembre 2020, qu’il lancera une nouvelle build universelle de sa bêta Mac Office 2019 qui prend en charge le nouveau processeur Apple M1. D’ailleurs, Erik Schwiebert a annoncé sur Twitter que Microsoft publiait une version bêta le même jour sur le canal bêta. Cependant, ils n’ont pas annoncé de dates pour la version publique.

Est-ce que M1 fonctionne avec les frameworks ML (c’est-à-dire Tensorflow, Scikit-Learn, Keras, etc.) ?

Lors de l’événement Apple M1, Apple a mentionné le support de Tensorflow. Je n’ai pas encore trouvé de détails autour de cette affirmation. Le framework Tensorflow est construit pour l’architecture x86_64 et les GPU Nvidia. Il n’y a pas d’autres builds pour ARM ou l’architecture M1 d’Apple.

Certains prétendent que vous pouvez effectuer des inférences à partir de modèles Tensorflow en profitant du convertisseur Apple. Voici un lien vers un article parlant de la conversion des modèles TF vers CoreML. D’autres pensent qu’ils font référence à Swift pour Tensorflow.

Pour l’instant, c’est inconnu, et je ne trouve rien qui y fasse référence.

Scikit-Learn

Scikit-learn fonctionnera-t-il avec l’Apple M1 ? Je pense que la réponse courte est peut-être ??? Donc, ce que nous savons, c’est que Python fonctionnera pour l’architecture ARM de la M1, et Scikit-learn ne profite pas ou n’utilise pas le support GPU. Donc théoriquement, Scikit-learn devrait fonctionner pour le M1.

Je pourrais continuer mais nous serions ici pour toujours avec toutes les bibliothèques utilisées en ML (PyTorch, Keras, etc.)

Synopsis

  • Apple M1 : CPU 8 cœurs, GPU 8 cœurs, moteur neuronal 16 cœurs avec mémoire intégrée sur la puce.
  • Le CPU d’Apple M1 a l’un des meilleurs scores en single-core à 1687 ; score ok en multi-core à 7433 comparé à l’Intel i9-9880H (Macbook Pro 16″) : 1029 en single-core, 6012 en multi-core.
  • Le GPU M1 d’Apple arrive à 2,6 TFLOPS par rapport au Nvidia GeForce RTX 2080 Super (portables Razer) à 11,2 TFLOPS.
  • Le moteur neuronal M1 d’Apple annonce 11 trillions d’opérateurs par seconde. La question qui se pose ici est de savoir s’il s’agit de TFLOPS (FP32). Ceci est comparé à la Nvidia GeForce RTX 2080 Super à 11,2.
  • L’Apple M1 a-t-il un support logiciel ?

Disclaimer : je n’ai pas encore mis la main sur un Apple M1. Je l’ai commandé mais ne l’ai pas encore reçu. Je n’utilise que des recherches pour faire mes affirmations sur le support logiciel. Ne faites pas d’achats en fonction de mes résultats, veuillez effectuer vos propres recherches avant de faire un achat.

Dès que je recevrai mon MacBook Pro Apple M1, j’écrirai un nouvel article avec mes conclusions.

Mise à jour:

Juste pour une mise à jour, voici la presse officielle de Docker sur la puce M1 et le support.

La partie 2 de cet article se trouve ici.

Laisser un commentaire