# SpeedStep, EIST, C-states, Turbo & Windows Power profiles - my conclusions



## khollister (Dec 20, 2016)

There has been some discussion lately (and a lot more in the past) about whether to enable or disable the various Intel CPU power management features and what role the Windows 7/8/10 power profiles play related to DAW use. Some recent comments and a response to a question over on Gearslutz got me to fiddling with my i7-4930 slave PC to remember what I had actually set up 2 1/2 years ago and verify I wasn't stoned at the time.

What remained constant during my recent experimentation - nothing was disabled in BIOS and the CPU was not overclocked (3.4 base freq, 3.9 Turbo freq). The manipulation of this stuff was done via the Windows power profiles in Control Panel. Conversely, one could disable some/all of this in the BIOS and then the Windows profiles would do nothing - you end up in the same place.

What I was looking at was specifically the effect on core spiking within the DAW (I used Cubase and was looking at the realtime ASIO performance meter) while playing a single record-armed track. The question of how many tracks you can play back without something being armed is a different issue and probably reacts differently.

Here's what I found:

While the core speed of the CPU directly impacts the ASIO realtime load, the actual CPU utilization under PerfMon is negligible. I believe what spikes the DAW CPU indicator is a latency problem, not a general horsepower problem. I suspect the CPU core appears unloaded outside of the DAW because what the DAW cares about in this case is happening in a single thread - the CPU can't bring most of its horsepower (even in a single core) to bear.
Running the CPU hardwired to it's Turbo freq (which is exactly what setting min and max CPU to 100% does in Windows) always results in more ASIO headroom.
Enabling the CPU to throttle down via SpeedStep/EIST (by setting the min CPU to <100% in Windows) always results in the ASIO performance spiking much earlier/easier because the "real" CPU load doesn't trigger the CPU to ramp back up. I left CPU-Z open while playing with this and could easily see that the CPU usually didn't come off of a reduced clock even though I was running up the voice count in real time to spike the ASIO performance and cause audible clicks. I had one case where the CPU was sitting at 1.2 GHz (due to SpeedStep) and the ASIO load was maxed (and audio was glitching like crazy) because the actual CPU load wasn't enough to trigger the CPU to increase the clock speed.
What I suspect (but didn't take the time to prove) is that while core speed is the driver for realtime latency, track count (where DAW's can leverage threading without adversely impacting latency on individual tracks) is driven by overall CPU horsepower, including cores. Using voice count as a benchmark is, I suspect, tricky because it likely makes a difference how you build up the voices - polyphony on a single track/instance versus spreading across tracks where the DAW can multi-thread. Cores don't matter _only_ when the latency on a single track(s) becomes too high for the particular VI/effect instantiated on that track (which I suspect is running one a single or minimal threads in a single core).

I also wonder what exactly is going on in Mac's with Core Audio? We know from general benchmarking that OS X has the Intel speed manipulation tech enabled. The question is whether Core Audio has some way to automatically disable it to minimize latency? I wonder if some of the conventional wisdom that cross platform DAW's run better on Windows comes down to this, and whether the commonly held belief that Logic is the most efficient DAW on a Mac may be, in part, to Apple reaching under the covers to manipulate the CPU clocking.

I think this obviously confirms @chimuelo's assertion that all the Intel clock manipulation stuff be turned off (since as a live player he is concerned with latency), as well as being consistent with the advice of the DAW experts over on Gearslutz that it doesn't matter, since they are largely not orchestral composers using heavily scripted Kontakt libraries (which is what causes the issues most of time for me).

Probably nothing earth shattering here, but I thought I would try to get it collated into a thread where we could discuss it without getting lost as peripheral comments in multiple threads.


----------



## Phillip (Dec 20, 2016)

Thank you for posting it.


----------



## JohnG (Dec 20, 2016)

thanks for the post. I do think it's useful to specify that you only ran these test on one DAW -- Cubase. They don't all handle cores the same way.


----------



## khollister (Dec 20, 2016)

JohnG said:


> thanks for the post. I do think it's useful to specify that you only ran these test on one DAW -- Cubase. They don't all handle cores the same way.


Absolutely agree but I wasn't really testing the effect/usefullnes of multiple cores in a 200 track project - I was refreshing my memory on what effect the CPU power management has on realtime latency. I suspect that isn't all that different between Cubase, DP or possibly Sonar. Since there is no way to control this stuff on a Mac (as far as I know), Logic does whatever Logic does. 

It wasn't intended as a commentary on DAW's or Mac vs PC - just some experience on how to set up a Windows machine.


----------



## Uncle Jesse (Dec 21, 2016)

Thanks for this. Couldn't follow everything 100% so just a question. I definitely get at least a 15% performance increase when I enable turbo boost. That is massive for me and results in me being able to finish off a project which would be completely maxed out and unworkable if turbo boost is disabled. My projects are a mix of audio and midi plus loads of cpu intensive plugins. I use Cubase on a i7-5960x.

I am gathering from your post that it's best to turn off the intel power management features too yes?. Would it be advised in my case to disable the power management like speedstep / c-state and just enable the turbo boost? 

Thanks


----------



## khollister (Dec 21, 2016)

Uncle Jesse said:


> Thanks for this. Couldn't follow everything 100% so just a question. I definitely get at least a 15% performance increase when I enable turbo boost. That is massive for me and results in me being able to finish off a project which would be completely maxed out and unworkable if turbo boost is disabled. My projects are a mix of audio and midi plus loads of cpu intensive plugins. I use Cubase on a i7-5960x.
> 
> I am gathering from your post that it's best to turn off the intel power management features too yes?. Would it be advised in my case to disable the power management like speedstep / c-state and just enable the turbo boost?
> 
> Thanks



First off, keep in mind that "if it ain't broke don't fix it" always applies, especially when taking advice from some old fart on the internet you don't know  ...

While I doubt disabling the "speed down" stuff (SpeedStep, EIST, C-states) will have much effect if your system is already loaded with tracks (and probably already at the base clock at least if not the turbo freq), I see no downside other than increased power consumption at idle or low load.

Unless you are overclocking beyond the turbo freq, do not disable turbo - which you have already figured out.

The problem I was having was that I got ASIO spikes on the track I was playing in (record armed) with only a few other recorded tracks playing back. The CPU load wasn't enough to kick the CPU speed up and I was stuck down at 1.2 GHz or something (because the Windows Performance Monitor showed <10% load on that core) and ASIO was going through the roof.


----------



## Uncle Jesse (Dec 21, 2016)

khollister said:


> First off, keep in mind that "if it ain't broke don't fix it" always applies, especially when taking advice from some old fart on the internet you don't know  ...
> 
> While I doubt disabling the "speed down" stuff (SpeedStep, EIST, C-states) will have much effect if your system is already loaded with tracks (and probably already at the base clock at least if not the turbo freq), I see no downside other than increased power consumption at idle or low load.
> 
> ...



Hey mate this makes perfect sense now! I too sometimes get the random ASIO spikes when the projects are completely bare. But once I start adding a few tracks the CPU kicks into full gear and it runs like a dream! This explains everything. Now I can stop stressing. Thanks!


----------



## khollister (Dec 21, 2016)

One quick thing you can do is change the min CPU setting in the Windows power profile. I think Balanced (the default) is set to 5% - raise it to something like 50% and see if that helps.


----------



## khollister (Dec 23, 2016)

UPDATE - and boy am I confused and feeling a little stupid. I just finished putting my new Cubase machine together last night (Gigabyte X99 motherboard & i7-6850K Broadwell-EP processor) and everything I thought I learned about this from my Asus X79/i7-4930K went right down the toilet.

On this rig, the Windows power profile setting of min processor speed/max processor speed basically do nothing - the CPU still ramped down to 1.2 GHz at idle. I disabled EIST in the BIOS (which according to the cryptic Gigabyte manual looked like it shut off both SpeedStep and EIST - 2 pieces of the same tech), but the dana thing still went to sleep at idle. Only when I disable all of the C-states in the BIOS did the thing behave like my Asus X79 rig.

I'm sure it is the difference in the Asus and Gigabyte BIOS - both of these things are poorly explained, especially the default "Auto" settings that most of the clock variables start with. 

Clearly I have a lot more investigation to do on the subject, and this may explain why there is such a divergent opinion out there about how to set this stuff up - it likely has a lot to do with your particular BIOS.


----------

