True machine intelligence featuring 8 processor cores, 16 threads, and an astonishingly efficient 65W TDP – well that’s AMD Ryzen CPU. By no means is the new AMD Ryzen CPU less efficient. It seems to be troubled not by hardware but by software. A bug in Windows 10’s scheduler is negatively affecting AMD Ryzen CPU performance. Hard to believe? Read on!
Windows 10 scheduler bug affecting AMD Ryzen CPU performance
For the uninitiated, AMD Ryzen CPU features what’s called “simultaneous multi-threading” technology. This technology basically enables each CPU to execute two threads simultaneously. This has been around in Intel CPUs as “Hyper-Threading”. The new technology in AMD CPUs is said to drastically improve performance for video rendering and processing-intensive games that heavily rely on utilizing processor’s threads.
A primary thread and an auxiliary thread work together to achieve extra throughput. The primary thread is allocated maximum instruction per second while the auxiliary thread is meant to use underutilized resources. There’s nothing wrong with simultaneous multi-threading as such, but Windows 10 scheduler bug seems to be affecting the performance of AMD Ryzen CPU.
Windows 10 scheduler works perfectly well with Intel’s hyper-threading technology simply because it is able to identify the auxiliary threads and distinguish them from primary threads. This is important because it helps the scheduler to schedule tasks effectively, in a way that takes advantage of underutilized resources and increases throughput, without affecting performance. When it comes to AMD Ryzen CPUs, this doesn’t seem to be the case – Windows 10 scheduler simply fails to distinguish main threads from virtual SMT threads. It instead treats them as equal – it sees 16 thread Ryzen 7 processors as processors with 16 physical cores with equal resources per thread, according to Wccftech.
Because the scheduler is unable to distinguish between the two kinds of threads, a lot of tasks can end up getting treated as virtual SMT threads instead of main threads, resulting in significant performance degradation. And it doesn’t end at this. Windows 10 scheduler fails to correctly identify the amount of cache available per thread. And the direct consequence of this is that the scheduler “thinks” that there is 136MB (!!) of L2+L3 cache when Ryzen CPU only has 20MB!
What next?
It looks like AMD is aware of the issue and is probably working with Microsoft to get their Windows 10 scheduler working right. But it does come as a surprise that Microsoft’s latest and greatest OS isn’t able to handle AMD Ryzen CPU’s simultaneous multi-threading technology the way AMD expected it to handle. Too bad!