Tuesday, November 3, 2026
Home » GPU Direct Storage : l’infrastructure pour l’entraînement des modèles

GPU Direct Storage : l’infrastructure pour l’entraînement des modèles

Le goulot d’étranglement d’un GPU est rarement le GPU lui-même. Les GPU modernes disposent d’une capacité de calcul considérable. Le vrai goulot, c’est l’acheminement des données : transférer les données d’entraînement du stockage vers la mémoire GPU suffisamment vite. Si le stockage ne suit pas, des GPU coûteux restent inactifs.

GPU Direct Storage (GDS) répond à ce problème. Il permet aux GPU d’accéder directement au stockage, sans passer par le CPU ni la mémoire système. Les données circulent directement du stockage vers la mémoire GPU, ce qui réduit la latence et augmente le débit.

Pour les architectes d’infrastructure, il est essentiel de comprendre GDS. Cet article explique son fonctionnement, l’infrastructure de stockage nécessaire et la manière de planifier un déploiement GDS.

Comparaison des chemins de données en E/S standard et avec GPUDirect Storage : contournement du CPU et gain de latence

Le goulot d’étranglement de l’acheminement des données : pourquoi GPU Direct Storage compte

L’entraînement de grands modèles implique de faire transiter d’énormes volumes de données dans les pipelines. Les jeux de données peuvent atteindre plusieurs téraoctets, et l’entraînement charge des gigaoctets par seconde depuis le stockage. La vitesse d’acheminement des données détermine le débit d’entraînement.

Traditionnellement, le chemin entre le stockage et le GPU est indirect. Le stockage est relié aux serveurs de calcul via le réseau. Les données passent du stockage à la mémoire du CPU, puis transitent par le bus PCI jusqu’à la mémoire GPU. Chaque étape ajoute de la latence et des limitations.

Conséquence : les charges d’entraînement sont limitées par les E/S, et non par les GPU. Les GPU pourraient traiter les données plus vite que les pipelines ne les fournissent. Ils restent alors inactifs en attendant les lots de données. L’entraînement ralentit, et vous payez du temps GPU sans l’utiliser pleinement.

Le problème s’amplifie avec l’échelle. Avec 100 GPU, 20 % d’inactivité équivaut à gaspiller la capacité de 20 GPU. Sur un mois, le gaspillage est considérable.

GPU Direct Storage optimise ce chemin. Les données sont acheminées directement vers la mémoire GPU au lieu de transiter par la mémoire du CPU. La latence diminue, le débit augmente et les GPU reçoivent les données plus rapidement.

Chemin des données GPUDirect Storage : du NVMe à la mémoire GPU via le moteur DMA, sans passer par la RAM système

Comment fonctionne GPU Direct Storage : vue d’ensemble de l’architecture

GPU Direct Storage s’appuie sur plusieurs couches matérielles et logicielles pour permettre des transferts directs entre GPU et stockage.

Côté matériel, les GPU prennent en charge l’accès direct à la mémoire (DMA), c’est-à-dire le transfert de données sans intervention du CPU. Les interfaces de stockage modernes comme NVMe over Fabrics (NVMe-oF) permettent des transferts initiés par le GPU. Des interconnexions haut débit comme InfiniBand ou Ethernet assurent le transport.

Côté logiciel, la bibliothèque cuFile de NVIDIA et des outils similaires fournissent des API d’accès direct à la mémoire GPU. Au lieu d’utiliser les E/S de fichiers standard via le CPU, les applications appellent les fonctions cuFile pour effectuer des transferts directs.

L’avantage pratique : le déplacement des données est découplé du traitement par le CPU. Le CPU n’intervient plus ; le GPU et le système de stockage communiquent directement. Les ressources CPU sont libérées et le pipeline peut fonctionner de manière indépendante.

Point important : GDS est surtout efficace avec des systèmes de stockage conçus pour lui. Tous les systèmes n’exposent pas les interfaces nécessaires ni n’offrent les performances requises.

Les exigences d’infrastructure de stockage pour GPU Direct Storage

Concevoir des clusters GPU compatibles GDS implique des choix d’architecture précis.

D’abord, le stockage doit prendre en charge les protocoles nécessaires. NVMe-oF (NVMe over Fabrics) est le plus courant : les systèmes de stockage exposent du NVMe sur le réseau, ce qui permet une communication GPU-stockage via des protocoles rapides.

Ensuite, le stockage doit offrir un débit suffisant pour saturer les interconnexions. Avec de l’Ethernet 100 Gb/s entre GPU et stockage, un stockage qui ne délivre que 50 Gb/s sous-exploite la liaison. Le stockage doit être à la hauteur du réseau et des GPU.

Troisièmement, la latence du stockage doit être suffisamment faible. Les latences des SSD, de l’ordre de la microseconde, conviennent. Des latences plus élevées peuvent être inadaptées à GDS.

