As noted in my previous blog, new innovations in virtual reality have spearheaded a renewed interest in audio processing, and many new as well as retreaded solutions have been put forward in the ongoing search for audio technology that can meet the new standard of realism that virtual reality demands. A fair question to ask is, “where does TrueAudio Next really fit into this emerging new ecosystem of audio processing for VR?”
A Fundamental Enabling Technology
The first thing to make clear is that at its core, TrueAudio Next is an open-source, OpenCL™ audio math library that can run on a GPU or x86 CPU (thus providing a means for possible platform fallback). A separate value-add component of TrueAudio Next is a licensed, free-of-charge developer-accessible resource reservation technology supported through Radeon™ drivers that can enable deterministic processing of critical real-time audio on the GPU. This value-add component is called CU Reservation. The GPU resource reservation capability of TrueAudio Next is a unique innovation for GPU compute and required many months of R&D to bring to life. It is an AMD-exclusive, fundamental enabling technology that can open up new audio uses of the GPU, in a similar way that SSE instructions enabled audio to move to the CPU and opened up new features and scalability.
Making GPU Audio Acceleration Usable in a Workflow
Many research papers have been written about accelerating audio on GPU compute, and have shown impressive possibilities for dramatically improving audio throughput, but we have always been left with the issue of how to achieve deterministic real-time results when audio is sharing resources with graphics on a GPU, and how to manage resource sharing between game graphics and audio in a way that keeps both workflows moving forward productively during game development.
TrueAudio Next CU reservation is designed to address this issue. We should note that audio is not the only new critical real-time GPU workload to emerge with VR. Head tracking on HMDs is another example of a critical real-time function in VR that must co-exist with graphics, and it uses some considerable amount of GPU compute resources. Audio has additional issues however: the resource load of audio in gaming is variable and content-specific. Moreover, in a typical game development cycle, audio design comes near the end, since we first need the graphics to be at a state where we can see what is happening and then audio designers can create the accompanying sounds. So the last thing a game developer needs is for audio design to come in at the last minute and “tank” the frame rate that has been carefully tuned during the initial game development. The idea of CU reservation is two-fold: first, to provide a compute resource for critical real-time audio on the GPU that is isolated from the highly variable, competing graphics and compute workloads running alongside ; and secondly, to provide a deterministic method to carve-out a fixed set of compute resources for audio that can help mitigate the threat of last-minute surprises during game development; in other words, to make the tradeoff of using the GPU for audio more manageable in a real-world development context.
Making a Clean, Enforceable Tradeoff of Scalable Resources
Clearly, if one is carving out some CUs for audio in a game, there may be some impact on the max frame rate that the game can achieve; fewer CUs are available for graphics if some are carved out for audio. However, the benefit of CU Reservation is that the tradeoff can be made much earlier in the development cycle, and is more deterministic. Both graphics and audio teams can be held to their respective “sandboxes” to avoid last-minute surprises, such as the audio designer adding a couple more sounds at the last minute, and suddenly disrupting the graphics quality of the game. Instead of that outcome, the audio design team would immediately see that they have exceeded the real-time capacity of their CU Reservation allotment and they can make appropriate adjustments to the audio design (or negotiate with the project lead for more CUs). Again, surprises are avoided.
We presume that developers that deploy TrueAudio Next appreciate the importance of real-time audio in VR gaming and are willing give up some amount of excess graphics draw call throughput in order to achieve more realistic audio, as long as they can still achieve their goals for graphics performance. Game developers that don’t have a need for audio acceleration are not “taxed” with a reduction of CU availability for features they don’t require – use of TrueAudio Next CU Reservation is a runtime decision by the game developer.
In this context, TrueAudio Next with CU Reservation can be viewed as a key enabler of new audio experiences. Our partners are actively working to put this technology to good use – and you are welcome to join!
Related:
TrueAudio Next on GPUOpen
The Importance of Audio in VR
Phonon and TrueAudio Next: Accelerating Physics-Based Audio for VR
TrueAudio Next: bringing realistic audio to VR
TrueAudio Next Open Source Repository on GitHub
1Discrete AMD Radeon™ and FirePro™ GPUs based on the Graphics Core Next architecture consist of multiple discrete execution engines known as a Compute Unit (“CU”). Each CU contains 64 shaders (“Stream Processors”) working together
2GPU L2 cache and memory resources remain shared when CU reservation is enabled. GPU local data share “LDS”, L1 cache and compute resources are dedicated to the reserved CUs or non-reserved CUs that they are associated with.