我的问题很简单:在 Windows 10 上,当我强制将某些程序(如 Spotify 或 Microsoft Office 应用程序)安装在 nvidia 显卡上而不是集成 gpu 上时,它们似乎运行得更差。但我不明白为什么,因为 dGPU 应该比 iGPU 快得多。
答案1
因为在 dGPU 上工作意味着您必须将完成的工作复制回 iGPU 进行显示。
您的实际显示器连接到您的 iGPU。这就是存储输出帧缓冲区的地方。您的 dGPU 可能有自己的专用内存,但那是 GPU 本身的工作内存。您的 dGPU 缺乏显示输出功能,因为它旨在输出到缓冲区,然后复制到 iGPU 进行显示。
对于在 dGPU 上渲染的每个帧或窗口,您必须将该窗口复制到主机内存进行显示。
如果您有一张以 60Hz 更新的全屏 1920x1080 图像,那么您每秒将复制 (1920 x 1080 x 32 x 60)/8 字节数据。497,664,000。每秒 486 兆字节数据只是为了显示一个窗口。现在想象一下,您刚刚对 10、20 或 30 个窗口执行了此操作,强制所有内容在 dGPU 上渲染。
PCIe 第三代链路的带宽很高,但不是无限的。笔记本电脑可能由于空间原因只有一个 x4 PCIe 链路,处理速度在 1 到 4GB/s 之间(具体取决于代数)。如果同时打开多个窗口,您的系统很快就会出现带宽不足的情况。
如果您在 dGPU 上只运行一个程序,那么这种开销可能还可以接受,但是一旦您将所有应用程序都强制放到 dGPU 上,它很快就会成为瓶颈。在 dGPU 上渲染、复制和显示每个帧时,还会添加少量延迟。它应该很快,但是随着许多程序使用带宽,可能会出现延迟。
从技术上讲,dGPU 在许多工作上可能更快,但对于一般的“显示窗口”工作,iGPU 就绰绰有余了,而且由于它是实际连接到显示器的设备,因此不会出现与 dGPU 相关的缺点。它可以进行更智能的桌面构图和渲染,而不是完全渲染每个窗口,将其复制过来,然后(在工作完成并浪费带宽之后)丢弃不需要的内容。
在现代系统中,iGPU 仍然非常强大。好吧,你不会以 120fps 甚至 30fps 的速度玩 4k 游戏,但对于一般的桌面、互联网、视频播放和类似的任务,它们可以处理得非常充分。
当你真正需要在游戏或图形处理能力较强的程序中增加额外的处理能力。否则,您将会大大降低性能,而得不到任何实际好处。