异步计算是 DirectX® 12Vulkan™
虚拟现实头盔支持的 Polaris(北极星)架构的一个硬件性能特性。异步计算将复杂的游戏工作负载分成较小的任务,进而多任务快速并行运行,充分发挥 Radeon™ RX 400 系列显卡的性能。

异步计算工作原理

阴影、光照、人工智能、物理和镜头效果等重要的游戏效果通常需要多个阶段的计算。之后才能确定 GPU 的图形硬件会将什么内容渲染到屏幕上。

在过去,这些步骤必须按顺序进行。显卡必须遵循 API 流程,从开始到结束,逐步完成渲染。初期阶段的任何延迟将导致后续阶段的一系列延迟。管线中的这些延迟现象被称为“气泡”,会让 GPU 中部分硬件暂停工作并等待指令。

1_api

 

管线气泡每时每刻在显卡中产生。没有游戏能完美利用 GPU 的所有性能或硬件,而且当用户突然决定在游戏中执行不同操作时,任何游戏都不能避免气泡的产生。

Radeon™ RX 400 系列显卡能从竞争中脱颖而出,得益于采用卓越的 Polaris 架构。它能够利用游戏引擎中有用的计算工作来填充这些气泡。例如,如果在渲染复杂光照时产生一个渲染气泡,Radeon™ RX 400 系列显卡就可以通过 AI 计算工作来填补这个气泡。Radeon™ RX 400 系列显卡无需像过去或者竞品那样遵循一步步的流程,而是能够共同或并行完成此工作,从而让整个过程流动起来。

2

 

填充这些气泡,可以最大程度地减少或消除可能导致其他显卡停滞的延迟涟漪效应,为用户改善 GPU 利用率、输入延迟、效率和性能。当前仅基于 GCN 和 Polaris 架构的 Radeon™ 显卡支持 DirectX® 12、Vulkan™ 和中的这项关键虚拟现实功能,并且可显著提升性能。

table

 

通过快速响应队列提升异步计算

当今的显卡引擎为充分利用异步计算带来诸多契机,但有些任务仍难以取得最大收益。因为它们并不明确清楚显卡处理新工作的开始时间。在这些案例中,我们可以向游戏引擎保证,任务会在规定的时间内的开始和结束,并以此来解决问题。

为了满足这个要求,必须给予时序要求严格的任务更高的资源处理优先级。实现这一点有一种方法,就是使用资源优先权,即临时暂停所有其他 GPU 任务,直到高优先级任务完成为止。但是,资源优先权通常付出的代价就是时间延迟。因为在新任务开始之前,旧任务的处理速度会被减慢。结果很可能就是游戏中出现烦人的卡顿现象。

不过,Polaris 架构支持使用另一种被称为快速响应队列 (QRQ) 的方法来处理时序严格型任务。采用此方法,提交至此队列的任务会得到 GPU 资源的优先处理。提交的多任务会同时异步运行,这样可以与其他工作负载重叠。通过一个名为硬件调度器 (HWS) 的 Polaris 架构硬件组件,游戏开发人员甚至可以控制 QRQ 任务使用 GPU 的方式、时间和程度。

3

通过异步时间扭曲实现虚拟现实的异步计算

虚拟现实渲染是快速响应队列的一个出色用例。例如,Oculus Rift 虚拟现实头盔的正式版本采用了异步时间扭曲 (ATW)
技术,能够减少延迟和防止丢帧导致的图像抖动现象。

在虚拟现实领域,用户理解为卡顿的丢帧现象可能会在渲染时间过长时出现,并错过对头戴显示器的刷新。其结果就是图像抖动,它破坏了对虚拟现实至关重要的临场感。虽然有各种方法(包括应用程序优化、降低图像质量,或升级到更强劲的显卡)解决此问题,但这些对开发人员和用户来说,付出的代价可能就是大量的时间或金钱。另外,Oculus 的 ATW 解决方案会自动填充帧,并对用户和开发人员完全透明。

ATW 的工作原理是处理已完成渲染的最后一个帧上的尺寸/阴影/视野,纠正任何在渲染工作开始之后发生的头部移动。此扭曲操作在 GPU 上通过计算执行,并且可被安排与 VR Ready Premium Radeon™
RX 480 GPU 上的其他工作并发进行。对每一帧进行此操作安排,能够确保始终有可供显示的最新图形,即便它仅仅是先前所显示帧的扭曲版本。

 

[最好在此处使用 Oculus Rift 的图像来拆分文案。或者使用扭曲工作原理的示意图,如这样]

若要执行 ATW 任务,必须认真计算好时间才会有效。理想状况下,扭曲应在帧周期中尽可能晚的时候发生,这样,在下一个显示更新之前就有足够的时间完成扭曲。如果扭曲发生太早,则显示刷新之前可能还会有头部移动,那会导致明显的滞后;如果扭曲发生的太晚,则可能会错过刷新,致使画面出现明显的抖动现象。

这种时间敏感性正是 Radeon™ RX 480 GPU 的 QRQ 作用所在。将 ATW 着色器置于快速响应队列上,会给予其访问 GPU 计算单元的更高优先级。即使是在一个帧周期稍晚时提交,也能大大加速其在下一个刷新带来之前完成渲染的可能性。由于它不需要与其他图形任务争夺资源优先权,这样 GPU 可以快速开始处理下一个帧。

4

时间线显示了异步时间扭曲任务与图形任务并行安排的方式

 

更加精确地控制 GPU 上执行单个任务的时间,能够带来一系列全新的方法,让我们充分利用由此带来的超强计算能力,而这只是其中一个例子。对于可以利用这一点的其他延迟敏感型应用,我们也已开始实验,例如在 GPU 上对虚拟环境的高保真度位置声音进行渲染。我们还考虑对未来异步计算任务进行更多进度控制。

没有评论

Be the first to comment this post.

电子邮件地址不会被公开。 必填项已用*标注