Ilustración editorial para ¿Cabe este modelo en tu GPU? Cómo estimar la VRAM antes de elegir hardware
Imagen generada con gpt-image-2.5-sunburst para InferamaSource ↗
01

La question ne se résume pas au nombre de paramètres du modèle

Connaître le nombre de paramètres d’un modèle peut donner un premier repère, mais ne répond pas à la question concrète : fonctionnera-t-il sur ce GPU avec la configuration dont j’ai besoin ? Pour le savoir, il faut tenir compte du modèle exact, du format de ses poids, du runtime, du contexte à traiter, du nombre de requêtes simultanées et de la mémoire déjà utilisée par le système.

« Tenir » n’est donc pas une propriété intrinsèque du modèle. Celui-ci peut se charger, puis manquer de mémoire lorsque le contexte s’allonge ; il peut fonctionner pour une requête, mais pas pour plusieurs ; ou il peut démarrer parce qu’une partie du travail est exécutée en RAM, alors que le modèle ne réside pas entièrement dans le GPU. Le résultat peut également changer selon le runtime et ses options.

L’objectif de ce guide est de construire une première estimation, puis de la confronter à un essai contrôlé. L’estimation aide à écarter les configurations manifestement irréalisables et à déterminer ce qu’il faut mesurer. Elle ne remplace pas un essai avec le matériel, le runtime et la charge réels. Elle ne permet pas non plus de déduire la vitesse, la qualité des réponses ou la stabilité sur une longue durée.

02

Ce qui occupe de la mémoire pendant l’exécution

Pour être utile, une estimation doit distinguer au moins quatre éléments : les poids du modèle, le cache KV, les buffers temporaires de calcul et la mémoire nécessaire au runtime, au système et aux autres processus. Cette séparation est conceptuelle : selon le runtime, les options et le matériel, les allocations peuvent être comptabilisées différemment et ne pas apparaître comme des catégories distinctes dans un outil de surveillance.

Les poids sont les données du modèle chargées par le runtime pour effectuer l’inférence. La taille du fichier peut donner une indication, mais elle ne correspond pas automatiquement à la mémoire totale nécessaire. Le format et la quantification influent sur la taille des poids, tandis que le chargement mobilise également de la mémoire de travail et des structures propres au runtime. Ne convertissez pas directement la taille du fichier en quantité de VRAM disponible sans mesurer la configuration choisie.

Le cache KV conserve des informations liées aux tokens déjà traités afin de poursuivre la génération. Son occupation dépend de la charge active et de caractéristiques du modèle, pas seulement de son nom ou du nombre de paramètres. Le contexte prévu et les requêtes parallèles sont des variables à fixer avant l’estimation ; l’architecture et le type de cache configuré peuvent également modifier le résultat.

Les buffers de calcul sont des espaces mémoire temporaires utilisés par les opérations du runtime. Leur taille peut dépendre de l’implémentation et des options activées. Le runtime et le système ont, eux aussi, besoin d’une marge ; en outre, un GPU peut partager sa mémoire avec l’affichage ou d’autres processus. La capacité nominale de la carte ne doit donc pas être considérée comme entièrement disponible pour le modèle.

Inventaire initial de la mémoire

Notez ce que vous savez déjà et ce qu’il faudra vérifier. Ces catégories structurent l’estimation, mais ne signifient pas que le runtime expose séparément chaque poste de consommation.

ComposantCe qui le fait varierÉléments à consigner
PoidsModèle, format et quantificationTaille et format exacts de l’artefact chargé par le runtime
Cache KVContexte actif, requêtes simultanées, architecture et stratégie de cacheConfiguration du contexte, de la concurrence et du cache
Buffers de calculRuntime, opération et options d’exécutionPics observés pendant le chargement et l’inférence
Runtime et systèmeProcessus supplémentaires, mémoire d’affichage et configuration de la machineMémoire libre avant et pendant l’essai
03

