Linux RDMA and InfiniBand development
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Stephen Bates <sbates@raithlin.com>
Cc: linux-rdma@vger.kernel.org, sshaul@nvidia.com,
	stephen.bates@amd.com, abhijit.gangurde@amd.com,
	nikhil.agarwal@amd.com, Claude <noreply@anthropic.com>
Subject: Re: [PATCH v3] perftest: add a ROCm build to CI
Date: Sun, 15 Nov 2026 14:51:33 +0200	[thread overview]
Message-ID: <20261115125133.GA42525@unreal> (raw)
In-Reply-To: <20261106224821.126399-1-sbates@raithlin.com>

On Fri, Nov 06, 2026 at 04:48:21PM -0600, Stephen Bates wrote:
> 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>

Stephen,

Thanks for bringing this to the mailing list. It brought to my attention that
the perftest repository had been neglected.

Please open a PR against the perftest repository, and I'll start cleaning
things up there.

Thanks

> ---
> 
> 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
> 
> 
> 

      parent reply	other threads:[~2026-11-15 12:51 UTC|newest]

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

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=20261115125133.GA42525@unreal \
    --to=leon@kernel.org \
    --cc=abhijit.gangurde@amd.com \
    --cc=linux-rdma@vger.kernel.org \
    --cc=nikhil.agarwal@amd.com \
    --cc=noreply@anthropic.com \
    --cc=sbates@raithlin.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