AMD revealed their top-tier Ryzen R7 CPUs two weeks ago, followed by a launch on the 2nd of March. Since the launch, several reviewers have performed benchmarks and tests to judge their performance against Intel’s dominant CPUs. However, there appears to be a problem.
The ‘High Precision Event Timer’ or HPET, in short, is a programmable hardware timer. It’s not something easily explained; but essentially, it’s a clock.
Windows and other modem operating systems use HPET for various functions. Since it’s programmable, it can deliver a precise interrupt after a set amount of time. An interrupt consumes a CPU cycle, and the priority is to keep the number of CPU cycles at a minimum.
For example, if Windows knows that an application will demand a wake up in a system call in 66 milliseconds, it can program HPET to trigger after 66 milliseconds. This is more efficient than triggering a CPU cycle every 10 or 15 milliseconds, as those CPU cycles may go waste with nothing to do.
However, there are other options available for a system timer, and Microsoft designed Windows 8 and 10 for cheaper computers that do not come with a hardware timer.
HPET can, therefore, be disabled, but there are certain consequences.
The Windows bug with Ryzen CPUs has something to do with HPET. It was noticed by Kladzen on the LinusTechTips forums.
If HPET is off and Windows goes to sleep mode and then wakes up, the system timer runs slower. As far as Windows is concerned, time slows down.
The amount by which it is slowed down is considerable but hard to precisely judge. This problem first became prominent with Windows 8. Here’s a video of it in action.
Now, the issue for Ryzen is with benchmarks. Benchmarks rely on time: the sooner a process is complete, the higher that computer scores.
Since the clock in Windows slows down after waking up with HPET off, benchmarks that rely on the time give out a higher score.
In some initial testing by LinusTechTips, the Cinebench score before sleep was about 1750, while after sleep and wake up the score jumped to over 2000.
However, with HPET enabled, the Windows clock remains accurate. That’s perhaps because HPET is a hardware timer, and can thus stay accurate irrespective of what goes on with the operating system.
This bug raises an interesting problem; reviewers now need to clarify whether their benchmarks were with HPET enabled or disabled.
If HPET was off, the benchmark scores might not be accurate.
AMD’s reviewer guidance documentation suggested to turn off HPET because of an unrelated bug. The reviewers who did so might have to re-run some of their benchmarks.
HPET either has to be on, or HPET can be off, but the computer mustn’t be put in sleep mode.