微软计划在 Direct3D 12 新增工作图功能,可解除 GPU 与 CPU 间通信带宽限制

新闻
在 Direct3D 12 之前,实际上已经出现了名为 ExecuteIndirect 的指令,允许 GPU 在不需要 CPU 介入的情况下,依据先前 GPU 的运算结果,决定所要执行的工作负载。该指令可以使运算更有效率,同时最大限度提升 GPU 的利用率。而如今微软“站在巨人的肩膀上”,推出了 Direct3D 12。

6 月 28 日消息,微软计划在 3D 图形程序开发接口 Direct3D 12 中加入工作图(Work Graphs)功能,这项功能可解除目前 GPU 程序开发模型中的限制,让 GPU 通用运算能够处理更多的工作负载,更广泛地被应用

IT之家注意到,在传统情况下,GPU 的工作负载需要由 CPU 决定,即 GPU 运算的每一个结果,都需要传输给 CPU 进行分析解读,在此之后重新传输到 GPU,并进行下一轮工作。虽然这种情况在当下并不会产生肉眼可见的滞后,但实际上还是增加了 GPU 和 CPU 之间的带宽开销,且因为传输速度,CPU 及 GPU 的性能释放实际上也会受到一定限制

▲ 图源 微软

例如 Epic Games 所开发的虚幻引擎 5,已经将这一套 GPU 与 CPU 之间的协作传输带宽吃尽。例如中的虚拟化几何技术 Nanite 以及全局光照解决方案 Lumen,需要由 CPU 发出一系列独立的调度,因此虽然能产生极佳的画面效果,但归根结底,实际上已经到了架构的极限,因此这些技术难以在未来进行本质上的更新,只能进行一些小修小补。

▲ 图源 虚幻引擎 5 演示 DEMO

在 Direct3D 12 之前,实际上已经出现了名为 ExecuteIndirect 的指令,允许 GPU 在不需要 CPU 介入的情况下,依据先前 GPU 的运算结果,决定所要执行的工作负载。该指令可以使运算更有效率,同时最大限度提升 GPU 的利用率。而如今微软“站在巨人的肩膀上”,推出了 Direct3D 12。

新的工作图(Work Graphs)是供 GPU 运作的着色器线程,一旦 GPU 处于空闲状态,系统便能够绕过 CPU,让 GPU 自行处理先前的运算结果,相对可以更容易表达出开发者所设计的算法意图和结构,也又不会过度造成开发者的负担。

▲ 图源微软

▲ 图源微软

微软提到,这种模型的异步性,让系统拥有更大的自由度,决定执行工作的最佳方法。但当下工作图的兼容性有限,且目前还在早期预览阶段,更多用于商企软件,尚未落地于“游戏娱乐”,因此还需要一段时间的发展

据悉,AMD、英伟达、英特尔和高通四大芯片厂商都参与了工作图的设计。AMD 显卡驱动程序目前已经率先支持工作图,他们已在 AMD Radeon RX 7000 系列显卡的 Adrenalin 版本驱动程序中加入了相关 API,同时也有相对应的文件供开发者阅读。

责任编辑:姜华 来源: IT之家
相关推荐

2009-09-04 16:10:06

C# Direct3D

2021-11-24 18:33:26

微软远程办公

2011-03-03 17:22:18

PureFTPd

2011-03-03 15:30:18

PureFTPd

2013-09-02 15:46:06

OpenGLWindows

2024-06-17 12:33:34

2023-02-14 13:31:14

微软Microsoft

2023-02-15 14:46:25

微软Windows

2009-05-08 09:01:03

微软Windows 7操作系统

2018-01-23 10:07:13

LinuxWindowsWine 3.0

2018-11-26 10:22:20

闪存

2022-02-22 07:53:30

Windows 11Windows 12微软

2017-10-18 09:08:12

微软Win 10

2023-10-12 08:32:39

Windows微软

2023-09-04 07:23:37

Windows系统格式化

2009-01-12 08:04:27

Windows 7DVD镜像数量限制

2022-05-20 07:30:38

微软Windows 11

2009-07-10 08:29:50

Silverlight

2023-10-17 15:17:04

2013-11-01 14:08:11

点赞
收藏

51CTO技术栈公众号