MENU

Meta dévoile sa puce d’IA de deuxième génération

Meta dévoile sa puce d’IA de deuxième génération

Technologies |
Par Nick Flaherty, A Delapalisse



Meta a lancé la deuxième génération de sa puce d’IA personnalisée Meta Training and Inference Accelerator (MTIA).

La puce personnalisée de Meta (anciennement Facebook) est conçue avec des modèles de langage LLM liés à la mémoire et utilisant des structures de transformation. Cette démarche s’inscrit dans une tendance croissante des opérateurs de centres de données à développer leurs propres puces pour des fonctions spécifiques.

L’architecture de la puce est axée sur l’équilibre entre le calcul, la largeur de bande de la mémoire et la capacité de la mémoire pour servir les modèles de classement et de recommandation. Dans le domaine de l’inférence, ce système doit être en mesure de fournir une utilisation relativement élevée, même lorsque la taille des lots est relativement faible. La SRAM surdimensionnée par rapport aux GPU classiques peut permettre une utilisation élevée dans les cas où la taille des lots est limitée et fournir suffisamment de calcul pour de plus grandes quantités de travail potentiel simultané .

L’accélérateur 5nm consiste en une grille 8×8 d’éléments de traitement (PE) avec 2,35 milliards de transistors dans une matrice qui mesure 25,6mm x 16,4mm, soit 421mm2, dans un espace de 50mm x 40mm.

Les PE offrent des performances de calcul dense (3,5 fois supérieures à celles de MTIA v1) et des performances de calcul clairsemé (amélioration de 7 fois) considérablement accrues. Cela s’explique en partie par les améliorations de l’architecture associées à la mise en pipeline des calculs épars. Elle provient également des techniques permettant d’alimenter la grille PE avec trois fois le stockage local PE à 384kB, deux fois la SRAM sur puce à 256MB, 3,5 fois la bande passante et le double de la capacité de LPDDR5 à 128GB à partir de la première génération de puce 7nm.

Une architecture améliorée de réseau sur puce (NoC) qui double la bande passante et nous permet de coordonner entre différents PE à faible latence. Ces fonctions et d’autres nouvelles fonctions dans les PE constituent les technologies clés qui sont essentielles à notre feuille de route à long terme pour adapter la MTIA à une plus grande variété de charges de travail plus difficiles.

MTIA2 fonctionne à 1,35 GHz à partir d’une alimentation de 0,85V avec une enveloppe thermique de 90W. Cela permet d’obtenir des performances de 708 TFLOPS/s (INT8) avec un modèle d’IA clairsemé ou de 354 TFLOPS/s avec INT8.

La puce est logée dans un système en rack qui peut contenir jusqu’à 72 accélérateurs. Il se compose de trois châssis, chacun contenant 12 cartes qui abritent chacune deux accélérateurs. La décision de cadencer la puce à 1,35 GHz (au lieu de 800 MHz) et de la faire fonctionner à 90 watts au lieu de 25 watts offre des capacités plus denses avec une plus grande puissance de calcul, une plus grande largeur de bande et une plus grande capacité de mémoire.

En outre, nous avons amélioré la structure entre les accélérateurs et entre l’hôte et les accélérateurs avec 8 liens PCIe Gen5 pour 32 Go/s de bande passante. Il est également possible d’ajouter une carte d’interface réseau pour étendre le système au-delà du rack.

La pile MTIA est conçue pour s’intégrer pleinement à PyTorch 2.0 et à des fonctionnalités telles que TorchDynamo et TorchInductor. Les mécanismes frontaux de capture, d’analyse, de transformation et d’extraction de graphes (tels que TorchDynamo, torch.export, etc.) ne dépendent pas de MTIA et sont réutilisés. Le compilateur de niveau inférieur pour MTIA prend les résultats du frontend et produit un code très efficace et spécifique à l’appareil. Ce compilateur de niveau inférieur se compose lui-même de quelques éléments chargés de générer le code exécutable pour les modèles et les noyaux.

En dessous se trouve la pile d’exécution responsable de l’interface avec le pilote/le micrologiciel. L’abstraction de l’interface de flux MTIA fournit les opérations de base et essentielles dont les logiciels d’inférence et (à l’avenir) d’apprentissage ont besoin pour gérer la mémoire du composant, ainsi que pour exécuter des opérateurs et des graphes compilés sur le composant. Enfin, le runtime interagit avec le pilote, qui se trouve dans l’espace utilisateur – une décision que nous avons prise pour nous permettre d’itérer plus rapidement sur le pilote et le firmware au sein de notre pile de production.

Nous avons encore optimisé la pile logicielle en créant le compilateur Triton-MTIA qui génère un code très performant pour le matériel MTIA. Triton est un langage et un compilateur open source permettant d’écrire des noyaux de calcul ML très efficaces. Il améliore la productivité des développeurs pour l’écriture du code GPU et nous avons constaté que le langage Triton est suffisamment agnostique sur le plan matériel pour être applicable aux architectures matérielles non GPU telles que MTIA.

Le backend Triton-MTIA effectue des optimisations pour maximiser l’utilisation du matériel et prendre en charge les noyaux à haute performance. Il expose également des boutons clés permettant d’exploiter les infrastructures d’autoréglage Triton et MTIA afin d’explorer l’espace de configuration et d’optimisation du noyau.

La prise en charge du langage Triton et l’intégration dans PyTorch 2 offrent une couverture étendue pour les opérateurs PyTorch. Grâce à TorchInductor, par exemple, les développeurs peuvent utiliser Triton-MTIA dans les flux de travail en amont (AOT) et en aval (JIT).

Les premiers résultats montrent que cette nouvelle génération de silicium a déjà permis de tripler les performances par rapport à la puce de première génération sur quatre modèles clés. Avec deux fois plus de dispositifs et un processeur à deux sockets, les performances par watt sont 1,5 fois supérieures à celles du système MTIA de première génération.

www.meta.ai

 

Si vous avez apprécié cet article, vous aimerez les suivants : ne les manquez pas en vous abonnant à :    ECI sur Google News

Partager:

Articles liés
10s