# [VIDEO] How many CPU cores do I need to run Virtual Instruments in a Digital Audio Workstation?



## rgames (Apr 23, 2020)

It turns out I have a bunch more free time these days... so I finally got around to putting this video together.

As I've moved from 4 to 6 to 10 to 14 cores over the past decade or so I've not seen much difference in my workflow. But comparing the different setups was tough because other elements of the system were different (e.g. the chipset) so it was tough to say that core count was or was not a factor. But now that you can get 14+ cores on one CPU at a reasonable price you can do that comparison because you can simply disable cores in the BIOS and see how that affects overall performance. So, here ya go:


----------



## zwiebel (Apr 23, 2020)

Wow. Very interesting and useful! Thank you very much for your efforts doing this video. 

I'm curious what kind of touchscreen you are using on your desk? Didn't find any clues on your website. 

Thanks again and take care
Christian


----------



## rgames (Apr 23, 2020)

zwiebel said:


> Wow. Very interesting and useful! Thank you very much for your efforts doing this video.
> 
> I'm curious what kind of touchscreen you are using on your desk? Didn't find any clues on your website.
> 
> ...


It’s a Samsung Galaxy View tablet running Lemur. I think it was basically a commercial failure but it’s perfect for a DAW touchscreen controller running something like Lemur. I’m going to be in a world of hurt when that thing finally dies.


----------



## JeffvR (Apr 23, 2020)

Interesting stuff! How did you set up VEPro to handle the cores? I'd love to see a comparison with Reaper, as it seems to be more efficient with multiple cores.


----------



## Thundercat (Apr 23, 2020)

Very, very nice tests and video. Thank-you!


----------



## Leandro Marcos (Apr 24, 2020)

rgames said:


> It turns out I have a bunch more free time these days... so I finally got around to putting this video together.
> 
> As I've moved from 4 to 6 to 10 to 14 cores over the past decade or so I've not seen much difference in my workflow. But comparing the different setups was tough because other elements of the system were different (e.g. the chipset) so it was tough to say that core count was or was not a factor. But now that you can get 14+ cores on one CPU at a reasonable price you can do that comparison because you can simply disable cores in the BIOS and see how that affects overall performance. So, here ya go:




I’m a big fan of your videos. Are you a teacher? You always explain everything so clear. Great video. Thanks for sharing!


----------



## rgames (Apr 25, 2020)

JeffvR said:


> Interesting stuff! How did you set up VEPro to handle the cores?


Good question - I should have mentioned that. I have VEPro set to use as many threads as there are cores on each machine. So for the 14 core machine, I have VEPro set to use 14 threads. For the 10 core slave machine, I have VEPro set to use 10 threads.

I've messed with that number in the past and really haven't found any difference in performance on my setup.

rgames


----------



## rgames (Apr 25, 2020)

Leandro Marcos said:


> I’m a big fan of your videos. Are you a teacher? You always explain everything so clear. Great video. Thanks for sharing!


No not a teacher per se but I have worked as a "technology translator" of sorts in the past, being the guy who's in charge of making sure lines of communication are working between really smart people and other people who need to make decisions based on their work.

Thanks for the kind words!

rgames


----------



## novaburst (Apr 25, 2020)

rgames said:


> It turns out I have a bunch more free time these days... so I finally got around to putting this video together.
> 
> As I've moved from 4 to 6 to 10 to 14 cores over the past decade or so I've not seen much difference in my workflow. But comparing the different setups was tough because other elements of the system were different (e.g. the chipset) so it was tough to say that core count was or was not a factor. But now that you can get 14+ cores on one CPU at a reasonable price you can do that comparison because you can simply disable cores in the BIOS and see how that affects overall performance. So, here ya go:




Nice work @rgames , i think that there are one or two points you missed, poeple have very different ways of producing,

