gpu audio

hello there, sorry for being away for a while but you g&g are always in my mind :muscle:

I have seen the “gpu audio” project (I don’t know if you have seen it…I don’t think I can put a link here), and I have seen on discord that they are close to release the SDK…for the ones that can be interested :wink:

cheers! :broccoli:

A

1 Like

On my machine when running the Rack, GPU load is higher than CPU load.

2 Likes

Indeed GPU is the “problem” with VCV. Sometimes I “synth” myself to sleep, patching something generative ambientish and letting it run, but I can’t fall asleep with the fan going crazy, so then I have to hide VCV, let it run in the background, miniaturized, and then no crazy fan noise. GPU is the problem, it won’t be the solution on my laptop anyway ! Project looks good for other applications though !

I would be interested in looking at the GPU audio SDK. I have done a lot of GP-GPU massively parallel processing of data over the past dozen or so years, mostly via NVIDIA CUDA and MS DirectCompute. I have done FFT spectral analysis of 14 channel EEG signals in real time, image processing including video at frame rate, audio processing in realtime, etc. So, all of these things are fairly well established, but still relatively difficult to do, especially in real time with sample level timing accuracy. If you think it is difficult to synchronize a hand full of threads, imagine what it is like to synchronize several thousand concurrent threads accessing and acting on the same data objects!

My most recent project is a physics string theory model and simulation in 10 dimensions. For that I use the GPU to populate a 2 million particle “point cloud” in 10D and then triangle tessellate the points on a 2D manifold in 3D space via projections and cross-sections, at video frame rates.

Out of curiosity, I just now launched my Unity based string theory simulation and then launched a complex Rack patch. Nothing strange happened to CPU or GPU utilization nor were there any audio artifacts. But, my system is an Alienware gaming tower with a high end NVIDIA GPU, built for this type of stuff.

So, I would not rule out the ability to do some fun things in Rack via GPU parallel computing, but it would be very difficult to make it OS and hardware independent. Debugging such GPU code is hell.

I can imagine doing something like this in a local build, but in my opinion, being able to do it cross-platform in the VCV library to be an extreme challenge and risk.

Just my experienced perspective.

2 Likes

Of course, I was assuming parallel GPU computing. The SDK mentioned may not do such but rather could use GPU “shader” code or similar to do GPU hardware accelerated serial code.

Have you tried running your patch in “headless” mode ie without the UI at all? I think the only way to do it is via command line (terminal app on Mac, probably PowerShell on Windows) Headless Mode in Rack v2 - #2 by Vortico

2 Likes

Looks like their “GPU Audio DSP SDK” is not available yet and no announcement of when, so it is hard to tell just what this is all about other than their commercial product line of GPU enabled plugins. I don’t get the impression that this will be an open standard.

Neither open nor cross-platform I suspect. Which imo means it’s not really interesting for developers to get involved with.

1 Like

The back & forth of buffers to the GPU hardware is the limiting factor. The latency is too high. The kind of simulations you’re doing run as close to realtime as they can & it’s fine for that application. Audiio is actually a very demanding application, because you are on a deadline. Next buffer isn’t ready? Time to stutter!

Yep. That is not to say it cannot be done, but it would take someone more clever than me to do it. But, I’m not interested in this topic as this will not be an open source SDK, most likely.

You have unacceptable latency for an audio application.

The key thing here is whether this is truly a realtime, zero latency, instant results system as the web site says it is. :wink: I imagine it is more of a “render farm” for audio. But, I could be wrong.

My basic belief is that anything is possible as long as it does not violate the laws of physics. You can always reduce latency to any arbitrarily small non-zero amount, if you are willing to throw enough money and hardware at the system. It may not be a sensible investment, but not impossible. Zero latency is impossible.

2 Likes

I have a concrete real-world example: The Universal Audio UAD-2 can run DSP on a card in ‘realtime’ - meaning there’s some inevitable latency, but small enough that DAWs like Ableton Live can compensate for it. So it isn’t impossible. But a GPU works differently, and gains its performance for working on vectors of data. The vector size determines the theoretical minimum overhead.

One of the things that’s a side effect of the UAD card being over firewire (or on the PCIE bus) is that it’s optimized for real time performance, but seems incapable of what native plugins can do, which is process audio faster than realtime. It takes as long to render through UAD plugins as it does to play the audio.

Take what I said with a grain of salt, as it relies on the unlimited improvement in computational technology with time. What is impossible today may be possible tomorrow as long as we do not reach the wall of a law of physics (or computation). CUDA cores become Tensor cores. Buses become optical. Processors become quantum entangled. Memory becomes holographic…

Not a very practical approach, but not impossible with time.

So it won’t be up on the Rack website any time soon?

Yeah, I can’t argue with that! :thinking:

you are 100% correct. The latency of a GPU makes it really, really unlikely that one could run VCV or VCV modules on it. I hesitate to say “impossible”, but I’m tempted.

this discussion was not meant to be vcv rack related :wink:

btw (just for info) on my laptop it’s the opposite: I opened a (not so small / not so big) patch and it looks like 16% cpu and 12% gpu…maybe it’s the good quadro m5000m

p.s. OS?

yeah headless mode is the way Headless Mode in Rack v2 - #34 by ale47p

1 Like