UE5 显存 虚拟内存 深入学习笔记

把它们理解成三层"放数据的地方":

复制代码
显存 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 就是显存。

相关推荐
又見山22 分钟前
双向链接的本质:链接不是功能,是思考留下的痕迹
笔记·obsidian
云水初27 分钟前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag
外收内放33 分钟前
数据分析(图表信息详解)
python·学习·数据分析·matplotlib
气质、小青年!38 分钟前
进程1学习
linux·学习
JasmineX-11 小时前
数据结构(笔记)——顺序栈
c语言·数据结构·笔记
坤坤子吖1 小时前
Linux 线程同步与互斥——互斥锁
linux·服务器·c++·笔记·学习
撩得Android一次心动1 小时前
Jetpack Compose 知识点整理3【个人用】
android·笔记·学习·kotlin·android compose
威嵌神州2 小时前
国产化加固计算机项目选型笔记|板卡、整机、平板与定制模块评估要点
笔记·fpga开发·电脑
阿梦Anmory2 小时前
规划领域定义语言(PDDL)学习笔记
笔记·学习
绛橘色的日落(。・∀・)ノ2 小时前
C#学习笔记
笔记·学习·c#