Enfin, le stockage doit correspondre aux schémas d’accès de vos entraînements, qui combinent de grandes lectures séquentielles et des mélanges aléatoires. Optimisez-le pour ces schémas.

Compatibilité et écosystème

GDS n’est pas pris en charge partout. Identifiez vos exigences de compatibilité avant toute planification.

La prise en charge de GDS concerne principalement les GPU NVIDIA. Les GPU AMD et les autres accélérateurs suivent des approches différentes. Utiliser plusieurs types d’accélérateurs peut empêcher de généraliser GDS.

La prise en charge par les systèmes de stockage varie fortement. Certains systèmes d’entreprise, notamment ceux conçus pour le HPC, la gèrent bien ; d’autres n’offrent pas les interfaces nécessaires. Évaluez explicitement la compatibilité avant le déploiement.

La prise en charge au niveau applicatif compte aussi. Tous les frameworks d’entraînement ne gèrent pas GDS automatiquement. TensorFlow et PyTorch disposent de plugins qui nécessitent une configuration explicite. Les E/S de fichiers standard n’en bénéficient pas d’office : les applications doivent être modifiées pour utiliser les API directes.

Cette complexité rend GDS surtout pertinent pour les organisations dont les charges de travail et l’infrastructure sont standardisées. Des charges très diverses sur plusieurs types d’accélérateurs peuvent rendre GDS impraticable.

Impact sur les performances et mesure

GDS peut améliorer sensiblement les performances d’entraînement, mais l’ampleur du gain varie.

Pour un entraînement fortement limité par les E/S, où les pipelines constituent le goulot et où les GPU ne sont pas pleinement utilisés, GDS peut augmenter le débit de 20 à 50 %. Le gain provient de la suppression des goulots liés au CPU et à la mémoire.

Pour un entraînement limité par les GPU, où c’est le calcul et non l’acheminement qui bride, GDS n’apporte qu’une amélioration minime. Les GPU sont déjà exploités ; un acheminement plus rapide n’accélère rien.

GDS introduit par ailleurs une charge supplémentaire. L’accès direct au stockage exige des API spécifiques et une configuration adéquate. Un système mal configuré peut même perdre en performances.

Mesurez l’impact grâce à des benchmarks rigoureux. Comparez des tâches avec et sans GDS sur des données et des charges identiques. Mesurez l’utilisation des GPU, le débit et la durée d’entraînement. Vous saurez ainsi si GDS profite à vos charges de travail.

Planifier un déploiement de stockage pour GPU Direct Storage

Si vous planifiez une infrastructure d’entraînement GPU à grande échelle compatible GDS, suivez ces étapes :

D’abord, évaluez vos charges de travail. Sont-elles limitées par les E/S ou par les GPU ? Des charges fortement limitées par les GPU ne justifient pas forcément la complexité de GDS. Pour les charges limitées par les E/S, GDS devient stratégique, avec une infrastructure offrant des performances extrêmes pour l’IA.

Ensuite, choisissez un stockage qui prend explicitement en charge GDS. C’est non négociable. Interrogez les fournisseurs sur cette prise en charge, demandez la documentation et testez avec vos charges avant de déployer des solutions de stockage IA haute performance.

Troisièmement, assurez-vous de disposer d’interconnexions adaptées. GDS exige une connectivité GPU-stockage à haut débit et faible latence. L’Ethernet standard peut ne pas suffire ; InfiniBand peut s’avérer nécessaire, avec un stockage évolutif pour les pipelines d’IA (en anglais).

Enfin, prévoyez l’effort de configuration. GDS ne se règle pas une fois pour toutes. Des performances optimales exigent une configuration soignée, la prise en charge par les applications et parfois des développements spécifiques.

Bâtir une infrastructure d’entraînement haute performance

GDS n’est qu’un composant d’une infrastructure d’entraînement haute performance. Bien mis en œuvre, il améliore l’efficacité et réduit les délais. Mais il ne convient pas à toutes les organisations.

Si votre organisation exploite de l’entraînement GPU à grande échelle avec des goulots d’E/S, GDS mérite d’être évalué. Travaillez avec vos fournisseurs pour déterminer s’il est praticable, mesurez soigneusement son impact réel et, si les bénéfices sont significatifs, investissez dans une mise en œuvre rigoureuse.

Si GDS n’est pas praticable, en raison de charges ou de systèmes incompatibles, concentrez-vous sur d’autres optimisations : préchargement, mise en cache, meilleure organisation des données et ordonnancement plus intelligent.

Les organisations les plus efficaces identifient précisément leurs goulots d’étranglement et les traitent. GDS est un outil puissant pour lever les goulots d’E/S lorsque c’est la bonne solution.

Pour aller plus loin