Skip to content

Enable support for arm64#231

Merged
jgiannuzzi merged 14 commits intoG-Research:masterfrom
jgiannuzzi:arm64
Nov 25, 2021
Merged

Enable support for arm64#231
jgiannuzzi merged 14 commits intoG-Research:masterfrom
jgiannuzzi:arm64

Conversation

@jgiannuzzi
Copy link
Copy Markdown
Member

Fixes #228

This PR enables support for the arm64 architecture (aka aarch64 on Linux, or Apple Silicon on macOS).
This is possible thanks to microsoft/vcpkg#21467 that has been merged in vcpkg. Support for arm64 on Windows is not yet enabled, as it requires further changes to vcpkg.

The CI pipeline is updated to build the native libs for arm64 on Linux and macOS, and to test the arm64 Linux build through emulation. The arm64 macOS build has been tested locally on a M1 Mac, but cannot yet be tested through the CI (waiting for macstadium.com to enable our Open Source account).

Caveats: the NuGet package size goes from 18MB to 29MB, and running the tests on emulated arm64 takes almost 20 minutes.

@jgiannuzzi jgiannuzzi requested a review from adamreeve November 21, 2021 17:36
Copy link
Copy Markdown
Contributor

@adamreeve adamreeve left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Looks good to me. 20 minutes seems like a long time to run the tests. It could be worth checking if there's any easy way to reduce the runtime (eg. can we reduce test data sizes for the longest running tests?). That would probably be a separate PR though

@mfkl
Copy link
Copy Markdown
Contributor

mfkl commented Nov 22, 2021

20 minutes seems like a long time to run the tests.

Indeed, that's 20 times longer than the other runs. These 20 minutes include pulling the docker image though (not sure how fast that is on GH).

@jgiannuzzi
Copy link
Copy Markdown
Member Author

These 20 minutes include pulling the docker image though (not sure how fast that is on GH).

Pulling the docker image seems pretty fast — it's really the emulation of the restore+build+test that's killing the performance (unsurprisingly 😞)
@pavlovic-ivan is currently working on a framework to spin up self-hosted runners dynamically — when ready, this could be used to spin up a real arm64 linux runner and run the tests at native speed.

@jgiannuzzi jgiannuzzi merged commit 5058090 into G-Research:master Nov 25, 2021
@jgiannuzzi jgiannuzzi deleted the arm64 branch November 25, 2021 14:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for macOS - Arm64

3 participants