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 就是显存

相关推荐
留白_21 分钟前
【tableau入门学习】6、盒须图、靶心图、四象限图、甘特图、直方图
学习·甘特图
MSTcheng.29 分钟前
【Linux学习】Linux学习第四弹——Linux基本指令3
linux·windows·学习·操作系统·指令
lihaihui199131 分钟前
STM32 学习
学习
Jul1en_1 小时前
Matt 与 Uncle Bob 的播客访谈有感
开发语言·经验分享·笔记·ai·开源·github·ai编程
是隼人1 小时前
buuctf-pwn jarvisoj_level5(64位ret2libc)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
驭渊的小故事1 小时前
算法训练笔记:添加逗号、跳台阶、扑克牌顺子
笔记
噜~噜~噜~2 小时前
操作系统笔记-3.1.1.3 进程的内存映像
笔记·操作系统
摇滚侠2 小时前
《Spring Boot 3:高级与架构设计》第 2 章 IOC容器的高级机制 Environment 阅读笔记 4
spring boot·笔记·后端
春风解人意10 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
李帅朋11 小时前
微分基本定义笔记
人工智能·笔记·深度学习·神经网络