Nvidia veut accélérer le transfert de données en connectant les GPU des centres de données aux SSD
Scharon Harding - 17 mars 2022 16 h 49 UTC
Microsoft a introduit DirectStorage sur les PC Windows cette semaine. L'API promet des temps de chargement plus rapides et des graphismes plus détaillés en permettant aux développeurs de jeux de créer des applications qui chargent les données graphiques du SSD directement sur le GPU. Maintenant, Nvidia et IBM ont créé une technologie SSD/GPU similaire, mais ils la ciblent sur les ensembles de données massifs des centres de données.
Selon à un document de recherche repéré par The Register cette semaine. Intitulé « BaM : A Case for Enabling Fine-grain High Throughput GPU-Orchestrated Access to Storage » (PDF), l'article rédigé par des chercheurs de Nvidia, d'IBM et de quelques universités américaines propose un moyen plus efficace d'exécuter des applications de nouvelle génération dans centres de données dotés d'une puissance de calcul et d'une bande passante mémoire massives.
BaM diffère également de DirectStorage en ce que les créateurs de l'architecture du système prévoient de le rendre open source.
L'article indique que si l'accès aux données de stockage orchestré par le processeur convient aux applications GPU "classiques", telles que la formation de réseaux neuronaux denses avec des modèles d'accès aux données "prédéfinis, réguliers et denses", il entraîne trop de "surcharge de synchronisation CPU-GPU et/ ou l'amplification du trafic d'E/S." Cela le rend moins adapté aux applications de nouvelle génération qui utilisent des analyses de graphes et de données, des systèmes de recommandation, des réseaux de neurones de graphes et d'autres "modèles d'accès dépendant des données à grain fin", écrivent les auteurs.
Comme DirectStorage, BaM fonctionne avec un SSD NVMe. Selon l'article, BaM "atténue l'amplification du trafic d'E/S en permettant aux threads GPU de lire ou d'écrire de petites quantités de données à la demande, comme déterminé par l'ordinateur".
Plus précisément, BaM utilise la mémoire embarquée d'un GPU, qui est un cache géré par logiciel, ainsi qu'une bibliothèque logicielle de threads GPU. Les threads reçoivent des données du SSD et les déplacent à l'aide d'un pilote de noyau Linux personnalisé. Les chercheurs ont effectué des tests sur un système prototype avec un GPU Nvidia A100 40 Go PCIe, deux processeurs AMD EPYC 7702 avec 64 cœurs chacun et 1 To de mémoire DDR4-3200. Le système exécute Ubuntu 20.04 LTS.
Les auteurs ont noté que même un SSD "de qualité grand public" pourrait prendre en charge BaM avec des performances d'application "compétitives par rapport à une solution DRAM uniquement beaucoup plus chère".