2 votes

Le caractère unique du moteur neuronal du Mac, parmi les puces de l'industrie/du marché

Extrait de Wikipédia :

Le moteur neuronal permet à Apple de mettre en œuvre un réseau neuronal et l'apprentissage automatique d'une manière plus économe en énergie qu'en utilisant le processeur principal ou le GPU. Toutefois, les applications tierces ne peuvent pas utiliser le moteur neuronal, ce qui se traduit par des performances de réseau neuronal similaires à celles des iPhones plus anciens.

Lecture ce Reddit Si vous avez du mal à trouver la réponse, j'aimerais bien la demander :

Qu'est-ce que le moteur neuronal dans les architectures Mac de nouvelle génération ?

Je sais qu'il existe une unité centrale qui reçoit des commandes (instructions) et travaille devant une mémoire (RAM), et je sais qu'il existe un processeur graphique qui reçoit des commandes et travaille devant une autre mémoire (matricielle).

Le NE a-t-il également une composante similaire ? Si c'est le cas, dispose-t-il également d'un jeu d'instructions unique ? Langages de programmation/logique/script spécifiques ? Des concurrents équivalents sur le marché ou dans l'industrie ?

Si, en tant qu'informaticien, je veux en profiter, quelles applications puis-je développer avec lui, par exemple, et qu'il est clairement préférable de faire avec lui plutôt qu'avec un GPU ? J'aimerais avoir des détails précis plutôt que des lignes générales comme Apple le fait pour la puce.

2voto

Jose Chavez Points 645

Qu'est-ce que le moteur neuronal ?

Le moteur neuronal fait partie des processeurs Apple - par exemple l'Apple Silicon M1 que vous avez étiqueté.

La puce M1 comporte de nombreuses parties qui constituent le processeur. Il s'agit d'un CPU, d'un GPU, du moteur neuronal, des caches, de la mémoire vive et d'autres éléments plus petits.

Chacune de ces parties est à nouveau constituée de parties plus petites :

L'unité centrale est en fait constituée d'un certain nombre de cœurs de performance et d'un certain nombre de cœurs d'efficacité. Le GPU se compose d'un certain nombre de modules, que l'on peut considérer comme des cœurs de GPU. Enfin, le moteur neuronal se compose d'un certain nombre de cœurs NPU (Neural Processing Units).

Le moteur neuronal est-il un composant similaire au CPU et au GPU ?

En termes généraux, on peut considérer les cœurs de CPU, les cœurs de GPU et les cœurs de NPU comme une sorte de "boîte noire" qui reçoit des commandes (instructions, ou quel que soit le nom qu'on leur donne), communique avec le reste du processeur et les périphériques (par exemple en chargeant/stockant des données dans la mémoire vive ou en communiquant sur les bus) et effectue une sorte de calcul.

L'Apple M1 est structuré selon une architecture de mémoire unifiée, ce qui signifie que ces différents sous-systèmes accèdent tous à la même mémoire principale. Il n'y a pas de "mémoire matricielle" spéciale pour le GPU, comme vous l'indiquez dans votre question.

Le moteur neuronal est spécialement conçu pour effectuer les types de calculs nécessaires à l'exécution de modèles d'apprentissage automatique. En règle générale, il s'agit d'optimiser les multiplications matricielles très rapides.

A-t-il un jeu d'instructions ou des langages de programmation uniques ?

Le moteur neuronal dispose d'un "jeu d'instructions" unique (bien qu'il ne fasse pas partie du jeu d'instructions ARM). Comme pour les programmes du CPU et du GPU, un compilateur transforme les programmes (modèles) écrits dans un langage de plus haut niveau en commandes et structures de données compréhensibles par le moteur neuronal.

D'un point de vue pratique, les développeurs ordinaires interagiront avec le moteur neuronal en utilisant CoreML. Cela signifie qu'ils utilisent essentiellement un "langage" unique et spécifique pour leurs modèles.

Le moteur neuronal peut-il faire quelque chose de mieux que le CPU ou le GPU ?

Le moteur neuronal n'est pas strictement "meilleur" que le CPU ou le GPU pour effectuer ce type de calculs. Les modèles d'apprentissage automatique peuvent être exécutés sur le CPU, le GPU et le moteur neuronal. Le moteur neuronal n'ouvre donc pas un nouveau type de calcul impossible à réaliser sans lui.

La principale raison d'utiliser le moteur neuronal plutôt que d'avoir des cœurs de processeur supplémentaires est que le moteur neuronal est spécialement conçu pour quelques types de calculs spécifiques courants dans les modèles d'apprentissage automatique. Cela signifie qu'il effectue généralement ces calculs en utilisant moins d'énergie électrique que si vous utilisiez un cœur d'unité centrale (ou autrement dit, vous obtenez de meilleures performances avec la même quantité d'énergie électrique). En outre, il est possible que le CPU et le GPU fassent autre chose pendant que le moteur neuronal effectue son travail. Cela signifie une plus longue durée de vie de la batterie, moins de bruit de ventilateur, une latence perçue plus faible, etc.

Les concurrents sont-ils présents sur le marché ?

Il existe de nombreuses autres unités de traitement neuronal sur le marché. Ce n'est pas quelque chose d'unique à Apple. Par exemple, Google a son TPU, Nvidia a le NVDLA, Amazon a Inferentia, etc.

Toutefois, Apple se trouve peut-être dans une situation unique où l'écrasante majorité des utilisateurs de ses systèmes d'exploitation (iOS, iPadOS et MacOS) disposent de leur moteur neuronal (dans une version ou une autre) et utilisent des logiciels compatibles. Cela signifie qu'ils peuvent en tirer parti de manière agressive dans leurs applications et leurs services d'arrière-plan.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X