La VRAM (Video RAM) est constituée de puces mémoire physiquement séparées, soudées sur la carte GPU, distinctes de la RAM principale de votre système. La raison de cette séparation est la bande passante — la connexion entre un GPU et sa VRAM est massivement plus large que la connexion entre un CPU et la RAM système. Un NVIDIA H100 atteint plus de 3,3 To/s de bande passante mémoire vers sa pile HBM3 (High Bandwidth Memory), tandis qu'un système DDR5 typique pourrait atteindre 50 à 80 Go/s. Pour l'inférence en IA, où le goulot d'étranglement est la lecture de milliards de paramètres de poids depuis la mémoire pour chaque token généré, cette différence de bande passante explique pourquoi exécuter un modèle sur un GPU est considérablement plus rapide que sur un CPU — même quand le CPU dispose de beaucoup de RAM système.
Calculer les besoins en VRAM d'un modèle est de l'arithmétique simple avec quelques subtilités. La formule de base : multipliez le nombre de paramètres par le nombre d'octets par paramètre selon votre format de précision. Un modèle de 7 milliards de paramètres en FP16 (2 octets par paramètre) nécessite 14 Go juste pour les poids. Mais les poids ne sont pas les seuls à occuper la VRAM. Pendant l'inférence, vous avez aussi besoin d'espace pour le cache KV — les paires clé-valeur stockées issues des calculs d'attention qui croissent avec la longueur du contexte. Pour un modèle de 7 milliards de paramètres exécuté à un contexte de 4 096 tokens, le cache KV pourrait ajouter 1 à 2 Go. Étendez cela à 128 000 tokens et le cache KV seul peut consommer 20 à 40 Go. C'est pourquoi les modèles à long contexte nécessitent significativement plus de VRAM que leur nombre de paramètres ne le suggère, et pourquoi les limites de fenêtre de contexte existent même sur du matériel puissant.
L'entraînement est beaucoup plus gourmand en VRAM que l'inférence. Au-delà du stockage des poids du modèle, l'entraînement nécessite de stocker les états de l'optimiseur (Adam conserve deux copies supplémentaires de chaque paramètre — soit 3 fois la taille des poids juste là), les gradients (encore 1 fois), et les activations (les valeurs intermédiaires nécessaires à la rétropropagation, qui évoluent avec la taille du lot et la longueur de la séquence). En règle générale : l'entraînement en BF16 avec l'optimiseur Adam nécessite environ 18 à 20 octets par paramètre. Un modèle de 7 milliards de paramètres a besoin d'environ 140 Go rien que pour l'état d'entraînement — plus que ce que n'importe quel GPU grand public possède. C'est pourquoi des techniques comme FSDP (Fully Sharded Data Parallelism), le gradient checkpointing et l'entraînement en précision mixte existent : elles distribuent ou réduisent l'utilisation mémoire pour que vous puissiez entraîner sur le matériel dont vous disposez réellement, au prix de la vitesse ou de la surcharge de calcul.
Le paysage de la VRAM grand public définit ce qui est pratiquement réalisable pour l'IA locale. La RTX 4090 de NVIDIA à 24 Go est le haut de gamme — assez pour exécuter confortablement des modèles quantifiés jusqu'à environ 14 milliards de paramètres, ou faire tenir un modèle de 30 milliards en Q4 avec un réglage minutieux. La RTX 4070 Ti Super à 16 Go gère bien les modèles de 7 à 13 milliards. La RTX 4060 à 8 Go est le minimum pour une inférence LLM locale utilisable — vous êtes limité aux petits modèles ou aux modèles agressivement quantifiés. La RX 7900 XTX d'AMD offre 24 Go à un prix inférieur mais avec un support logiciel plus faible pour les charges de travail IA. Côté centre de données, le NVIDIA H100 est disponible en 80 Go, le H200 en 141 Go, et le MI300X d'AMD offre 192 Go de HBM3. Pour les modèles trop grands pour un seul GPU, le parallélisme tensoriel répartit le modèle sur plusieurs GPU — mais cela nécessite des interconnexions rapides (NVLink, InfiniBand) entre les GPU, sinon la surcharge de communication tue la performance.
Une nuance que les praticiens apprennent à leurs dépens : votre VRAM totale n'est pas entièrement disponible. Le pilote GPU, les processus d'affichage (s'il alimente aussi un moniteur) et la surcharge du contexte CUDA consomment chacun de la mémoire. Sur une carte de 24 Go, vous pourriez en réalité avoir 22 à 23 Go utilisables. Et la fragmentation de la VRAM peut vous empêcher d'allouer un seul grand bloc contigu même quand la mémoire libre totale semble suffisante. Des outils comme nvidia-smi vous montrent l'utilisation actuelle de la VRAM, mais le nombre qui compte est le plus grand bloc libre contigu, pas juste le montant total libre. C'est pourquoi les moteurs d'inférence échouent parfois à charger un modèle qui devrait théoriquement tenir — la mémoire est là mais dispersée.