7

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

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

我认为回退到系统 RAM 是合理的,但是根据我的经验,视频游戏在视频内存空间不足时会严重滞后(典型 FPS 的 1/20),这让我怀疑他们正在使用系统 RAM,因为我认为系统RAM 并没有那么慢,使游戏滞后这么多。

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

4

1 回答 1

4
  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 的块来说,这仍然是一个巨大的数字数据看这里:

    我当时的设置只有大约 5GB/s 的内存写入,这远不及此类任务所需的内存传输速率

于 2015-04-27T07:04:06.907 回答