Published in Graphics

AMD gets all asynchronous and shady

by on31 March 2015


Will be seen on DirectX 12

AMD has been working closely with Microsoft on the upcoming DirectX 12 to create something which it calls "Asynchronous Shaders," which are more efficient way of handling task queues.

In DirectX 11 synchronous task scheduling is handled with multi-threaded graphics with pre-emption and prioritization.

GPU's shaders do the drawing of the image, computing of the game physics, post-processing and more, and they do this by being assigned various tasks. These are handled through the command stream which is generated through merging individual command queues.

However the queue has empty bits because they are not generated in order in multi-threaded graphics. This means the shaders don't reach their full potential and get stuck in dead end jobs, with ugly demanding partners who demand huge sacrifices for their screaming kids..

DirectX 12 enters

In DirectX 12, Asynchronous Shaders provide asynchronous multi-threaded graphics with pre-emption and prioritization. The Asynchronous Compute Engines (ACE) on AMD's GCN-based GPUs will interleave the tasks, filling the gaps in one queue with tasks from another.

Despite that, it can still move the main command queue to the side to let priority tasks pass by when necessary. It probably goes without saying that this leads to a performance gain.

AMD's GCN GPUs, each ACE can handle up to eight queues, with each one looking after its shaders. Basic GPUs will have just two ACEs, while more elaborate GPUs carry eight.

AMD demonstrations show that it does not cost much in frame rate to run Asynchronous Shaders and post-processing but it will improve performance.

All the increased parallelism and will ensure that more frames make their way to the screen even faster, which can be especially interesting for purposes such as VR.

Rate this item
(15 votes)

Read more about: