Que feriez-vous avec une bête de traitement graphique de 16,8 millions de cœurs ?

Si vous y regardez maintenant, en particulier avec l’avènement du calcul massivement parallèle sur les GPU, peut-être que les techniciens de Tera Computing puis de Cray ont eu la bonne idée avec leurs processeurs ThreadStorm massivement threadés et leurs interconnexions à large bande passante.

Étant donné que de nombreux réseaux de neurones créés par les frameworks d’IA sont eux-mêmes des graphiques avec des sommets avec des données et des arêtes montrant les relations entre les données, et non quelque chose généré dans Excel ou qui produit ce qui équivaut à un graphique, peut-être, en fin de compte, ce dont nous avons besoin, c’est d’un très bon processeur graphique. Ou peut-être des millions.

Haleter! Qui parle d’une telle hérésie dans un monde où le GPU Nvidia et ses aspirants sont l’onguent universel à résoudre ? baume, sûrement ? nos problèmes informatiques modernes ? Eh bien, nous le faisons. Alors que les GPU excellent dans les mathématiques à virgule flottante de haute précision à matrice dense qui dominent la simulation et la modélisation HPC, la plupart des données qui sous-tendent les frameworks d’IA sont rares et de moindre précision au démarrage. Et compte tenu de cela, il existe peut-être de meilleures façons de procéder.

La Defense Advanced Research Projects Agency des États-Unis, la branche de recherche et développement du ministère de la Défense, explore justement ces questions d’avant-garde et étudie la création d’un processeur graphique et d’une interconnexion massivement parallèles depuis la création du projet Hierarchical Identity Verify Exploit (HIVE). en 2017. Intel a été choisi pour fabriquer le processeur HIVE et le Lincoln Laboratory du MIT et Amazon Web Services ont été choisis pour créer et héberger un ensemble de données graphiques d’un billion de bords pour un système basé sur de tels processeurs.

Cette semaine, au Hot Chips 2023, Intel a présenté le processeur qu’il a créé pour le projet HIVE, qui portait à l’origine le nom de code Puma en relation avec l’architecture de mémoire unifiée intégrée programmable (PIUMA) qui la sous-tend. En août 2019, Intel a fait le point sur la puce PIUMA lors du sommet ERI de la DARPA, et lors de l’événement High Performance Extreme Computing 2020 de l’IEEE en septembre 2020, les chercheurs d’Intel Balasubramanian Seshasayee, Joshua Fryman et Ibrahim Hur ont donné une présentation intitulée Évolutivité de la table de hachage sur Intel PIUMAqui se cache derrière un paywall IEEE mais qui donne un aperçu du processeur, et un article intitulé PIUMA : Architecture de mémoire unifiée intégrée programmable, qui n’est pas derrière un paywall. Celles-ci étaient vagues sur l’architecture du système PIUMA. Mais cette semaine, Jason Howard, ingénieur principal chez Intel, a fait le point sur le processeur et le système PIUMA, y compris une interconnexion photonique qu’Intel a créée en collaboration avec Ayar Labs pour relier un grand nombre de processeurs.

Dans l’article de l’IEEE, les chercheurs du PIUMA n’ont pas caché qu’ils étaient absolument inspirés par la gamme Cray XMT. La gamme XMT d’il y a dix ans a culminé avec un énorme monstre de threads de mémoire partagée, parfait pour l’analyse graphique, qui comptait jusqu’à 8 192 processeurs, chacun avec 128 threads fonctionnant à 500 MHz, se connectant à un socket AMD Rev F utilisé par l’Opteron 8000. série de processeurs X86, tous reliés par une interconnexion torique SeaStar2+ personnalisée qui a fourni 1,05 million de threads et 512 To de mémoire principale partagée pour qu’un graphique puisse se dégourdir les jambes. En ce qui concerne Linux, cela ressemblait à un seul processeur.

Ce qui est ancien redevient nouveau avec le projet PIUMA, et cette fois le processeur est plus modeste mais l’interconnexion est bien meilleure. Et vraisemblablement, le rapport prix/performance l’est également, et pour l’amour de tout ce qui est sacré au ciel, peut-être qu’Intel commercialisera ce système PIUMA et vraiment faire bouger les choses.

