
Réseau pour grands calculs : UALink 1.0 se dévoile
Les hyperscalers et les entreprises veulent pouvoir router leurs traitements dans les clusters de GPU en passant par autre chose que le système NVLink propriétaire de Nvidia. UALink est la réponse d’un consortium de fournisseurs.
Un consortium composé d’AMD, Intel, HPE, AWS, Microsoft, Google, Apple, Meta et plus d’une centaine d’autres membres vient de déposer le protocole ouvert UALink (Ultra Accelerator Link) pour contrer l’initiative d’interconnexion bidirectionnelle NVLink proposée par Nvidia et ses quelques partenaires. UALink est un protocole ouvert destiné à l’interconnexion des GPU dans des clusters de serveurs qui exécutent des traitements d’intelligence artificielle ou du supercalcul.
Si NVLink, avec sa déclinaison Fusion, s’est ouvert à d’autres accélérateurs que les GPU de Nvidia, il semble que cette initiative soit loin de faire l’unanimité dans les datacenters. L’année dernière, le consortium cité ci-dessus avait jeté les bases d’une alternative. Nous sommes un an plus tard et la spécification UALink 1.0 vient d’être dévoilée.
Et ce serait le début d’une longue aventure. Kurtis Bowman, Président du consortium UALink et directeur de l’architecture au sein d’AMD, se veut très confiant quant à l’arrivée prochaine de nouveaux membres tels que Huawei, Arista et d’autres. Il indique vouloir que le consortium soit représenté par différents types de fournisseurs (cloud, fabricants de puces, constructeurs, acteurs du cloud, …) et différentes zones géographiques.
La création de cette alternative repose sur quatre enjeux décrits par M. Bowman. « Premièrement, les modèles d’IA continuent à grossir et requièrent plus de puissance de calcul et de mémoire afin d’exécuter l’entraînement et l’inférence sur de grands modèles. Deuxièmement, l’industrie a besoin d’une solution ouverte qui permet une distribution efficace des modèles sur de nombreux accélérateurs regroupés au sein d’un pod de calcul. »
« Troisièmement, l’inférence sur les grands modèles va bientôt nécessiter d’être traitée par dix, voire cent accélérateurs. Et la seule solution pour atteindre cette quantité est de pouvoir utiliser un réseau de nœuds de calcul regroupés en pod. Enfin, l’entraînement des grands modèles va, lui, requérir des milliers, des dizaines de milliers d’accélérateurs que nous ne pourrons utiliser qu’en interconnectant de multiples pods de calcul. »
Jusqu’à 1024 accélérateurs en réseau
La spécification UALink 200G 1.0 définit une interconnexion haut débit et faible latence pour accélérateurs, prenant en charge un débit bidirectionnel maximal de 200 Gbit/s par voie, avec une signalisation à 212,5 Gbit/s pour gérer la correction d'erreurs directe et le surcodage. Les équipements UALink peuvent être configurés en x1, x2 ou x4, avec une liaison à quatre voies atteignant jusqu'à 800 Gbit/s en émission et en réception.
Un système UALink prend en charge jusqu'à 1 024 accélérateurs (GPU ou autres) connectés via des commutateurs UALink qui attribuent un port par accélérateur et un identifiant unique de 10 bits pour un routage précis. La longueur des câbles UALink est d’un maximum de 4 mètres, pour conserver une latence aller-retour inférieure à 1 µs, avec des charges utiles de 64/640 octets. Les liaisons offrent des performances déterministes sur un à quatre racks.
« UALink est conçu avant tout pour simplifier la mise en réseau, réduire les coûts et exploiter toute l'infrastructure dont nous disposons, en particulier la couche la plus basse : Ethernet. Cette couche 1 est exactement celle utilisée dans les switches courants », explique Nathan Kalyanasundharam, architecte chez Infinity, co-président d’UALink et lui aussi un ancien de la division technique d’AMD.
« Nous partons donc de l’Ethernet standard. Sur la première couche, nous proposons quelques options à faible latence, comme l'entrelacement de code unidirectionnel et bidirectionnel. Mais l’idée reste de pouvoir accéder à tout traitement simplement, via une adresse IP. »
« Les couches suivantes, à savoir la couche liaison de données (UDL), la couche transactionnelle (UTL) et la couche protocole (UPLI), sont, elles, spécifiques à UALink ».
La couche UDL regroupe les données en paquets de 640 bits, dont 98,23% (628 bits) sont utilisées pour les données, grâce à une optimisation des en-têtes sur seulement 8 bits et du contrôle d’erreur sur 4 bits.
La couche UTL implémente un adressage compressé, simplifiant le transfert de données avec une efficacité de protocole allant jusqu'à 95 % sous charges de travail réelles. Elle permet également des opérations mémoire directes, telles que la lecture, l'écriture et les transactions atomiques entre accélérateurs (RDMA).
Enfin la couche protocole gère les requêtes d’entrée-sortie vers les différents accélérateurs et permet plusieurs espaces d’adressage.
Fonctionnalités de sécurité et de gestion
Le protocole UALink intègre des fonctionnalités de sécurité et de gestion. Par exemple, UALinkSec assure le chiffrement et l'authentification au niveau matériel de l'ensemble du trafic. Il le protège contre les altérations physiques. Il prend en charge les données confidentielles, via des environnements d'exécution sécurisés qui sont contrôlés par des protocoles intégrés aux puces d’accélération, tels qu’AMD SEV, ARM CCA et Intel TDX.
La spécification 1.0 d’UALInk autorise le partitionnement d’un cluster en pods virtuels ; des groupes d'accélérateurs sont isolés au sein d'un même pod par une configuration au niveau du switch. Cela autorise des charges de travail multitenant simultanées sur une infrastructure partagée.
Les pods UALink seront gérés par un logiciel de contrôle dédié et des agents intégrés aux firmware des équipements, qui communiqueront des fonctions d’administration et de maintenance en PCIe ou en Ethernet. La gestion complète est assurée par les API REST, la télémétrie, le contrôle des charges de travail et l'isolation des pannes.
« Notre objectif était de simplifier au maximum l’interface, de la rendre extrêmement efficace en termes d'espace, sans nécessiter de contrôle de flux de bout en bout qui surchargerait l'accélérateur. Nous nous concentrons sur la commutation à un seul niveau, car la commutation à plusieurs niveaux entraîne des latences supplémentaires, des coûts de câblage et des problèmes de resynchronisation », précise Nathan Kalyanasundharam.
Les premiers composants compatibles UALink devraient être livrés dès l’année prochaine, car les fournisseurs de puces comme les hyperscalers semblent particulièrement motivés par cette alternative qui réduirait leur dépendance à Nvidia. Parmi les évolutions prévues figure l’intégration de l’optique, afin d’étendre la portée des interconnexions, ou encore l’ajout de fonctions INC (In-Network Collectives) pour la fin de l’année.
Les spécifications techniques complètes d’UALink 1.0 sont accessibles au travers d’un livre blanc.