dotnet / dotnet/performance

get_machine_architecture returns "x64" on arm64 Windows machines

Open
#2,545 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
F#
Stars
773
Forks
301
Avg merge
6d 9h
Merged PRs (30d)
15

Description

Kicked off the monthly perf run on my Surface Pro X (arm64) device, and it appears this script selected __x64__ as the default architecture for the perf run.

https://github.com/dotnet/performance/blob/6f83cd97938edf618eca3d45a766811e185d51d3/scripts/performance/common.py#L22-L34

It's possible that this is due to Python not having a native arm64 build on Windows and instead going through x64 emulation. Unfortunately it also causes the benchmarks themselves to run under x64 emulation, which throws off the results.

This should default to __arm64__ on true arm64 devices, regardless of any emulation the Python scripting engine might be running under.

Note - the coming Python 3.11 release will have native Win-arm64 support (see https://bugs.python.org/issue33125), but I suspect many devs will either rely on old versions for a while or will need to install the x64 versions for compat with other software on the machine. I don't think it's viable for us to rely on any 3.11-specific behaviors here.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.