Skip to content

Comments

WIP: Improve performance of windows-aarch64 builds#10402

Draft
zanieb wants to merge 23 commits intomainfrom
zb/speedup-aarch64
Draft

WIP: Improve performance of windows-aarch64 builds#10402
zanieb wants to merge 23 commits intomainfrom
zb/speedup-aarch64

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 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
@rich-ayr
Copy link

rich-ayr 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.

@rich-ayr
Copy link

rich-ayr 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.

zanieb added a commit that referenced this pull request Jan 23, 2025
Based on discussion in #10306, this
adds building aarch64 exe using x86 runner. See:
#10402 (comment)

Addresses: #1141

---------

Co-authored-by: Zanie Blue <[email protected]>
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