显存(VRAM)
显存跑模型要的内存
亦作、亦称:VRAM
显存(VRAM,Video Random Access Memory)是 GPU 板载的专用高速内存,用于存放模型推理或训练时 GPU 核心直接读写的所有数据。在大模型时代,显存容量往往直接决定能否运行一个模型,以及能跑多大批量(batch size)。
概述
显存与系统内存(RAM)在物理上相互独立,GPU 计算核心只能直接访问 VRAM。
- 物理隔离:CPU 可直接读写系统内存,GPU 核心只能访问 VRAM;两者之间数据传输须经 PCIe 总线,带宽远低于 VRAM 内部带宽。
- HBM 技术:现代 AI 加速卡(H100、A100 等)普遍采用 HBM(High Bandwidth Memory),将多层 DRAM 芯片垂直堆叠并与 GPU 封装在同一基板,兼顾容量与带宽。
- 带宽数量级差距:H100 SXM 的 HBM3 带宽约 3.35 TB/s,而 DDR5 系统内存典型带宽仅约 50–100 GB/s。
- 容量范围:消费级卡(RTX 4090)约 24 GB;数据中心级卡(H100 SXM)约 80 GB;多卡通过 NVLink 可聚合更大显存。
显存占用构成
不同阶段占用显存的组成差异显著,需分别估算。
- 模型权重:参数量 × 精度字节数;float16 下 7B 模型约需 14 GB,int4 量化后约 3.5 GB。
- KV Cache(推理):与批大小、序列长度、层数、头维度正相关;长序列下可超过权重本身。
- 激活值(activations):前向传播中间结果,推理时占比相对小;训练时若不用梯度检查点则需全部保留。
- 梯度(训练):与权重等大,float32 下约 4 字节/参数。
- 优化器状态(训练):Adam 额外存储两组动量,float32 下约 8 字节/参数,使总显存需求通常达到权重的 4 倍以上。
- 框架开销:CUDA 上下文、算子临时缓冲区、NCCL 通信缓冲区等,通常额外占用 10%–20%。
实际估算方法
工程师常用简化公式快速评估所需显存规模。
- 推理粗估:显存(GB)≈ 参数量(B)× 精度字节数 × 1.2;float16 的 7B 模型约需 16.8 GB,建议准备 24 GB 级卡。
- 训练粗估:在推理公式基础上乘以 4–6,覆盖梯度与 Adam 优化器状态。
- KV Cache 精算:大小 ≈ 2 × batch_size × seq_len × num_layers × head_dim × 精度字节数。
- 实测优先:以
nvidia-smi或torch.cuda.memory_summary()的实际监控为准,理论估算仅作参考。
显存管理技术
面对大模型对显存的巨大需求,工程上发展出多种应对策略。
- 量化(Quantization):将权重从 float16 压缩到 int8 或 int4,显存占用降至原来的 1/2 至 1/4;代表方法有 GPTQ、AWQ。
- 梯度检查点(Gradient Checkpointing):训练中丢弃部分激活值、反向传播时重新计算,以额外算力换显存空间。
- 模型并行:张量并行(tensor parallelism)和流水线并行(pipeline parallelism)将模型切分到多卡,聚合多卡显存。
- PagedAttention:vLLM 提出的 KV Cache 分页管理方案,借鉴操作系统分页内存思想,大幅减少碎片浪费、提升推理吞吐。
- CPU Offload:llama.cpp 等框架支持将部分权重保留在系统内存,GPU 按需加载,牺牲速度换取在小显存机器上运行大模型的能力。
与相邻概念的区别
显存相关概念易与系统内存、带宽等混淆,需明确区分。
- VRAM vs RAM:VRAM 是 GPU 专属工作空间,RAM 供 CPU 使用;llama.cpp 可借 RAM 运行大模型,但吞吐量大幅下降。
- 显存容量 vs 显存带宽:容量(GB)决定能装多大模型;带宽(GB/s)决定数据搬运速度。Transformer 小批量推理通常是带宽瓶颈(memory-bound),而非算力瓶颈(compute-bound)。
- 显存 vs 参数量:参数量(如「70B 模型」)是模型规模的描述,显存需求还需乘以精度字节数并叠加运行时开销。
- OOM(CUDA out of memory)vs 系统 OOM:前者是 GPU 侧显存耗尽,后者是 CPU 侧系统内存耗尽,两者互相独立。
常见误区
显存管理中存在若干易踩坑的认知误区。
- 「显存剩余就够用」:内存碎片化可能导致理论剩余几 GB 却仍 OOM,实际可用连续块远小于空闲总量。
- 「模型文件大小 = 推理显存」:量化模型的文件大小与加载后实际占用可能因框架反量化行为不同而有出入。
- 「只看权重,忽略 KV Cache」:长序列或大批量推理时,KV Cache 往往超过权重本身,是实际显存瓶颈。
- 「多卡就能无限扩展」:多卡通信(NVLink / PCIe)本身会占用显存缓冲区,且模型切分带来额外通信开销。
发展脉络
GPU 显存技术随 AI 计算需求持续演进。
- 2016 年前:游戏 GPU 以 GDDR5 为主,容量 4–12 GB,带宽约 200–300 GB/s,满足图形渲染但不适合大规模矩阵运算。
- 2016:NVIDIA P100 引入 HBM2,带宽约 732 GB/s,AI 训练效率大幅提升。
- 2020:A100 采用 HBM2e,容量 40/80 GB,80 GB 版带宽约 1.6 TB/s,成为 GPT-3 训练后时代的主力卡。
- 2023:vLLM 团队(UC Berkeley)在 SOSP 2023 发表 PagedAttention 论文,首次将操作系统分页内存思想引入 KV Cache 管理,显存利用率提升数倍。
- 2023:H100 搭载 HBM3,SXM 版带宽约 3.35 TB/s;量化技术(GPTQ、AWQ)成熟,消费级显卡(24 GB)能运行 13B 乃至更大模型。
- 2024–2025:H200 引入 HBM3e(141 GB / 4.8 TB/s);显存管理技术(分页、offload、量化)进一步标准化,成为大模型推理栈的基础设施。
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「跑模型要的内存」
- 「落地部署必懂」
- 「跟 显存 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 中级场景高频查看详解 →
训练 / 推理显存 OOM,有哪些解决手段?
先看显存花在哪(激活/参数/优化器状态),再用减 batch、梯度累积、混合精度、梯度检查点、offload/并行逐级释放。
- 高级场景查看详解 →
如何估算 Transformer 模型的参数量与训练显存占用?
参数量约 12·L·d²;训练显存=参数+梯度+优化器状态(Adam)+激活。
- 初级场景查看详解 →
如何把开源大模型在本地 / 内网跑起来?
用 Ollama/llama.cpp/vLLM 加载开源权重,按显存选模型大小与量化,适合隐私离线场景。
- 初级概念查看详解 →
深度学习为什么要用 GPU?
GPU 有数千核擅长大规模并行矩阵运算,深度学习是大量并行矩阵乘,比 CPU 快几十倍。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
外部参考
维基百科:查看「显存」词条本页内容为本站原创撰写;维基百科链接仅作延伸参考。
