DirectX曾经是图形行业技术的先驱、时代的象征,但是自从2007年的DX10之后,多年都没有看到任何革命性进步,直到DX12,终于给现代GPU带来了新生。
DX12的变化是全方位的,比如更底层硬件访问、多核心CPU深度优化等等,还有首次原生支持的多GPU,不仅仅是NVIDIA SLI、AMD CrossFire那样的自家自娱自乐,更是将不同厂商的独立显卡、集成显卡拉到了一起!
这个技术之前只在纸面上介绍过,如今随着《奇点灰烬》在Steam上开放早期访问,终于有机会实战一番了,因为它是第一个支持DX12多GPU技术的游戏。
开发商Oxide在吃螃蟹的过程中费了不少劲,但表示对结果也是很满意的,学到了很多东西,比如PCI-E带宽共享纹理是很充裕的,GPU间交换数据有大约2毫秒的延迟。
不过记住,《奇点灰烬》游戏本身还在Alpha测试阶段,DX12的多GPU技术更是连Alpha阶段都还不到,所以这里只是一个预览,不代表最终表现。
测试平台配置如下:
【DX12原生多GPU互连解析】
说起跨厂商的多GPU互连,大家肯定还记得Lucid,其方案确实有独道之处,很多主板都采纳过,但因为得不到AMD、NVIDIA的支持而在兼容性、效率上存在天然缺陷,已经慢慢沉沦了。
DX12提供了三种不同的多GPU模式,最简单的叫做“Implicit Multi-Adapter”(IMA),使用DX11及之前的AFR(交替帧渲染),很容易提供支持,但限制很多,无法充分发挥多GPU的潜力,尤其是需要借助原厂驱动。
高级的叫“Explicit Multi-Adapter”(EMA),需要开发者明确地为多GPU操作编程,包括GPU负载分配、显存分配、GPU间通讯等等,几乎拥有对API和游戏的绝对控制权,当然也需要在开发和优化上大量投入。
EMA又提供了链接GPU、未链接GPU两种模式。
未链接GPU支持任何厂商的独显、集显,尤其适合两种显卡的混搭。每个GPU都有自己的显存、指令控制器等,但是可以通过DX12 EMA彼此交换任何数据,并且使用的是SFR(分割帧渲染)。
链接GPU则面向多块档次相近的独立显卡,并且全部被统一为单个GPU,但是因为PCI-E总线的限制,指令处理器和显存池仍是分开的。
【高端显卡实战:效率惊人】
首先使用AMD Radeon R9 Fury X、NVIDIA GeForce GTX 980 Ti AFR模式跑游戏,分别担当主卡,分辨率2560×1440,开启垂直同步。
结果相当惊喜,不管谁做主卡,都十分稳定、流畅,也看不出什么差别。
下边开始跑分,首先上2560×1440分辨率(前者为主卡):
搭配旧版驱动(AFR兼容性更好)的时候,980 Ti、Fury X性能差异不到5%,正好拿来做测试,而升级到新版本之后,二者都有一定的提升,分别大约8%、5%。
二者无论谁做主卡,成绩都是差不多的,平均都达到了70FPS左右,只差区区1.4FPS(2%)。
有趣的是,这种“杂交”反而比同门联合更快:R9 Fury X、R9 Fury只跑出了67.1FPS,GTX 980 Ti、GTX Titan X更是仅仅61.6FPS,证明DX12的效率确实很高,尤其这还只是预览阶段呢。
优化到位的SLI/CF提升效率可以超过80%,DX12又有多少呢?也不少,R9 Fury X、GTX 980 Ti比单卡要提升70%上下,尤其是R9 Fury X做主卡的时候比单独自己提升了75%。
R9 Fury X、R9 Fury二者联合也比单旗舰卡高出66%,GTX 980 Ti、GTX Titan X则只有46%,确实都没有混合组合来得高。
GPU利用率方面,R9 Fury X做主卡的时候一直都是几乎100%,GTX 980 Ti则平均约90%,因为主卡不是在渲染就是在读取副卡的帧渲染数据,而副卡需要等待主卡的同步信息。
接下来上3840×2160分辨率:
混合搭配的效率依然很高,不过奇怪的是,R9 Fury X做主卡可以跑出51.8FPS,GTX 980 Ti做主卡则只有43.8FPS,慢了大约15%。或许,R9 Fury X在读取资源方面效率更高,但这是硬件还是驱动的差异就不得而知了。
两组N卡、A卡的各自组合这次不错,介于混合搭配之间。
提升幅度方面,R9 Fury X、GTX 980 Ti都比单卡提升了66%,但是交换主副卡效率只有40%。R9 Fury X、R9 Fury则接近了50%。
最后看看帧渲染时间,一直都有明显波动,至少在20-30毫秒。两块N卡的情况最好,两块A卡则是最差,混合搭配的还不错。
【老旗舰上阵:诡异出现了】
当代旗舰卡表现出色,那么老旗舰呢?这里找来了HD 7970、GTX 680,分辨率2560×1440。
HD 7970的性能比GTX 680好了大约22%,差别还是比较明显的,放到一起就更有趣了。
HD 7970做主卡比单独自己提升了55%,比一块GTX 680更是高了90%。
GTX 680做主卡反而变慢了,比单独自己慢了足足40%,更是不到HD 7970的一半。
GTX 680领导不力?HD 7970跟不上趟?抑或有其他原因,暂时还不清楚,需要更多测试来研究。