一句话定义
显存(Video Random Access Memory,VRAM)是显卡上紧挨着 GPU 芯片的一块专用内存,只服务于 GPU 的计算,CPU 不能直接把它挂在总线上当普通内存使用。
打个比方
GPU 是后厨的厨师,显存就是他手边那张操作台。系统内存(RAM)是隔壁房间的货架,硬盘是地下仓库。厨师切菜、配料,手边总得摆着东西;台面尺寸是固定的,摆满了就再也放不下新菜,于是程序报错:OOM(Out of Memory,显存溢出)。
为什么不能让厨师频繁跑回货架?因为从系统内存往显存搬东西要经过 PCIe 总线,速度比操作台内部的存取慢一个量级。GPU 再能算,也架不住一直等搬运。
台面上都摆了什么
1. 模型权重(weights):参数本身。半精度(FP16)下每个参数占 2 字节,所以一个 N 亿参数的模型,光权重就要约 2N 亿字节,这是逃不掉的底数。
2. AI 词典:KV Cache">KV Cache:推理时的缓存。模型每生成一个 token 都要回看前文,为避免重复计算,会把注意力机制里的 Key 和 Value 留存下来。它随上下文长度和并发请求数一起增长,在长上下文场景里可能比权重还占地方。
3. 中间激活(activations):每一层算出的中间结果。推理时用完即弃,训练时还得保留到反向传播用,所以训练普遍比推理更吃显存。
4. 再加上深度学习框架自身的开销和内存碎片。
和几个相邻概念的区别
| 显存 VRAM | 系统内存 RAM | 硬盘/SSD | |
|---|---|---|---|
| 位置 | 显卡上,紧贴 GPU | 主板上,服务 CPU | 机箱里的存储设备 |
| 容量 | 通常最小 | 中等 | 最大 |
| 带宽 | 最高 | 中等 | 最低 |
| 断电后 | 清空 | 清空 | 数据保留 |
另一个容易混淆的是 GPU 芯片内部的 L2 缓存:它更小、更快,是硬件自动管理的;显存则在芯片之外,由程序显式申请和释放。
对你的实际意义
从业者:动手前先估算显存占用。权重是固定的基础占用,KV Cache 和激活值是变量。不足时的常见手段包括量化(把 FP16 压成 INT8/INT4)、梯度检查点(用算力换显存)、把部分层卸载到内存(offload,速度会下降)、多卡张量并行。各框架的具体支持情况以官方文档为准。
普通人:这解释了为什么“在本地跑大模型”对显卡的要求这么硬——瓶颈常常是操作台太小,而非算力不足。也解释了为什么长对话、高并发的云端服务更贵:每一路正在处理的请求,都实打实占着一块显存。
