Users of the AMD Threadripper 2 CPU noticed that in the last year their system performance was below expectation on certain operating systems including Windows 10, especially in the case of 32 cores variants of the CPU such as the Threadripper 2 2990WX.
Comparing with the 16 cores variants of the CPU, the 32 cores models do not offer a sufficient increase of performance as one should expect to justify the investment on such a CPU especially on Windows 10. On Linux on the other side there’s a different story. So the next question came to life: “Why a 32 core AMD Threadripper 2 CPU does not work properly on Windows 10?”
The answer could be: well because it is Windows 10. But of course that is not a real answer, it is just a lame justification of a no real answer. A nice explanation comes from the research made by Wendell from Level1Techs, Jeremy Collake from Bitsum and Ian Curess from Anandtech.
To put it simple, the base infrastructure of Windows 10 which manages tasks for each cores was designen for systems using Intel Xeon which use at least two core groups with different access to the system resources. 32 cores Threadripper 2 CPUs have 4 such groups making Windows 10 panic and leaving it without a clue on how to manage tasks when it tries to aim the ideal cores for each processing phase.
The result is that each core will always be at 100% use, but not because it is actually used for actual processing, but because Windows 10 is moving the tasks from one execution thread to another, and the moving action itself takes allot of resources.
So how can we solve this performance hit?
The initial solution was using a modified variant of a tool called CorePrio, which assigns processing tasks in a better way towards all cores. The result of using this tool was a 70% performance increase in applications such as 7-zip. It still lags behind the performance under Linux but at least it was a good step towards improving performance in Windows 10.
According to AMD in a recent statement, a permanent solution is currently under development. The company is currently working with Microsoft, having open tickets to the support team that handles the patching and production of Windows 10. AMD did not yet offer a clear explanation on the exact issue though.
It is not yet clear when the solution will be ready by Microsoft developers, we can only hope that it will come fast. Maybe it will come before Threadripper 3 is launched, which promisses to be a really interesting architecture. Of course, while not yet official, you can expect that the TR4 socket to have allot of chiplets by the end of the summer.
Until a final standard patch comes from Microsoft though, you can still use CorePrio from Bitsum to solve the issues of Windows 10 and more than 16 cores Threadripper CPUs, because as we can see 32 cores is way to much for the OS. If you are curious about what Wendell from Level1Techs discovered take a look to this video: