From df0b76bf3fd29cf6a702c62c74d1b7a400814f63 Mon Sep 17 00:00:00 2001 From: Joe Schoonover Date: Sat, 13 Jun 2026 06:47:47 -0400 Subject: [PATCH] Add B300 (sm_103) variants to docker-publish workflow Add an x86_sm103 docker context targeting CUDA architecture 103 (B300 / Blackwell Ultra, CC 10.3) and double- and single-precision matrix entries that build on the higherordermethods/selfish latest-x86-cuda130-sm103 base image. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/docker-publish.yml | 10 ++++++++++ docker/x86_sm103/Dockerfile | 30 ++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 docker/x86_sm103/Dockerfile diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index e675dfe60..29e42f791 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -36,6 +36,16 @@ jobs: selfish_image: higherordermethods/selfish:latest-x86-cuda130-sm100 tag_suffix: x86-cuda130-sm100-sp double_precision: "OFF" + - variant: x86-cuda130-sm103 + context: docker/x86_sm103 + selfish_image: higherordermethods/selfish:latest-x86-cuda130-sm103 + tag_suffix: x86-cuda130-sm103 + double_precision: "ON" + - variant: x86-cuda130-sm103-sp + context: docker/x86_sm103 + selfish_image: higherordermethods/selfish:latest-x86-cuda130-sm103 + tag_suffix: x86-cuda130-sm103-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_sm103/Dockerfile b/docker/x86_sm103/Dockerfile new file mode 100644 index 000000000..f4a3fdeda --- /dev/null +++ b/docker/x86_sm103/Dockerfile @@ -0,0 +1,30 @@ +ARG SELFISH_IMAGE=higherordermethods/selfish:latest-x86-cuda130-sm103 +FROM ${SELFISH_IMAGE} + +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 && \ + mkdir -p /opt/self/build && \ + cd /opt/self/build && \ + FC=gfortran cmake \ + -DCMAKE_INSTALL_PREFIX=/opt/self/install \ + -DCMAKE_BUILD_TYPE=Release \ + -DSELF_ENABLE_GPU=ON \ + -DSELF_GPU_BACKEND=CUDA \ + -DSELF_ENABLE_TESTING=ON \ + -DSELF_ENABLE_DOUBLE_PRECISION=${SELF_DOUBLE_PRECISION} \ + -DCMAKE_CUDA_ARCHITECTURES="103" \ + -DSELF_ENABLE_EXAMPLES=ON \ + /opt/self/src && \ + make -j$(nproc) && \ + make install + +WORKDIR /opt/self/build