Some like to play along with the whole production, so there can be a 100 or so instruments and growing in your midi folder and you want to play a layerd string section or horn section with more than 3 mics and record it live whiles the rest of that midi file is playing back, this is called load, with out the freeze method, you will need the lowest buffer you can get you will find the more cores you have the the better it will be its just fact.

Plus prossesers like many reverbs can change the load significantly how much cores you need is a preference thing according to how you use your DAW its just not a slam dunk by any means it will certainly differ from person to person or from group to group.

Its not just about playback its about what you want to do while its playing back and the amount of cores you have will determine that.


----------



## rgames (Apr 25, 2020)

novaburst said:


> Some like to play along with the whole production


Absolutely - I certainly do that! It seems like you're implying that the results don't apply to such a situation but whether the MIDI is coming from a MIDI keyboard or pre-recorded MIDI in a track, the results in the video will be the same.

Also, the example projects I used had a bunch of plug-ins as well. And the libraries I was using also use multi-mic setups (except LASS and VSL). The fact that I duplicated all the lines across so many different libraries all playing at the same time also accounts for that load. Certainly nobody would ever do that - the point was to create a load that is extreme.

Cheers,

rgames


----------



## rgames (Apr 25, 2020)

One other point I didn't make in the video is that fact that I think a single-machine setup is very do-able now. Multi-machines are still "better" (as shown in the video by the fact that you can get lower latency on the same project) but you can get latencies down low enough now on the single machine that it's perfectly workable. That hybrid orchestral track I used was, of course, ridiculous in terms of how many different libraries I used for the same lines. But it was still perfectly do-able on one machine.

rgames


----------



## novaburst (Apr 25, 2020)




----------



## MGdepp (Apr 28, 2020)

Thanks for the informative video! It is pretty much like you present it IMHO --- with a few exceptions, I suppose:

If you buy a machine with many cores AND high frequency (overclocked to 5Ghz or more), there is evidence, that you can stream more voices with Kontakt. This is what the scan pro audio tests clearly show: An i9 10980XE OC can stream almost double the voices in Kontakt vs a 6 - 8 core CPU. This can become the bottleneck for projects, if you choose the route with no VEPro machines.

Also, if you are one of those guys with a chain of 6 FX plugins per instrument on average, you might run out of processor power with 6-8 cores before hitting the ASIO limit. In other words: the amount of plugins used that are still reasonable is debatable! 

But of course, most of the time, the ASIO-bottleneck is more relevant and in no way can you make one machine as potent as two, even if you spend way more money on the one PC! That is why your video is important information for all the guys and girly out there who sped to much on their PCs in the illusion of getting something they all not get ...


----------



## JohnG (Apr 28, 2020)

Thanks Richard. It looks like this is aimed at film music / game music and also with no audio tracks at all? 

I do wonder whether the extra cores make more of a difference for those who are trying to record 15 stems and / or use far more SFX plugins (like the sort you see with pop music). When I do a pass recording, I'm sometimes printing 30-plus stereo tracks.

Did you also test for that kind of thing?


----------



## mscp (Apr 28, 2020)

@rgames - are you running the remote desktop app via the same RJ45 pipeline/bus or dedicated one?


----------



## rgames (Apr 28, 2020)

JohnG said:


> Thanks Richard. It looks like this is aimed at film music / game music and also with no audio tracks at all?
> 
> I do wonder whether the extra cores make more of a difference for those who are trying to record 15 stems and / or use far more SFX plugins (like the sort you see with pop music). When I do a pass recording, I'm sometimes printing 30-plus stereo tracks.
> 
> Did you also test for that kind of thing?


No - this video was focused only on VIs, not audio tracks (hence the title!). So there were a few audio tracks in the second reference project but not many.

It'll be a while before I drum the motivation to do another one 

One thing I did notice is that I hit real-time bottlenecks before CPU bottlenecks on all the tracks, including the one with 20 or 30 plug-ins. So, at least for thet tracks I tested, it seems more CPU wouldn't change the results.

