线程的高速公路
除了HBM显存之外,Fiji最引人瞩目特点无疑来自对DirectX 12的支持。作为微软四年来首次更新的最新版图形API,DirectX 12早在发布前很久就已经为人们所“熟知”了,它解放CPU并大幅提升多核心利用率的新特性以及它与Mantle的是非恩怨一直都是媒体和爱好者中间津津乐道的话题。但是事实上,DirectX 12的改进远不止于此。
DirectX 12能够带来的优势
在以前的DirectX当中,图形处理相关的线程,无论是光照处理、显存操作请求或者物理过程等等,最终都要按照某个特定的顺序汇总排列并进入到GPU的任务处理队列当中,这种汇总方式让GPU的最终处理过程处于事实上的单线程状态。与以往的各个版本相比,DirectX 12进一步强调了多线程调度和GPU资源并行利用的权重。
在DirectX 12当中,微软允许程序将不同的处理过程分配成不同的独立线程,然后让GPU以并行的方式吞吐这些线程并加以处理。过去被统一到同一条道路上的光照处理、显存操作请求或者物理过程,现在可以分开到各自的轨道当中同时被执行了。
开启并行处理过程的好处是显而易见的,串行线程处理过程对于GPU单元复用率的提升有巨大的制约,因为图形线程不可能包含能够对应GPU内各个单元的全部操作,当某个线程被执行时,串行线程执行方式会让一部分甚至是大部分GPU单元处于“空转”状态,这种状态所产生的能耗完全是被浪费掉的,而且整个GPU的大量闲置也无法被转化成更快的帧数。所以在DirectX 12时代,我们有理由相信能够利用多线程并行处理特性的GPU可以以更高的效率来完成渲染动作。
之所以说DirectX 12是Fiji的杀手锏之一,是因为Fiji架构所基于的GCN架构本身已经完成了利用这一特性的设计。在之前发布的Hawaii架构当中,AMD完成了对GCN架构的前端设计调整,通过8组ACE并行结构的设计,GCN架构已经具备了很好的划分线程并完成并行吞吐的能力。只要API允许,同样基于GCN架构的Fiji就能以并行操作来让线程充塞整个GPU,提升单元复用率进而提高实际执行效率和整个GPU的能耗比属性。
推荐经销商