Comment construire un système multi-GPU pour l’apprentissage en profondeur en 2023

Construction d'un système multi-GPU pour l'apprentissage en profondeur en 2023

Ma construction de deep learning - travail en cours :).

Cette histoire fournit un guide sur la construction d’un système multi-GPU pour le deep learning et, espérons-le, vous fera gagner du temps de recherche et d’expérimentation.

Objectif

Construire un système multi-GPU pour l’entraînement de modèles de vision par ordinateur et de LLMs sans se ruiner! 🏦

Étape 1. GPUs

Commençons par la partie amusante (et coûteuse 💸💸💸)!

La bête H100! Image de NVIDIA.

Les principales considérations lors de l’achat d’un GPU sont :

  • mémoire (VRAM)
  • performance (Tensor cores, vitesse d’horloge)
  • largeur de la fente
  • puissance (TDP)

Mémoire

Pour les tâches de deep learning de nos jours, nous avons besoin d’une loooot de mémoire. Les LLMs sont énormes même pour les ajuster et les tâches de vision par ordinateur peuvent être gourmandes en mémoire, en particulier avec les réseaux 3D. Naturellement, l’aspect le plus important à rechercher est la VRAM du GPU. Pour les LLMs, je recommande au moins 24 Go de mémoire et pour les tâches de vision par ordinateur, je ne descendrais pas en dessous de 12 Go.

Performance

Le deuxième critère est la performance, qui peut être estimée avec les FLOPS (opérations en virgule flottante par seconde) :

Le nombre crucial dans le passé était le nombre de cœurs CUDA dans le circuit. Cependant, avec l’émergence du deep learning, NVIDIA a introduit des tensor cores spécialisés qui peuvent effectuer beaucoup plus d’opérations FMA (Multiply-Add fusionné) par horloge. Ils sont déjà pris en charge par les principaux frameworks de deep learning et c’est ce que vous devriez rechercher en 2023.

Vous trouverez ci-dessous un tableau des performances brutes des GPU regroupées par mémoire que j’ai compilé après un certain travail manuel :

Performances brutes des GPU basées sur les cœurs CUDA et les tensor cores (TFLOPs).

Notez que vous devez être très prudent lorsque vous comparez les performances de différents GPU. Les tensor cores de différentes générations / architectures ne sont pas comparables. Par exemple, l’A100 effectue 256 opérations FMA FP16 / horloge tandis que le V100 “seulement” 64. De plus, les anciennes architectures (Turing, Volta) ne prennent pas en charge les opérations tensorielles sur 32 bits. Ce qui rend la comparaison plus difficile, c’est que NVIDIA ne signale pas toujours les FMA, même pas dans les documents techniques, et les GPU de la même architecture peuvent avoir des FMA différents. Je me suis cassé la tête avec ça 😵‍💫. Notez également que NVIDIA annonce souvent les FLOPS tensoriels avec la parcimonie, une fonctionnalité utilisable uniquement au moment de l’inférence.

Afin d’identifier le meilleur GPU en termes de prix, j’ai collecté les prix eBay en utilisant l’API eBay et j’ai calculé la performance relative par dollar (USD) pour les cartes neuves :

Performance relative par USD des GPU basée sur les cœurs CUDA et les tensor cores (TFLOPs / USD). Les prix sont basés sur les prix actuels sur eBay (septembre 2023).

J’ai fait la même chose pour les cartes d’occasion, mais comme les classements ne changent pas beaucoup, je n’inclus pas le graphique.

Pour sélectionner la meilleure carte graphique pour votre budget, vous pouvez choisir l’une des meilleures cartes graphiques ayant la plus grande mémoire que vous puissiez vous permettre. Ma recommandation serait la suivante :

Recommandation des cartes graphiques pour différents budgets basée sur les prix actuels d'eBay (septembre 2023).

Si vous souhaitez approfondir les aspects techniques, je vous conseille de lire l’excellent guide de Tim Dettmers sur les cartes graphiques à utiliser pour le deep learning.

Largeur du slot

Lors de la construction d’un système multi-GPU, nous devons planifier comment insérer physiquement les cartes graphiques dans un boîtier PC. Étant donné que les cartes graphiques deviennent de plus en plus grandes, en particulier les séries gaming, cela devient un problème. Les cartes mères grand public ont jusqu’à 7 slots PCIe et les boîtiers PC sont conçus autour de cette configuration. Une 4090 peut facilement occuper 4 slots en fonction du fabricant, vous pouvez donc comprendre pourquoi cela devient un problème. De plus, nous devrions laisser au moins 1 slot entre les cartes graphiques qui ne sont pas de type blower ou watercooled pour éviter la surchauffe. Nous avons les options suivantes :