Rassemblez les données avant de faire des calculs

Commencez par identifier l’artefact exact du modèle : pas seulement son nom commercial, mais aussi le fichier ou le format que vous allez charger et la configuration associée. Une fiche de configuration peut révéler des dimensions que le nom ne précise pas, comme le nombre de couches ou certaines dimensions et têtes d’attention. Ces données aident à décrire l’architecture, mais ne suffisent pas à calculer la consommation finale : la manière dont le runtime représente et alloue le cache et les buffers compte également.

Définissez ensuite le runtime et ses options. Consignez la version ou la configuration testée, la taille du contexte demandé, la concurrence prévue et tout choix concernant le type ou l’emplacement du cache. Si le runtime permet de placer certaines couches sur le GPU, d’en décharger une partie sur le CPU ou de répartir le travail entre plusieurs cartes, notez également ces choix. Une estimation qui omet ces conditions mélange des scénarios différents.

Enfin, relevez l’état initial de la machine : mémoire totale et disponible du GPU, processus qui l’utilisent déjà et rôle de la carte — réservée à l’inférence ou utilisée aussi pour d’autres tâches. Les outils d’administration du GPU peuvent afficher la mémoire totale, réservée, utilisée et libre. Ces mesures décrivent l’état du périphérique, mais n’expliquent pas à elles seules quel composant du modèle occupe chaque portion de mémoire.

Fiche de configuration

Remplissez cette fiche avant l’estimation. Conservez les mêmes valeurs pendant le premier essai afin de pouvoir attribuer les changements à une variable précise.

  1. 01Identifiez le modèle et le format exact des poids que le runtime chargera.
  2. 02Consignez les paramètres d’architecture disponibles dans la configuration du modèle ; indiquez comme inconnus ceux qui ne sont pas documentés.
  3. 03Précisez le runtime et ses options d’exécution, y compris tout déchargement vers la RAM ou toute répartition entre GPU.
  4. 04Définissez le contexte maximal que vous comptez réellement utiliser et le nombre de requêtes susceptibles d’être actives en même temps.
  5. 05Mesurez la mémoire libre du GPU avant le démarrage et consignez les processus qui l’occupent déjà.
04

Construire une première estimation

Pour une première approximation, considérez que la VRAM requise correspond à la somme des poids résidant sur le GPU, du cache KV hébergé sur le GPU, des buffers et du coût du runtime, à laquelle s’ajoute une marge pour les variations de charge et les autres usages de la carte. Il ne s’agit ni d’une formule exacte ni d’un résultat que l’on peut obtenir à partir de données génériques : les catégories et leur taille dépendent de l’implémentation et de la configuration.

Séparez les valeurs connues des approximations. La taille du fichier est observable, mais ne prouve ni quelle part de cette taille résidera dans le GPU ni quel sera le pic de mémoire. Le contexte et la concurrence souhaités sont des décisions qui vous appartiennent. Pour connaître l’architecture et la stratégie de cache, il faut consulter les informations du modèle et du runtime. Les buffers et la marge doivent souvent être mesurés sur la machine qui exécutera le modèle.

Si une variable importante est inconnue, ne la dissimulez pas derrière un chiffre unique. Il est plus prudent de préparer plusieurs scénarios : par exemple, une configuration avec un contexte modéré et une autre plus exigeante, chacune avec la concurrence requise par le service. Ces descriptions ne garantissent pas une consommation précise ; elles servent à couvrir les conditions d’utilisation pendant l’essai, au lieu de valider uniquement le cas le plus simple.

La documentation d’un runtime peut aider à comprendre les options disponibles et les limites annoncées. Cependant, une capacité déclarée ou une valeur de configuration ne démontre pas que la machine supportera la charge en fonctionnement. Appuyez-vous sur la documentation pour concevoir l’essai, puis sur les mesures pour vérifier la configuration.

05

