硬件加速GPU调度

微软的Windows一直是游戏玩家的首选操作系统。每当我们说到“游戏PC”时,我们通常会想到一台Windows机器。这是因为Windows支持不同的硬件(cpu和显卡),并且为游戏开发提供了精心设计和行业标准的api。微软还不断推出新功能,其中一个就是硬件加速GPU调度。但是什么是硬件加速GPU调度?如何实现?它将如何影响性能?让我们试着在这本指南中找到所有这些问题的答案。

关于日程安排的简要说明

调度是将处理器、网络、IO等资源分配给进程和线程等任务的过程。Windows、macOS和基于linux的操作系统在一个名为Scheduler的模块的帮助下执行调度。Scheduler的任务是以最大化吞吐量、最小化延迟和等待时间等方式为处理分配资源。

调度器传统上是操作系统的一部分;它们本质上是一个软件。即使硬件调度器是可用的(以可编程fpga或asic的形式),它们主要限于硬实时系统来支持一种调度算法。

与软件调度器不同,硬件调度器在特性、修改和应用程序支持方面不够灵活。因此,许多非实时系统,如普通个人电脑,仍然使用软件调度。

Windows下GPU调度

来到GPU侧,Windows开发了WDDM或Windows显示驱动程序模型,这是图形卡的图形驱动程序架构。它支持虚拟内存,调度,共享Direct3D曲面等。

在所有这些功能中,WDDM GPU调度程序非常重要,因为它将传统的“FIFO”样式队列与基于优先级的调度更改。即使具有WDDM的较新版本,调度算法也是或多或少相同的即,高优先级线程具有CPU时间。

这种方法有一些基本的局限性。例如,一个应用程序线程在x时刻工作在GPU上,必须让CPU在x-1时刻为GPU准备命令。因此,当GPU在帧' n '上工作时,CPU开始执行帧' n+1 '的工作命令。

从本质上说,这种CPU对GPU命令的缓存可能会最小化调度过载,但会对延迟产生重大影响。CPU接收到的用户输入将不会被GPU处理,直到下一帧。

什么是硬件加速GPU调度?

5月2020年5月,Microsoft发布了一个更新的Windows,将硬件加速的GPU调度作为支持的显卡和驱动程序的选项引入。使用此更新,Windows现在有能力将GPU调度卸载到专用GPU调度硬件。

虽然Windows仍然可以控制任务的优先级并确定哪个应用程序具有上下文切换的优先级,但它将高频任务卸载到专用GPU调度程序,以处理各种GPU引擎之间的上下文切换。

英伟达和AMD(两家主要的显卡制造商)都对这一举措表示欢迎。他们表示,这项将调度任务从软件转移到硬件的新功能将提高GPU的性能、响应能力,并减少延迟。

如何启用硬件加速的GPU调度?

如果你有一个支持的显卡,有正确的驱动程序和Windows更新,硬件加速GPU调度功能将是一个选项。默认情况下,硬件加速GPU调度在Windows 10和Windows 11中都是禁用的。但你可以从设置中启用它。

在此之前,请确保您拥有Windows 10版本2004或更高版本,并在NVIDIA和AMD安装最新的驱动程序。

按照以下步骤启用硬件加速GPU调度在您的Windows机器。

  • 单击Start,打开设置>系统>显示
  • 点击图像的设置
  • 如果您的GPU支持硬件调度并且已安装支持驱动程序,则会获得选项“硬件加速GPU调度”。
  • 切换选项和重新启动电脑。

哪个GPU支持硬件调度?

目前,几乎所有来自NVIDIA和AMD的现代显卡都支持硬件加速GPU调度。

要测试您的显卡是否支持此功能,您可以查看制造商的产品页面或尝试通过从AMD和NVIDIA下载Windows和Drivers的最新更新来了解自己。

新GPU调度员的影响

微软声称新的硬件加速GPU调度将显著提高GPU性能和减少延迟。但是由许多受欢迎的评论者进行的初步测试却显示出了好坏参半的结果。

有些测试者通过合成基准和游戏内部基准进行了改进,但发现大多数游戏并没有显著的改进。

结论

硬件加速GPU调度是将调度任务卸载到GPU上的一个专门的调度程序,而不是由CPU来处理。当微软首次宣布这一功能时,整个游戏行业都非常兴奋,但结果和评论却令人失望(至少在一开始)。

我们看到了启用(或禁用)硬件加速的GPU调度是多么容易。如果你有合适的GPU和驱动组合,你可以尝试这个功能,并分享你的经验。

发表评论

您的电子邮件地址将不会被公布。必填字段被标记

Electronicshub图标
Baidu
map