小行星与 DirectX* 12:强大的性能与能耗优势

下载代码样本

英特尔在 2014 年国际图形学年会 (SIGGRAPH 2014) 上首次展示了所开发的小行星样本。该样本举例说明了如何使用 Microsoft DirectX* 12 图形 API 实现高于前代 API 的性能与能耗优势。 DirectX 12 现已公布,我们将发布面向该样本的源代码。 其中,我们采用两种模式(最高性能模式和最节能模式)渲染由 50,000 颗完全动态并且不重复的小行星所组成的场景。 只需轻击一个按钮,该应用便可在 DirectX 11 和 DirectX 12 API 之间进行切换。

当平板电脑在稳定的低散热状态下运行时,Microsoft Surface* Pro 3 可捕捉此处的所有结果。 该状态相当于连续 10-15 分钟以上运行一款复杂的游戏。

性能

在性能模式下,应用可在平台的散热和能耗限制内以最快的速度运行。 使用 DirectX 11 时我们可以看到:

frame rate and the distribution of power between the CPU and GPU

上图所示为帧速率(左上角)以及 CPU 和 GPU 之间的能耗分布。 切换样本后在 DirectX 12 上运行,此时性能得到了显著的提升。

Performance with DirectX 12 increases ~70 percent (from 19 FPS to 33 FPS).

DirectX 12 将性能提升了约 70%(从 19 FPS 到 33 FPS)。 能耗图表说明了性能提升的原因。 DirectX 12 面向低开销、多线程化渲染而设计。 使用新 API 后,对 CPU 能耗的要求有所降低,因此这部分能源可用于 GPU。

能耗

为了直接对比 DirectX 12 和其他 API 的节能特性,我们还支持锁定帧速率模式,以便该样本在各 API 中完成相同的工作量。 通过从 DirectX 11(能耗表左半部分)切换至 DirectX 12(右侧)并保持固定的工作负载,我们可以看到:

DirectX 12 uses less than half the CPU power when compared to DirectX 11

相比于 DirectX 11,用 DirectX 12 渲染相同场景时,CPU 能耗降低了超过一半,因此设备的外形更加炫酷,电池续航时间也得以延长。

DirectX 12 能够显著提高能效的原因有两点:降低图形提交开销和提高多线程化效率。 相比于高频率运行一条线程,以较低的频率将工作分布于多个 CPU 内核可显著提高能效。

总结

我们通过样本证明了 DirectX 12 能够显著降低能耗、提高性能。 我们创建此样本是为了展示两种极端:固定能耗和固定工作负载。 在真实情况下,开发人员可以根据其应用,选择任意组合的能耗与性能。

其中的关键是,能耗和性能密不可分。 传统的 “CPU 和 GPU 密集型” 观点会对 Surface Pro 3 等现代设备造成误导。 即使应用不是 “CPU 密集型”,CPU 能效的提升也会有助于提高性能。

更多信息

GitHub: https://github.com/GameTechDev/asteroids_d3d12

DirectX 开发人员博客: http://blogs.msdn.com/b/directx/
DirectX 12 Twitter feed: https://twitter.com/DirectX12
英特尔软件 Twitter feed: https://twitter.com/IntelSoftware

英特尔技术可能要求激活支持的硬件、特定软件或服务。 实际性能会因您使用的具体系统配置的不同而有所差异。 请咨询您的系统制造商或零售商。

在性能检测过程中涉及的软件及其性能只有在英特尔微处理器的架构下才能得到优化。 诸如 SYSmark* 和 MobileMark* 等测试均系基于特定计算机系统、硬件、软件、操作系统及功能。 上述任何要素的变动都有可能导致测试结果的变化。 请参考其它信息及性能测试(包括结合其它产品使用时的运行性能)以对目标产品进行全面评估。

如欲了解更多信息,请访问 http://www.intel.com/performance

有关编译器优化的更完整信息,请参阅优化通知