
Infrastructure IA : Nvidia adapte son réseau rapide Spectrum-X au stockage
Les switches et les cartes réseau de Nvidia disposent d’un mode d’accélération propriétaire qui ne fonctionnait jusque-là qu’entre des serveurs de calcul. Désormais, ce mode Spectrum-X est utilisable avec les baies de stockage. DDN, Vast et Weka l’ont validé.
Nvidia vient de valider, avec DDN, Vast Data et Weka, l’utilisation du mode d’accélération Spectrum-X présent dans ses switches Ethernet Spectrum-4 et cartes contrôleurs BlueField-3 pour raccorder des baies de stockage à des serveurs de calcul équipés de ses GPU. Jusqu’ici, ce mode n’était utilisable que pour interconnecter les GPU Nvidia entre eux.
Spectrum-X est un protocole réseau de bas niveau qui correspond à un RoCE v2 (RDMA-over-Converged-Ethernet) optimisé. En l’occurrence, il ajoute à RoCE v2 deux extensions propriétaires qui amélioreraient les vitesses de transfert de 20 à 48 % en lecture et de 9 à 41 % en écriture.
Baptisées Adaptive Routing (AR) et Congestion Control, ces extensions visent à mieux synchroniser le transfert des paquets entre les nœuds du cluster pour éviter les congestions. Elles reposent sur l’envoi de paquets spéciaux qui sondent le réseau et génèrent une télémétrie que les switches et les contrôleurs utilisent, pour prendre la main sur les fluctuations de trafic.
« Afin d’éliminer les collisions entre les flux et atténuer les ralentissements générés par les Check-points, l’Adaptive Routing équilibre le trafic des flux, paquet par paquet, en sélectionnant le chemin le moins encombré en temps réel, ce qui peut conduire à la réception de paquets dans le désordre. Une caractéristique que ne supporte pas RoCE v2. Grâce à Spectrum-X, la carte BlueField de destination connaît l’ordre correct des paquets, les assemble de manière cohérente », explique une note de blog de Nvidia.
« Pour parer aux congestions qui surviennent lorsque plusieurs serveurs de calcul tentent d’écrire sur le même nœud de stockage, le Congestion Control utilise la télémétrie remontée au switch pour indiquer aux cartes contrôleur de certains expéditeurs de ralentir l’injection de données sur le réseau », ajoute la note de blog. Le texte précise que ralentir un seul expéditeur est un moindre mal, car l’envoi de ses données à pleine vitesse aurait ralenti tous les autres flux.
Il est à noter que Spectrum-X n’est pas la seule tentative d’accélérer les réseaux Ethernet. Pure Storage planche de son côté sur l’Ultra Ethernet qui, lui, ne devrait pas être propriétaire.
Toute une couche d’optimisations pour accélérer l’infrastructure
La disponibilité de Spectrum-X pour le stockage est la nouvelle étape d’une succession d’optimisations.
Le protocole RoCE v2 de bas niveau présente déjà l’intérêt de lire et d’écrire les données directement dans la mémoire du serveur de calcul. Ce fonctionnement le rend bien plus véloce qu’un réseau Ethernet basique, qui impose un détour par le processeur d’un serveur pour extraire les informations des paquets TCP/IP.
Au-dessus de RoCE v2, les switches et les cartes réseau de Nvidia utilisent le protocole GPUdirect. Il lit et écrit les données plus particulièrement dans la mémoire des cartes GPU de Nvidia, pour éliminer encore de la latence.
GPUdirect Storage, la déclinaison spécifique de GPUdirect dédiée aux fonctions de stockage, encapsule enfin un protocole d’accès aux fichiers, cuFile, similaire à Posix et capable de monter des volumes distants, pour que le code s’exécutant sur le GPU puisse directement envoyer des requêtes de lecture/écriture à la baie de disques.
L’encodage et la gestion de tous ces protocoles reposent sur une électronique bien plus riche que celle que l’on trouve dans des équipements réseau ordinaires. Et c’est cette électronique qui exécute aussi les extensions qu’apporte Spectrum-X.
Chaque carte Nvidia BlueField-3 dispose ainsi d’un processeur ARM Cortex-A78 comprenant 8 ou 16 cœurs et 12 ou 24 Mo de cache, 16 ou 32 Go de RAM, voire un SSD en option de 128 Go. Elle s’accapare 16 voies sur un bus PCIe 5.0, autant qu’une carte GPU.
Il en existe quatre modèles : les B3240, B3220 et B3210 offrent des débits respectifs de 400, 200 et 100 Gbit/s à répartir sur deux ports optiques QSFP, tandis que la B3140 offre 400 Gbit/s sur un seul port QSFP. Les deux premiers modèles sont ceux qui ont le plus de cœurs et de RAM, les deux derniers sont ceux qui en ont deux fois moins.
Il existe deux modèles de switches 2U 64 ports QSFP pour relier le stockage aux serveurs. Le SN5600 route un trafic global de 51,2 Tbit/s avec 800 Gbit/s par port. Le SN5400 route un trafic global de 25,6 Tbit/s avec 400 Gbit/s par port. Nvidia propose aussi des switches 1U 32 ports QSFP pour mettre en réseau des nœuds de stockage dotés d’une carte BlueField-3. Le plus puissant est le SN2700 qui offre 100 Gbit/s par port.
Ces switches utilisent un ASIC spécialement développé par Nvidia, le Spectrum-4, pour router jusqu’à 256 flux de communications en 200 Gbit/s, accélérer un grand nombre de protocoles réseau et supporter nativement plusieurs dispositifs de sécurité (chiffrement, tunneling…).
Le partenariat établi avec DDN, Vast Data et Weka vise donc à permettre à ces fournisseurs de supporter des cartes BlueField-3 et le double protocole Spectrum-X/GPUdirect Storage dans les systèmes qui pilotent leurs baies de disques. Jusque-là, ces constructeurs utilisaient déjà une forme primitive de GPUdirect Storage par-dessus un protocole RoCE v2.
Un stockage 3,2 fois plus rapide pour DDN
DDN explique dans un livre blanc comment il a pu tester et valider Spectrum-X sur sa solution. Il a doté son appliance de stockage EXAScaler AI400X2 de quatre cartes B3140, chacune avec un seul port de 400 Gbit/s, et l’a reliée à huit serveurs de calcul, chacun avec une seule carte B3140, via deux switches SN5600 montés en série.
Quand les extensions de Spectrum-X ne sont pas appliquées, un seul lien de 800 Gbit/s est utilisé par RoCE v2 entre les deux switchs successifs pour l’intégralité du trafic en provenance ou à destination de la baie. Lorsque le protocole Spectrum-X est pleinement activé, le trafic des huit serveurs est dès lors véhiculé sur huit liens parallèles entre les deux switches. Et le switch le plus proche de l’EXAScaler AI400X2 répartit le trafic de ces huit liens vers les quatre liens de l’appliance de stockage. DDN observe que le trafic est 3,2 fois plus rapide sur les lectures et 2,3 fois plus rapide sur les écritures, dès lors que Spectrum-X est actif.
Dans un autre test, l’appliance de DDN partageait deux volumes pour deux jobs en cours d’exécution sur un seul serveur. En RoCE v2, puisqu’il s’agit de la même appliance qui communique avec le même serveur, le trafic des paquets de données ne change jamais. En Spectrum-X, les switches distinguent que l’un des deux trafics a plus de données à communiquer. Ils lui accordent donc la bande passante que l’autre trafic n’utilise pas. À la fin, l’ensemble des données a été transféré 16 % plus rapidement.
À noter que des trois partenaires de Nvidia dans la validation de Spectrum-X pour le stockage, DDN est le seul qui a osé comparer les performances de Spectrum-X à un réseau Ethernet de base, sans RDMA pour parler directement au GPU. Le résultat est sans appel : avec la même connectique 400 Gbit/s, le transfert des données est 33 fois plus rapide sur Spectrum-X.
Les baies de stockage de DDN ne partagent pas leurs contenus via le protocole réseau NFS, mais via le système de fichiers distribué Lustre. Dans celui-ci, tous les nœuds de stockage sont montés en parallèle devant un switch réseau. Les nœuds de stockage reçoivent les requêtes d’accès aux fichiers à tour de rôle et renvoient au serveur, qui leur parle, l’adresse du nœud qui contient le fichier demandé. Le serveur va alors se connecter au bon nœud pour initier le transfert.
Cette méthode, qui rappelle un peu Parallel NFS (sauf que le nœud qui indexe les contenus n’est pas un nœud qui stocke des fichiers), permet en soi de limiter les embouteillages entre les accès simultanés.
Une accélération de 20 % pour Vast Data
Le système de stockage de Vast Data est plus complexe. Des nœuds frontaux C-Node partagent sur le réseau les fichiers, au protocole NFS. Mais ces fichiers sont physiquement stockés dans un cluster de nœuds de stockage D-Node. Les contenus des fichiers transitent entre les C-Node et les D-Node via un protocole NVMe/RoCE en mode bloc. Il y a des switches frontaux entre les serveurs de calcul et les C-Node pour répartir les accès NFS. Et il y a d’autres switches entre les C-Node et les D-Node pour répartir les connexions NVMe/RoCE.
Dans le test que Vast a réalisé, on trouve deux serveurs de calcul équipés chacun de deux cartes B3240 (soit un total de quatre liens 200 Gbit/s par serveur), deux switches frontaux SN5600, deux C-Node avec, chacun, une carte B3240 (2 x 200 Gbit/s) en frontal, plus une carte B3220 (2 x 100 Gbit/s) vers le cluster. Puis, deux switches SN2700 communiquent en 100 Gbit/s avec les D-Node.
Vast a pu constater que l’activation de Spectrum-X sur tous les équipements réseau augmentait les performances du stockage, mais uniquement lorsque le nombre de jobs sur un serveur est supérieur au nombre de liens vers un C-Node. Par exemple, lorsque quatre jobs utilisent chacun une connexion 200 Gbit/s sur leur serveur pour communiquer avec les deux connexions 200 Gbit/s d’un C-Node, ce qui crée d’ordinaire une congestion, la présence de Spectrum-X permet d’accélérer les transferts de données de 20 %.
Le rapport de Vast ne précise pas s’il a activé Spectrum X sur l’ensemble des équipements réseau, dont ceux qui véhiculent les accès NVMe/RoCE. Ou s’il s’est contenté d’accélérer la partie frontale, celle où les données transitent au protocole NFS.
De 23,5 à 33,5 Go/s pour Weka
À la manière de DDN avec Lustre, les baies de stockage de Weka partagent leurs contenus avec un protocole alternatif à NFS : WekaFS. Le client qui permet de monter les volumes de fichiers présents sur les baies Weka s’exécute du côté des serveurs de calcul. Nvidia l’intègre depuis longtemps dans sa couche GPUdirect Storage pour une utilisation avec l’API cuFile.
Mais la particularité de Weka, surtout, est que ses excellentes performances étaient jusque-là dues à l’utilisation du protocole de bas niveau InfiniBand, en lieu et place de RoCEv2. Sur le papier, InfiniBand est déjà aussi performant que Spectrum-X. D’ailleurs, Spectrum-X découle du rachat par Nvidia de Mellanox, lequel fabriquait… des équipements InfiniBand.
En revanche, InfiniBand a besoin d’une surcouche protocolaire, IPoIB (IP over InfiniBand), pour véhiculer les communications des applications conçues pour fonctionner en TCP/IP. Un défaut que n’a pas RoCE v2 ni, par extension, Spectrum-X.
« Pour garantir l’excellence opérationnelle, des tâches supplémentaires telles que l’enregistrement des métriques de l’entraînement d’un LLM, la télémétrie des systèmes, la sauvegarde, par le biais de snapshots ou d’archives, sont nécessaires. Les clusters de calcul d’IA ont besoin d’une infrastructure de données performante, qui propose de telles fonctions pour améliorer la productivité », reconnaît Weka dans une note de blog.
C’est donc bien volontiers que le fournisseur a concédé à remplacer InfiniBand par SpectrumX, du moins dans les cas d’usage de l’IA, pas nécessairement pour des supercalculateurs. Weka ne partage pas le détail de tests qui lui ont permis de valider sa solution auprès de Nvidia. Tout au plus, il indique qu’un débit de 23,5 Go/s en RoCE v2 sur sa solution passe à 33,5 Go/s lorsque les extensions de Spectrum-X sont activées.