-
Notifications
You must be signed in to change notification settings - Fork 163
Description
When running a test on an Apple Silicon Mac, it's very likely that the workloads will be allocated some on performance cores and some on efficiency cores, even if you specify threads to be equal to amount of performance cores. This makes the test results just noise if running on limited workloads on for example OpenBench. If running purely on the CLI. If running plainly on the CLI then engines won't get restarted and in single-threaded scenarios they'll likely get pinned to that core (I think? Don't quote me on this). Which is even worse.
The likely fix for this is that when running on Darwin, detect if it's running on ARM (if ARM then it will have that split between core types), and then the engine process should be started with taskpolicy -c 0 ./engine_executable, this will ensure that it gets high priority and gets run on performance cores
This is also an issue with the modern Intel CPUs, but I currently don't have an idea how to fix it there, since they can be used on multiple OSes. Suggestions are welcome.