Improper multi core usage

Hi there,

It seems that Renoise isn’t happy with my 6 cores machine. It’s not enough for it.

As you can see on that screen capture:

4920 renoise.PNG

It goes up to 100% and starts to pour crap into my fine RME Fireface 800. Me sad. :’(

So I launched a task manager to see what was up, and behold:

4921 cpu_usage.png

Yeah well. That’s pretty far from 100%. We can see a spike, but at no moment is the machine near 100% usage.

So well. Yes. This is a track with a lot of crazy plugins, but on the paper, my machine should be able to handle it. This machine can defragment the whole Internet in less than 10s. It should handle a couple of plugins, right?

I know scalability is hard, but my question is, what does the multiprocessor setting do to Renoise? What is actually multithreaded?

The specs:

  • Renoise 3.0.0 Gold x64
  • Windows 8.1 x64
  • RME Fireface 800
  • Awesomeness all around

Are a lot of your plugins 32 bit? I was running into this issue as well since my tracks are using an increasing amount of VST effects. The audio engine would just crash every time I tried to play the track I’m currently working on. I went through all the plugins I was using and found 64 bit replacements for all of them, and it made a dramatic difference. Much more efficient. Like night and day difference.

Hi, thanks a lot for your answer. Some of the plugins are indeed 32-bit. I will try to fix that, when possible.

Edit: scratch that, I have no 32-bit plugin as far as I can see.

Can you change the CPU settings in Renoise? (choose how many cores you want to use). What happens if you go back from 12 to 6?
It could perhaps be that the Xeon Hyperthreading might not work as efficient as should be with streaming apps. (Or just as inefficient as the old HT families)
Or most likely:You perhaps don’t have some powerthrottling enabled somewhere in the BIOS? (EIST -> Intel Speedstep)

Are there a few other things you can switch off in the BIOS? (virtualisation technology like Intel V-tech and VT-D tech or just disable the HT and see what it does without it)

Hi there!

I’ve tried many settings from 12 to 6. Usually I left it at6 because I’m not sure it’s sound to use 12 hyperthread cores (so I would agree with you). What seems to happen is that Renoise is wrongly assuming it’s using all CPUs when it fact it’s not (it shouldn’t display 100% cpu when only 25% overall cpu power is used).

Intel Vtech cannot have an impact on Renoise performance. It’s just adding a ring level to the machine and I can’t disable it as it would break Hyper-V (nota bene: Renoise isn’t running in a VM).

I wonder if it’s not related to my Fireface 800. I’ll try something.

Edit: ok I’ve tried many settings. It’s all the same. It looks as if Renoise is using only one CPU (or the CPU usage is totally wrong).
Edit2 : Another interesting thing, when Renoise is idle (nothing playing) CPU usage in renoise is at 20% (?!), but the task manager show it’s less than 8% (overall) and that Renoise is only using 3%.
Edit3: I think it shows usage for only one of the cores.

Yeah V-tech is far sighted indeed. Intel Speedstep could still be a dealbreaker although nowaday’s Enhanced Speed step should also respond a bit faster to load demand than is predecessor technology.

Regarding Taskmanager vs Renoise and core usage, read Taktik’s explanation (including the links inside that topic):

Thanks. This is helpful.

I understand that the CPU usage displayed by Renoise will be the lowest common denominator. If I have a plugin that eats up a lot of CPU, then the displayed CPU usage will be very high, even if the other cores do nothing because if for some reason the VST uses more than 100% Renoise will no longer be able to render the song in real time.

Then I humbly submit that the current resource usage display of Renoise is confusing is useless.

Confusing because 80% doesn’t mean that you have 20% of resources available.

Useless because it’s very hard to say how much plugins you can cram into Renoise before your machine dies.

I think an usage per core would be much more useful, if possible with the information of which plugins are running on which core. You could keep the overall usage as it tells you if you’re close to the limit, but a more advanced resource usage would be really nice.

You can also go with pure 32 bit plugins. It will be as fast as completely 64 bit plugins. The slowdowns come from the bridge and the sandbox.

If this happens, the plugin itself is totally choking on something, otherwise Renoise always gives each plugin plenty of buffer space to clear their frames out.
But as pointed out by Jurek:if this is a bridged plugin, they consume a lot more resources. So the less bridging you need, the more efficient your song runs.

Yes but i doubt it can get much better either because you also have plugins that do multicore processing handling of themselves and in this area Renoise cannot decide for the plugin which cores they get and i’m not even sure if Renoise can see which cores they claimed. Renoise can do it for the plugins that either cannot run in a multiCPU environment (these are usually 32-bit plugins) or simply don’t use multiple cores but don’t cause problems either.

Which plugins are actually claiming 100% of their given resources that they don’t render properly in real-time mode?

If plugins run in a dedicated process, all you have to do (on Windows) is query the process information via WMI. You have pretty much everything you need. On Linux, this is via /proc.

Ok I found the problem. One of the plugin was Sigmund which was eating a lot of CPU.

The other problem seems to be Arturia ARP2600V emulator, when starting a sound sometimes the whole system seems to be chocking on itself. If I stop and play again, everything is fine. That may be a bug in the plugin.

But still I have an insane amount of computer power. :’(

Ah, but it seems I found another bug, this time, related to rendering, I get glitches… If I can reproduce it via a simple xrns, I’ll post it here.