加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

分析硬件加速GPU计划?用处真的厉害吗?

发布时间:2021-05-23 07:42:47 所属栏目:移动互联 来源:互联网
导读:官方把Hardware-accelerated GPU scheduling这个词翻译成了硬件加速GPU计划,实际上在这里scheduling翻成调度能够让更多人明白它的意思,这也是比较有微软风味的

官方把Hardware-accelerated GPU scheduling这个词翻译成了硬件加速GPU计划,实际上在这里scheduling翻成“调度”能够让更多人明白它的意思,这也是比较有微软风味的翻译了。

回归正题,要说到GPU调度管理,我们就先要了解一下WDDM GPU调度器是什么。

WDDM GPU调度器与命令缓冲队列

从NT 6开始,微软给Windows引入了一套新的显示驱动模型,也就是我们现在所熟知的Windows Display Driver Model,简称WDDM。在WDDM出现之前,应用程序可以直接把任务提交到GPU,当时系统只有一个全局的任务队列,严格按照先到先执行的原则进行任务的调度。鉴于当时用到GPU的场景基本上就是全屏游戏或者专业用途的渲染什么的,这种方案也没出什么问题,被沿用了很多年。

到了应用程序开始普遍利用GPU加速的年代,比如说Windows要直接用GPU加速整个UI界面的渲染了,那么再用这个全局任务队列就会有问题,比如渲染系统界面的任务前面排了一个其他程序提交的任务,那么GPU会先处理掉那个任务再回头来处理系统的需求,这会造成整个系统UI的卡顿。为了妥善地安排GPU工作的优先级,势必需要一个新的任务调度器,由它负责安排GPU任务的工作优先级。

那么WDDM就引入了那么一个任务调度器,它以高优先级线程的形式一直运行在CPU上,负责协调、优先处理和调度各种应用程序提交的工作。从Vista上面的WDDM 1.0到Windows 10 Version 2004的WDDM 2.7,官方一直都在加强这个调度器的功能。但这种管理方式存在有一定的限制,主要体现在提交会有额外开销和任务达到GPU有一定的延迟时间,不过这些限制在实际中都被传统图形应用的渲染缓冲队列给掩盖了。

缓冲用来存放提前准备好的渲染命令等等内容,在GPU渲染当前帧的时候,CPU已经在准备下一帧、下下帧乃至之后的更多帧数了。这种方式能够保证CPU与GPU之间的良好执行并行性,也可降低整体的性能开销,是现在很常见的GPU调用方式。同时为了降低频率提交渲染命令带来的额外性能开销,一般应用程序会提前准备好多帧的内容一起发送到队列中。这里产生了问题,缓冲的帧数越多,用户能够感受到的延迟越高。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读