Convolution Reverb for NVidia and ATI GPUs - saving CPU time

VST, AU, AAX, CLAP, etc. Plugin Virtual Effects Discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

Ideas from people that have knowlege about low-latency
convolution are welcome :) I'm sure with a good algorithm,
a GPU could run hundereds of instances, it's a damn fast
co-processor!
Check freeverb3 impulser sourcecode (http://freeverb3.sourceforge.net/). This convolution processor works fine for me with lowlatency.

Post

cYrus wrote:
MelodyMan wrote:
hill_matthew wrote:
jupiter8 wrote:Just tried with the Live demo as well. The file browser came up in no time but unfortunatly the plugin crashed Live as well. An unhandeled wxception has occured. Still running a 8600GT with driver 177.83. I wonder if that's the problem since it seems to be working for other guys in Live.
Did you try copying the cuda dlls installed in the Nils directory under your vst folder to your system32 folder?

My nvidia control panel says I am running forceware 177.35 which seems to be different to yours.
I'm also running the Forceware-driver and i get the same cuda-related error-message. The plugin does show up, but doesn't recognize the GPU. I'm running a Geforce 8500 GT by the way.
i would try to install the CUDA toolkit: http://www.nvidia.com/object/cuda_get.html
Thanks, i'll try that when i get home.
Buy Darling Sister's new album "Rise and fall" now! Just send a pm or an email. Visit our myspace page on www.myspace.com/darlingsister for songsamples.

Post

http://www.music.miami.edu/programs/mue ... apter2.htm at least has some ideas about how to do zero-latency convolution... basically you buy yourself the first block by running brute-force FIR (you'd want that on CPU) and then convolve rest of the tail with progressively larger FFT blocks, with the main nasty part of the algorithm being the scheduling (you'll need to split the processing of the large blocks into many small parts to get constant load). Anyway, as suggested before, it probably makes sense to do the head of the impulse with the CPU, and only use GPU for the long tail.

As for your plugin, unfortunately I'm unable to test it, as all the computers I could try it on happen to be running ATI cards. :P

Post

Just installed pretty much everything CUDA related i could find and still get a crash. Don't mean to be a PITA. Just telling about me experience as a good beta tester should do. :)

Post

mystran wrote:Anyway, as suggested before, it probably makes sense to do the head of the impulse with the CPU, and only use GPU for the long tail.
One of the problems with that approach will be that getting to zero latency is the part that uses the biggest ammount of CPU in a zero latency solution because doing lots of FFTs on small blocks isn't very efficient. The long tail (say where blocks are getting to >~10000 samples, usually the vast majority of the IR) is actually extremely efficient in a zero latency solution because the FFTs get so big (amongst other reasons) and can be done very well by a modern cpu, this reduces the benefit of combining it with a fixed block length algorithm on a gpu in the first place.

I'm not saying it's not worth a try though, just the cpu load might be higher than envisaged and at that point pushing all the work to the cpu may not actually increase processor usage that much. Working towards lowering the gpu latency using some degree of non uniform partitioning might be better.
Matt

Pi is exactly three

Post

Can't see it in Cubase 4 . NiVidia 8500.

Post

MelodyMan wrote:
cYrus wrote:
MelodyMan wrote:
hill_matthew wrote:
jupiter8 wrote:Just tried with the Live demo as well. The file browser came up in no time but unfortunatly the plugin crashed Live as well. An unhandeled wxception has occured. Still running a 8600GT with driver 177.83. I wonder if that's the problem since it seems to be working for other guys in Live.
Did you try copying the cuda dlls installed in the Nils directory under your vst folder to your system32 folder?

My nvidia control panel says I am running forceware 177.35 which seems to be different to yours.
I'm also running the Forceware-driver and i get the same cuda-related error-message. The plugin does show up, but doesn't recognize the GPU. I'm running a Geforce 8500 GT by the way.
i would try to install the CUDA toolkit: http://www.nvidia.com/object/cuda_get.html
Thanks, i'll try that when i get home.
Works like a charm now. 3% GPU-use with an EMT250 impulse. Awesome stuff and thanks for this!

EDIT: It crashes while loading certain impulses. Some work, some won't, but i don't know the difference between them.
Buy Darling Sister's new album "Rise and fall" now! Just send a pm or an email. Visit our myspace page on www.myspace.com/darlingsister for songsamples.

Post

hill_matthew wrote: I'm not saying it's not worth a try though, just the cpu load might be higher than envisaged and at that point pushing all the work to the cpu may not actually increase processor usage that much. Working towards lowering the gpu latency using some degree of non uniform partitioning might be better.
Well, I have to admit you too have a point. :)

Post

MelodyMan wrote: EDIT: It crashes while loading certain impulses. Some work, some won't, but i don't know the difference between them.
Can you send me an impulse response that crashes? (If they're free of course).
jupiter8 wrote: There's no CUDA dlls in my Nils directory
This is right, as the CUDA dlls are copied to the windows system directory while installing.

The dlls can't be found when I copy them to the install directory, as the working directory of the host is at a different location when loading my VST.
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP

Post

i've one which just crashed cubase 4 here.

http://www.solarproject.ch/linked/l960large_church.wav

Post

cYrus wrote:i've one which just crashed cubase 4 here.

http://www.solarproject.ch/linked/l960large_church.wav
Funny, it was the 960 Large Vocal chamber that crashed mine.
http://www.box.net/shared/uqtj4urqfj

Post

It's a 24 bit wave file, that crashes here too. I'm just fixing it...
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP

Post

I've uploaded a new version with fixes.

http://www.nilsschneider.de/files/nsGPU ... TSetup.exe

FIX: Loading of 24 bit WAV files is now supported

FIX: Fixed crash if loading an unsupported WAV file
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP

Post

Cool,thanks. Will try it out later.
EDIT: First impression: slow as molasses in Reaper but works fine. The loading browser takes like 10 seconds to open.
In Live 7 the browser open instantly but unfortunatly the plugin crashes Live.
Note i only tested this once so it might be user error.

Post

Yes, it works now with the new version. Thanks!
Buy Darling Sister's new album "Rise and fall" now! Just send a pm or an email. Visit our myspace page on www.myspace.com/darlingsister for songsamples.

Post Reply

Return to “Effects”