# What is your DPC latency? How were you able to reduce it?



## bjderganc

Hi All,

I'm on a mission to reduce the latency in my brand new monster PC. Right now it's sitting around 1000us (as per DPC Latency Checker). I have heard that 100us is possible with a dual Xeon setup. 

My goal is to use a keyboard controller in Cubase without having to enable "Constrain Delay Compensation" for a usable latency level. 

What is your latency at? If you were able to lower it with BIOS/PC tweaks, what were they?


----------



## Przemek K.

My dpc is about 47us. In BIOS I always switch off the Intel EIST, Speedstep (C states) Turboboost, the integrated audiochip, splashscreen.
I also deactivated the virtualization feature. High DPC can happen if you use wireless internet. But maybe something different can cause high dpc, like graphics drivers (nvidia, had/has this problem).

Here is a link to a great article at Native Instruments. From point 3.2 it gets interesting when using latency mon application.

http://www.native-instruments.com/e.../windows-78-tuning-tips-for-audio-processing/

Also, which application did you use? Latency mon or DPC latency checker? The latter one has problems when you use it on Windows 8 and it shows wrong values. So maybe, if you are on Win 8 and used dpc latency checker it showed you worng numbers but in reality your dpc latency would be actually good.

Hope that helps a bit.


----------



## tack

Przemek K. said:


> My dpc is about 47us.


Wow, that's like 4-5x lower than mine. What version of Windows are you using?


----------



## Przemek K.

I use Win 7 64 bit.


----------



## tack

Przemek K. said:


> I use Win 7 64 bit.


What motherboard? What video chipset? Indeed, I've also noticed nvidia's drivers as culprits for high latency.


----------



## bjderganc

Hey thanks for the post!  I just disabled Speedstep and that seemed to help realtime performance within the DAW, though the DPC Latency Checker's reading is still around 1100. Will try the rest of your suggestions now!

Edit: I am using Win10 Pro and both DPC Latency Checker and Latency Mon.


----------



## chimuelo

I always check what the motherboard gets before buying it.
I am well below 50 on my Supermicro.
Above advice for OS and mobo are spot on.
But I was disabling IRQs years ago and learned by using Windows Device Manager I could disable all but 1 USB Port and have a mains powered USB Hub attached.
Then disable networking PCI slots, anything not being used.
That took me well below the suggested 100.
Run my DSP Rack at 48k/64 samples/ 1.2 msec. ASIO duplexed.
CPU @ 4320MHz seems to give me lower scores than my Z97 builds too.


----------



## rgames

First, I believe DPC Latency checker doesn't work in Win10 or Win8. I think it always gives values around 1000 us. So check on that before you go any further. LatencyMon is an alternative that, I believe, works in Win10.

CPU power really doesn't have much to do with DPC latency. My i5 2500k sits around 40 us and my i7 4930k sits around 80 us. The 4930k is, of course, a vastly more powerful CPU. Both are perfectly fine. Also, I believe Xeons have higher DPC latency because of their lower clock speeds. And dual-Xeons are even higher because of the added overhead of coordinating the two processors. Xeons are built for CPU power, not real-time performance, so they usually score worse on real-time benchmarks (which is what we care about for DAW use).

As already stated, you can tweak the BIOS power settings to get the latency down but with good drivers you shouldn't have to. For example, my i5 2500k has all the power-saving features enabled in the BIOS (EIST, C states, etc). So does my 4930k. You can turn off all the power-saving features but they should be a last resort - why run your CPU at full throttle all the time if you don't have to? All you're doing is generating heat and noise. Do you sit at a red light with the accelerator on the floor?

Finally, trying to get DPC latency really low doesn't buy you much once you're down below a few hundred us. In other words, if you run at 10 ms system latency with 200 us DPC latency then you'll probably still run at 10 ms system latency with 20 us DPC latency. There are all sorts of hacks you can do to get into the single digits on DPC latency but I've not found any practical effect in doing so.

Certainly, though, 1000 us is not good. However, like I said above, I think you're getting a bogus reading.

rgames


----------



## Przemek K.

tack said:


> What motherboard? What video chipset? Indeed, I've also noticed nvidia's drivers as culprits for high latency.



Here are my system specs:

Mobo: MSI x99Sli Plus
CPU: Intel i7 5820k
RAM: 64gb Corsair Vengeance
GRAPHICS: nVidia 9800GT


----------



## bjderganc

rgames said:


> First, I believe DPC Latency checker doesn't work in Win10 or Win8. I think it always gives values around 1000 us. So check on that before you go any further. LatencyMon is an alternative that, I believe, works in Win10.



Richard -- great point! The DPC Latency Checker just isn't supported for Win 8/10 so you're absolutely correct in pointing out that those readouts are worthless. The tricky part was, they seemed to be affected by the tweaks I was making, so it led me further down the rabbit hole each time. My LatencyMon readout averaged 300-350us with a maxed out pagefault resolution time meter. It generally says that the machine is equipped to handle audio, but sometimes changes its mind. 

