Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Improve performance of windows-aarch64 builds #10402

Draft
wants to merge 23 commits into
base: main
Choose a base branch
from

Conversation

zanieb
Copy link
Member

@zanieb zanieb commented Jan 8, 2025

Extending #10306 — trying to reach an acceptable perf

@zanieb zanieb added the internal A refactor or improvement that is not user-facing label Jan 8, 2025
@zanieb zanieb changed the title zb/speedup aarch64 WIP: Improve performance of windows-aarch64 builds Jan 8, 2025
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from 0b0b77a to d3206cd Compare January 8, 2025 17:53
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from d3206cd to 27798ef Compare January 8, 2025 17:59
@zanieb zanieb temporarily deployed to uv-test-publish January 8, 2025 18:06 — with GitHub Actions Inactive
@zanieb zanieb temporarily deployed to uv-test-publish January 8, 2025 19:33 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from 9c43b43 to b513ecb Compare January 8, 2025 20:37
@zanieb zanieb temporarily deployed to uv-test-publish January 8, 2025 20:42 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from b513ecb to f5c73a8 Compare January 8, 2025 21:27
@zanieb zanieb temporarily deployed to uv-test-publish January 8, 2025 21:32 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from f5c73a8 to c31d6ff Compare January 8, 2025 21:46
@zanieb zanieb temporarily deployed to uv-test-publish January 8, 2025 21:49 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from c31d6ff to 0e2e00e Compare January 8, 2025 22:02
@zanieb zanieb temporarily deployed to uv-test-publish January 8, 2025 22:06 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from 0e2e00e to ec428c9 Compare January 9, 2025 00:13
@zanieb zanieb temporarily deployed to uv-test-publish January 9, 2025 00:16 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch 2 times, most recently from 5819b98 to f996f22 Compare January 9, 2025 00:33
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from f996f22 to 74e77ad Compare January 9, 2025 00:40
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from 74e77ad to a3c98bd Compare January 9, 2025 00:46
@zanieb zanieb temporarily deployed to uv-test-publish January 9, 2025 00:50 — with GitHub Actions Inactive
@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from a3c98bd to 0bee269 Compare January 9, 2025 00:54
@zanieb zanieb temporarily deployed to uv-test-publish January 9, 2025 00:58 — with GitHub Actions Inactive
@oberrich
Copy link

oberrich commented Jan 9, 2025

The "Install LLVM" step already installs LLVM/Clang 19 and puts it in path.
Visual Studio comes with Clang 18 which has a bindgen bug affecting aarch64, so I would advise not installing Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang unless you need Clang 18 specifically.

This will save some time on the installer as well, only getting the build tools and SDK takes around 5m 23s; although that shouldn't matter once you get the caching working 👍

@zanieb zanieb force-pushed the zb/speedup-aarch64 branch from 0bee269 to 5e45932 Compare January 9, 2025 02:48
@zanieb zanieb temporarily deployed to uv-test-publish January 9, 2025 02:52 — with GitHub Actions Inactive
@zanieb
Copy link
Member Author

zanieb commented Jan 9, 2025

Interesting, thanks for the tips!

@zanieb
Copy link
Member Author

zanieb commented Jan 9, 2025

Right now the problem is that the cache is huge, 7GB is going to cause cache churn since we have a 10GB limit in the repository.

@oberrich
Copy link

oberrich commented Jan 9, 2025

Right now the problem is that the cache is huge, 7GB is going to cause cache churn since we have a 10GB limit in the repository.

Oh wow even with caching it takes 3m 21s because of the download I assume.

I think it might be worth it to only use the native ARM64 runner in a release CI, Rust can use --target aarch64... just fine on x86_64 hosts and this whole ">10 min CI just for getting a the bare minimum setup to compile rust" is kind of just burning money for no upside.

Probably best to wait for Microsoft/GitHub to ship a usable VM image.

@zanieb
Copy link
Member Author

zanieb commented Jan 9, 2025

I think it might be worth it to only use the native ARM64 runner in a release CI, Rust can use --target aarch64... just fine on x86_64 hosts and this whole ">10 min CI just for getting a the bare minimum setup to compile rust" is kind of just burning money for no upside.

Yeah, but then it can regress and then I have to burn a bunch of cycles fixing a release :( trade-offs

Probably best to wait for Microsoft/GitHub to ship a usable VM image.

Sort of agree.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal A refactor or improvement that is not user-facing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants