piapia123
zh

大模型显存占用估算

网络

所有处理都在浏览器本地完成,数据不上传服务器

输出

部署模型时最常卡住的问题是“这张卡放得下吗、能开多少并发”。这个工具把显存拆成三块分别估算: 权重 = 参数量 × 每参数字节(FP16 = 2、INT8 = 1、INT4 = 0.5)。注意 “B”是 10⁹ 不是 2³⁰ —— 7B 的 FP16 权重正好是 14 GB;若把 B 当成 2³⁰ 会算出 15.03 GB,差的这约 1 GB 在“80 GB 的卡放不放得下”这种判断上恰恰是决定性的。 KV cache = 2 × 层数 × KV 头数 × 头维度 × 序列长度 × 批大小 × 每元素字节。开了 GQA 之后 KV 头数降到 1/N,KV cache 也随之降到 1/N —— 这就是长上下文与高并发能不能同时要的关键。 激活与框架开销 按经验给:0.5 GB 的底加上权重与 KV 的约 10%。这一块是估算,实际随算子实现、并行策略、CUDA 版本而变。 GB(10⁹ 字节)与 GiB(2³⁰ 字节)相差约 7.4%,这里两个都给。全部在浏览器本地完成,不联网。

功能

  • 权重显存:参数量 × 每参数字节(FP32 / TF32 / BF16 / FP16 / FP8 / INT8 / INT4 / INT2)
  • KV cache:2 × 层数 × KV 头数 × 头维度 × 序列长度 × 批大小 × 每元素字节
  • 支持 GQA:KV 头数独立设置,降到 1/N 时 KV cache 也降到 1/N
  • 激活与框架开销按经验系数估算,并说明它是估算
  • 同时给出 GB(10⁹)与 GiB(2³⁰),不会把两者混为一谈
  • 参数量覆盖 0.5B 到 671B,也可自定义
  • 按 8 / 12 / 16 / 24 / 40 / 48 / 80 / 141 GB 显存档,逐个给出需要几张卡

使用方法

  1. 选参数量(或填自定义值)与权重精度
  2. 填上下文长度与批大小
  3. 按模型实际填层数、隐藏维度、注意力头数与 KV 头数
  4. 结果里读权重、KV、开销与合计,并看显卡参考

常见问题

为什么 7B 的 FP16 是 14 GB?
7B 即 7 × 10⁹ 个参数,FP16 每个参数 2 字节,所以 7 × 10⁹ × 2 = 14 × 10⁹ 字节 = 14 GB。这里的 “B” 是 10⁹,不是 2³⁰ —— 按 2³⁰ 会得到 15.03 GB,多出约 1 GB。
GB 和 GiB 有区别吗?
有。GB 是 10⁹ 字节,GiB 是 2³⁰(约 1.074 × 10⁹)字节,后者大约大 7.4%。显卡标称、云计费、`nvidia-smi` 的口径并不统一,所以两个都给出,避免拿一个口径算、另一个口径比。
GQA 对显存影响有多大?
很大。KV cache 与 KV 头数成正比:32 个头、8 个 KV 头的 GQA,KV cache 只有普通多头注意力的 1/4;8 个 KV 头就是 1/4(若 32 个头对应 8 个 KV 头)。这正是长上下文、高并发能不能同时要的关键。
激活与框架开销为什么是估算?
这部分取决于具体算子实现、并行策略(张量并行、流水并行)、CUDA 与推理框架的版本,没有一个通用精确公式。这里给 0.5 GB 的底加上权重与 KV 的约 10%,是一个常见经验值 —— 真实部署请以实测为准。

相关工具