TWEAK: Enable HPET (in BIOS and OS) for better performance and FPS


Recommended Posts

HPET off in WIndows: Timers are not in sync:

Windows8RTCBugTestingV2_12.png

 

HPET on in Windows: Timers are in sync:

Windows8RTCBugTestingV2_13.png

 

 

There is a timer big in Win 7 & 8

http://www.ocaholic.ch/modules/smartsection/item.php?itemid=1071

 

 

Because of a bug this deep, it's expected for software such as games and applications perform differently. So for to get the best result with application in question, one just has to benchmark, test and see.

 

The timer bug issue is real.

Link to comment
Share on other sites

I thought these "tweaks" were dying out.

 

This does absolutely nothing positive on anything I've tried it with.  At best it does nothing, at worst it makes the system completely unpredictable in terms of performance.

 

What are you going to tell us to do next? Go into msconfig and tell Windows to use multiple cores during boot?

Link to comment
Share on other sites

He really misses the forest for the trees there. All of this wasted idle time accounts for only small fractions of energy in comparison to load times. I would hazard a guess that Idle loads make up 1-3% of the power budget of server farms and super computers. The focus in HPC has generally been on saving power during load times and reducing maximum power consumption because that's were you see obvious savings.

 

He also makes the same mistake that is being made in this thread: not testing for overhead in real workloads. You can't establish a relationship for %overhead in real loads by testing a toy benchmark. He's probably right that there is noticeable overhead from higher timers resolution in general, but he certainly isn't proving it .

Link to comment
Share on other sites

  • 3 weeks later...

To test the impact of HPET specifically for my system I decided to use the Bioshock Infinite Benchmarking utility.

The reason being simply because I plan on playing this game.
In the tool I chose the options: (2) UltraDX11_DDOF, (2) Custom resolution, (1) 16:9, (4) 1920 x 1080
I ran the 5 tests in succession after first restarting the computer and verified the HPET settings were activated via WinTimerTester I then let the computer idle for 5 minutes.

My Operating system is: Windows 7 Pro x64
CPU: Core i5 3570K OC to 3.8GHz - CPU power saving features disabled so it runs at a constant 3.8GHz always.
Mobo: Asus P8z77-v pro (Note the LPCIO is a Nuvotron)
RAM: Gskill Sniper 2133 2x4GB
GPU: EVGA Nvidia Geforce 560Ti 1GB Crysis 2 edition

I read somewhere that Nuvotron timer on Asus boards perform worse than the regular timers - which is reflected below.

With HPET enabled in bios and useplatformclock yes: (WinTimerTester reports QPF 14.31818 MHz)
test 1 avg fps: 42.06 min: 13.34 max: 82.70
test 2 avg fps: 42.04 min: 17.39 max: 77.26
test 3 avg fps: 42.07 min: 15.40 max: 80.88
test 4 avg fps: 41.92 min: 13.98 max: 87.14
test 5 avg fps: 42.11 min: 16.25 max: 82.07
Total Average FPS: 42.04

With HPET disabled in bios and useplatformclock no: (WinTimerTester reports QPF 3.32038 MHz)
test 1 avg fps: 42.50 min: 15.48 max: 82.53
test 2 avg fps: 42.50 min: 11.54 max: 87.50
test 3 avg fps: 42.59 min: 18.49 max: 87.16
test 4 avg fps: 42.51 min: 15.68 max: 86.36
test 5 avg fps: 42.55 min: 19.99 max: 85.29
Total Average FPS: 42.53 (gain of 0.49 fps or 1%)

Interestingly, If I leave HPET enabled in BIOS and used bcdedit /deletevalue useplatformclock and reboot, WinTimerTester reports QPF to be 3.32037. FPS avg was 42.37.

When I used latencyMon to do latency tests this is what I got with HPET on and off:

HPET ON:

Highest measured interrupt to process latency (?s):   137.307954
Average measured interrupt to process latency (?s):   3.937589

Highest measured interrupt to DPC latency (?s):       72.285723
Average measured interrupt to DPC latency (?s):       1.535534

HPET Off:

Highest measured interrupt to process latency (?s):   78.304503
Average measured interrupt to process latency (?s):   1.111873

Highest measured interrupt to DPC latency (?s):       77.099818
Average measured interrupt to DPC latency (?s):       0.492777

both tests were done after letting the computer idle 10 minutes after rebooting it and checking that wintimertester reported the correct frequencies.
The tests were also let to run for 10 minutes.

Conclusion: (For me at least or people using the same board/Nuvotron LPCIO with Win7) Leave HPET disabled in motherboard and useplatformclock set to no.
If you are using windows 8 you probably want HPET enabled if you are overclocking or using turbo boost as it can actually mess up your clock and possibly do other things.

 

I still have the benchmark results saved so if you need more detail I can provide it.

Link to comment
Share on other sites

The FPS results are too "noisy", you have a variance of 10fps in one of the tests, so an average increase of 0.49fps is just "noise", if you repeated those tests you'd get different results again.

Link to comment
Share on other sites

The FPS results are too "noisy", you have a variance of 10fps in one of the tests, so an average increase of 0.49fps is just "noise", if you repeated those tests you'd get different results again.

Not really surprising. If there was a difference, gaming sites would have been widely reporting the results and we'd have seen professional benchmarks of HPET vs non-HPET for gaming.

Link to comment
Share on other sites

Well its not like the Bioshock Infinite benchmark is an accredited benchmarking program or anything. However the latencymon tests are pretty clear to me. Honestly I can't really feel or see any difference between this setting being set to on or off but it is true my latency is lower with hpet completely disabled. An average of nearly 4us compared to 1.1us on interrupt to process latency is pretty big.

 

I did my work. I would like to see others do some benchmarks and compare scores like I did. Especially to confirm whether or not the Nuvotron LPCIO results in worse timings compared to other manufacturers.

Link to comment
Share on other sites

Well its not like the Bioshock Infinite benchmark is an accredited benchmarking program or anything. However the latencymon tests are pretty clear to me. Honestly I can't really feel or see any difference between this setting being set to on or off but it is true my latency is lower with hpet completely disabled. An average of nearly 4us compared to 1.1us on interrupt to process latency is pretty big.

 

I did my work. I would like to see others do some benchmarks and compare scores like I did. Especially to confirm whether or not the Nuvotron LPCIO results in worse timings compared to other manufacturers.

Don't discount your Bioshock results. Bioshock is real world benchmark and is exactly what you would want test here to see if HPET results in tangible real-world performance gains/losses. It's the difference between micro-benchmarking and benchmarking actual applications. See: http://en.wikipedia.org/wiki/Benchmark_(computing) and see post #73 in this thread where I discussed the numerous issues with how the original benchmarking was done in this thread.

 

In this particular case with your DPC benchmarks, we are talking about DPC latencies with a few millionths of a second difference on average. These results are so tiny that it would be impossible to perceive a difference for real-time audio/video. Now if there had been large spikes that would be a different story.

 

