Trouble understanding options under "Engine / Threads"

I’m having trouble understanding the options under “Engine / Threads”. The manual on the website says:

It is recommended to begin with 1 thread, and if you experience audio hiccups, try increasing the thread count by 1. Continue adding threads until no hiccups occur. The maximum recommended number of threads is the number of physical cores in your machine. For example, a quad-core machine would likely maximize the number of modules by using 4 threads.

But how do you increase (or decrease) the thread count? The manual doesn’t say (at least I couldn’t find any instructions on how to do that).

Secondly, can someone explain the options “lowest CPU usage” and “most modules”? They seem to be mutually exclusive (if you select one, the other is unselected). But what exactly do they do?

And third, I have a quad-core processor. I assume that’s why I see 4 lines numbered from 1 to 4 when I click on “Threads”, is that correct? Or do the numbers mean something else? However, I can only select “lowest CPU usage” or “most modules” on the first two lines; the other two are blank. Does that mean I’m only using 2 of the 4 cores?

The 4 numbered options are the number of threads being used by vcvrack. From your screen shot you are using 2, which should allow you to use the most modules. Selecting 1 would use one thread, And that should use the least cpu . to try 3 or 4 threads, choose 3 or 4.

Since it has labeled option 2 as ‘most modules’ it looks like it thinks you have only 2 cores.

I’m going to guess that two being labeled as “most” even though there are 4 means that there are two physical cores, and each has two (useless) hyperthreading cores. On my desktop PC the number are 12 and 6, which sounds about right. Also, use realtime priority. That makes it so VCV audio will always win the fight against a web browser or something else running on your computer.

Irrespective of how many cores it thinks you have, the procedure you quoted from the manual should help you find the number of threads that works best for you.

You should be careful about recommending the realtime option, it has a critical bug under Linux which has caused data loss for me at least.

1 Like

as far as I understand “(most modules )” is placed in the middle of the way of your numnber of cores , I m not sure if the position affect something, if you have twelve cores it will place in the sixth place indicating that you should use from that if you want use more modules.

have it sense?

in my case I never used all the Threads, I always keep some for Renoise which have the same Threads options.

It’s because on most modern CPUs there is a virtual core per physical core available via hyperthreading, but that virtual core only grants a tiny percentage of the CPU grunt of the physical core

1 Like

How do I choose 3 or 4?

I have a quad-core AMD Phenom II 810 processor. AFAIK, they are all physical cores, not “hyperthreading cores”. I don’t know what that even means, or why they are “useless”.

see above for why the “virtual cores” due to “hyperthreading” are “useless”. I don’t remember how to find out how many physical cores you have under window 7 (which is what you have). In win10 it’s a little more straight forward. I have 6 physical cores, which become 12 virtual ones due to useless hyperthreading:

Here are detailed specs for my CPU. I don’t understand a lot of it, but I’m pretty sure it has 4 cores.

Information is difficult to find on the AMD stuff, but I tend to agree with you, it looks like AMD doesn’t do hyperthreading (it seems). So you may very well have four physical CPUs, and there may be a bug in VCV when it comes to recommending how many cores to use on your CPU. But, as a previous poster said, just keep adding until you get optimal performance.

I seem to get the best performance with 2 cores. If I go higher, I start getting glitches in the sound, even though I’m not running any other apps except Windows Task Manager and the total CPU usage doesn’t go above 50 or 60 per cent. Is it possible that VCV Rack doesn’t make use of more than 2 cores?

anything’s possible, but that sound unlikely to me. Performance things about VCV remain a little mysterious…

I have an Intel i5-3570K (four physical cores), operating system W10 Pro. The behavior is exactly the same as described by dfkettle.

Using more cores also requires more overhead in managing the scheduling, so you don’t necessarily get the best performance from the maximum number of cores.

1 Like

I haven’t looked thoroughly through the code to see now vcv counts cores. But at least one thing it uses is a standard c++ function, which the documentation describes as ‘best treated as a hint’. I don’t know if it uses any other techniques to try to be more accurate.

I think that because of things like hyperthreading, its very difficult to get a meaningful count of actual cores. Different architectures have different definitions.

That may be true in VCV. It’s not true in most DAWs, which default to using all your cores for audio rendering. I think I heard that this is a limitation of VCV1.0’s current audio engine, and that it won’t be the case in 2.0.

it looks like AMD doesn’t do hyperthreading

Their CPU is 11 years old. AMD definitely does its own version of hyperthreading now.

1 Like

It would be nice if in v2.0, the total CPU is also displayed somewhere (like in Pure Data, Max/MSP, etc.), so you’d know when you’re getting close to the limit on your hardware, without having to add up the CPU on all the individual modules.