Le cache KV varie avec le contexte et la charge

Le cache KV mérite une attention particulière, car son occupation est liée au travail actif. Un contexte plus long peut nécessiter de conserver davantage d’informations pour poursuivre la génération ; plusieurs requêtes simultanées peuvent maintenir plusieurs séquences actives. Il est impossible d’en déduire une valeur précise à partir du nom du modèle ou de son nombre de paramètres.

L’architecture compte. Pour obtenir une estimation plus étayée, il faut connaître les attributs de configuration du modèle et la façon dont le runtime gère l’attention et le cache. Même avec ces informations, la valeur observée peut dépendre du type de cache choisi, de l’allocation mémoire et des options du runtime. Une règle générale dépourvue de ces données peut fournir un repère qualitatif, mais ne garantit pas qu’une configuration tiendra.

Les runtimes peuvent proposer différentes stratégies, par exemple des caches dynamiques, statiques, quantifiés ou déchargés vers le CPU. Le changement de stratégie peut modifier la répartition de la mémoire et les conditions d’exécution. Ne comparez pas deux estimations comme si elles étaient équivalentes lorsque la stratégie de cache, le runtime ou ses options diffèrent.

Points à vérifier lorsque le cache augmente

Utilisez ce tableau pour repérer la cause possible d’un changement observé ; il ne suppose aucun taux de croissance universel.

Changement pendant l’essaiCe qui peut évoluerÉléments à maintenir ou à consigner
Augmenter le contexteDavantage de tokens actifs et une allocation du cache différenteContexte demandé et mémoire pendant le chargement et la génération
Augmenter le nombre de requêtes parallèlesDavantage de séquences actives et de cache associé à la chargeNombre de requêtes simultanées et durée de l’essai
Changer de stratégie de cacheReprésentation, emplacement ou allocation mémoire différentsType de cache et options exactes du runtime
Changer de runtimeImplémentation et gestion de la mémoire différentesRecommencer l’essai ; ne pas transposer directement le résultat précédent
06

GPU entièrement utilisé, déchargement vers la RAM ou plusieurs cartes

Une exécution peut utiliser le GPU pour toutes les couches du modèle, n’y placer qu’une partie des couches, décharger une partie du cache vers le CPU ou répartir le modèle entre plusieurs GPU. Certaines de ces options permettent d’essayer des configurations qui ne tiendraient pas sur une seule carte si toutes leurs composantes y résidaient. Elles ne prouvent toutefois pas que le modèle est entièrement présent dans la VRAM et ne permettent pas, à elles seules, de déduire les performances obtenues.

Vérifiez le mode d’exécution dans les options et les journaux du runtime. Si l’outil permet de préciser le nombre de couches sur GPU ou de répartir le travail entre plusieurs cartes, notez les valeurs appliquées. Lorsqu’un déchargement vers le CPU ou une stratégie de cache sur CPU est activé, la mémoire du GPU ne représente plus à elle seule toute la mémoire utilisée par l’exécution. Distinguez « l’application a démarré » de « la configuration respecte les exigences de résidence et de charge définies ».

Avec plusieurs GPU, connaître la somme de leurs capacités nominales ne suffit pas non plus à déterminer comment le modèle sera réparti. La répartition dépend des capacités du runtime et de la configuration choisie. Évaluez chaque périphérique ainsi que l’allocation effective, sans supposer que toute la mémoire cumulée est disponible pour n’importe quelle répartition.

Ce que signifie le démarrage du processus

Classez le résultat en fonction du mode d’exécution vérifié, et pas seulement de l’absence d’erreur au démarrage.

