Async Compute Explained

Bacon1

Diamond Member
Feb 14, 2016
3,430
1,018
91
https://www.youtube.com/watch?v=XOGIDMJThto

^ The sources in this video come from various IHVs (AMD ofc, Sony and Microsoft) and developers. It should explain what Async Compute is all about, it certainly helped me understand it better.
We often see devs on consoles hype up Async Compute, seeing major gains for them, but you all know console hardware is very low shader count. Console API also are fully multi-threaded and so shader utilization isn't an issue.
Likewise, with Vulkan in Doom on the RX 480 and even older GCN like Tahiti 7970/280X seeing massive gains, these lower shader-count GCN would get little gains if Async Compute was only about shader utilization.
Ultimately, think of it as a Multi-Engine API, tapping the Shaders, Rasterizers and DMAs simultaneously in parallel.

https://www.reddit.com/r/Amd/comments/4skgy1/async_compute_lots_of_misunderstanding_in_the/

Also good video here from Unity conference (part of which is shown in the above video): https://youtu.be/H1L4iLIU9xU

AMD has a video here as well from 2015 which talks about async compute as well as Preemption (what pascal is using): https://youtu.be/v3dUhep0rBs?t=94
 

Shivansps

Diamond Member
Sep 11, 2013
3,912
1,569
136
No this again...



What i whould find usefull is guides, manuals ir even tutorials about how get this done on unity3d. Not useless info on how good it is.
 
Last edited:

Bacon1

Diamond Member
Feb 14, 2016
3,430
1,018
91
Senior engine programmer Jean Geoffrey goes into depth on the profound advantages that async compute brings to the table.

"When looking at GPU performance, something that becomes quite obvious right away is that some rendering passes barely use compute units. Shadow map rendering, as an example, is typically bottlenecked by fixed pipeline processing (eg rasterisation) and memory bandwidth rather than raw compute performance. This means that when rendering your shadow maps, if nothing is running in parallel, you're effectively wasting a lot of GPU processing power.

"Even geometry passes with more intensive shading computations will potentially not be able to consistently max out the compute units for numerous reasons related to the internal graphics pipeline. Whenever this occurs, async compute shaders can leverage those unused compute units for other tasks. This is the approach we took with Doom. Our post-processing and tone-mapping, for instance, run in parallel with a significant part of the graphics work. This is a good example of a situation where just scheduling your work differently across the graphics and compute queues can result in multi-ms gains.

"This is just one example, but generally speaking, async compute is a great tool to get the most out of the GPU. Whenever it is possible to overlap some memory-intensive work with some compute-intensive tasks, there's opportunity for performance gains. We use async compute just the same way on both consoles. There are some hardware differences when it comes to the number of available queues, but with the way we're scheduling our compute tasks, this actually wasn't all that important."

http://www.eurogamer.net/articles/d...n-patch-shows-game-changing-performance-gains