WatercoolingLes variantes watercooled occuperont jusqu’à 2 slots, mais elles sont plus chères. Vous pouvez également convertir une carte graphique air-cooled, mais cela annulera la garantie. Si vous n’optez pas pour des solutions tout-en-un (AIO), vous devrez construire une boucle de watercooling personnalisée. Cela est également vrai si vous souhaitez installer plusieurs cartes graphiques watercooled car les radiateurs AIO peuvent ne pas tenir dans le boîtier. Construire votre propre boucle comporte des risques et je ne le ferais personnellement pas avec des cartes coûteuses. Je n’achèterais que des solutions AIO directement auprès des fabricants (aversion au risque 🙈).

Cartes aircooled de 2 à 3 slots et risers PCIeDans ce scénario, vous intercalez les cartes sur les slots PCIe et les cartes connectées avec des câbles riser PCIe. Les cartes riser PCIe peuvent être placées à l’intérieur du boîtier PC ou à l’air libre. Dans les deux cas, assurez-vous que les cartes graphiques sont bien fixées (voir également la section sur les boîtiers PC).

Puissance (TDP)

Les cartes graphiques modernes ont de plus en plus besoin de puissance. Par exemple, une 4090 nécessite 450 W tandis qu’une H100 peut consommer jusqu’à 700 W. En dehors de la facture d’électricité, l’installation de trois cartes graphiques ou plus devient un problème. Cela est particulièrement vrai aux États-Unis où les prises électriques peuvent fournir jusqu’à environ 1800 W.

Une solution à ce problème si vous vous approchez de la puissance maximale que vous pouvez tirer de votre PSU / prise électrique est de limiter la puissance. Tout ce dont vous avez besoin pour réduire la puissance maximale qu’une carte graphique peut consommer est :

sudo nvidia-smi -i <indice_GPU> -pl <limite_puissance>où :indice_GPU : l'indice (numéro) de la carte tel qu'il est affiché avec nvidia-smilimite_puissance : la puissance en W que vous souhaitez utiliser

Il a été démontré que la limitation de la puissance de 10 à 20% réduit les performances de moins de 5% et maintient les cartes plus fraîches (expérience de Puget Systems). Par exemple, la limitation de la puissance de quatre 3090 de 20% réduira leur consommation à 1120 W et pourra facilement s’adapter à une PSU de 1600 W / prise de 1800 W (en supposant 400 W pour le reste des composants).

Étape 2. Carte mère et CPU

La prochaine étape de la construction consiste à choisir une carte mère qui permet d’utiliser plusieurs cartes graphiques. Ici, la considération principale concerne les lignes PCIe. Nous avons besoin d’au moins des slots PCIe 3.0 avec x8 lignes pour chacune des cartes (voir l’article de Tim Dettmers). Les versions PCIe 4.0 ou 5.0 sont plus rares et ne sont pas nécessaires pour la plupart des cas d’utilisation en deep learning.

Outre le type de slot, l’espacement des slots déterminera où vous pouvez placer les cartes graphiques. Assurez-vous d’avoir vérifié l’espacement et que vos cartes graphiques peuvent réellement être installées là où vous le souhaitez. Notez que la plupart des cartes mères utiliseront une configuration x8 pour certains slots x16 lorsque vous utilisez plusieurs cartes graphiques. La seule façon réelle d’obtenir ces informations est dans le manuel de la carte.

La manière la plus simple de ne pas passer des heures de recherche et de rendre votre système évolutif est de choisir une carte mère avec des slots x16 partout. Vous pouvez utiliser PCPartPicker et filtrer les cartes mères avec 7+ slots PCIe x16. Cela nous donne 21 produits à choisir. Nous réduisons ensuite la liste en sélectionnant la quantité minimale de RAM que nous souhaitons (par exemple, 128 Go) avec le type DDR4 / DDR5 pour la réduire à 10 produits :

Cartes mères avec au moins 7 emplacements PCIe x16 et 128 Go de RAM DDR4/DDR5 basées sur PCPartPicker.

