Why Windows Is Gimping AMD Threadripper 2990WX Performance And A Possible Fix
AMD's Threadripper 2990WX is a beastly slice of silicon, there's no doubt about it. The chip is armed with 32 cores and 64 threads clocked at 3.0GHz to 4.2GHz, supplemented with 64MB of L3 cache and 16MB of L2 cache. It also provides access to 64 PCI Express Gen3 lanes. Oddly enough, however, it under performs in some situations in Windows. What gives?
To be clear, the Threadripper 2990WX is not a gaming processor, though you can certainly build a gaming PC around it. Early on, there were some performance quirks when paired with an NVIDIA graphics card, which were later fixed through driver updates and patches. But what hasn't been fixed are some performance anomalies in certain Windows applications.
Wendel from Level One Techs decided to investigate and wrote an interesting (and lengthy) blog post on the subject. What he discovered is that the Threadripper 2990WX chokes in some specific applications and benchmarks, including IndigoBench, a standalone benchmark based on Indigo 4's advanced rendering engine.
"What was baffling was that, often, Indigo would perform worse on a 32 core 2990WX than a 16-core 2950X—and by a significant margin," Wendell noted.
He also discovered that the Threadripper 2990WX would perform markedly better in Linux than in Windows, when running the same benchmark. One of the prevailing theories is that there just isn't enough memory bandwidth, because of the way the chip is designed. There's some truth to that, but it doesn't explain the disparities Wendell observed.
Being primarily a Linux guy, Wendell sought the help of his friend Jeremy at Bitsum. What the two discovered was a quirk with CPU affinity changes.
"I discovered 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. Even more baffling was the fact that adding the CPU back (resetting the affinity back to what it was) would also cure the performance regression in most cases," Wendell explained.
What the two ultimately concluded is that there is an issue with the use of non-uniform memory access (NUMA) functions. It gets a bit technical, but the short of it is, Wendell believes a previous bug fix in Windows designed to help Intel's Xeon processors inadvertently hamstrung AMD's high-end Threadripper processors.
To rectify this, Wendell and Jeremy designed a utility called CorePrio. According to Wendell, running the utility "can nearly double the performance of Indigio" on the Threadripper 2990WX, a claim that others have corroborated.
"The rumors of a memory bandwidth problem, even with 32 cores (at least in these instances), has been greatly exaggerated," Wendell said.
If you own a Threadripper chip and want to give it a try, follow this link to download the utility.