假设我在电脑(Windows)上打开一个应用程序,该应用程序使用硬件加速,例如 Chrome 之类的浏览器。如果 Chrome 执行某些需要图形的操作,首先发生的事情是 CPU 会尝试执行 Chrome 需要的任何操作。但是假设 Chrome 需要执行 CPU 无法处理的图形密集型操作。那么 GPU 就会介入,对吗?但是,如果我从一开始就希望 GPU 执行此操作,即使 CPU 可以自己执行,该怎么办?
但我不知道我上面说的是否真的是它的工作原理。但我做了一些研究。我打开了一个应用程序(epic games)并监控了我的 cpu/gpu 使用情况。首先,我在一个小的选项卡中打开它,这样分辨率就很低,所以它不需要太多的图形处理能力。我是对的,我的 cpu 大部分时间都在 60% 左右,而我的 gpu 大部分时间都在 0%。然后我最大化了 epic games 窗口,使分辨率为 1440p。我的 cpu 使用率下降到 ~16%,而我的 GPU 上升到 ~20% 左右。所以我的问题是,当 epic games(或任何其他应用程序)处于不需要那么多图形处理能力的窗口状态时,我是否应该让我的 gpu 优先于我的 cpu?
顺便说一下,我有一个 CPU(英特尔,没有 igpu)和一个专用 GPU(amd)
答案1
简短的回答是 - 您要做的事情很可能无法由最终用户完成 - 需要将其编程到应用程序中。从技术角度来看,这通常是不可能且没有必要的。
你对它们如何结合在一起的理解有点偏差。CPU 处理 CPU 指令,GPU 处理需要图形的事情(或者,如果 GPU 更强大并且任务适合并行化,则可以并被编程为卸载到图形处理器)
GPU 和 CPU 协同工作。虽然 CPU 确实会将任务交给 GPU,但它是根据任务来执行的,而不是根据 CPU 的繁忙程度。这些决定通常在抽象层(即软件库)中根据 GPU 的功能完成。 换句话说,如果 GPU 能够做到这一点,它从一开始就会这样做
我认为您对测试的解释有点错误 - 造成这种差异的一个可能原因是,在窗口中时,您的操作系统更多地参与绘制屏幕的其他部分,而这些元素是 CPU 密集型的 - 而且可能是因为它在窗口中,所以 CPU 也用于计算图形。当您切换到全屏模式时,GPU 不会启动,因为它需要额外的处理器,它启动是因为它能够控制屏幕,因为不需要 CPU 来驱动窗口管理器。