免费工具
大语言模型显存计算器:您的模型能装进 GPU 吗?
估算模型在推理或微调时需要多少显存:从权重、KV 缓存到运行时开销。每个数字背后的计算方法见下文。
估算显存
122GB
- 权重
- 71 GB
- KV 缓存
- 43 GB
- 运行时开销
- 8.1 GB
可装下的最低价配置
-
US$3,090/月
-
US$4,590/月
-
US$5,190/月
估算时预留约 8% 的显存空闲。实际占用取决于框架、批次大小和序列长度。
我们的大语言模型(LLM)显存计算器回答的是任何 GPU 选型的第一个问题:运行或微调一个模型需要多少显存?估算会把占用显存的各部分相加(模型权重、KV 缓存和运行时开销),训练时还要再加上梯度和优化器状态。本页解释了其中的公式,方便您核对结果,或为任意模型重新计算。
LLM 显存计算器的工作原理
对于推理,估算公式为:
GPU memory ≈ weights + KV cache + overhead (10–20%)
选定模型和精度后,权重就固定了。KV 缓存随上下文长度和同时处理的请求数增长。额外开销涵盖运行时分配的其他所有显存。上下文较短时,权重占大头;上下文很长或并发很高时,KV 缓存可能反超权重。微调还要加上梯度和优化器状态,这就是训练一个模型所需的显存是推理的数倍的原因。
模型权重:参数量 × 每个参数的字节数
每个参数都以某种数值格式存储,格式决定了它的大小:
| 精度 | 每个参数的字节数 | 8B 模型 | 70B 模型 |
|---|---|---|---|
| BF16 / FP16 | 2 | 约 16 GB | 约 140 GB |
| FP8 / INT8 | 1 | 约 8 GB | 约 70 GB |
| FP4 / INT4 | 0.5 | 约 4 GB | 约 35 GB |
量化格式还要存储缩放因子,而且部分层往往保留为更高精度,因此实际的 4 位检查点会大出几个百分点。较低的精度能节省显存和带宽,代价是一定的精度损失,其大小取决于模型和量化方法;我们的 FP8 与 FP4 精度指南介绍了其中的权衡。
KV 缓存:随每个 token 增长的显存
在生成过程中,模型会保存上下文中每个 token 的注意力键和值,以免重复计算。每个 token 的开销为:
KV cache per token = 2 × layers × KV heads × head dimension × bytes per value
系数 2 对应键和值两部分。再乘以在途 token 数:上下文长度 × 并发序列数。
计算示例:采用分组查询注意力的 70B 模型
以一个 70B 模型为例:80 层,8 个 KV 头,头维度为 128,缓存采用 BF16(每个值 2 字节):
- 2 × 80 × 8 × 128 × 2 = 327,680 字节,即每个 token 约 320 KB。
- 一个 32K token(32,768 个)的序列:约 10 GB。
- 8 个并发的 32K 序列:约 80 GB,超过该模型的 FP8 权重。
正是分组查询注意力让这一数字保持在可控范围内:8 个 KV 头由所有查询头共享。如果每个查询头都配一个 KV 头(典型的 70B 模型有 64 个查询头),所需显存将是 8 倍。以 FP8 存储缓存可以将其减半,而在推理服务器中限制上下文长度或并发数,则能为它设定上限。
运行时开销与激活值
即使在空闲时,监控工具显示 GPU 显存几乎被占满也是意料之中的。vLLM 等推理服务器会在启动时预留固定比例的显存,并用 KV 缓存块填满;预留空间的大小决定了能同时运行多少个请求。
微调所需显存:全参数微调、LoRA 与 QLoRA
- 全参数微调
在使用 AdamW 和混合精度时,不计激活值,每个参数大约需要 16 字节:BF16 权重 2 字节,梯度 2 字节,FP32 主权重副本 4 字节,两个优化器矩 8 字节。对于 70B 模型,这约为 1.1 TB,需要一台采用分片(FSDP 或 ZeRO-3 )的 8 卡服务器,例如 8× B200(1.44 TB)或 8× B300(2.3 TB)。 - LoRA 冻结基座模型,只训练小型适配器矩阵,参数量通常远低于总参数的 1%。所需显存大致为冻结的权重(70B 模型在 BF16 精度下约 140 GB),加上适配器及其梯度和优化器状态,再加上激活值。
- QLoRA
以 4 位精度加载冻结的权重,每个参数约 0.5 字节,因此 70B 基座模型在计入适配器和激活值之前约占 35–40 GB。在中等序列长度下,一张 80 GB 的 H100 或 96 GB 的 RTX PRO 6000 就能胜任。
激活值随批次大小和序列长度增长,在长序列上可能超过权重。梯度检查点以额外的计算换取大幅减少的激活值显存。
将模型拆分到多张 GPU 上
当总量超出单张 GPU 的容量时,张量并行会把每一层的权重和 KV 缓存拆分到多张 GPU 上,每张 GPU 各承担两者的约 1/N,外加自身的开销。每张 GPU 请保留约 8% 的空闲显存,与计算器采用的余量相同。BF16 精度的 70B 模型运行在 8× H100 服务器(共 640 GB)上时,每张 80 GB 的 GPU 上约有 17.5 GB 权重,大部分显存可以留给 KV 缓存和长上下文。张量并行在每一层都要交换数据,因此在通过 NVLink 互联的 GPU 上运行效果最好,例如我们的 NVIDIA HGX 8 卡服务器。
任何显存估算都有局限
- 混合专家(MoE)模型每个 token 只运行少数几个专家,但所有专家都必须常驻显存。请按总参数量而非激活参数量来估算。
- 框架开销各不相同,随推理引擎及其版本、内核和设置而变化。运行同一模型的两台服务器,显存占用可能相差数 GB。
- 长上下文会改变各部分的比重:从 128K token 起,KV 缓存可能超过权重。滑动窗口注意力或潜在注意力等注意力变体,会改变每个 token 的计算公式。
- 多模态模型还要加上视觉或音频编码器及其激活值。
请把结果当作规划用的数字,并通过真实的负载测试加以确认。如需按模型规模逐一分析,请阅读我们的大语言模型显存指南。
哪款 GPU 能装下您的估算结果
在保留约 8% 空闲显存(与计算器采用的余量相同)的前提下,每款单张 GPU 能容纳的最大估算值如下:
| 您的估算值 | 单张 GPU | 显存 |
|---|---|---|
| 最多约 29 GB | GeForce RTX 5090 | 32 GB GDDR7 |
| 最多约 44 GB | L40S | 48 GB GDDR6 |
| 最多约 73 GB | H100 SXM | 80 GB HBM3 |
| 最多约 88 GB | RTX PRO 6000 Blackwell | 96 GB GDDR7 |
| 最多约 129 GB | H200 | 141 GB HBM3e |
| 最多约 165 GB | B200 | 180 GB HBM3e |
| 最多约 248 GB | B300 | 288 GB HBM3e(约 270 GB 可用) |
超出这一范围时,一台 8 卡服务器最多可容纳 2.3 TB(HGX B300 或 AMD Instinct MI355X 上的 8 × 288 GB)。每个 GPU 页面,例如 H100、H200、B200 和 B300,都列出了其显存能装下什么;您也可以浏览我们出租的所有 GPU。
运行 70B 模型需要多少显存?
上下文长度如何影响显存占用?
KV 缓存随在途 token 数线性增长,在途 token 数即上下文长度乘以并发序列数。对于采用分组查询注意力的 70B 模型,BF16 精度下每个 token 约占 320 KB,因此一个 32K token 的序列会增加约 10 GB。
为什么要在权重和 KV 缓存之外再加 10–20 %?
运行时需要显存来存放 CUDA 上下文、引擎工作空间和激活值,还有碎片占用。具体数量取决于推理引擎、其设置和批次大小,因此预留余量可以避免在负载下出现显存不足(out of memory)错误。
微调需要多少显存?
混合专家(MoE)模型需要的显存更少吗?
就权重而言并非如此:尽管每个 token 只运行少数几个专家,所有专家都必须加载。请按总参数量估算 MoE 模型;较小的激活参数量减少的是每个 token 的计算量,而不是显存。
可以把一个模型拆分到多张 GPU 上吗?
可以。张量并行把权重和 KV 缓存分摊到一台服务器的各张 GPU 上,每张 GPU 约承担总量的 1/N,外加自身的开销;每张 GPU 请保留约 8% 的空闲显存。通过 NVLink 互联的 8 卡服务器是这种用法的常见选择。