@akshay_pachaar: 在LLM推理中,VRAM都去哪儿了?(GPU内存的4种使用方式)加载模型只是内存故事的一部分…

X AI KOLs Timeline 新闻

摘要

本文解释了在大语言模型(LLM)推理过程中GPU内存的使用方式,将其分解为四个关键组件:模型权重、KV缓存、激活值/工作区和运行时开销。文章强调了量化在优化内存使用以提升性能方面的重要性。

在LLM推理中,VRAM都去哪儿了? (GPU内存的4种使用方式) 加载模型只是内存故事的一部分。 一旦推理开始,GPU内存被分配到多个组件,其中一些会随着上下文长度、批处理大小和并发性的增加而不断增长。 图形将其分解为四个有用的部分: → 模型权重是大部分固定的部分。一旦模型加载,其内存占用大致保持不变。这里最大的杠杆是精度。从FP16/BF16切换到INT8或INT4减少了存储每个参数所需的字节数。 → KV缓存随着生成的继续而增长。对于每个之前的token,模型存储键和值张量,以便注意力可以重用它们,而不是重新计算整个序列。更长的上下文意味着更大的KV缓存,更多的并发请求意味着更多的活跃缓存在内存中。 → 激活值和工作区保存运行注意力、MLP层、内核和其他计算时所需的临时中间值。此内存在推理步骤中重用,但其大小仍可能随序列长度、批处理大小和执行的内核而变化。 → 运行时开销来自模型本身之外的一切。CUDA内核、内存分配器、元数据、服务引擎缓冲区和其他运行时结构都会消耗一些VRAM。它通常比其他部分小,但绝不是零。 这就是为什么“模型适合GPU”和“工作负载适合GPU”是两个不同的陈述。 模型可能加载顺利,但当您增加上下文窗口、同时服务更多用户或增加批处理大小时,可能会耗尽内存。 这也解释了为什么量化可以帮助,而不仅仅是适应更大的模型。缩小权重占用空间可以腾出空间,用于更大的KV缓存、更多的并发请求或更大的批处理。 这也是更广泛的GPU教训。 性能不仅仅取决于GPU能执行多少算术运算。还取决于哪些数据占用内存,推理过程中移动了多少数据,以及这些数据可以重用的频率。 我撰写了关于GPU实际工作原理的完整解析,以及为什么内存移动位于LLM推理性能的核心。 文章引用如下。
查看原文
查看缓存全文

缓存时间: 2026/09/17 18:25

LLM推理过程中,VRAM都用到哪里了?

(GPU内存的四种用途)

加载模型只是内存故事的第一部分。

一旦推理开始,GPU内存会被分配到多个组件,其中一些会随着上下文长度、批处理大小和并发请求数的增加而持续增长。

这张图将其分为四个关键部分:

→ 模型权重是相对固定的部分。模型加载后,其内存占用基本保持不变。这里最大的调整变量是精度。从FP16/BF16转为INT8或INT4可以减少存储每个参数所需的字节数。

→ KV缓存会随着生成过程而增长。对于每个先前的token,模型会存储键和值张量,以便注意力机制可以重复使用它们,而无需重新计算整个序列。更长的上下文意味着更大的KV缓存,更多的并发请求意味着内存中存在更多活跃的缓存实例。

→ 激活值与工作区保存了运行注意力机制、MLP层、内核及其他计算时所需的临时中间值。这部分内存在不同推理步骤间会被复用,但其大小仍可能随序列长度、批处理大小以及执行的内核变化而变化。

→ 运行时开销来自模型本身之外的所有部分。CUDA内核、内存分配器、元数据、服务引擎缓冲区以及其他运行时结构都会消耗一些VRAM。这部分通常比其他部分小,但绝非为零。

这就是为什么“模型能装进GPU”和“工作负载能装进GPU”是两个不同的概念。

模型可能轻松加载,但当你增加上下文窗口、同时服务更多用户或加大批处理大小时,就可能会出现内存不足的情况。

这也解释了为什么量化带来的好处不止于能容纳更大的模型。减小权重占用空间可以腾出内存,用于更大的KV缓存、更多并发请求或更大的批处理。

这也是更广泛的GPU经验教训。

性能不仅取决于GPU能执行多少运算,还取决于什么数据占据了内存、推理过程中移动了多少数据,以及这些数据能被复用的频率。

我已经撰写了关于GPU实际工作原理以及为什么内存移动是LLM推理性能核心的完整解析。

文章全文如下。

相似文章

LLM的GPU内存计算 (2026版)

Reddit r/LocalLLaMA

一份实用指南,解释了如何根据参数量和量化级别计算LLM的VRAM需求,以及KV缓存、激活值和批处理带来的额外开销。

内存

Reddit r/artificial

解释了为什么由于KV缓存随上下文长度和并发用户数扩展,LLM推理越来越受内存带宽限制,以及像vLLM和PagedAttention这样的系统如何提高内存利用率。