Prendre des octets de mémoire plus petits

Lorsque Intel a commencé à concevoir la puce PIUMA, selon Howard, les chercheurs travaillant sur le projet HIVE ont réalisé que les tâches graphiques n’étaient pas seulement massivement parallèles, mais aussi embarrassantes, ce qui signifie qu’il y avait probablement des moyens d’exploiter ce parallélisme pour augmenter les performances. de l’analyse graphique. Lorsqu’elles étaient exécutées sur des processeurs X86 standard, les bases de données graphiques avaient une très mauvaise utilisation de la ligne de cache, avec seulement 8 octets ou moins sur une ligne de cache de 72 octets étant utilisés plus de 80 % du temps d’exécution d’une base de données graphique. Le fait d’avoir de nombreuses branches dans le flux d’instructions mettait une pression sur les pipelines du processeur et le sous-système de mémoire subissait également beaucoup de pression sur lui en raison de longues chaînes de charges dépendantes, qui détruisaient les caches des processeurs.

La puce PIUMA intègre de grandes et petites idées et comporte quatre pipelines comportant 16 threads par pipeline (appelés MTP) et deux pipelines comportant chacun un seul thread (appelés STP) qui offrent 8 fois les performances de l’un des threads. au sein des MTP. Les cœurs sont basés sur un jeu d’instructions RISC personnalisé, que Howard n’a pas identifié et que ses pairs chercheurs d’Intel ou de Microsoft non plus, qui ont également participé aux efforts de PIUMA.

Tous les pipelines utilisent un ISA personnalisé, de type RISC, de longueur fixe, a expliqué Howard dans sa présentation Hot Chips. Et chacun des pipelines dispose de 32 registres physiques. Nous avons fait cela pour que vous puissiez facilement migrer les threads de calcul entre n’importe lequel des pipelines. Alors peut-être que je commence par m’exécuter sur l’un des pipelines multithread et si je vois que cela prend trop de temps, ou peut-être que c’est le dernier thread disponible, je peux le migrer rapidement vers mon pipeline à thread unique pour obtenir de meilleures performances.

Les unités STP et MTP sont reliées par une barre transversale et disposent d’un cache combiné d’instructions L1 et de données L1 de 192 Ko, et elles sont liées à une mémoire SRAM partagée de 4 Mo qui est plus simple qu’un cache L2.

Chaque puce PIUMA possède huit cœurs actifs, et chaque cœur possède son propre contrôleur de mémoire DDR5 personnalisé qui a une granularité d’accès de 8 octets au lieu de 72 octets comme le font les contrôleurs de mémoire DDR5 normaux. Chaque socket dispose de 32 Go de cette mémoire DDR5-4400 personnalisée.

Chaque cœur dispose d’une paire de routeurs qui relient les cœurs dans un maillage 2D les uns aux autres, aux huit contrôleurs de mémoire et à quatre ports AIB (Advanced Interface Bus) haute vitesse. AIB est un PHY libre de droits pour l’interconnexion des chipsets qu’Intel a annoncé en 2018. Il y a 32 ports d’E/S optiques, huit par AIB, qui proviennent des compléments de puce d’Ayar Labs, qui fournissent 32 Go/s de bande passante dans chacun. direction.

Voici un aperçu des routeurs sur puce qui implémentent le maillage 2D sur le package PIUMA :

Il s’agit d’un routeur à dix ports. Le maillage 2D fonctionne à 1 GHz et il faut quatre cycles pour parcourir le routeur. Il dispose de dix canaux virtuels et de quatre classes de messages différentes, qui, selon Howard, évitent tout blocage sur le maillage et qui génèrent 64 Go/s pour chaque liaison au sein du routeur.

Le packaging du routeur et du cœur de la puce PIUMA est un peu plus complexe que prévu. Regarde:

C’est plutôt comme s’il y avait seize unités cœur/routeur sur la puce, et seulement huit d’entre elles ont les cœurs activés car le maillage sur la puce a besoin de deux fois plus de routeurs pour alimenter les AIB, qui à leur tour alimentent le silicium d’Ayar Labs. photonique. Les liaisons photoniques sur silicium ne sont utilisées que comme couche physique et sont utilisées spécifiquement pour étendre le réseau sur puce entre plusieurs prises.

