gpt4 book ai didi

memory - 当 VRAM 已满时会发生什么?

转载 作者:行者123 更新时间:2023-12-02 05:22:47 28 4
gpt4 key购买 nike

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

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

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

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

最佳答案

  1. 交换实际上是在 RAM 上完成的

    是否有足够的RAM可供交换。由于速度慢,交换到文件无法使用,请参阅下一个项目符号

  2. RAM 本身并不慢(仍然更慢),但连接到它的总线

    在将系统内存交换到交换文件时,内存交换会在需要时发生(更改应用程序的焦点、打开新文件/表...),这种情况并不常见,但如果您的VRAM用完了> 那么你就有麻烦了,因为通常每一帧都会使用大部分 gfx 数据。

    这会导致每帧交换,因此您需要经常复制通常非常大的数据 block ,例如交换 256MB 20fps 会导致:

    256M x 2 x 20 = 10 GB/s read
    256M x 2 x 20 = 10 GB/s write

    根据内存 Controller 和架构,粗略需要 20GB/s 的带宽您可以在一定程度上同时进行读/写,因此理论上总共可以接近 10GB/s,但这仍然是一个巨大的数字256MB 数据 block 看这里:

    当时我的设置内存写入速度仅为 5GB/s 左右,远低于此类任务所需的内存传输速率

关于memory - 当 VRAM 已满时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865133/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com