把它们理解成三层"放数据的地方":
显存 VRAM:GPU 自己用的高速内存
内存 RAM:CPU 主要用的高速内存
虚拟内存 Virtual Memory:操作系统给程序看的"假大地址空间"
-
VRAM(Video RAM) = 显存(物理硬件)。它是焊在显卡电路板上的实体存储芯片,专门用来存放图像、纹理和GPU计算数据。
-
虚拟内存(Virtual Memory) = 虚拟内存 (系统功能)。它是操作系统利用硬盘(SSD/机械硬盘)上的一块空间,模拟出来的"内存"。当你的物理内存(RAM)不够用时,系统会把暂时不用的数据挪到硬盘上,以此欺骗程序让它以为还有内存可用。
显存
显存就是 GPU 上的内存,主要放:
贴图
RenderTarget
Mesh buffer
骨骼/粒子 buffer
阴影图
后处理 buffer
如 Unreal 里一张 4096x4096 RGBA16F RT,大概就是:
4096 * 4096 * 8 bytes ≈ 128 MB
这类资源通常会占显存。
显存不够时,GPU 可能要把资源换到系统内存,或者频繁搬运,表现就是:
卡顿
掉帧
贴图糊
GPU wait
甚至崩溃
虚拟内存
- 虚拟内存(Virtual Memory) = 虚拟内存 (系统功能)。它是操作系统利用硬盘(SSD/机械硬盘)上的一块空间,模拟出来的"内存"。当你的物理内存(RAM)不够用时,系统会把暂时不用的数据挪到其他映射地址上,比如说:硬盘上,以此欺骗程序让它以为还有内存可用。
程序看到的是:
我有一大片连续地址可以用
但真实背后可能对应:
物理内存 RAM
硬盘上的 page file
还没真正分配的地址
映射文件
显存映射地址
所以"虚拟内存"有两个常见含义:
1. 虚拟地址空间:程序看到的地址范围
2. 页面文件 pagefile:内存不够时,把一部分数据临时放到硬盘
在 Unreal 里:
贴图/RT/Buffer 太多 -> 显存压力
资产/编辑器/CPU 数据太多 -> 内存压力
内存爆了开始 pagefile -> 虚拟内存/提交大小压力
显存不够 和带宽不够是两个不同问题,但它们会互相影响。
显存不够说的是容量:
你的 GPU 只有 8GB VRAM
但场景资源需要 10GB
这叫容量不够。
表现可能是:
贴图被降级
资源频繁换入换出
卡顿
加载慢
爆显存崩溃
带宽不够说的是传输速度:
显存容量够
但 GPU 每秒读写的数据太多
显存来不及喂给 GPU
这叫带宽不够。
显存带宽(VRAM Bandwidth)------真正的"显存速度"
这是指显卡核心(GPU) 和板载显存(VRAM芯片) 之间的数据交换速率,单位是 GB/s(如 RTX 4090 约 1008 GB/s)。
- 它是双向的:不仅包括把数据"上传"(写入)到显存,还包括GPU从显存中"读取"数据(比如读取纹理、模型权重)。它决定了显卡自身能多快处理海量数据。
如何查看GPU显存容量呢?

磁盘/资源文件
-> CPU 内存 RAM
-> 上传到 GPU 显存 VRAM
-> GPU 从显存里高速读取
比如一张贴图:
硬盘上的 PNG / uasset
-> 加载到系统内存
-> RHI 上传到显存
-> 材质采样时 GPU 读显存
所以渲染时真正高频读取的是:
显存 VRAM
上传阶段会从内存拷到显存
资源刚加载时:
RAM -> VRAM
这时候显卡确实会读系统内存里的数据,把它搬到显存。
VRAM 就是显存。