Et quand on dit multiple, on veut dire un nombre vraiment énorme. Comme ça:

Un traîneau de seize puces PIUMA utilisant les liaisons photoniques en silicium peut être relié entre elles dans une grille de 44 dans une configuration tout-à-tout. Chaque puce PIUMA brûle environ 75 watts à la tension nominale et aux charges de travail, ce qui signifie qu’elle brûle environ 1 200 watts. Plus d’un socket Xeon SP, mais pas plus de trois.

Construire la bête parfaite de traitement de graphiques

La puce PIUMA dispose d’une interconnexion optique de 1 To/s et, outre les liaisons sur le traîneau, certaines d’entre elles peuvent être utilisées pour connecter jusqu’à 131 072 traîneaux ensemble afin de créer un énorme supercalculateur de traitement graphique à mémoire partagée. Les routeurs constituent le réseau, et tout est connecté par une topologie HyperX en dehors de la topologie directement connectée de tout à tous au sein d’un rack comportant seize traîneaux.

Parcourons cela. Un seul traîneau doté de seize sockets possède 128 cœurs avec 8 448 threads et 512 Go de mémoire. Le premier niveau du réseau HyperX comprend 256 traîneaux, 32 768 cœurs, 270 336 threads et 128 To de mémoire. Passez au niveau deux du réseau HyperX et vous pourrez créer un cluster PIUMA avec 16 384 traîneaux, 2,1 millions de cœurs, 17,3 millions de threads et 8 Po de mémoire partagée. Et enfin, au niveau trois du réseau HyperX, vous pouvez étendre jusqu’à 131 072 traîneaux, 16,8 millions de cœurs, 138,4 millions de threads et 64 Po de mémoire partagée.

Admet le. Vous voulez voir ce que pourrait faire une de ces bêtes. L’Agence de sécurité nationale des États-Unis, le ministère de la Défense des États-Unis et leurs pairs du monde entier, qui ont financé une grande partie de la recherche sur l’IA au cours des quinze dernières années, sont sans aucun doute également intéressés.

Pendant que vous réfléchissez à cette échelle pendant une minute, passons en revue quelques éléments supplémentaires. Tout d’abord, la latence de ce réseau optique :

Les nœuds PIUMA sont reliés entre eux par une fibre optique monomode, et il est intéressant de noter que la bande passante atteinte par la conception du réseau PIUMA, à 16 Go/s par direction, n’était qu’à la hauteur du point de conception théorique. Mais même quand même, il s’agit d’une énorme bête de bande passante, avec une bande passante théorique de 16 Po/sec de bissection unidirectionnelle sur l’ensemble du réseau HyperX.

La puce PIUMA est implémentée dans des processus FinFET de 7 nanomètres de Taiwan Semiconductor Manufacturing Co et contient 27,6 milliards de transistors, dont 1,2 milliard sont dédiés aux cœurs relativement petits. Les circuits AIB occupent apparemment une grande partie du nombre de transistors.

Voici à quoi ressemble le package de puces PIUMA :

Et voici à quoi ressemblent le package et les cartes de test :

Jusqu’à présent, Intel a construit deux cartes avec chacune une seule puce PIUMA et les a reliées entre elles pour effectuer ses tests et prouver à la DARPA que cela fonctionne.

La question est maintenant de savoir quel sera le coût d’une telle machine à grande échelle ? Eh bien, à 750 $ par nœud, ce qui n’est pas beaucoup, cela représente 3,1 millions de dollars pour un système étendu au niveau HyperX un avec 4 096 puces PIUMA, près de 200 millions de dollars pour un système avec 262 144 puces au niveau HyperX deux et 1,57 milliard de dollars pour un avec 2,1 millions de puces étendues au niveau trois d’HyperX.

Comme le montre l’explosion de l’IA générative, il existe plusieurs dizaines d’entreprises, puis plusieurs dizaines d’agences gouvernementales dans le monde, qui ne clignent même plus des yeux devant 1 milliard de dollars pour un système. Le numéro n’a même pas fait monter mon pouls lorsque je l’ai écrit puis lu.

C’est exactement l’époque dans laquelle nous vivons maintenant.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite