Tuesday August 30, 2016

Demystifying Asynchronous Compute

What the hell is Asynchronous Compute? How does it work? What does it do and why do I care? I'm glad you asked because it just so happens that [H] forum member Ieldra put together a great guide to demystifying Asynchronous Compute that we highly recommend reading.

Right off that bat it's worth saying the term 'asynchronous' is abused and misused all the time; if two events are asynchronous they are time-independent of each other. Developers have made claims about their 'async compute' implementations in the past that have been rather confusing because it's usually applied to rendering tasks; it ain't asynchronous if there are data dependencies. To my knowledge, there is no title that actually makes use of ASYNCHRONOUS compute. Most use cases would fall under the third bullet point quoted above. Asynchronous execution arises when you do not have to wait for a routine to return before dispatching additional work, at least that's how it's conventionally defined, which is somewhat similar to how concurrency was defined earlier - which many people find confusing.