Skip to content

Add aarch64 variants for ghci-snl gnu-cpu-env and gnu-cuda-env - #43

Open
mahf708 with Copilot wants to merge 3 commits into
mainfrom
copilot/add-aarch64-equivalent-ghci-snl-envs
Open

Add aarch64 variants for ghci-snl gnu-cpu-env and gnu-cuda-env#43
mahf708 with Copilot wants to merge 3 commits into
mainfrom
copilot/add-aarch64-equivalent-ghci-snl-envs

Conversation

Copilot AI commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

ghci-snl only built x86_64 images. This adds native aarch64 equivalents: gnu-cpu-env for macOS M1/Apple Silicon, and gnu-cuda-env for NVIDIA aarch64 "superchip" systems (Grace Hopper/Blackwell), built on GitHub's native ubuntu-22.04-arm runners (no QEMU).

Base image

  • SPACK_ARCH is now a build ARG in base/Dockerfile instead of hardcoded, defaulting to linux-rhel9-x86_64 (unchanged behavior). aarch64 builds override it:
    docker build --build-arg SPACK_ARCH=linux-rhel9-aarch64 ...
    

gnu-cpu-env-aarch64

  • No Dockerfile changes needed — compiler/Dockerfile and final/gnu-cpu-env/Dockerfile already parameterize on ${SPACK_ARCH} generically. The workflow now builds this same Dockerfile a second time for aarch64.

gnu-cuda-env-aarch64 (new)

  • New final/gnu-cuda-env-aarch64/Dockerfile. spack@0.23.1 (pinned repo-wide) only packages CUDA up to 12.6, so CUDA is installed from NVIDIA's official RHEL9/SBSA repo instead of spack install cuda@..., landing on CUDA 13.0.
  • Uses the prebuilt cupy-cuda13x wheel and torch==2.13.0+cu130 (vs. x86_64's source-built cupy against spack's CUDA).

CI workflow

  • .github/workflows/ghci-snl.yaml: base, compiler, and final-env jobs are now matrixed over arch, adding base-aarch64, gnu-13.3.0-aarch64, gnu-cpu-env-aarch64, and gnu-cuda-env-aarch64 tags. Intel oneAPI has no aarch64 support, so intel-cpu-env stays x86_64-only.

Docs

  • ghci-snl/README documents the new tags and the aarch64 base-image build command.

Possible follow-ups (not included here)

  • gnu-cuda-env/Dockerfile declares an unused ARG NVIDIA_DRIVER_VERSION=535; left as-is, out of scope.
  • A future Spack 1.x migration would let CUDA 13 install via spack install cuda@13 directly, unifying the install path across arches — deferred since Spack 1.x deprecates the packages:all:compiler: model used repo-wide and needs broader testing.

Co-authored-by: mahf708 <122953255+mahf708@users.noreply.github.com>
…UI nsight-systems deps)

Co-authored-by: mahf708 <122953255+mahf708@users.noreply.github.com>
Co-authored-by: mahf708 <122953255+mahf708@users.noreply.github.com>
@mahf708
mahf708 marked this pull request as ready for review August 30, 2026 11:53
@mahf708
mahf708 requested a review from bartgol August 30, 2026 11:53
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