Les sockets de CPU pris en charge de la liste ci-dessus sont LGA2011–3 et LGA2066. Nous passons ensuite à la sélection du CPU et choisissons des CPUs avec le nombre de cœurs souhaité. Ceux-ci sont principalement nécessaires pour le chargement des données et la préparation des lots. Visez d’avoir au moins 2 cœurs / 4 threads par GPU. Pour le CPU, nous devons également vérifier les voies PCIe qu’il prend en charge. Tout CPU de la dernière décennie devrait prendre en charge au moins 40 voies (couvrant 4 GPU à x8 voies) mais il vaut mieux être prudent. Avec un filtrage de par exemple 16+ cœurs avec les sockets ci-dessus, nous obtenons les CPUs suivants :

  • Intel Xeon E5 (LGA2011–3) : 8 résultats
  • Intel Core i9 (LGA2066) : 9 résultats

Nous choisissons ensuite notre combinaison préférée de carte mère et de CPU en fonction du nombre de cœurs, de la disponibilité et du prix.

Les sockets LGA2011–3 et LGA2066 sont très anciens (respectivement 2014 et 2017), et vous pouvez donc trouver de bonnes affaires sur eBay pour la carte mère et le CPU. Une carte mère ASRock X99 WS-E et un Intel Xeon E5–2697 V4 à 18 cœurs peuvent vous coûter moins de 300 $ en condition d’occasion. N’achetez pas les versions ES ou QS moins chères pour les CPUs car ce sont des échantillons d’ingénierie et ils peuvent échouer ⚠️️.

Si vous souhaitez acheter quelque chose de plus puissant et/ou plus récent et/ou un CPU AMD, vous pouvez vous tourner vers des cartes mères avec par exemple 4+ emplacements PCIe x16, mais assurez-vous de vérifier les espacements des emplacements.

À ce stade, il est judicieux de commencer une construction sur PCPartPicker. 🛠️ PCPartPicker vérifiera les compatibilités entre les composants pour vous et facilitera votre vie.

Étape 3. RAM 🐏

Ici, l’aspect le plus important est la quantité de RAM. La RAM est utilisée à différents endroits du cycle de l’apprentissage profond : chargement des données à partir du disque pour la création des lots, chargement du modèle et bien sûr prototypage. La quantité nécessaire dépend beaucoup de votre application (par exemple, les données d’images 3D nécessiteront beaucoup plus de RAM supplémentaire), mais vous devriez viser de 1x à 2x la quantité totale de VRAM de vos GPUs. Le type devrait être au moins DDR4, mais la fréquence de la RAM n’est pas très importante, donc ne dépensez pas votre argent là-dessus 🕳️.

Lors de l’achat de RAM, assurez-vous que le format, le type, le nombre de modules et la mémoire par module correspondent tous aux spécifications de votre carte mère (PCPartPicker est votre ami!).

Étape 4. Disques

Un autre composant sur lequel vous pouvez économiser est les disques 😌. Encore une fois, la quantité d’espace disque est importante et dépend de l’application. Vous n’avez pas nécessairement besoin de disques ultra-rapides ou de disques NVME car ils n’affecteront pas les performances de votre apprentissage profond. Les données seront de toute façon chargées dans la RAM et pour ne pas créer de goulot d’étranglement, vous pouvez simplement utiliser plus de travailleurs CPU parallèles.

Étape 5. Alimentation électrique (PSU) 🔌

Comme nous l’avons vu, les GPUs sont des composants gourmands en énergie. Lors de la mise en place d’un système multi-GPU, la sélection de l’alimentation électrique devient une considération importante. La majorité des alimentations électriques peuvent fournir jusqu’à 1600 W – cela correspond aux limites de puissance des prises américaines. Il y a quelques alimentations électriques qui peuvent fournir plus que cela, mais elles nécessitent des recherches et visent spécialement les mineurs.

Puissance estimée fournie par PCPartPicker pour vos constructions.

Pour déterminer la puissance de votre système, vous pouvez utiliser à nouveau PCPartPicker qui calcule le montant total de votre construction. À cela, nous devons ajouter un extra de 10%+ pour plus de tranquillité d’esprit car les GPUs auront des pics de puissance supérieurs à ce qui est spécifié dans leurs caractéristiques.

Un critère important est l’efficacité de l’alimentation électrique (PSU efficiency) qui est marquée avec la notation 80 PLUS. L’alimentation atteindra la puissance annoncée mais perdra une certaine puissance dans le processus. Les alimentations 80 PLUS Bronze sont notées avec une efficacité de 82% par rapport à une alimentation Gold qui atteindra une efficacité de 87%. Si nous avons un système qui consomme 1600w et que nous l’utilisons 20% du temps, nous économiserions 22 $ par an avec une carte graphique ayant une notation Gold, en supposant un coût de 0,16 $ / KWh. Lors de la comparaison des prix, prenez cela en compte dans vos calculs.

