Skip to content

Apple Silicon runs are not balanced #829

@GediminasMasaitis

Description

@GediminasMasaitis

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions