CPU optimization for convolution
-
Does anyone here have experience optimizing the CPU for the convolution node?
I have a product out that uses it extensively and the user said the following about having CPU issues with convolution based products
"This same thing happens with one or two other IR-based reverbs (and only with them). However, it seems fixable. For example, Korneff updated their Micro Digital Reverberator awhile back and it finally uses low CPU for me. The other culprit, which has improved but still isn't usable at 5+ seconds decay times is Transatlantic Plate. Reverberate3 has zero issues."
I know the developer of Korneff Audio uses HISE as well so I'm guessing there must be a solution around?
One thing is that I had to disable multi-threading on the convolution node for Windows because we had reports of crashing in Windows on Cubase with it enabled. Curious if there are optimizations beyond that though.
-
@optimistic For us, the solution was to enable multi-threading so the convolution is processed in a background thread, then wrapping the entire DSP chain in a fix_block container.
-
@optimistic and did you enabled IPP? I got some crashes recently using convolution because I forgot to turn it on
-
Did none of you encounter this problem ? My reverb is not releasable at the moment due to this.
please tell me I am missing somethingThe Convolution can not start at the beginning of a sound , always needs a "pre-roll" or it misses the first part of the sound.
https://forum.hise.audio/topic/7006/convolution-reverb-glitch-timing-bug
-
@lalalandsynth replied to your other thread
-
Thanks for the replies everyone!
We're getting quite a few reports of poor multi-core performance and I'm guessing this is because I disabled "Enable Multicore" on the convolution.
@Matt_SF that's quite interesting you experienced crashes before IPP was enabled. I have IPP enabled in the project and also built HISE with IPP enabled. What did you do to resolve this because it also sounds like my issue.
@Dan-Korneff what do you mean by "wrapping the entire DSP chain a fix_block container"? Is that something using ScriptNode?
-
@Dan-Korneff Hi,
Can you expand on this a bit?
A simple convolution scriptnode is taking about 9 percent of my cpu?-
Do you do it by right clicking on the main container and selecting wrap into fix block? or do you insert a fixBlock before the convolution?
-
How do you decide how many samples to use for the fixblock?
-
-
@RastaChess said in CPU optimization for convolution:
A simple convolution scriptnode is taking about 9 percent of my cpu?
- Turn on multithreading in order to tuck away the load OR
- Accept that long IRs will consume CPU resources.
-
@Christoph-Hart Understood. Hadn't consider the length of the IR as directly proportional to the CPU consumption.
Thank you.