At the time of launching of GCN architecture back on 2012 AMD introduce a new feature Asynchronous compute engines, but the sad thing is, this was never been utilized. Because its need next generation API’s to come and allow it to do something GPUs have never been able to do before, operate under full load.
So what is AMD Asynchronous, when your GPU is doing any tasks, some parts of the GPU is unused, lying in an idle state, waiting for a new tasks order. If you think your GPU in 100% load while gaming, that means all portion is in use, then you miss thinking. A GPU process task that send by CPU, to work at 100% all time without idle GPU need uninterrupted data flow. Asynchronous address this issue and make your GPU work on several different tasks at once and reduce have parts of it at idle. You can see a simple explanation in the video down below.
AMD created asynchronous shaders for this purpose, to allow GPUs to work on several tasks at once, but API’s needed to catch up and deliver GPUs with several tasks at once. DirectX 12 will fix this issue by allowing GPUs to interleave tasks and do them at the same time if they are required. This will greatly reduce idle time and give more performance from same GPU than before. Using Asynchronous shaders, and AMD’s Asynchronous compute engines, AMD will likely get a significant performance boost from DirectX 12.
“With async shaders, we can fill parts of the GPU that [would] otherwise be forced to idle. It’s one of those features we wish we had on every GPU.” – Dan Baker, Oxide Games
As of now Nvidia do not have an Asynchronous compute capability with their current lineup of graphics card, but AMD have had it since their GCN architecture was introduced in 2012.