Owning a Threadripper is not boring, the new architecture offers a variety of interesting challenges to keep your attention. One of these features is the lack of direct memory access for two of the dies, which can cause some performance issues and was at least partially addressed by introducing Dynamic Local Mode into Ryzen Master. On Windows boxes, enabling that feature ensures your hardest working cores have direct memory access, on Linux systems the problem simply doesn't exist. Another choice is Coreprio, developed by Bitsum, which accomplishes the same task but without the extras included in Ryzen Master.
Techgage ran a series of benchmarks comparing the differences in performance between the default setting, DLM and Coreprio.
"Performance regression issues in Windows on AMD’s top-end Ryzen Threadripper CPUs haven’t gone unnoticed by those who own them, and six months after launch, the issues remain. Fortunately, there’s a new tool making the rounds that can help smooth out those regressions. We’re taking an initial look."
Here are some more Processor articles from around the web:
- AMD Ryzen Threadripper 2970WX & 2920X Workstation Performance @ Techgage
- AMD Ryzen Memory Tweaking & Overclocking Guide @ TechPowerUp
- Testing Intel Whiskey Lake CPUs: Core i7-8565U @ Techspot
Given that the problem is the
Given that the problem is the asociation of core and memory, it makes sense that a solution that purely focuses on assigning core to task will not do the whole job. If a job needs to access multiple different data, some of that data may be in memory associated with one core, while other data might live in memory associated with other cores. In that case, there is no perfect core to run on.
Any solution would need to be able to control where application allocate memory, not just on which core it runs. This is a hard problem that can only be handled by the application.
That’s why coreprio sometimes has erratic behaviour. For large projects using a lot of memory, it is more likely the memory will be spread all over, making impossible to assign a core that can access it all efficiently.