Keep in mind, too, that Ozone mastering plug-in is pretty intense and it was running through all the tests. As I showed in the video, when you turn it on, the real-time performance meter jumps way up. I think all my other plug-ins combined don't add up to the hit it gives.

Cheers,

rgames


----------



## rgames (Apr 28, 2020)

Phil81 said:


> @rgames - are you running the remote desktop app via the same RJ45 pipeline/bus or dedicated one?


Yes - all on a single gigabit ethernet connection.

rgames


----------



## JohnG (Apr 28, 2020)

thanks again @rgames 

Also, impressive production values -- your family has a cinematographer?


----------



## rgames (Apr 28, 2020)

MGdepp said:


> If you buy a machine with many cores AND high frequency (overclocked to 5Ghz or more), there is evidence, that you can stream more voices with Kontakt.


Keep in mind that what I was trying to show is what is "good enough", not what is better. The hybrid orchestral track I showed is ridiculous: four libaries all playing the same string line, two WW libraries playing the same WW line, three brass libraries all playing the same brass lines. Most of those libraries also had multiple mic positions. And it was fully orchestrated, so there were tutti sections where all of those voices were being played at the same time.

I have a hard time imagining when anyone would need more voices...!

That project seems vastly more than good enough to me. But if you write pieces that are even more dense than that, then yes - more CPU cores might make a difference. I just can't imagine what that project looks like.



MGdepp said:


> Also, if you are one of those guys with a chain of 6 FX plugins per instrument on average, you might run out of processor power with 6-8 cores before hitting the ASIO limit. In other words: the amount of plugins used that are still reasonable is debatable!


I have tried to create this scenario but I've never been able to do so in an actual project. I have to chain dozens of plug-ins across dozens of tracks with ridiculously high latencies in order to make that happen. So yes, I can fabricate a project where that happens but I can't create a realistic project where that happens. I always hit ASIO bottlenecks first.

If you have an example of a project where you hit CPU limits first then please share it - I've been searching for it for years! As ever, I'm not saying it doesn't exist. Just that I have never been able to create it.

Cheers,

rgames


----------



## rgames (Apr 28, 2020)

JohnG said:


> thanks again @rgames
> 
> Also, impressive production values -- your family has a cinematographer?


Haha no. I'm old-school. Camera + tripod + window.


----------



## Inventio (Apr 29, 2020)

rgames said:


> Good question - I should have mentioned that. I have VEPro set to use as many threads as there are cores on each machine. So for the 14 core machine, I have VEPro set to use 14 threads. For the 10 core slave machine, I have VEPro set to use 10 threads.
> 
> I've messed with that number in the past and really haven't found any difference in performance on my setup.
> 
> rgames



Hi Richard,

your video is very interesting and really helpful, I must say, especially now that I am in the process of upgrading my setup: I use i7 quads of almost 10 years of age.

So this seems to contradict VSL advice to find an average number of thread per instance or set specific numbers depending on the supposed workload of each instance. That's interesting. I feel that this kind of settings are unclear even to the developers, sometimes, like Kontakt multiprocessing on/off (as I have read in another recent thread).

What do you think?


----------



## Dewdman42 (Apr 29, 2020)

A couple observations, take them FWIW...


I would recommend you turn ASIO Guard back on, but disable it on particular plugins (In Plugin Manger) that have problems with it, specifically VePro plugin should have it disabled. But ASIO Guard brings a very big advantage for every other non-VePro track...in that it will be secretly using a larger buffer size for non-live tracks. VePro does the same thing on its own by the way, that's why its good idea to disable it for VePro. Some of your tests are lower buffer settings in the single machine scenario may have done better with ASIO guard turned on. Actually if you had ASIO guard turned on you would probably come to an even bigger conclusion that more or less cores made no difference, for you. When you use lower buffer settings and VePro, then VePro is secretly using a large buffer size for non-live tracks. 