Notation de l'efficacité de l'alimentation électrique. Tableau de techguided.

Lorsqu’ils fonctionnent à pleine charge, certaines alimentations électriques sont plus bruyantes que d’autres car elles utilisent un ventilateur à des RPM élevés. Si vous travaillez (ou dormez !) à proximité de votre boîtier, cela peut avoir un certain effet, il est donc conseillé de vérifier les décibels dans le manuel 😵.

Lors de la sélection d’une alimentation, nous devons vérifier qu’elle dispose de suffisamment de connecteurs pour tous nos composants. Les cartes graphiques en particulier utilisent des câbles à 8 broches (ou 6+2). Une note importante ici est que pour chaque emplacement d’alimentation de la carte graphique, nous devrions utiliser un câble 8 broches séparé et ne pas utiliser plusieurs sorties du même câble (en cascade). Les câbles à 8 broches sont généralement conçus pour environ 150w. Lors de l’utilisation d’un seul câble pour plusieurs emplacements d’alimentation, la carte graphique peut ne pas recevoir suffisamment de puissance et se limiter.

Étape 6. Boîtier de PC

Enfin, choisir un boîtier de PC n’est pas anodin. Les cartes graphiques peuvent être énormes et certains boîtiers ne les accueilleront pas. Par exemple, un modèle 4090 peut atteindre 36 cm de longueur 👻!

De plus, le montage des cartes graphiques avec des risers PCIe peut nécessiter quelques astuces. Il existe certains boîtiers plus récents qui permettent de monter une carte supplémentaire, notamment des boîtiers à double système comme le Phanteks Enthoo 719. Une autre option est le Lian-Li O11D EVO qui peut accueillir une carte graphique en position verticale avec le support GPU vertical Lian-Li. Je n’ai pas ces boîtiers, donc je ne suis pas sûr de leur compatibilité avec plusieurs cartes 3090 / 4090, par exemple. Cependant, vous pouvez toujours monter une carte graphique en position verticale même si votre boîtier de PC ne le prend pas en charge directement avec le support Lian-Li. Vous devrez percer 2 à 3 trous dans le boîtier, mais ce n’est pas compliqué (guide à suivre!).

Montage d'un Titan Xp en position verticale avec le support vertical Lian Li.

La fin

J’espère que vous avez apprécié la lecture de ce guide et que vous avez trouvé des conseils utiles. Le guide vise à vous aider dans votre recherche sur la construction d’un système multi-GPU, et non à le remplacer. N’hésitez pas à me poser des questions ou à me laisser des commentaires. Si j’ai tort sur quoi que ce soit dans ce qui précède, je vous serais vraiment reconnaissant de me le faire savoir dans un commentaire ou en message privé pour l’améliorer encore plus 🙏!

Note : Sauf mention contraire, toutes les images sont de l’auteur. J’ai inclus quelques liens d’affiliation Amazon. L’achat d’un article via ces liens n’entraîne aucun coût supplémentaire et je pourrais éventuellement recevoir une petite commission.

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Cet article sur l'IA dévoile le secret de l'apprentissage en contexte Comment les modèles de langage encodent les fonctions dans la magie des vecteurs

Dans les modèles de langage transformateur autorégressifs, un mécanisme neuronal est identifié qui représente une fon...

AI

Découvrez SMPLitex un modèle AI génératif et un ensemble de données pour l'estimation de la texture humaine en 3D à partir d'une seule image.

Dans le domaine en constante évolution de la vision par ordinateur et des graphiques, un défi majeur a été la créatio...

Actualités sur l'IA

Système de rétroaction olfactif sans fil permettant aux utilisateurs de sentir dans le monde de la réalité virtuelle.

Des scientifiques ont créé un système de rétroaction olfactive sans fil qui intègre des odeurs dans la réalité virtue...

AI

Ces nouveaux outils pourraient rendre les systèmes de vision par intelligence artificielle moins biaisés.

Deux nouveaux articles de Sony et Meta décrivent des méthodes novatrices pour rendre la détection des biais plus équi...

AI

Comment lire un article sur l'apprentissage automatique en 2023 pour les débutants

J'ai lu des dizaines d'articles sur l'apprentissage automatique et je commence à comprendre comment aborder l'étude d...