Une chaîne est aussi solide que son maillon le plus faible – et votre infrastructure IA/ML est aussi rapide que votre composant le plus lent. Si vous entraînez des modèles de machine learning avec des GPU, votre maillon faible peut être votre solution de stockage. Le résultat est ce que j’appelle le « problème de GPU affamé ». Le problème du GPU Starving se produit lorsque votre réseau ou votre solution de stockage ne peut pas transmettre les données d'entraînement à votre logique d'entraînement assez rapidement pour utiliser pleinement vos GPU. Les symptômes sont assez évidents. Si vous surveillez vos GPU, vous remarquerez qu’ils ne sont jamais près d’être pleinement utilisés. Si vous avez instrumenté votre code de formation, vous remarquerez que le temps total de formation est dominé par les IO.
Malheureusement, il y a de mauvaises nouvelles pour ceux qui sont aux prises avec ce problème. Examinons quelques progrès réalisés avec les GPU pour comprendre comment ce problème ne fera qu'empirer dans les années à venir.
Les GPU deviennent plus rapides. Non seulement les performances brutes s’améliorent, mais la mémoire et la bande passante augmentent également. Jetons un coup d'œil à ces trois caractéristiques des GPU les plus récents de Nvidia :
GPU | PERFORMANCE | MÉMOIRE | BANDE PASSANTE MÉMOIRE |
---|---|---|---|
A100 | 624 TFLOPS | 40 Go | 1 555 Go/s |
H100 | 1 979 TFLOPS | 80 Go | 3,35 To/s |
H200 | 1 979 TFLOPS | 141 Go | 4,8 To/s |
Le tableau ci-dessus utilise les statistiques qui correspondent à une solution de socket PCIe (Peripheral Component Interconnect Express) pour l'A100 et à la solution de socket SXM (Server PCI Express Module) pour le H100 et le H200. Les statistiques SXM n'existent pas pour l'A100. En ce qui concerne les performances, la statistique Floating Point 16 Tensor Core est utilisée pour la comparaison.
Quelques observations sur les statistiques ci-dessus méritent d’être soulignées. Premièrement, le H100 et le H200 ont les mêmes performances (1 979 TFLOPS), soit 3,17 fois supérieures à celles de l'A100. Le H100 a deux fois plus de mémoire que l'A100 et la bande passante mémoire a augmenté d'une quantité similaire - ce qui est logique sinon le GPU s'affamerait. Le H200 peut gérer 141 Go de mémoire et sa bande passante mémoire a également augmenté proportionnellement par rapport aux autres GPU.
Examinons chacune de ces statistiques plus en détail et discutons de ce qu'elles signifient pour l'apprentissage automatique.
Performances - Un téraflop (TFLOP) correspond à un billion (10 ^ 12) d'opérations à virgule flottante par seconde. C'est un 1 suivi de 12 zéros (1 000 000 000 000). Il est difficile d'assimiler les TFLOP à la demande d'E/S en gigaoctets, car les opérations en virgule flottante qui se produisent lors de la formation du modèle impliquent des calculs tensoriels simples ainsi que des premières dérivées par rapport à la fonction de perte (alias gradients). Toutefois, des comparaisons relatives sont possibles. En regardant les statistiques ci-dessus, nous constatons que le H100 et le H200, qui fonctionnent tous deux à 1 979 TFLOPS, sont 3 fois plus rapides – consommant potentiellement des données 3 fois plus rapidement si tout le reste peut suivre.
Mémoire GPU - Également connue sous le nom de RAM vidéo ou RAM graphique. La mémoire GPU est distincte de la mémoire principale (RAM) du système et est spécifiquement conçue pour gérer les tâches de traitement graphique intensives effectuées par la carte graphique. La mémoire GPU dicte la taille du lot lors de la formation des modèles. Dans le passé, la taille des lots était réduite lors du déplacement de la logique d’entraînement d’un CPU vers un GPU. Cependant, à mesure que la mémoire GPU rattrape la mémoire CPU en termes de capacité, la taille du lot utilisée pour l'entraînement GPU augmentera. Lorsque les performances et la capacité de mémoire augmentent en même temps, il en résulte des requêtes plus volumineuses dans lesquelles chaque gigaoctet de données d'entraînement est traité plus rapidement.
Bande passante mémoire – Considérez la bande passante mémoire du GPU comme « l’autoroute » qui relie la mémoire et les cœurs de calcul. Il détermine la quantité de données pouvant être transférées par unité de temps. Tout comme une autoroute plus large permet à plus de voitures de passer dans un laps de temps donné, une bande passante mémoire plus élevée permet de déplacer davantage de données entre la mémoire et le GPU. Comme vous pouvez le constater, les concepteurs de ces GPU ont augmenté la bande passante mémoire pour chaque nouvelle version proportionnellement à la mémoire ; par conséquent, le bus de données interne de la puce ne constituera pas un goulot d'étranglement.
En août 2023, Nvidia
Bien que toutes les spécifications de la Superchip Grace Hopper représentent une amélioration par rapport aux puces précédentes, l'innovation la plus importante pour les ingénieurs IA/ML est sa mémoire unifiée. Grace Hopper donne au GPU un accès complet à la mémoire du CPU. Ceci est important car, dans le passé, les ingénieurs souhaitant utiliser des GPU pour la formation devaient d’abord extraire les données dans la mémoire système, puis à partir de là, déplacer les données vers la mémoire du GPU. Grace Hopper élimine le besoin d'utiliser la mémoire du processeur comme tampon de rebond pour transmettre les données au GPU.
La simple comparaison de quelques statistiques clés du GPU ainsi que des capacités de Grace Hopper doit être un peu effrayante pour toute personne responsable de la mise à niveau des GPU et de s'assurer que tout le reste peut suivre le rythme. Une solution de stockage devra absolument servir les données à un rythme plus rapide pour suivre ces améliorations du GPU. Examinons une solution courante au problème du GPU affamé.
Il existe une solution courante et évidente à ce problème, qui n’oblige pas les organisations à remplacer ou à mettre à niveau leur solution de stockage existante. Vous pouvez conserver votre solution de stockage existante intacte afin de pouvoir profiter de toutes les fonctionnalités d'entreprise dont votre organisation a besoin. Cette solution de stockage est très probablement un Data Lake qui contient toutes les données non structurées de votre organisation. Elle peut donc être assez volumineuse et le coût total de possession est à prendre en compte. Il dispose également de nombreuses fonctionnalités activées pour la redondance, la fiabilité et la sécurité, qui ont toutes un impact sur les performances.
Ce qui peut être fait, cependant, c'est de mettre en place une solution de stockage située dans le même centre de données que votre infrastructure de calcul. Idéalement, elle se trouverait dans le même cluster que votre calcul. Assurez-vous de disposer d'un réseau haut débit avec les meilleurs périphériques de stockage disponibles. À partir de là, copiez uniquement les données nécessaires à la formation ML.
Amazon a récemment annoncé
La solution commune que j'ai décrite ci-dessus obligeait AWS à personnaliser sa solution de stockage S3 en proposant des compartiments spécialisés à un coût plus élevé. De plus, certaines organisations (qui ne sont pas clientes de MinIO) achètent des solutions de stockage spécialisées qui effectuent les choses simples que j'ai décrites ci-dessus. Malheureusement, cela ajoute de la complexité à une infrastructure existante puisqu'un nouveau produit est nécessaire pour résoudre un problème relativement simple.
L’ironie de tout cela est que les clients MinIO ont toujours eu cette option. Vous pouvez faire exactement ce que j'ai décrit ci-dessus avec une nouvelle installation de MinIO sur un réseau haut débit avec des disques NVMe. MinIO est une solution de stockage définie par logiciel : le même produit fonctionne sur du métal nu ou sur le cluster de votre choix en utilisant une variété de périphériques de stockage. Si votre Data Lake d'entreprise utilise MinIO sur du métal nu avec des disques durs et qu'il fonctionne correctement pour toutes vos données non ML, il n'y a aucune raison de le remplacer. Cependant, si les ensembles de données utilisés pour le ML nécessitent des E/S plus rapides parce que vous utilisez des GPU, envisagez l'approche que j'ai décrite dans cet article. Assurez-vous de faire une copie de vos données ML pour les utiliser dans votre instance haute vitesse de MinIO - une copie dorée devrait toujours exister dans une installation renforcée de MinIO. Cela vous permettra de désactiver des fonctionnalités telles que la réplication et le chiffrement dans votre instance haute vitesse de MinIO, augmentant ainsi les performances. La copie de données est facile avec MinIO
MinIO est capable des performances nécessaires pour alimenter vos GPU affamés - un
Télécharger
Apparaît également ici .