Skip to content

ci: add ROCm version and CK inputs to the TheRock workflow dispatch - #567

Merged
zichguan-amd merged 1 commit into
amd-stagingfrom
zichguan/ci-ck-dispatch
Oct 30, 2026
Merged

zichguan-amd merged 1 commit into
amd-stagingfrom
zichguan/ci-ck-dispatch

Conversation

@zichguan-amd

@zichguan-amd zichguan-amd commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Motivation

Build ROCm Examples (ci_therock.yml) and Nightly CI (ci_nightly.yml) can only be dispatched against the latest TheRock nightly, and they never build the Composable Kernel examples: the tarball and wheel setups leave ENABLE_CK unset and the preinstalled one sets it to OFF. The only workflow that builds CK, Build Libraries, is pinned to the ROCm 10.1 image. So a CK change cannot be checked in CI against a specific ROCm, e.g. a release candidate. #565 (CK sync with 10.2.0rc0) is an example: its Build Libraries run compiles the 10.2 examples against 10.1's CK and fails for that reason alone.

Technical Details

  • build-rocm-examples-reusable.yml
    • New enable_ck input (boolean, default false). A new "Set CK build flag" step writes ENABLE_CK=ON|OFF for every install method, replacing the hard-coded ENABLE_CK=OFF of the preinstalled setup.
    • rocm_version already pins a nightly (Quartz uses it). An rc version such as 10.2.0rc0, without an explicit wheels_url/tarballs_url, now installs from the release candidate index (https://rc.repo.amd.com/rocm/core/tarball/, https://rc.repo.amd.com/rocm/core/whl-next/) instead of the nightly one.
  • ci_therock.yml, ci_nightly.yml: new rocm_version (string, empty = latest nightly) and enable_ck (boolean) dispatch inputs, passed to the reusable workflow. With a rocm_version, configure_ci.py gets --exclude-preinstalled, as in quartz_test.yml, because the stable_release image cannot install another ROCm.

Push, pull_request, schedule and Quartz runs pass neither input and are unchanged.

Note: TheRock's Python wheels currently do not include Composable Kernel. The 10.2.0rc0 rocm-sdk-devel wheel has no ck/ck_tile headers and no composable_kernel CMake package, and the rocm meta-package has no other component that provides it. With install_method=whl-multi-arch, enable_ck=true turns the flag on, but Libraries/ComposableKernel skips itself ("Composable Kernel could not be found"). To build CK, use install_method=tarball-multi-arch; the tarballs ship CK.

Example, for a CK branch that contains this change:

gh workflow run ci_therock.yml --ref <branch> \
  -f rocm_version=10.2.0rc0 -f enable_ck=true \
  -f install_method=tarball-multi-arch -f distro=ubuntu-24.04 -f gpu_config=gfx1100

Test Plan

  • Dispatch of Build ROCm Examples on this branch with rocm_version=10.2.0rc0, enable_ck=true, gfx1100, Ubuntu 24.04, both install methods: run 41123640840.
  • pre-commit (including the GitHub Actions workflow lint) and zizmor on the three workflows.

Test Result

  • whl-multi-arch: passed. It installed rocm==10.2.0rc0 from https://rc.repo.amd.com/rocm/core/whl-next/, set ROCM_EXAMPLES_ENABLE_CK=ON, and ctest passed 371/371. As expected without CK in the wheels (see the note above), Libraries/ComposableKernel reported "Composable Kernel could not be found" and built nothing.
  • tarball-multi-arch: queued at the time of writing (waiting for a gfx1100 runner). On this branch the CK examples are still amd-staging's, which do not compile against 10.2.0rc0's CK (ck: sync ck_tile examples with ROCm 10.1 #552, ck: sync ck_tile examples with ROCm 10.2.0rc0 #565), so this job is expected to fail in the CK build; what it shows is that the rc tarball installs and the CK examples are configured.
  • Checks: pre-commit passes. zizmor reports the same findings before and after the change (36, none new).

Added/Updated documentation?

  • Yes
  • No, does not apply to this PR.

Included Visual Studio files?

  • Yes
  • No, does not apply to this PR.

Submission Checklist

🤖 Generated with Claude Code

Build ROCm Examples and Nightly CI can only be dispatched against the latest
nightly and never build the Composable Kernel examples, so there is no way to
check CK changes against a specific ROCm, e.g. a release candidate, in CI.

- build-rocm-examples-reusable.yml: new enable_ck input (default false) that
  sets ENABLE_CK for every install method. An rc rocm_version (e.g.
  10.2.0rc0) without an explicit wheels_url/tarballs_url installs from the
  release candidate index (rc.repo.amd.com) instead of the nightly one.
- ci_therock.yml, ci_nightly.yml: new rocm_version and enable_ck dispatch
  inputs, passed to the reusable workflow. With a rocm_version, the
  stable_release image is left out, as in the Quartz workflow, because it
  cannot install another ROCm.

Push, pull_request, schedule and Quartz runs pass neither input and are
unchanged.

Co-Authored-By: Claude <noreply@anthropic.com>
@zichguan-amd
zichguan-amd requested a review from a team as a code owner October 30, 2026 20:42
@zichguan-amd
zichguan-amd merged commit 410fcd8 into amd-staging Oct 30, 2026
56 of 58 checks passed
@zichguan-amd
zichguan-amd deleted the zichguan/ci-ck-dispatch branch October 30, 2026 20:51
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