RésultatCe que vous pouvez conclureCe que vous ne pouvez pas conclure
Poids et cache sur le GPU conformément à la configuration prévueDans les conditions observées, l’exécution utilise le GPU conformément aux options vérifiéesQue tout contexte, toute concurrence ou toute durée d’exécution sera supporté
Une partie des couches ou du cache est sur le CPULe runtime a pu poursuivre l’exécution en déchargeant ou en répartissant la mémoireQue le modèle tient entièrement dans la VRAM
Modèle chargé, mais charge prévue non testéeLe chargement a abouti dans ces conditionsQu’un contexte long ou plusieurs requêtes fonctionneront
Échec du chargement ou de l’essaiLa configuration actuelle n’a pas permis de terminer cette exécutionQue le modèle ne puisse fonctionner avec d’autres options ou un autre matériel
07

Vérifier l’estimation à l’aide d’un essai contrôlé

L’essai doit reproduire le scénario que vous envisagez de déployer. Fixez le modèle, son format, le runtime, le contexte, la concurrence ainsi que les options de cache et de déchargement. Consignez l’état initial de la mémoire et tout processus extérieur qui partage le GPU. Si vous modifiez plusieurs options à la fois, il sera difficile de savoir laquelle explique le résultat.

Chargez le modèle et relevez la mémoire utilisée et disponible. Lancez ensuite une requête avec la configuration prévue. Augmentez progressivement le contexte ou la concurrence, une seule variable à la fois, puis notez à quel moment une erreur apparaît, un déchargement est activé ou la consommation approche la limite observée. N’interprétez pas une mesure isolée comme un maximum stable : surveillez la charge pendant l’exécution, car l’utilisation peut différer entre le chargement initial et l’inférence.

Consultez les journaux du runtime pour vérifier la répartition entre GPU et CPU et les options réellement appliquées. Comparez ces observations à celles d’un outil GPU affichant la mémoire totale, utilisée, réservée et libre. Cette mesure décrit l’état du périphérique, mais ne sépare pas toujours les poids, le cache et les buffers. Répétez l’exécution pour repérer les variations sur une même machine et consignez précisément les conditions.

Définissez à l’avance les critères de réussite : le contexte prévu doit être traité, la concurrence requise doit être supportée et l’exécution ne doit pas dépendre d’un déchargement qui n’était pas prévu. Si le système doit conserver une marge pour d’autres processus, faites-en également une exigence. Un essai qui se termine sans erreur, mais ne laisse plus cette marge, peut ne pas convenir à l’usage prévu.

Séquence de vérification

Suivez cette séquence sans modifier plusieurs conditions à la fois. Conservez les journaux afin de pouvoir la répéter après un changement de matériel ou de runtime.

  1. 01Notez le modèle, le format, le runtime, les options de cache, le contexte, la concurrence et le mode de répartition.
  2. 02Mesurez la mémoire libre avant le chargement et consignez les autres processus qui utilisent le GPU.
  3. 03Chargez le modèle, observez la mémoire et les journaux du runtime, puis vérifiez si des couches ou le cache sont placés sur le CPU.
  4. 04Testez d’abord une charge réduite, puis augmentez le contexte en maintenant la concurrence constante.
  5. 05Redémarrez ou rétablissez un état comparable, puis augmentez la concurrence en gardant le contexte fixe.
  6. 06Consignez les erreurs, les pics observés, les déchargements vers la RAM et le résultat de chaque exécution.
  7. 07Répétez l’essai et vérifiez si la marge disponible respecte l’exigence opérationnelle définie.
08

Erreurs fréquentes et limites de l’estimation

L’erreur la plus courante consiste à traiter la taille du fichier comme la consommation totale. Cette donnée ne comprend pas nécessairement le cache, les buffers, le runtime ni la mémoire déjà utilisée par le système. Une autre erreur consiste à comparer la charge à la capacité nominale du GPU sans mesurer la mémoire réellement disponible lorsque la machine est dans son état d’utilisation habituel.

Il est également facile de vérifier uniquement le démarrage et d’en déduire qu’un contexte étendu ou plusieurs requêtes fonctionneront. Le chargement initial et l’exécution sous charge sont deux étapes différentes de l’essai. Si vous changez le contexte, la concurrence, le type de cache, le runtime ou la répartition entre GPU et CPU, vous testez une autre configuration.