Also, one last things to note, the LPC Bus is separate from clock generation (It's not the clock source).

 

Hi there, where to get this timers tool from, shown in hardbags screenshots?

He used this: http://en.wikipedia.org/wiki/Windows_System_Assessment_Tool

Link to comment
Share on other sites

sure? how to show this timers window then?

I thought you were talking about the scores from post #61 (. For those you need to run winsat in command line:

http://windowsitpro.com/systems-management/how-can-i-run-windows-system-assessment-tool-winsat-update-directly-command-line

 

For the other benchmarks, he list those in the corresponding post.

Link to comment
Share on other sites

thanks a lot for your efforts. just for better understanding, im talking about the pictures in post #77. there is a link, but i'm not able to find this software anywhere!

Oh, that particular piece of software is private. Comments on the website of that thread asked for it, and the author declined to give it for some reason. As such, the results should be taken with a grain of salt since they are not verifiable.

 

You may be able to find another piece of software that gives the resolution for the other timers, but you can test HPET using wintesttimer.

Link to comment
Share on other sites

Don't discount your Bioshock results. Bioshock is real world benchmark and is exactly what you would want test here to see if HPET results in tangible real-world performance gains/losses. It's the difference between micro-benchmarking and benchmarking actual applications. See: http://en.wikipedia.org/wiki/Benchmark_(computing) and see post #73 in this thread where I discussed the numerous issues with how the original benchmarking was done in this thread.

 

In this particular case with your DPC benchmarks, we are talking about DPC latencies with a few millionths of a second difference on average. These results are so tiny that it would be impossible to perceive a difference for real-time audio/video. Now if there had been large spikes that would be a different story.

 

Also, one last things to note, the LPC Bus is separate from clock generation (It's not the clock source).

...

Yeah, this is one of those things where benchmarking doesn't help much, since any improvements won't be visible. The default timer resolution on Windows is only 16ms (You can lower it, but Microsoft recommends against it for a bunch of reasons), so seeing an improvement of a few microseconds on one benchmark isn't going to translate into a real world difference.

And the benchmark that is useful (The Bioshock one) is noisy enough to not actually show any improvements, and that's just a fact of how computers work (The game isn't the only thing running, each run of the game will actually be different due to multiprocessing, etc.). If we saw a large improvement over multiple runs of the benchmark then we could see that the tweak had some actual effect.

  • Like 1
Link to comment
Share on other sites

These are my results:

 

 

cbv9.jpg

wnfz.jpg

 

My Hardware: 3770K std clock on a GA-Z77-DS3H (TimerResolution.exe running in background) (HPET on, OS and EFI)

 

I saw, for example on Cartels pictures (#60), people with way lower latencies. How to reach them? With HPET off I'm still not able to reach these low latencies... :(

Link to comment
Share on other sites

In what scenario does it possibly matter?

 

There are no actual use benefits from a lower latency here.

 

 

Hi there,

 

in Germany it's very rude to answer a question with a counter question. But I'd like some help, so I'll try to explain. Before I experimented with the HPET Option activated, I had a lower latency. Many things ran smoother and more fluent. Now with HPET on, some other things work better. So why shouldn't I try to combine these options? Obviously this should be the best possible system setting for me.

 

Kind regards,

WonG.

Link to comment
Share on other sites

Hi there,

 

in Germany it's very rude to answer a question with a counter question. But I'd like some help, so I'll try to explain. Before I experimented with the HPET Option activated, I had a lower latency. Many things ran smoother and more fluent. Now with HPET on, some other things work better. So why shouldn't I try to combine these options? Obviously this should be the best possible system setting for me.

 

Kind regards,

WonG.

My former co-worker from Germany use to do this :laugh:. That's a bit of a digression but there are many cases where asking a counter question is perfectly valid. In this case, Wakers has a valid point and question. The reason being that you are seeing latencies in the 500 millionths of a second range. The resolution is so tiny that you should be able to handled deferred real time video and audio without delays (read as: smooth playback).

 

That being said to answer your question, you probably aren't going to be able to achieve lower latencies than you are currently seeing. The only thing else you can do is play with turning off device drivers. For example, turning off wireless will lower my DPC latencies. One other things you can do that I don't personally recommend is disable dynamic scaling of cores (in the power options set the minimum processor state to 100%).

 

Let me be clear about what happens when you have the platformclock setting as false. It's not that it disables HPET, what really happens is that it Windows uses a combination of timers for timing (TSC + HPET). Why? Because using the TSC is cheaper to sample than HPET so it is better suited for scheduling operations. However, at the same time HPET is useful for scheduling one-shot interrupts for sleeping or idling systems (it saves power). The point, I'm making is that different timers have advantages and disadvantages in certain scenarios and this is not, "HPET is the best timer on the system" as the information you'll find around the web would seem to indicate.

 

As for how that relates back to DPC latencies: I noticed a consistent difference of only 50-100us minimum on my laptop between forcing / not forcing HPET. It was far too low make any perceivable difference. To put that in context, in testing the difference is ~1-2% of the maximum latencies I see on my laptop (wifi causes spiking of 1000-3000us at times).

 

To be perfectly honest, I'm not even convinced that the timer they are using to measure DPC has consistent reliable results between when HPET is forced and not forced. Why? The Windows API doesn't give you a consistent clock source. It depends on the system configuration which we are changing in this scenario. See section 2.1.4 here: http://www.windowstimestamp.com/description -- so how can I be sure the differences aren't accounted for by changes in the timer function behavior itself?

Link to comment
Share on other sites

But I already saw way lower latencies on other screenshot, for example in post #60. Without HPET activated my latency was about 60-90?s. And believe me, the difference is huge (especially in video games). I saw people with latencies about 20-50 with HPET activated. A stable latency (around 100?s) should work for me. Otherwise I'll have to deactivate HPET again, because the disadvantages outbalance the advantages. That's not what I'm aiming for, I don't want to miss the advantages I already acquired :(

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.