Diva question about CPU efficiency
- KVRAF
- 9593 posts since 17 Sep, 2002 from Gothenburg Sweden
Just a quick and dirty example to explain what i mean. I'm not really up to snuff on the latest and greatest when it comes to multithreading but the example should be somewhat accurate.
Say you have 3 voices taking 30% of one core each on a dual core CPU.
One core gets one voice and takes 30% CPU. Now the problem is the other core takes 60% CPU and the first core has to simply just wait for the other core to finish. Now there's a possibility the system can make use of it in the mean time but then it needs to shuffle data back and forth (to save the result of the first core) and it may not even be possible to use the core at all.
So all in all it will take 60% CPU of both cores making it 120% total instead of just 90.
Now if we want to play 5 voices at the same time we will need 150% and that's not possible. To achieve that we must split the voices on different cores even though the total load is higher (might be up to 180%) we still achieve something not possible on a single core.
Say you have 3 voices taking 30% of one core each on a dual core CPU.
One core gets one voice and takes 30% CPU. Now the problem is the other core takes 60% CPU and the first core has to simply just wait for the other core to finish. Now there's a possibility the system can make use of it in the mean time but then it needs to shuffle data back and forth (to save the result of the first core) and it may not even be possible to use the core at all.
So all in all it will take 60% CPU of both cores making it 120% total instead of just 90.
Now if we want to play 5 voices at the same time we will need 150% and that's not possible. To achieve that we must split the voices on different cores even though the total load is higher (might be up to 180%) we still achieve something not possible on a single core.
-
- KVRAF
- 6323 posts since 30 Dec, 2004 from London uk
A case for CUDA acceleration? 
- KVRAF
- 9593 posts since 17 Sep, 2002 from Gothenburg Sweden
He's looking into it but i don't think that's a viable solution. The power of the GPU doesn't lend itself very well to audio processing. Plus you get extra latency. I only have a superficial knowledge about these matters so i could be wrong about that.UltraJv wrote:A case for CUDA acceleration?
- KVRAF
- 24447 posts since 7 Jan, 2009 from Croatia
CUDA could be cool.
Works for Nebula...
Works for Nebula...
- KVRAF
- 9593 posts since 17 Sep, 2002 from Gothenburg Sweden
The problem gets even worse on GPUs because they have like hundreds or even thousands of calculation units doing the same thing (not entirely true). Now if you can paralellize stuff that's great but in a synth for example you can't do the filter calculations until the oscillators are done. And you can't start calculating,say sample 3,until sample 1 and 2 are done since the filter depends on the prevoius states.EvilDragon wrote:CUDA could be cool.
Works for Nebula...
Now the filter in Diva doesn't work the same way other filters do so it's possible i've overlooked something.
I'm not quite sure how Nebula works but regular convolution can be done in paralell quite easily, that's why pretty much all plugins that runs on the GPU is convolution based.
The individual calculation units are beginning to be quite powerful so i think something like Synth1 should be able to run on the GPU with like thousands of voices but that prediction is based on some really heavy extrapolation on my part so i could be dead wrong on that matter.
- u-he
- 30222 posts since 8 Aug, 2002 from Berlin
Well, our filter design would be *ideal* for rendering on a GPU.
The problem is that we need to schedule too many fiddly bits and pieces... there wouldn't be a constant flow...
The problem is that we need to schedule too many fiddly bits and pieces... there wouldn't be a constant flow...
- KVRAF
- 24447 posts since 7 Jan, 2009 from Croatia
You don't say.
Ideal?

- u-he
- 30222 posts since 8 Aug, 2002 from Berlin
Sure. We currently render 4 output estimates in parallel in SSE, but on a GPU we could render 32 or so per round. And be finished maybe in half the time.EvilDragon wrote:You don't say.Ideal?
![]()
![]()
-
- KVRAF
- 6323 posts since 30 Dec, 2004 from London uk
Perhaps something for the future then maybe?Urs wrote:Sure. We currently render 4 output estimates in parallel in SSE, but on a GPU we could render 32 or so per round. And be finished maybe in half the time.EvilDragon wrote:You don't say.Ideal?
![]()
![]()
- KVRAF
- 24447 posts since 7 Jan, 2009 from Croatia
Urs wrote:Sure. We currently render 4 output estimates in parallel in SSE, but on a GPU we could render 32 or so per round. And be finished maybe in half the time.EvilDragon wrote:You don't say.Ideal?
![]()
![]()
By all means, if you can make this happen, please do so!
I have GeForce M330 on my laptop, which is CUDA compatible! I'd be forever grateful
-
- KVRAF
- 6323 posts since 30 Dec, 2004 from London uk
If CUDA is used - You might find your battery life halving and the fans on the laptop squealing like mad as they try to stop it self combustingEvilDragon wrote:Urs wrote:Sure. We currently render 4 output estimates in parallel in SSE, but on a GPU we could render 32 or so per round. And be finished maybe in half the time.EvilDragon wrote:You don't say.Ideal?
![]()
![]()
By all means, if you can make this happen, please do so!
I have GeForce M330 on my laptop, which is CUDA compatible! I'd be forever grateful
- KVRAF
- 24447 posts since 7 Jan, 2009 from Croatia
Don't care about that, I have it plugged into AC roughly 85% of the time. And regarding the fans - it's a really quiet laptop, even when I drive it hard, that Toshiba.
- u-he
- 30222 posts since 8 Aug, 2002 from Berlin
Well, we'll see. It won't happen before some time next year anyway... not sure we have CUDA-enabled GPUs at all..
-
- KVRAF
- 10815 posts since 26 Nov, 2004 from UK
that's because you spent all your cash on discontinued analog synths!Urs wrote:not sure we have CUDA-enabled GPUs at all..
- KVRAF
- 24447 posts since 7 Jan, 2009 from Croatia
Take your time, Urs, we're not going anywhereUrs wrote:Well, we'll see. It won't happen before some time next year anyway... not sure we have CUDA-enabled GPUs at all..
