MCPLive > 杂志文章 > 解析AMD DirectX 12硬件的秘密武器

解析AMD DirectX 12硬件的秘密武器

2015-10-09林子涵《微型计算机》2015年9月下

与以往API不同,新的DirectX 12 API是一个全面为提升CPU与GPU运行效率而生的神兵利器,因此也需要厂商在CPU与GPU上均做出相应的优化才能充分发挥出DirectX 12的优势一单单依靠GPU或仅仅依靠CPU,用户都无法体验到DirectX 12的完整魅力。因此芯片厂商AMD特别与微软配合,对它的CPU、GPU产品都进行了相应的优化与支持,下面就让我们来了解一下它为DirectX 12做了哪些准备,有什么新技术。

从CPU到GPU的全面优化 解析AMD DirectX 12硬件的秘密武器
从CPU到GPU的全面优化 解析AMD DirectX 12硬件的秘密武器

DirectX 12在DirectX的发展史上可以被称之为革命性进步,之所以这样说,是因为在过去的DirectX发展史上,涉及到Direct3D架构的深层次改进并不算很多。比如早的DirectX 7实现了硬件的坐标转换,而随后的DirectX 8实现了顶点渲染引擎和像素渲染引擎的分离,DirectX 10则实现了统一渲染引擎。这几个版本都带来了DirectX和相关GPU的功能和硬件上的大跃进。虽然这些版本本身可能存在一定问题,使用时间并不长,但是这并不妨碍它们在技术发展历史中所具有的突破性、开创性历史地位。

AMD在DirectX 12时代拥有三种秘密武器,能够加强用户的使用体验。
AMD在DirectX 12时代拥有三种秘密武器,能够加强用户的使用体验。

在DirectX 12上,微软加入了底层优化的概念,放弃了之前如“黑盒”般不可控的抽象层,使得开发人员可以更多地接触硬件架构的底层细节,从而提高效率,释放性能。此外,在诸如动态纹理绑定、通用计算方面,DirectX 12都有一定程度的加强。总的来看,DirectX 12虽然没有对硬件提出特别的换代需求,但是其在软件层面尤其是渲染流程上的改进,堪称未来很长一段时间GPU发展的技术基础,它奠定了一个全新的GPU发展时代。

对多核心CPU来说,DirectX 12能够使得CPU效率得到大幅度提升。
对多核心CPU来说,DirectX 12能够使得CPU效率得到大幅度提升。

同时与以往API有所不同的是,DirectX 12还可通过基于底层开发,提升绘制调用性能的手段,来大幅提升处理器在运行游戏时的效率。因此芯片厂商AMD特别与微软配合,对它的CPU、GPU产品都进行了相应的优化与支持,并带来了异步着色器、多线程支持,以及更高效率的多GPU并行工作模式等三大利器。

AMD给出的DirectX 12应用在多核心处理器上的实际表现,可见整体效能非常出色,其中6颗核心在游戏中都得到了充分应用。
AMD给出的DirectX 12应用在多核心处理器上的实际表现,可见整体效能非常出色,其中6颗核心在游戏中都得到了充分应用。

DirectX 12多线程支持—提高多核心CPU性能

DirectX 12在多线程支持上可谓做出了决定性的改进。在之前的DirectX版本中,处理器所做的主要任务是为GPU准备命令列表,并将其存储至缓冲区。不过,这个过程由于存在一定的相关性,并且过程是不公开的,由处理器根据相关规则自动处理,因此很难有效多线程化。我们常常看到在一个游戏中,即使你使用了八核心处理器,但是依旧只有两个核心占据比较高的占有率,其余的核心都处于比较空闲的状态,造成了处理器性能的浪费。

在DirectX 12上,AMD配合微软改进了这样的情况。由于DirectX 12将CPU部分控制功能放开,使得程序员可以自行控制,因此在多线程优化上能够更为出色。根据AMD的测试数据来看,在AMD FX系列八核心处理器上,DirectX 12对CPU的工作负载能够比较均衡的分布在至少四个核心上。以游戏为例,八个处理器核心中的六个,可以得到比较有效的游戏负载,其余的一些诸如DirectX驱动、用户控制、DirectX Runtime等,也能有效的多线程化。根据AMD的测试,DirectX 12在八核心上,系统负载延迟能够降低至15ms以内,对应的就是高达66fps的稳定帧率表现。

在DirectX 11时代表现平平的FX-8350处理器,在DirectX 12下能爆发出极为强悍的潜能,性能获得大幅提升。
在DirectX 11时代表现平平的FX-8350处理器,在DirectX 12下能爆发出极为强悍的潜能,性能获得大幅提升。

更高的FPS帧速,更低的延迟,更好的画面质量,这是AMD总结的异步着色器的优势。
更高的FPS帧速,更低的延迟,更好的画面质量,这是AMD总结的异步着色器的优势。

AMD的GCN架构产品都有异步着色器,这是AMD一个非常具有先见之明的设计。
AMD的GCN架构产品都有异步着色器,这是AMD一个非常具有先见之明的设计。

另外,AMD还给出了3DMARK中有关API绘制调用测试的数据予以佐证。其中DirectX 11下,整个系统的调用无论是双核心还是八核心,都维持在比较低的水平,而在DirectX 12下,从双核心到四核心、六核心的绘制调用数量都有非常显著的增加,这样的状况直到八核心才变得不明显。AMD数据显示,在FX-8350八核心处理器上,多可以启用其中的六个CPU核心,平均每个CPU核心处理了超过290万个绘制命令,相比传统处理器大约百万级别的绘制命令,DirectX 12的效率非常惊人。

AMD认为,在DirectX 12释放了CPU端多线程的性能后,能够为游戏带来更高的FPS。CPU处理游戏代码更有效率、并行性更强,整体游戏性能也更为出色。不过需要说明的是,目前测试中显示出的如此巨大的性能优势,并不能直接反应到游戏中,因为绘制调用只是游戏和应用的一个方面,随后更重的负载会加在GPU以及其它部件上。DirectX 12对绘制调用在底层的优化,只对那些CPU性能约束比较严重的游戏有比较明显的效果,在一些优化得比较出色、GPU负载很高的测试和应用中,效果就没有那么明显了。

分享到:

用户评论

用户名:

密码: