linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Bates <sbates@raithlin.com>
To: linux-rdma@vger.kernel.org
Cc: Stephen Bates <sbates@raithlin.com>,
	sshaul@nvidia.com, stephen.bates@amd.com,
	abhijit.gangurde@amd.com, nikhil.agarwal@amd.com,
	Claude <noreply@anthropic.com>
Subject: [PATCH v3] perftest: add a ROCm build to CI
Date: Fri,  6 Nov 2026 16:48:21 -0600	[thread overview]
Message-ID: <20261106224821.126399-1-sbates@raithlin.com> (raw)

CI builds only the CUDA configuration. The two existing workflows pass no
--enable-rocm, so src/rocm_memory.c and everything behind HAVE_ROCM and
HAVE_ROCM_DMABUF is never compiled on a pull request, and a change that
breaks the ROCm backend goes green.

Add an Ubuntu 24.04 job building --enable-rocm --enable-rocm-dmabuf,
alongside the two CUDA jobs and triggered the same way. It runs in AMD's
slim ROCm image rather than installing ROCm on the runner. The -full and
-complete tags, and an apt install of the amdrocm-core metapackages, all
pull the whole ML stack: Composable Kernel alone is over 2 GB, before
rocSHMEM, MIOpen and the BLAS and FFT libraries. A compile check touches
none of it. rocm/dev-ubuntu-24.04:7.2.4 is about 1.1 GB against 8.3 GB
for the smallest 10.1 image, and still ships hipcc and the HIP and HSA
headers needed to compile the ROCm backend.

7.2.4 rather than 10.1 because AMD publishes slim tags only through 7.2.x;
every 10.x tag is -full. What this job needs is a toolchain that compiles
the sources, which that image provides. Moving to a newer ROCm is a
one-line change to the container tag if a slim 10.x image appears, or if
something here starts depending on a newer HIP API.

This is a single host-only build; there are no HIP kernel sources in the
project yet, so there is nothing to compile for a specific device target.
When device code and --with-rocm-arch support are introduced this job can
gain an architecture matrix at that point.

Like the CUDA jobs this builds and installs only. There is no RDMA device
in a runner, and the project has no test suite.

Verified by running this workflow in a fork of the repository. The job
passed: configure accepts every option, and make and make install succeed
warning-free.

Link: https://github.com/linux-rdma/perftest/pull/418

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Stephen Bates <sbates@raithlin.com>
---

Changes since v2:
  Drop the architecture matrix; collapse to a single host-only build job.
  Update the commit message to match what the workflow actually does.
  An architecture matrix will be added when HIP kernel sources and
  --with-rocm-arch support are introduced.
 .github/workflows/ubuntu24_04_rocm7_2.yaml | 72 ++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 .github/workflows/ubuntu24_04_rocm7_2.yaml

diff --git a/.github/workflows/ubuntu24_04_rocm7_2.yaml b/.github/workflows/ubuntu24_04_rocm7_2.yaml
new file mode 100644
index 0000000..e8f3ea5
--- /dev/null
+++ b/.github/workflows/ubuntu24_04_rocm7_2.yaml
@@ -0,0 +1,72 @@
+name: Build and Test perftest on Ubuntu 24.04 with ROCm
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+    branches:
+      - master
+  workflow_dispatch:
+
+jobs:
+  build:
+    runs-on: ubuntu-24.04
+
+    # AMD's slim ROCm image. The -full and -complete tags carry the whole ML
+    # stack -- Composable Kernel alone is over 2 GB -- which a compile check
+    # never touches. This one is about 1.1 GB and still ships hipcc and the
+    # HIP and HSA headers needed to compile the ROCm backend.
+    container: rocm/dev-ubuntu-24.04:7.2.4
+
+    name: ROCm
+
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v4
+
+      # The job runs as root inside the container, so no sudo here.
+      - name: Install build dependencies
+        run: |
+          export DEBIAN_FRONTEND=noninteractive
+          apt-get update
+          apt-get install -y \
+            build-essential \
+            autoconf \
+            automake \
+            libtool \
+            pkg-config \
+            libibverbs-dev \
+            librdmacm-dev \
+            libibumad-dev \
+            libpci-dev
+
+      - name: Locate ROCm
+        run: |
+          # The image ships /opt/rocm as a symlink to a versioned prefix.
+          # configure needs the include path, so resolve it rather than
+          # assuming either spelling.
+          ROCM_PATH=$(ls -d /opt/rocm* 2>/dev/null | sort -V | tail -1)
+          if [ -z "$ROCM_PATH" ]; then
+            echo "No ROCm installation found under /opt" >&2
+            ls -la /opt || true
+            exit 1
+          fi
+          echo "Using ROCm at $ROCM_PATH"
+          "$ROCM_PATH/bin/hipcc" --version | head -2 || hipcc --version | head -2
+          echo "ROCM_PATH=$ROCM_PATH" >> $GITHUB_ENV
+          echo "$ROCM_PATH/bin" >> $GITHUB_PATH
+
+      - name: Run autogen.sh
+        run: ./autogen.sh
+
+      - name: Configure the build
+        run: |
+          ./configure --enable-rocm --enable-rocm-dmabuf \
+                      --with-rocm="$ROCM_PATH"
+
+      - name: Build perftest
+        run: make
+
+      - name: Install perftest
+        run: make install
-- 
2.53.0



             reply	other threads:[~2026-11-06 22:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-06 22:48 Stephen Bates [this message]
2026-11-06 22:50 ` [PATCH v3] perftest: add a ROCm build to CI sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261106224821.126399-1-sbates@raithlin.com \
    --to=sbates@raithlin.com \
    --cc=abhijit.gangurde@amd.com \
    --cc=linux-rdma@vger.kernel.org \
    --cc=nikhil.agarwal@amd.com \
    --cc=noreply@anthropic.com \
    --cc=sshaul@nvidia.com \
    --cc=stephen.bates@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).