Skip to content

Add single-precision and MI300X variants to docker-publish workflow#132

Merged
fluidnumericsJoe merged 1 commit into
mainfrom
feature/gha-precision-and-mi300x-publish
Jun 11, 2026
Merged

Add single-precision and MI300X variants to docker-publish workflow#132
fluidnumericsJoe merged 1 commit into
mainfrom
feature/gha-precision-and-mi300x-publish

Conversation

@fluidnumericsJoe

Copy link
Copy Markdown
Member

Summary

Extends the GitHub Actions docker-publish workflow so each published image is offered in both single and double precision, and adds MI300X (gfx942) as a new published target.

The published-tag matrix becomes:

variant precision tag
x86-cuda130-sm100 double latest-x86-cuda130-sm100 (unchanged)
x86-cuda130-sm100-sp single latest-x86-cuda130-sm100-sp (new)
x86-rocm643-gfx942 double latest-x86-rocm643-gfx942 (new)
x86-rocm643-gfx942-sp single latest-x86-rocm643-gfx942-sp (new)

(Each also gets the corresponding <sha>-… tag.)

Changes

  • docker/x86_sm100/Dockerfile, docker/x86_gfx942/Dockerfile — add a SELF_DOUBLE_PRECISION build-arg (default ON) wired to the existing SELF_ENABLE_DOUBLE_PRECISION CMake option, so one Dockerfile builds either precision.
  • docker/x86_gfx942/Dockerfile — new file, modeled on the existing x86_gfx90a (MI210) Dockerfile, targeting gfx942 via the latest-x86-rocm643-gfx942 selfish base image (verified present on Docker Hub).
  • .github/workflows/docker-publish.yml — pass SELF_DOUBLE_PRECISION through build-args and add the four matrix entries.

Notes / backward compatibility

  • The existing latest-x86-cuda130-sm100 tag keeps its name and stays double precision — purely additive. Single precision uses the -sp suffix.
  • Each variant keeps a separate buildcache-<tag_suffix> cache tag, so no cache collisions; all four build in parallel (fail-fast: false).
  • No on-GPU testing: like the existing sm100 build, these compile on a GPU-less ubuntu-22.04 runner. The Buildkite pipeline remains the path that build+tests AMD images on real hardware (MI210). The gfx942 image is built but not exercised on an MI300X here.
  • Naming follows the existing x86-rocm643-gfx90a convention rather than an mi300x alias, for consistency across the GHA and Buildkite pipelines.

Verification

The workflow only triggers on push to main / workflow_dispatch, so this PR won't exercise it. After merge, recommend a manual workflow_dispatch run to confirm the two new AMD builds pull the gfx942 base and compile.

🤖 Generated with Claude Code

Extend the GitHub Actions docker-publish matrix so each published image
is available in both single and double precision, and add MI300X
(gfx942) as a new published target.

- docker/x86_sm100/Dockerfile, docker/x86_gfx942/Dockerfile: add a
  SELF_DOUBLE_PRECISION build-arg (default ON) wired to the
  SELF_ENABLE_DOUBLE_PRECISION CMake option, so the same Dockerfile
  builds either precision.
- docker/x86_gfx942/Dockerfile: new, modeled on the gfx90a Dockerfile,
  targeting gfx942 via the latest-x86-rocm643-gfx942 selfish base image.
- docker-publish.yml: pass SELF_DOUBLE_PRECISION through build-args and
  add matrix entries. Published tags:
    latest-x86-cuda130-sm100        (double, unchanged)
    latest-x86-cuda130-sm100-sp     (single, new)
    latest-x86-rocm643-gfx942       (double, new)
    latest-x86-rocm643-gfx942-sp    (single, new)

Existing tags are unchanged for backward compatibility; single-precision
images use the -sp suffix. Each variant keeps a separate buildcache tag.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fluidnumericsJoe fluidnumericsJoe merged commit d9d808e into main Jun 11, 2026
11 checks passed
@fluidnumericsJoe fluidnumericsJoe deleted the feature/gha-precision-and-mi300x-publish branch June 11, 2026 09:48
fluidnumericsJoe added a commit that referenced this pull request Jun 13, 2026
Add double- and single-precision MI210 (gfx90a) variants to the
docker-publish matrix, and wire the SELF_DOUBLE_PRECISION build arg into
the x86_gfx90a Dockerfile so the single-precision variant builds correctly.

The MI300X (gfx942) and NVIDIA variants previously included on this branch
are already on main via #132, so only the new gfx90a builds remain here.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fluidnumericsJoe added a commit that referenced this pull request Jun 13, 2026
Add double- and single-precision MI210 (gfx90a) variants to the
docker-publish matrix, and wire the SELF_DOUBLE_PRECISION build arg into
the x86_gfx90a Dockerfile so the single-precision variant builds correctly.

The MI300X (gfx942) and NVIDIA variants previously included on this branch
are already on main via #132, so only the new gfx90a builds remain here.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fluidnumericsJoe added a commit that referenced this pull request Jun 13, 2026
Add double- and single-precision MI210 (gfx90a) variants to the
docker-publish matrix, and wire the SELF_DOUBLE_PRECISION build arg into
the x86_gfx90a Dockerfile so the single-precision variant builds correctly.

The MI300X (gfx942) and NVIDIA variants previously included on this branch
are already on main via #132, so only the new gfx90a builds remain here.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant