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

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

时间:2023-07-18 09:45:55浏览次数:46  
标签:12 微软 间通信 工作 GPU Direct3D CPU

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

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

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

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

▲ 图源 微软

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

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

▲ 图源 虚幻引擎 5 演示 DEMO

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

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

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

▲ 图源微软

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

▲ 图源微软

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

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

本文地址:https://www.linuxprobe.com/?p=276431

标签:12,微软,间通信,工作,GPU,Direct3D,CPU
From: https://www.cnblogs.com/linuxprobe19/p/17521088.html

相关文章

  • [HNOI2012] 集合选数
    [HNOI2012]集合选数目录题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示题意概括思路历程:1.设计状态2.设计转移代码实现:题目描述《集合论与图论》这门课程有一道作业题,要求同学们求出\(\{1,2,3,4,5\}\)的所有满足以下条件的子集:若\(x\)在该子集中,则\(2......
  • 【2023.07.14】Atcoder:past201912 - 第一回 アルゴリズム実技検定(div4+区域赛难度)过题
    G-Division解法一:位运算+状压枚举(赛时思路)范围显然,可以跑\(2^n\)的算法,考虑位运算状态压缩。以\(\mathcalO(2^n\cdot2^n)\)的复杂度分别枚举位于第一组、第二组中的人,随后计算每一种分组的快乐值,代码较长,赛时敲了半个小时,不过好在一发过了。总结:其实代码里面的剪枝完......
  • 题解 CF1271D
    贪心+DP。对于一个点,后选显然比先选好,也就是说每个点都对应了唯一一个来源。于是我们可以把每个点所能回溯到的点的收益值从大到小排序,贪心地选前缀。定义\(f_{i,j}\)表示考虑了前\(i\)个点,剩下\(j\)个人,最大收益。转移方程和\(01\)背包的一样。\[f_{i,j}=f_{i-1,j-b......
  • 题解 CF1265E
    期望DP。定义\(f_i\)表示第\(i\)个镜子照成功的期望天数,\(p_i\)为第\(i\)天成功的概率,\(q_i\)为第\(i\)天失败的概率。根据题意容易列出方程:\[f_i=(f_{i-1}+1)\cdotp_i+(f_{i-1}+1+f_i)\cdotq_i\]移项得:\[(1-q_i)\cdotf_i=(f_{i-1}+1)\cdot(p_i+q_i)\]同除以......
  • 题解 CF1202C
    不错的题,需要点思维和码力。容易发现,左右和上下互不影响,可以分开处理,这里以左右举例。定义向左走一格\(-1\),向右走一格\(+1\),求个前缀和找到最大值和最小值,和出现最值的最早时间与最晚时间。定义为\(l,r,l2,r2\)。只有当我们放了一个A或D使得所有最大值\(-1\)且最小值......
  • 题解 P7250 [BalticOI 2012 Day1] 山峰
    通过观察,可以发现此题和最小生成树十分相似(两个地点之间途经的最小值最大)。于是可以考虑这么做:通过bfs将每一个块预处理出来,并记录其编号、高度、类型(是否为高地)以及边缘的点。将每一个块按高度从大到小排序。依次枚举每个块:对于当前要处理的块,枚举其边界的所有点,......
  • 1212
     窗体顶端 号牌种类 小型汽车号牌号码 PH1W19机动车状态 正常所有人 李金涛抵押标记 ****住所地址 山东省临清市先锋街道郭堤居******登记证书编号 370010902690联系地址 山东省临清市先锋街道郭......
  • 1205 - Lock wait timeout exceeded; try restarting transaction
    参考:https://blog.csdn.net/qq_52466976/article/details/127808605报错是因为有表数据修改但是没提交,常见是Navicat上操作后没打勾提交导致的showFULLPROCESSLIST;显示正在操作的进程 解决:关掉这个操作的进程,根据ip定位一下 ......
  • 【12.0】Django框架之form组件
    【一】需求写一个注册功能获取用户名和密码,利用form表单提交数据在后端判断用户名和密码是否符合一定的条件用户名中不能包含啦啦啦密码不能少于三位如果符合条件需要你将提示信息展示到前端页面【二】form表单实现【1.0】点击提交按钮返回比对信息前端页面<f......
  • perl学习笔记12_字符串处理
    目录substr,rindex,取出最后一个斜线之后的所有内容:#说明:#rindex($a,"/")+1,表示从$a中找出最后一个"/"出现的位置(index);#位置值加1,表示最后一个"/"出现的位置之后的index;#substr($a,index),只有index参数,没有long参数,表示一直取值到字串......