AMD Simplified: Asynchronous Shaders
At the heart of all AMD’s graphics core next base GPU’s are large highly parallel computation engines capable of processing many thousands of individual pieces have data at the same time. These engines are fed by one command processor and multiple asynchronous compute engines or ACE. The command processor handles the main graphics cue and ACE’s handle compute cues. ACE’s enable the GPU to process multiple compute tasks simultaneously increasing GPUs efficiency in boosting performance crucial to reducing latency and delivering consistent frame rates.
Gaps between rendering tasks leave part of the GPU idling which in turn reduce GPUs efficiency. Asynchronous Shaders address this by scheduling compute tasks asynchronously or concurrently with graphics rendering tasks without waiting for current rendering work to finish. Submitting tasks is easy if they’re coming in order from a single source, it gets trickier when they’re being submitted multiple sources. New API’s like DirectX12, Vulkan and Mantle enable multithreaded task submission. The traditional way of handling this is like a traffic light, first one stream on commands gets a green light to submit to the GPU, while the other cues up at a red light.
Then at some point the lights change and the first train stops while the other stream submits. This approach has a couple of issues. A stream of tasks may leave gaps where parts to the GPU are unused and there’s no sense of prioritization for more urgent or time sensitive tasks. Lack of prioritisation and the ability to interrupt work in flight could lead to large processing latency. A partial remedy involves preemption, prioritizing some tasks over others. High priority tasks are executed while low priority tasks are suspended. Preemption deals with data traffic timing issues but tasks switching overhead can actually lower overall efficiency. However not all preemption techniques are created equal. If performing course level preemption such as on drawing compute task boundaries there are no real time guarantees of a large draw of computer tasks that have to be waited on. Asynchronous Shaders provide a full solution as they operate like a highway eliminating traffic lights and scheduling issues and enabling task from multiple sources to be submitted to the GPU and process simultaneously.
Using multiple command processors the Asynchronous compute engines in AMD’s graphics core next GPU architecture each queue consume it commands without waiting for the other tasks to complete. The result vastly improved GPU efficiency that boost graphics processing performance reduces latency and delivers the consistent frame rates that are vital to an immersive and life like gaming experience. Virtual reality or VR is a computer-generated digital environment that enables an immersive life like user experience..