Enfin, ne transposez pas sans précaution un chiffre obtenu avec un runtime vers un autre. Les outils peuvent gérer la mémoire différemment et ne pas exposer les mêmes métriques. Les valeurs observées décrivent la machine et les options testées ; elles ne garantissent pas le même résultat sur un autre système ni une exécution stable indéfiniment. L’essai ne permet pas non plus d’établir la qualité des réponses ou une vitesse suffisante pour un cas d’usage donné.

Décision pratique

L’estimation sert à orienter la prochaine étape. Si les éléments recueillis ne répondent pas à une condition essentielle, la conclusion appropriée est « à tester », et non « ça tient ».

SituationDécision raisonnableÉtape suivante
L’estimation dépasse nettement la mémoire disponible avant même l’ajout du cache et des buffersÉcarter cette configuration sur ce GPU ou revoir les exigencesÉvaluer un autre format, une autre répartition ou un autre matériel, puis mesurer à nouveau
Le chargement initial aboutit, mais le contexte requis n’a pas été testéNe pas considérer le cas d’usage comme validéAugmenter le contexte de manière contrôlée
Le processus fonctionne grâce à un déchargement vers le CPU qui n’était pas prévuNe pas affirmer que le modèle tient entièrement dans la VRAMVérifier les options du runtime et décider si le déchargement est acceptable
Le contexte et la concurrence requis réussissent plusieurs essais avec une marge suffisanteLa configuration dispose d’éléments pratiques probants pour cette machine et ce runtimeDocumenter les conditions et recommencer après tout changement de composant
09

Derniers critères pour choisir ou réutiliser du matériel

Avant d’acheter un GPU, définissez une charge représentative et vérifiez si la mémoire disponible peut accueillir les composants que vous souhaitez y garder, ainsi que la marge nécessaire au système. Si l’estimation dépasse manifestement la capacité utilisable, inutile de prétendre à une précision illusoire : cette combinaison exige de revoir les contraintes, la répartition ou le matériel. Si la configuration se situe près de la limite, un essai sur la machine exacte devient particulièrement important.

Pour réutiliser un GPU, mesurez son état réel et vérifiez quels autres usages partagent sa mémoire. Ne considérez pas sa capacité totale comme entièrement libre. Si vous acceptez une exécution partielle en RAM ou une répartition entre plusieurs cartes, consignez ce choix comme une partie de la configuration, et non comme un détail invisible. Pour comparer des options, utilisez la même charge et les mêmes critères.

Pour approfondir l’exécution de modèles locaux, vous pouvez consulter le guide consacré aux modèles locaux, le comparateur et la section de découverte. Appliquez la même méthode à chaque option : identifiez précisément la configuration et vérifiez les conditions pertinentes pour votre cas. La conclusion utile n’est pas une valeur universelle de VRAM, mais un résultat reproductible pour un modèle, un runtime, un matériel et une charge définis.

Questions ouvertes

  • La documentation citée ne fournit pas de formule universelle permettant de calculer la consommation totale de VRAM pour n’importe quel modèle, runtime et matériel.
  • La distinction observée entre poids, cache KV, buffers et mémoire du runtime dépend de la façon dont le runtime gère et expose ses allocations.
  • Les valeurs d’utilisation peuvent varier d’une exécution à l’autre et d’un runtime à l’autre ; les essais doivent être répétés sur la machine et avec les options prévues.
  • Les paramètres disponibles dans la configuration du modèle ne suffisent pas, à eux seuls, pour déduire la consommation finale sans connaître la stratégie du runtime.
10

Poursuivre l’exploration

10

Sources consultées

03

Corrections et transparence

Si vous repérez une information incorrecte ou obsolète, envoyez-nous la page et la source à vérifier.

Proposer une correction