Generalised GPU compute for audio - what's required?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Having a discussion with a friend about GPU compute for audio plugins, brought about by the release of the new Mac Pros... there's a lot of GPU processing power in there which is basically lost on audio applications at the moment, but we're discussing how/whether/when we will get to a point where GPU compute for audio is a reality.

So what's it gonna take? Some thoughts we came up with:

- GPU compute API(s) will have to be incorporated into plugin SDKs - mainly talking VST and AU I guess coz AAX has its own DSP thing going on...

- For AU, Apple could work with existing OS X APIs which support OpenCL, and/or do their own thing by creating a new OS-level API for GPU audio processing, and bake that into the AU API... but they could also restrict the API to plugins that are sold within their hypothetical App Store for plugins, which would also bring about other issues (sandboxing, possible incompatibility with anything other than Logic X)

- For VST, Steinberg would have to make it compatible with open, cross-platform standards like OpenCL wouldn't they? Or else surely they'd run into issues with cross-platform support... I guess it'd be a VST3.0+ thing too, since they're halting VST2 support, which means more hosts would have to implement VST3.0+ support to allow it...

Anyway, this is all speculation I guess, but these new Mac Pros might be the impetus to push for a generalised GPU audio plugin processing API...

Post

Could it maybe be done at the DAW level as well, regardless of whether the plugin itself is capable of using the GPU in its own right?

Post

There are plugins that use GPU already (for a while now), so there's no reason to believe that any additional support from any plugin API is actually necessary.

Post

Existing GPU architecture does not seemingly "support" recursive algorithms, so not much can be ported to GPU. 64-bit floating point is also not widely supported while it is required for high-res convolution.
Image

Post

Aleksey Vaneev wrote:Existing GPU architecture does not seemingly "support" recursive algorithms, so not much can be ported to GPU. 64-bit floating point is also not widely supported while it is required for high-res convolution.
There's been some approaches where recursive algorithms are unrolled though; you essentially build a recursive algorithm on vectors of samples, such that you can process a larger block at a time to get the recursion overhead down. It still won't really work if you need to do iterative root-finding or something else that makes unrolling unfeasible, but for linear IIR filters it's a possibility, and there was some papers about it somewhere. The question though is whether it actually makes any sense in practice.

But.. there's stuff that does FFT style processing, apparently with some amount of success.

Post

mustgroove wrote:we're discussing how/whether/when we will get to a point where GPU compute for audio is a reality.
Afaik it's already reality for some years. The UAD card for instance was basically a graphics card without VGA output but just used for processing.
Experiments with VSTs doing the DSP on a generic GPU started some years ago, as early as 2008 I found:
http://www.kvraudio.com/forum/viewtopic ... hlight=gpu
http://www.kvraudio.com/forum/viewtopic ... hlight=gpu
http://www.kvraudio.com/forum/viewtopic ... hlight=gpu
http://www.kvraudio.com/forum/viewtopic ... 20&start=0
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

Check out AMD TrueAudio http://www.amd.com/us/products/technolo ... audio.aspx

it's targeted for game developers, but should be flexible enough for general audio DSP use. At least GPU assisted convolution should be possible. I haven't checked out the API yet, but the technology is supported by PS4 and XBox One, so it might gain some ground.

Post

mr.bungle wrote:Check out AMD TrueAudio http://www.amd.com/us/products/technolo ... audio.aspx

it's targeted for game developers, but should be flexible enough for general audio DSP use. At least GPU assisted convolution should be possible. I haven't checked out the API yet, but the technology is supported by PS4 and XBox One, so it might gain some ground.
No mention of latency there. Thats the big problem with GPU audio.

Post

TrueAudio warrants some discussion, but I haven't seen any. I think it would be cool to use a PS or XBOX as a DAW but they are locked (and proprietary) platforms now it seems.

Post

Very interesting topic and stuff like this is definetly a mid-term goal for the new audio engine in vvvv. I myself want this very bad, since i write shaders since over 10 years in my daily job. We have a shader editor for DX9 and DX11 shader models which works in real time. You can write your code and as soon as you press save the shader gets compiled and replaced in the graph. But its focused on 3d graphics of course.
Closing the gap from the new DX11 engine to the audio engine should be a matter of a few lines. I'll get back to you as soon as this happens. 2014ish i would say...

Post

I developed 64-voice GPU additive engine with 4 additive oscillators per voice ... 240/480 harmonics and Kawai K5000-like 136-band formant filter per oscillator, each harmonic has its own 8-stage loopable envelope, etc. It is an external engine for my Tranzistow synthesizer. I wrote about it in this very forum just a month ago but this was mainly ignored so I decided to keep it for my own private use only.

Post Reply

Return to “DSP and Plugin Development”