VRAM已满时会发生什么?

问题描述 投票:5回答:1

我想知道当前处理VRAM资源分配的nvidia / AMD实现。

我们已经知道,当系统RAM已满时,操作系统会使用交换/虚拟内存,那么当涉及VRAM时,相当于交换的是什么?它们会回退到系统RAM还是硬盘?

我认为回退到系统内存是合理的,但根据我的经验,当视频游戏超出视频内存空间时,视频游戏可怕地落后(典型FPS的1/20),这让我怀疑他们是否正在使用系统RAM因为我认为系统RAM并没有那么慢,让游戏停滞不前。

总之,我想知道当前的实现是什么以及导致游戏在内存不足情况下滞后的最大瓶颈是什么。

memory memory-management graphics data-transfer vram
1个回答
2
投票
  1. 交换实际上是对RAM进行的 如果有足够的RAM可以交换。由于速度慢,交换到文件无法使用,请参阅下一个项目符号
  2. 它自己的RAM不是那么慢(仍然较慢)但连接到它的总线是 当交换系统内存交换文件时,内存交换发生在需要时(更改应用程序的焦点,打开新文件/表,...)这不是那么频繁但如果你不在VRAM那么你有麻烦,因为通常大多数gfx数据用于每个帧。 这导致每帧交换,因此您需要经常复制非常大的数据块,例如交换256MB 20fps导致: 256M x 2 x 20 = 10 GB/s read 256M x 2 x 20 = 10 GB/s write 根据内存控制器和架构,这需要20GB / s的粗略带宽你可以同时读取/写入一个点,这样你理论上总共可以接近10GB / s但仍然只有256MB的大块数数据看这里: Cache size estimation on your system? 我当时的设置只有大约5GB / s的内存写入,这远远不及这个任务所需的内存传输速率
© www.soinside.com 2019 - 2024. All rights reserved.