I think your example projects were lite on DSP. Some people do need more processing power for deeper plugin stacks. Thus, they might need more cores with large track counts. Ultimately, the clock speed will determine how low of a buffer size you can go without all the dropouts... The core count will determine how many tracks with heavy DSP you can go. Your projects were "real-world" which is not a bad thing, and the whole point of it is, for real world use, how much computer do you really need? Noted. Still, we must keep in mind that some people will need more DSP muscle...which means faster clock speed for live tracks and more cores for many tracks of it.


Audio tracks, are very light on the CPU compare to instrument tracks, FWIW; unless they are using heavy FX plugins.


Your Ozone plugin is probably the biggests single thing hitting your system, on the master bus, so the clock speed is the thing related to that. You could get drop outs just from Ozone alone and running out of clock speed steam on any single core where its being handled.


I wish my hair looked as good as yours right now.


----------



## Dewdman42 (Apr 29, 2020)

The one simple fundamental question is.. why does a 2-machine setup with 6 cores each appear to perform better then a single machine with 14 cores. yes? The implication is that a single 14 core machine should perform as well or better then two 6 core machines in a network. That is the fundamental question. Is it worth it to buy a large core count monster or better to get several smaller machine and network them with VePro?

I do not think the answer to that question is that obvious. ASIO guard use will make your single machine scenario perform much better for one thing. Using multi machine VePro network also brings in other network related complications and practical considerations. 

For another thing, part of the bottleneck is definitely related also to the flow of data between components in your system, how fast each one can read data from SSD and memory in/out of the CPU. So spreading that to two different machines can definitely help...where the multi-core monster machine could potentially become more bottlenecked due to causing the CPU to have to wait around for data from storage, memory and PCI.

Big core counts are helpful where specifically there will be a lot of DSP and lots of threads to spread out the load on that DSP. The more DSP oriented it is with more tracks..the more the extra cores will help. When it becomes more about streaming samples and audio tracks from disk in and out of memory, etc..then I guess the fastest core speed and core-count in the world won't help as much as spreading it out to a multi-machine network.


----------



## Dewdman42 (Apr 29, 2020)

Also just want to point out again.. in whatever analysis that is done..just because the CPU's do not show 100% utilization does not mean their clock speed and core count are irrelevant. The CPU has to wait on peripherals, and the peripherals have to wait on the CPU. It all contributes. The faster the CPU can do what it needs to do, the faster it can send the data off to the other components, while it waits for the other compents to give it something to crunch on. A CPU will always have to spend some time waiting...that is a given and fundamental to how computer systems work. The drop outs happen when the entire system can't keep up with the sample rate. CPU clock speed and core count can definitely still contribute to that...even if you see the CPU meter showing less than 100% utilization while getting dropouts, doesn't mean the CPU isn't contributing to the problem.

If and when you do a lot of streaming track counts...sample playback...audio tracks, etc.. The CPU will be less of a limiting factor. When you use more synths and heavy Plugin processing..then the CPU will matter a lot more. Clock speed is first priority...core count matters next if and when many threads can be utilized, which for DAW's basically means if and when there are many tracks with some heavy DSP, like synths and DSP-heavy FX. You still will not ever see the CPU utilization meter go to 100%, you'll get drop outs way before that.. but the CPU specs will be making a much bigger difference, compared against mostly-data-streamed scenarios such as sample playback.


----------



## mscp (Apr 29, 2020)

Does anyone freeze tracks to save up CPU? I wonder how inconvenient that is.


----------



## novaburst (Apr 30, 2020)

Phil81 said:


> Does anyone freeze tracks to save up CPU? I wonder how inconvenient that is.



freezing is changing midi files into audio and or stopping FX activity and it can be quite handy, in saving on CPU and memory, 

I think since the development of more and more CPU cores and higher memory the window to get the your projects completed with out ever touching the freeze button has grown ever so much larger, 

It means the task can be completed on your midi files with all effects in place live mixing and tweeting of FX before you decide your final export. 

Never the less the more powerful system we have the more we are able to do and we are always pushing the boundery so I guess it's good just to have the freeze button on standby.


----------



