VRAM已满时会发生什么?

时间:2015-04-25 12:25:41

标签: memory memory-management graphics data-transfer vram

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

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

我认为回归系统内存是理性的,但根据我的经验,视频游戏在视频内存空间不足时可怕地落后(典型FPS的1/20),这让我怀疑他们使用系统内存是因为我认为系统RAM不会让游戏滞后这么慢。

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

1 个答案:

答案 0 :(得分: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的数据块:

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

相关问题