From 0270edd3f8c1efbfb8264002ee3b0de0ac602236 Mon Sep 17 00:00:00 2001 From: Joe Schoonover Date: Sat, 13 Jun 2026 06:55:23 -0400 Subject: [PATCH] docker-publish: add MI210 (gfx90a) image builds 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) --- .github/workflows/docker-publish.yml | 10 ++++++++++ docker/x86_gfx90a/Dockerfile | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 29e42f791..e493f68b8 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -46,6 +46,16 @@ jobs: selfish_image: higherordermethods/selfish:latest-x86-cuda130-sm103 tag_suffix: x86-cuda130-sm103-sp double_precision: "OFF" + - variant: x86-rocm643-gfx90a + context: docker/x86_gfx90a + selfish_image: higherordermethods/selfish:latest-x86-rocm643-gfx90a + tag_suffix: x86-rocm643-gfx90a + double_precision: "ON" + - variant: x86-rocm643-gfx90a-sp + context: docker/x86_gfx90a + selfish_image: higherordermethods/selfish:latest-x86-rocm643-gfx90a + tag_suffix: x86-rocm643-gfx90a-sp + double_precision: "OFF" - variant: x86-rocm643-gfx942 context: docker/x86_gfx942 selfish_image: higherordermethods/selfish:latest-x86-rocm643-gfx942 diff --git a/docker/x86_gfx90a/Dockerfile b/docker/x86_gfx90a/Dockerfile index c7df3157b..ba159b566 100644 --- a/docker/x86_gfx90a/Dockerfile +++ b/docker/x86_gfx90a/Dockerfile @@ -5,6 +5,10 @@ ARG SELFISH_SHA="" LABEL org.opencontainers.image.base.name="${SELFISH_IMAGE}" LABEL org.opencontainers.image.base.digest="${SELFISH_SHA}" +# Floating-point precision of the build. ON -> double precision (default), +# OFF -> single precision. Maps to the SELF_ENABLE_DOUBLE_PRECISION CMake option. +ARG SELF_DOUBLE_PRECISION=ON + COPY . /opt/self/src RUN source /opt/spack-environment/activate.sh && \ @@ -16,6 +20,7 @@ RUN source /opt/spack-environment/activate.sh && \ -DSELF_ENABLE_GPU=ON \ -DSELF_GPU_BACKEND=HIP \ -DSELF_ENABLE_TESTING=ON \ + -DSELF_ENABLE_DOUBLE_PRECISION=${SELF_DOUBLE_PRECISION} \ -DCMAKE_HIP_ARCHITECTURES="gfx90a" \ -DGPU_TARGETS="gfx90a" \ -DSELF_ENABLE_EXAMPLES=ON \