The AMD Ryzen Threadripper 2990WX is an awesome processor from AMD, sporting 32 cores and 64 threads for those that need them, at a competitive price. The launch put AMD "in a different HEDT league to Intel," declared the HEXUS editor back in August. There were only a couple of slight negatives about the processor spotted during our day-0 review; its single thread competitiveness, and gaming (if you didn't turn on Game Mode). However, subsequently it became apparent that systems packing this processor faced (depending upon the task) performance regressions under Windows.
Initially the processor chiplet architecture - how the multiple dies communicated with system memory - was blamed for the performance regressions. It was thought this was the problem as the Threadripper 2990WX has only 4 memory channels, but subsequent testing showed the AMD EPYC 7551 32 core 64 thread processor suffered from "the same performance regressions issue and it has 8 memory channels," notes HardOCP.
Further clues to what was taking place came from Threadripper 2990WX tests using Linux as the OS. It was noticed that performance regressions seem in Windows would be absent on Linux systems in the Linux native equivalent apps. This, and some other observations, effectively eliminated the issue being something within the chip design and pointed the finger squarely at Windows, likely the Windows Kernel.
LevelOneTechs recently shared a blog post sketching out their observations, detective work, and (nicely) a solution for the Threadripper performance regressions. Wendell, from LevelOneTechs, notes that programs such as Adobe Premiere, Indigo's Renderer, Blender, 7zip, plus gamers using Nvidia drivers were treated to patches with varying degrees of success - while some haven't enjoyed performance uplifts from such application developer activity.
In some tests with the Indigo renderer Wendell noticed that "taking a single thread out of the list of available threads to run the program on (called CPU Affinity) via the windows task manager would improve performance to similar levels as I was seeing on Linux". With this weird behaviour more or less isolated, Wendell got together with Jeremy Collake at Bitsum to create a utility called CorePrio. In the utility there is a checkbox for 'NUMA Dissociater' which effectively eliminates the Windows vs Linux performance disadvantage by automating the thread tweaking.
To read more about the zeroing-in on this Windows kernel bug and the CorePrio utility please check the respective links (or simply sit back and watch Wendell talk through everything in the LevelOneTechs video above). Programs that previously suffered from performance regressions on Windows should be able to almost double their performance after using this tool.