À suivreGuide suivant
Estimation de la mémoire GPU nécessaire pour les LLMs
Technique
GUIDE Technique
Comment les frameworks d'IA allouent, réutilisent et récupèrent la mémoire limitée d'un GPU, et pourquoi les lacunes restantes (fragmentation) peuvent provoquer des erreurs de mémoire insuffisante, même s'il reste techniquement beaucoup de mémoire.
Écoutez ce guideNarré par l'IA · ~2 min
Understanding it is key to fitting big models and avoiding mysterious crashes.
La mémoire GPU est fixe et précieuse : une carte peut avoir un total de 24, 80 ou 192 Go, partagés par poids de modèle, activations, dégradés, états d'optimisation et tampons temporaires. Appeler le pilote pour allouer de la mémoire à chaque opération serait lent, c'est pourquoi des frameworks comme PyTorch utilisent un allocateur de mise en cache qui récupère les gros blocs à l'avance et distribue les sous-éléments, puis conserve les éléments libérés dans un pool pour les réutiliser. Le problème est la fragmentation : à mesure que des tenseurs de différentes tailles sont alloués et libérés, l'espace libre se divise en morceaux dispersés. Vous pouvez disposer de 5 Go d'espace libre au total sans toutefois parvenir à allouer un tenseur contigu de 2 Go, car aucun espace n'est assez grand. C'est pourquoi la formation peut planter en cas d'erreurs de mémoire insuffisante malgré la marge apparemment disponible.
A training team examines allocator statistics before testing expandable segments on a variable-batch workload.
A developer uses memory_summary and a memory snapshot to investigate active tensors and inactive split blocks.
An inference team uses vLLM’s paged KV-cache management to reduce cache-allocation waste.
A training team lowers batch size or checkpoints activations after confirming live tensor memory is the limiting factor.
La gestion de la mémoire devient plus intelligente et plus paginée, inspirée des systèmes d'exploitation. Des techniques telles que les répartiteurs de type mémoire virtuelle et l'attention paginée (utilisées pour gérer le cache KV pendant l'inférence) réduisent considérablement le gaspillage et la fragmentation. Attendez-vous à ce que les frameworks soient par défaut des allocateurs extensibles et défragmentés, une meilleure visibilité grâce aux profileurs intégrés et un couplage plus étroit avec le déchargement et le recalcul afin que le système jongle automatiquement avec le GPU, le CPU et la mémoire disque pour maintenir une utilisation élevée et des plantages rares.
Newsletter gratuite
Trois histoires d'IA vérifiées chaque matin de la semaine, écrites dans un anglais simple. Gratuit pour toujours, sans publicité.
Un e-mail chaque jour de la semaine. Désabonnez-vous en un clic. Nous ne vendons ni ne partageons jamais votre adresse.
Testez-vous
Commentaires instantanés sur chaque réponse et un certificat partageable avec une pièce d'identité vérifiable une fois que vous avez réussi un cours.
Soutenez l’enseignement gratuit de l’IA. AI Understanding est une organisation à but non lucratif 501(c)(3) : pas de publicité, pas de paywall, jamais. Faire un don
Comment les frameworks d'IA allouent, réutilisent et récupèrent la mémoire limitée d'un GPU, et pourquoi les lacunes restantes (fragmentation) peuvent provoquer des erreurs de mémoire insuffisante, même s'il reste techniquement beaucoup de mémoire. Le comprendre est essentiel pour installer de gros modèles et éviter des accidents mystérieux.
La fragmentation signifie que la mémoire totale libre est suffisante, mais elle est divisée en morceaux, donc aucun espace n'est assez grand pour un gros tenseur.
L'appel de cudaMalloc/cudaFree pour chaque opération est lent, donc l'allocateur de mise en cache récupère les gros blocs et réutilise ceux libérés d'un pool.
Allocator statistics and snapshots help distinguish fragmentation from live tensors or other allocations. The error alone does not prove a single cause.
Expandable segments can reduce waste for selected allocation patterns. Availability and benefit depend on allocator configuration and workload.
PagedAttention stocke le cache KV dans des pages de taille fixe comme la mémoire virtuelle du système d'exploitation, réduisant ainsi la fragmentation et répondant efficacement à de nombreuses requêtes.
Continuez à apprendre
Plus de guides sélectionnés pour ce sujet
À suivreGuide suivant
Estimation de la mémoire GPU nécessaire pour les LLMs
Technique