Asynchronous Shaders - AMD's Secret Weapon?
This was the big surprise from AMD: asynchronous shaders. We didn't know it was coming, but we're about to tell you why this spells excitement for the future of AMD.
AMD started this off by saying that modern GPUs are "not living up to their full potential" which had me nodding profusely in agreement. Right now, multi-threaded graphics are handled in a single queue, which is then scheduled in a pre-determined order - synchronously. Tasks that found themselves in different queues can be scheduled independently, which is asynchronous.
The video above will do a better job at explaining it, before we go into a bit of a technical deep dive.
The above slide is an example of a set of tasks that a modern game engine, split into separate queues. This model, in AMD's words "is very familiar to console game developers". Each queue is capable of executing asynchronously as well as in parallel, sharing all available GPU resources.
AMD had an excellent video that demonstrated how asynchronous shaders worked, which you can watch above.
Here we have the way ACE would be setup, where it has access to each individual shader engine and all of its separate power, working together.
As it stands, submitting tasks from multiple queues is very complex and stresses out the scheduler. Some GPUs are capable of processing a single command at a time, which makes it incredibly hard to keep GPU resources fully utilized. Right now, there is no way to prioritize all of this traffic, or which is urgent, and which is not.
Pre-emption is one way to deal with it, as high priority tasks cause other tasks to wait while the priority task overtakes until it is finished, suspending the previous task until it is done. This isn't an efficient way to solve the issue, as it can be even worse when switching overhead - causing delays, especially for VR.
The star of the show: asynchronous shaders. This way, GCN-powered video cards can use their ACEs to set the queue up with submit commands without waiting for other tasks to be completed, eliminating the above issues of suspending a task while a 'priority' task takes place. Independent command streams can be interleaves on the GPU Shader Engines, and executed simultaneously. Even still, asynchronous shaders support prioritization and pre-emption, when required.
Asynchronous shaders for VR makes the most sense, and it all came to light once AMD had wrapped up their event. Asynchronous shaders, powered by the ACEs found in the GCN architecture can "execute VR image processing in parallel with rendering". This will result in one of the best VR experiences available, with the lowest latency, and removes stuttering and judder.
Multiple VR techniques are also supported, with asynchronous image warping, asynchronous/isochronous time warp and asynchronous global illumination all supported.
PRICING: You can find products similar to this one for sale below.
United States: Find other tech and computer products like this over at Amazon's website.
United Kingdom: Find other tech and computer products like this over at Amazon UK's website.
Canada: Find other tech and computer products like this over at Amazon Canada's website.
- We at TweakTown openly invite the companies who provide us with review samples / who are mentioned or discussed to express their opinion of our content. If any company representative wishes to respond, we will publish the response here.