New
#641
HPET-On or off in BIOS & OS
A very interesting article from anandtech a few days ago( April 25, 2018) regarding HPET on Intel and AMD platroms, and sholud it be turned on in the BIOS, and forced on or not in the OS.
This is important specially when benchmarking:This leads to four potential configuration implementations:
- BIOS enabled, OS default: HPET is in list of potential timers
- BIOS enabled, OS forced: HPET is used in all situations
- BIOS disabled, OS default: HPET is not available
- BIOS disabled, OS forced: HPET is not available
You enthusiasts should really take the time and read the article thoroughly through, the title says Ryzen, but it's about Intel too:Timers are highly relevant for benchmarking. Most benchmark results are a measure of work performed per unit time, or in a given time. This means that both the numerator and the denominator need to be accurate: the system has to be able to measure what amount of work has been processed, and how long it took to do it in.
Ideally there is no uncertainty in either of those values, giving an accurate result.With the advent of Windows 8, between Intel and Microsoft, the way that the timers were used in the OS were changed. Windows 8 had the mantra that it had to ‘support all devices’, all the way from the high-cost systems down to the embedded platforms. Most of these platforms use what is called an RTC, a ‘real time clock’, to maintain the real-world time – this is typically a hardware circuit found in almost all devices that need to keep track of time and the processing of data.
However, compared to previous versions of Windows, Microsoft changed the way it uses timers, such that it was compatible with systems that did not have a hardware-based RTC, such as low-cost and embedded devices. The RTC was an extra cost that could be saved if the software was built to do so.Ultimately, any benchmark software in play has to probe the OS to determine the current time during the benchmark to then at the end give an accurate result. However the concept of time, without an external verifying source, is an arbitrarily defined constant – without external synchronization, there is no guarantee that ‘one second’ on the system equals ‘one second’ in the real world. For the most part, all of us rely on the reporting from the OS and the hardware that this equality is true, and there are a lot of hardware/software engineers ensuring that this is the case.
A Timely Discovery: Examining Our AMD 2nd Gen Ryzen Results
I have already made posts in the forums a year or two ago regarding HPET(forums search- HPET Cliff S)
With the 8700K, Windows 10, and Maximus X system I now have, and some timer testing, I find on my system option 1.BIOS enabled, OS default: HPET is in list of potential timers works just fine.
Here is the result I just got while rendering a 4K video to WMV, while Edge browser is open, and listening to Groove.
The top one is WinTimerTester 1.1, and the bottom one is the timer tester in CPU-Z.
I just fast clicked start/stop, and all times in the system timers are the same.
On my MSI board with the 6700K it took a few seconds for the timers to catch up with each other.
When testing timers, you need to be running a load with various programs running to get good multitasking results.
Like I said this is only important for competitive benchmarking.
Plus on a side note, the timers get messed up when your PC resumes from sleep, also affecting benchmark scores.
I am not an expert on this subject, but have been interested in it for some time now, and have read all I can on the subject(TechNet, Microsoft Docs, tech sites and so on), but might have misunderstood some things, so, "Start your search engines!", if you have questions.