Same issue here with Intel i7-9700K.
Instrument used is XLN Audio Addictive Keys.
(Note : This plugin also exhibits the OpenGL bug so I took it into account during my tests)
Cubase.exe CPU usage :
Multi-Processing = Enabled
When playing, usage increases moderately on all cores.
GUI greatly increases usage on 4 cores and slightly loads the 4 other cores.
Buffer = 32 |
GUI = Closed
|
GUI = Open
|
Idle |
10% |
30% |
Monitored |
13% |
33% |
+ Playing |
25% |
45% |
Buffer = 1024 |
GUI = Closed
|
GUI = Open
|
Idle |
< 3% |
22% |
Monitored |
< 3% |
22% |
+ Playing |
6% |
26% |
Multi-Processing = Disabled
When playing, moderately loads only 1 core.
GUI maxes out 1 core, moderately loads a second core and slightly loads all remaining cores.
Buffer = 32 |
GUI = Closed
|
GUI = Open
|
Idle |
5% |
25% |
Monitored |
5% |
25% |
+ Playing |
7% |
27% |
Buffer = 1024 |
GUI = Closed
|
GUI = Open
|
Idle |
< 1,5% |
21% |
Monitored |
< 1,5% |
21% |
+ Playing |
3% |
23% |
So from what I have tested, the CPU usage indeed does increase when the instrument is monitored or playing, and this effect is more pronounced at lower buffer sizes. When Multi-Processing is enabled, the CPU usage increases even further.
These results may differ depending on the instrument used. In my case the plugin isn’t consuming any resources when it isn’t playing since it is sample-based, but some synths however may load the CPU whether they are playing or not, so please do not be fooled by my results. If your synth happens to works all the time under the hood, you’ll have the “Playing” value in place of the “Monitored” line, so it correlates with @VilleK 's results.
The wild thing is that while the CPU usage is greatly reduced when disabling Multi-Processing, the CPU temperature remains the same as when it is enabled. So the additional load Multi-Processing imposes seems to be fake or not reported properly as if some junk instructions were going into circles without having the CPU to actually compute them.
Furthermore, this heat test has been tested with Spitfire Appassionata Strings, and the maximum polyphony count I can reach at a buffer size of 32 is roughly the same in both cases.
With M-P enabled I can reach 210 polyphony before it starts crackling, and with M-P disabled it is 200, so that’s only a 5% decrease. However what I have noticed is that as the voice count increases, the core usage increases exactly the same way, whether M-P is enabled or not, except when it is enabled it increases on 7 cores, and when disabled only a single core is used. At let’s say 100 polyphony the cores % usage show 50% whether it is 1 or 7 cores. I hope you get what I mean. Consequently, with an equal voice count, the total usage reported is much higher when M-P is enabled.
So this is very weird, it really uses more cores than necessary.
Note that the OpenGL bug consistently takes 20% CPU on my system (can vary depending on your specs), so if your project is highly loaded already, opening one of these buggy plugins can max out your CPU and performance will fall apart, so keep that in mind.
Additional test with multiple instances of the same instrument, for instance Spitfire BBC SO.
Patch = Violins 1 Long on all instances.
Buffer size = 32
Test method : Holding the sustain pedal and pressing a key repeatedly until I hear significant crackling.
Normal lettering = Voice count per instance
In bold = Total voice count
Instances |
M-P = Enabled
|
M-P = Disabled
|
1 |
260 |
220 |
2 |
240 (480) |
110 (220) |
3 |
240 (720) |
72 (216) |
4 |
200 (800*) |
52 (208) |
*In the case of BBC SO the voices start to flush after you go above a certain amount, so with 4 instances I cannot go above 200 and it doesn’t crackle (yes I have set the polyphony to the max which is 999, but it starts flushing too early anyway). I’m sure it could go up to 240 as with two or three instances, so the total would be 960 voices .
This behavior is consistent with the use of Multi-Processing. The plugin detects the instances and use a different core for each instance, so the maximum polyphony count increases accordingly.
Nevertheless Task Manager still reports the same core usage whether you are using only one or multiple instances, even though the total polyphony is much different.
Example : 1 instance with 200 voices shows the same core usage as 3 instances with 600 voices.
That’s where lies the issue. Why do a single instance reports the same usage as when using three at the same time, if my total voice count is divided by 3?
As expected, without Multi-Processing the voices are split across all instances.
In any case there is a real advantage of using Multi-Processing when using multiple instruments, or specifically when using multiple instances of the same instrument – assuming the instrument is optimized for this and “instance-aware”, although the CPU usage doesn’t seem to scale with the number of instances and seems to have a fixed initial “dummy” load.