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

Install QEMU emulator in arm64 variant of cpubuilder image. #13

Merged
merged 1 commit into from
Sep 20, 2024

Conversation

ScottTodd
Copy link
Member

@ScottTodd ScottTodd commented Sep 19, 2024

Follow-up to #11.

This emulator was originally installed in iree-org/iree#16331. We've been carrying it around since then.

I'm not thrilled with the file sitting in a cloud storage bucket (GCS or Azure). The file is 5MB so maybe we could check it in here via git LFS? Or we could build it from source via our automation.

@ScottTodd
Copy link
Member Author

cc @MacDue @banach-space

######## target-architecture-specific installs ########
WORKDIR /install-target-arch
COPY build_tools/install_arch_extras_${TARGETARCH}.sh ./
RUN ./install_arch_extras_${TARGETARCH}.sh && rm -rf /install-target-arch
Copy link
Member

Choose a reason for hiding this comment

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

What about eventually going with something like

Suggested change
RUN ./install_arch_extras_${TARGETARCH}.sh && rm -rf /install-target-arch
RUN if [[ "${TARGETARCH}" = "arm64" ]] ; then ./install_arch_extras_arm64.sh && rm -rf /install-target-arch ; fi

But honestly I don't know if I like this either and the empty bash script could be the better way.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah I looked at other patterns and this looked cleanest in the .Dockerfile. I don't really mind carrying around empty scripts as long as there are only a few of them.

@ScottTodd ScottTodd merged commit cff8945 into iree-org:main Sep 20, 2024
1 check passed
@ScottTodd ScottTodd deleted the arm64-qemu branch September 20, 2024 14:26
ScottTodd added a commit to iree-org/iree that referenced this pull request Sep 23, 2024
Progress on #15332. This was the
last active use of
[`build_tools/docker/`](https://github.com/iree-org/iree/tree/main/build_tools/docker),
so we can now delete that directory:
#18566.

This uses the same "cpubuilder" dockerfile as the x86_64 builds, which
is now built for multiple architectures thanks to
iree-org/base-docker-images#11. As before, we
install a qemu binary in the dockerfile, this time using the approach in
iree-org/base-docker-images#13 instead of a
forked dockerfile.

Prior PRs for context:
* #14372
* #16331

Build time varies pretty wildly depending on cache hit rate and the
phase of the moon:

| Scenario | Cache hit rate | Time | Logs |
| -- | -- | -- | -- |
Cold cache | 0% | 1h45m |
[Logs](https://github.com/iree-org/iree/actions/runs/10962049593/job/30440393279)
Warm (?) cache | 61% | 48m |
[Logs](https://github.com/iree-org/iree/actions/runs/10963546631/job/30445257323)
Warm (hot?) cache | 98% | 16m |
[Logs](https://github.com/iree-org/iree/actions/runs/10964289304/job/30447618503?pr=18569)

CI history
(https://github.com/iree-org/iree/actions/workflows/ci_linux_arm64_clang.yml?query=branch%3Amain)
shows that regular 97% cache hit rates and 17 minute job times are
possible. I'm not sure why one test run only got 61% cache hits. This
job only runs nightly, so that's not a super high priority to
investigate and fix.

If we migrate the arm64 runner off of GCP
(#18238) we can further simplify
this workflow by dropping its reliance on `gcloud auth
application-default print-access-token` and the `docker_run.sh` script.
Other workflows are now using `source setup_sccache.sh` and some other
code.
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.

2 participants