I did a basic overclock (Turbo mode) to my E5 2630v3 processors and they are running steadily at 2.57Ghz. They're rated at 2.4Ghz, so I don't see an issue with that from a safety standpoint. That difference had a very real effect on my system. I made a test project with a few demanding plugins (Diva, Serum, Omnisphere, and some Kontakt instruments for fun). Before engaging turbo it wasn't terribly difficult to produce garbage clicks/pops/stutters, after turbo it's harder, but not impossible. So in this situation, I guess it makes sense to leave them running "hot" because they run so slow?

Essentially, this machine confuses me quite a bit. With the turbo mode engaged, the cores are all running at higher than normal speed at all times, but the computer never reads higher than 53% utilization. (before engaging turbo it jumped between 5-13% utilization under almost no load, and 30-40 utilization under moderate load)
I can run a single instance of any patch within Diva on divine mode (with multicore enabled), but I can't stack 4-5 of them because the processing meter will spike and Cubase will stutter. You' think that in a high core/low clock machine that if you could manage to run one of something, that you could run multiples with ease.

So my thought now is whether system tweaks are worth the effort, or if it makes more sense to swap the processors, even for a single 6 core i7 with a ~4.00Ghz clock. I'm not convinced that Cubase is utilizing all of the cores..


----------



## bjderganc

Back to the topic, here are some additional latency tweaks that seemed to be helpful: https://www.steinberg.net/forums/viewtopic.php?t=84188

A lot of these tweaks seem to be machine/MOBO-specific and require some experimenting.

Edit: I was able to significantly reduce DPC latency by rolling my machine back to 7 PRO SP1. The MOBO was actually not officially supported on 10. I went with 10 because I came across several musicians working with my hardware and Win10. Only installed the absolutely necessary drivers. Latency now sits in the 15-100us range and a great deal of CPU performance was also unlocked. (I use a synth project to test CPU usage on my computers)


----------



## benatural

rgames said:


> There are all sorts of hacks you can do to get into the single digits on DPC latency but I've not found any practical effect in doing so.
> rgames



What sorts of tweaks?


----------



## bjderganc

Google guides on "optimizing PC for audio" or "reducing latency" from Steinberg, Abelton, Focusrite, Sweetwater, etc. There are lot of different ideas, with some common threads (disabling c states/cpu throttling, putting windows into a "performance" power scheme, disabling onboard audio, WIFI, etc.)

Richard is definitely correct in that finding properly functioning drivers is the #1. For me, downgrading the OS accomplished that because my MOBO didn't have official support. You could probably tweak all day, but if your system is reliable, I'd just forget about it.


----------



## benatural

bjderganc said:


> Google guides on "optimizing PC for audio" or "reducing latency" from Steinberg, Abelton, Focusrite, Sweetwater, etc. There are lot of different ideas, with some common threads (disabling c states/cpu throttling, putting windows into a "performance" power scheme, disabling onboard audio, WIFI, etc.)
> 
> Richard is definitely correct in that finding properly functioning drivers is the #1. For me, downgrading the OS accomplished that because my MOBO didn't have official support. You could probably tweak all day, but if your system is reliable, I'd just forget about it.


Right, I've seen those. I thought it might be something I hadn't tried before. Thanks for the info!


----------



## rbs2

Newbie here. DPC Latency V1.4.0 runs on my Windows 10 and it shows 500 to 800 now.


----------



## JamieLang

bjderganc said:


> Hi All,
> 
> My goal is to use a keyboard controller in Cubase without having to enable "Constrain Delay Compensation" for a usable latency level.



"Constrain Delay Compensation" has zero to do with the real time performance (or lack thereof) of your computer. If using that in Cubase, particularly with it's smaller (not user adjustable) input buffer gets you a "useable latency level"--the problem is being caused 100% by latent plug ins that you have loaded in the session. Given a 50 Xeon server farm of processing, they won't be a millisecond less latent. 

CDC (or the other apps "better for marketing but less accurate" "low latency mode") is simply disabling latent plug ins that need a latency X amount greater than the process buffer.

If you put a limiter with a 20ms lookahead on the master bus, everything you do WILL be delayed by 20ms. No way around that. Don't want that delay (and who does?) got...to...turn it off. Be grateful you're not using Logic--where you got to remove it all together-but, that's not the app you're using, so...no Xeon, nor kick ass lack of DPC latency will get that to 19ms even. Not even moving to quad sample rate, which makes it about 22% of the latency of single will budge that. Why? It needs linear time to do it's processing--not a certain number of samples--and none of it is more latent because the wifi on your motherboard is interrupting the CPU.

So, while I'm all for you getting your new pet monster running as efficiently as you can--no amount of that work changes your need for CDC. It's a common misconception. 

As to answering your--it depends on the app and context. I wish I could say I could set my 4ms measured RTL [email protected] and just leave it there. I can't. Not and ALSO run a few auxes of nice reverbs I consider necessary for tracking. But, really the way Cubase handles input buffering...the difference in 128 and 512 for the process buffer is not that noticeable for a VI....it IS for an amp sim, having to make the whole audio round trip...but, luckily, that's not my primary method of recording guitar.


----------



## bjderganc

old thread! thanks for the reply though. I ditched that computer long ago as it was a nightmare.


----------