## tack (Apr 30, 2020)

Dewdman42 said:


> even if you see the CPU meter showing less than 100% utilization while getting dropouts, doesn't mean the CPU isn't contributing to the problem.


Indeed, because the instrumentation samples at intervals, and it can easily miss transient spikes to 100%. Also, busy threads are bounced between cores for thermal management, so a CPU meter that reports per core utilization can still miss the fact that at any instant in time you actually have a pegged core. So the unsuspecting user can experience dropouts, see CPU headroom on the graphs, and conclude that the bottleneck must be somewhere else, when actually the bottleneck is single core performance.

And that somewhat bolsters Richard's conclusions here. For audio, single core performance matters a great deal — it's the universal truth for real time audio work. It matters slightly less during project playback without any armed tracks, but then when you disable things like ASIO Guard or, say, anticipative FX processing in Reaper — which are ultimately strategies to help absorb transient spikes in CPU demand — then that places more of a burden on single core performance. And after that how much you benefit from more cores becomes extremely specific to workload, DAW behavior, and project layout.


----------



## rgames (Apr 30, 2020)

Regarding the comments on CPU usage - I intentionally did *not* include CPU load in the measurements because it's not what I actually care about. I care about dropouts and, more specifically, how dropouts affect my ability to write and produce music using virtual instruments.

Therefore, I measured dropouts, not CPU usage.

rgames


----------



## Dewdman42 (Apr 30, 2020)

Single core performance matters for your live channel at low latency. Multiple cores help a lot when track counts run higher. It’s not true that core count is categorically irrelevant. But if you are doing less dsp and more streaming of data, then bus and storage speeds may have a bigger impact then either single or multi core cpu performance. Everything matters, which thing matters More depends on what you’re doing. I think single core speed is more important then core count but core count can be helpful too in the right situation.

but the rest of your system also matters especially if the work load is more oriented to sample streaming, then single core performance is not as relevant as the data transfer specs. But even then it can still matter because the faster the cpu can do what it needs to do in the intervals of time it is given; the faster it can get out of the way for the data transfers to take place.


----------



## Dewdman42 (Apr 30, 2020)

Richard it’s fine that your real world situation has less dsp. Other people might need more. Drop outs are related to the whole system not keeping up, of which the cpu is a participant. In higher dsp oriented projects the cpu speed and core count will matter more to prevent the drop outs


----------



## Dewdman42 (Apr 30, 2020)

BTW, the whole question of how much is "good enough" is definitely a valid quesiton. Its part of why I'm still happily using my 2010 MacPro(CPU is not that old). And admittedly, part of why I'm ok with mediocre cpu performance in this box is due to the fact that A) it has 12 cores to make up for the fact that its a bit slow clock speed and B) it has PCI slots which I use for Audio card (and also for sata3 SSD). The PCI audio in particular is a big deal for me...to get lowest latency.

So what's the moral of that story? Several things


An old and relatively slow CPU is still working fine for most of what I do. True, it doesn't have AVX and every once in a while a synth plugin gives it a bit of a hard time. But for me the only real reason to upgrade the CPU would be so that I can run more often at a buffer size of 32 or 64. Otherwise...aside from AVX, it can do everything I have needed to do, especially in terms of mixing. I'm not needing more CPU enough to give up the PCI slots.


That being said, it does have 12 cores...and with the slower clock speed, this is actually quite relevant. With a faster CPU from the past couple of years, like say the i9, maybe I would care less about core count. Other people needing to do more DSP across many threads may care more, but I think Richard's demo with a typical orch project is relevant for most of us here.


A huge motivator for me to stay with this machine instead of getting something newer has been the PCI slots, which has to do with how efficient the audio card can operate...also potentially better video. Also, less fan noise, but I digress...Though to a certain degree, the point can be made that practical ergonomic concerns about fan noise and video ports for multiple monitors, etc...can impact the decision about which box would be "good enough".


----------



## GNP (Apr 30, 2020)

Thank you!


----------

