Accélérez l’inférence des LLM à grande échelle grâce au partage mémoire CPU-GPU sur NVIDIA Grace Hopper
Les modèles linguistiques à grande échelle (LLM) représentent une avancée majeure dans l’intelligence artificielle, mais leur taille croissante pose des défis significatifs en matière d’efficacité d’inférence. Des modèles comme Llama 3 70B ou Llama 4 Scout 109B nécessitent environ 140 Go et 218 Go de mémoire en précision demi-précision (FP16), dépassant largement la capacité des GPU traditionnels. En outre, l’inférence exige des structures supplémentaires comme le cache clé-valeur (KV cache), qui augmente linéairement avec la longueur du contexte et le nombre d’utilisateurs. Par exemple, un contexte de 128 000 tokens pour Llama 3 70B consomme environ 40 Go de mémoire pour un seul utilisateur, rendant impossible le chargement complet du modèle en mémoire GPU dans des environnements de production sans déclencher une erreur de mémoire insuffisante (OOM). La solution réside dans les architectures NVIDIA Grace Hopper et Grace Blackwell, qui intègrent un interconnect NVLink-C2C à 900 Go/s, offrant une bande passante 7 fois supérieure à PCIe Gen 5. Grâce à la cohérence mémoire de NVLink-C2C, le CPU et le GPU partagent un espace d’adressage mémoire unique, permettant un accès transparent aux données sans transferts explicites ni copies redondantes. Cette architecture unifiée permet d’utiliser conjointement la mémoire GPU (jusqu’à 96 Go sur le GH200) et la mémoire CPU (jusqu’à 480 Go LPDDR), élargissant ainsi considérablement la capacité disponible pour traiter des modèles volumineux. Dans un exemple pratique, le chargement de Llama 3 70B sur une machine GH200 échoue initialement en raison du manque de mémoire GPU, générant une erreur OOM. L’outil nvidia-smi confirme que la mémoire GPU est saturée. Pour contourner ce problème, on active la gestion de mémoire gérée via la bibliothèque RAPIDS Memory Manager (RMM). En configurant rmm.reinitialize(managed_memory=True) et en redirigeant l’allocateur de mémoire PyTorch vers RMM, le modèle peut désormais être chargé en utilisant l’espace mémoire combiné CPU-GPU. Le modèle est alors accessible même si sa taille dépasse la mémoire GPU disponible, sans intervention manuelle pour transférer les données. Ce mécanisme permet non seulement de charger des modèles plus grands, mais aussi d’optimiser l’inférence en offrant un mécanisme naturel d’offload du cache KV vers la mémoire CPU, ce qui est crucial pour les scénarios à contexte long. Cette approche s’applique également aux tâches de fine-tuning, de calcul scientifique et d’analyse de données complexes. Des experts du secteur soulignent que cette architecture unifiée réduit la complexité du développement tout en améliorant la scalabilité des applications LLM. NVIDIA, en intégrant une mémoire cohérente et une bande passante élevée, ouvre la voie à une nouvelle génération de systèmes capables de gérer les plus grands modèles sans compromis sur la performance. Pour les développeurs, la documentation de RMM fournit des outils essentiels pour tirer parti pleinement de cette technologie, rendant l’exploitation des LLM à grande échelle plus accessible et efficace.