Skip to content

[CK] Disable test cases affected by compiler codegen bugs on gfx90a - #6343

Merged
aosewski merged 3 commits into
developfrom
users/vpietila/ck/fix-bwd-weight-test
Apr 13, 2026
Merged

aosewski merged 3 commits into
developfrom
users/vpietila/ck/fix-bwd-weight-test

Conversation

@vpietila-amd

@vpietila-amd vpietila-amd commented Apr 10, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Due to compiler version update, there are test failures in the test suite test_grouped_convnd_bwd_weight when running on gfx90a. There are four failing tests for FP16/BF16 that arise from a single kernel instance. As the problem is in the current develop branch, the test failures are blocking any PR merges into develop. An example of a failed CI runs is here: http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/. The underlying compiler problem is potentially the same as described in #6342 as tests are passing for clang compiler version 20.0 and failing for clang compiler version 22.0.

Technical Details

This PR disables the compilation of the problematic bwd weight conv instance for gfx90a by adding a new CMake flag CK_USE_GFX90A that allows us to detect when we are compiling for gfx90a. Using the new CMake flag, compilation of instance DeviceGroupedConvBwdWeight_Xdl_CShuffleV3<64, 128, 32, 32, Default, 8, 4, 1, 8, 8, 8, 8, 1, 1, 2> is disabled for gfx90a.


Additionally, this PR skips fp16 FMHA forward dropout tests that use the d256 tile in batch mode. The AMDGPU compiler (clang 22) aliases Philox RNG VGPR parameters (ph_seed, ph_head_offset) with other live data under high register pressure (383 VGPRs), causing corrupted buffer_store_byte writes for dropout randval on wave lanes 32-63 and NaN in output/LSE tensors. bf16 dropout is unaffected (different type conversion codegen path) and covers the same code paths.

Changes:

  • include/ck_tile/core/config.hpp: Add version-gated CK_TILE_WORKAROUND_ROCM_7_12_FP16_DROPOUT_MISCOMPILE macro
  • test/ck_tile/fmha/test_fmha_fwd.cpp: GTEST_SKIP for fp16 + d256 tile + batch mode in TEST_P(Dropout, ...)

Verified:

  • clang 20: 168/168 fp16 dropout tests PASS (skip not active)
  • clang 22: 132 PASS, 36 SKIPPED, 0 FAILED
  • bf16 dropout: 168/168 PASS (unaffected)

@aosewski
aosewski enabled auto-merge (squash) April 10, 2026 13:51
The AMDGPU compiler generates incorrect code for fp16 d256 dropout
kernels in batch mode on gfx90a. The compiler aliases Philox RNG VGPR
parameters under high register pressure, causing corrupted dropout
randval output (lanes 32-63) and NaN in output/LSE tensors.

bf16 dropout is unaffected (different type conversion codegen path)
and covers the same code paths, so disabling the fp16 variant does
not reduce test coverage.

The skip is version-gated and will be removed once the compiler fix
is available.
@poyenc poyenc changed the title [CK] Disable compilation of problematic bwd weight conv instances for gfx90a [CK] Disable test cases affected by compiler codegen bugs on gfx90a Apr 10, 2026
@aosewski
aosewski merged commit 3604475 into develop Apr 13, 2026
47 of 50 checks passed
@aosewski
aosewski deleted the users/vpietila/ck/fix-bwd-weight-test branch April 13, 2026 11:40
assistant-librarian Bot pushed a commit to ROCm/composable_kernel that referenced this pull request Apr 13, 2026
[CK] Disable compilation of problematic bwd weight conv
 instances for gfx90a (#6343)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

## Motivation

Due to compiler version update, there are test failures in the test
suite `test_grouped_convnd_bwd_weight` when running on `gfx90a`. There
are four failing tests for FP16/BF16 that arise from a single kernel
instance. As the problem is in the current `develop` branch, the test
failures are blocking any PR merges into `develop`. An example of a
failed CI runs is here:
[http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/](http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/).
The underlying compiler problem is potentially the same as described in
#6342 as tests are passing for clang compiler version 20.0 and failing
for clang compiler version 22.0.

## Technical Details

This PR disables the compilation of the problematic bwd weight conv
instance for `gfx90a` by adding a new CMake flag `CK_USE_GFX90A` that
allows us to detect when we are compiling for `gfx90a`. Using the new
CMake flag, compilation of instance
`DeviceGroupedConvBwdWeight_Xdl_CShuffleV3<64, 128, 32, 32, Default, 8,
4, 1, 8, 8, 8, 8, 1, 1, 2>` is disabled for `gfx90a`.

Co-authored-by: Ville Pietilä <>
brockhargreaves-amd added a commit that referenced this pull request Apr 14, 2026
…degen bugs on gfx90a" (#6400)

Reverts #6343

This is causing failures in miopen, namely Dbsync gfx942 even though it shouldn't be affected so this needs to be investigated. Please add miopen as a label to the new PR for addressing the compiler codegen bug so that this can be addressed simultaneously.
assistant-librarian Bot pushed a commit to ROCm/composable_kernel that referenced this pull request Apr 14, 2026
[MIOPEN] [CK] Revert "[CK] Disable test cases affected by
 compiler codegen bugs on gfx90a" (#6400)

Reverts ROCm/rocm-libraries#6343

This is causing failures in miopen, namely Dbsync gfx942 even though it shouldn't be affected so this needs to be investigated. Please add miopen as a label to the new PR for addressing the compiler codegen bug so that this can be addressed simultaneously.
hyoon1 pushed a commit to hyoon1/composable_kernel that referenced this pull request Apr 17, 2026
…degen bugs on gfx90a" (#6400)

Reverts ROCm/rocm-libraries#6343

This is causing failures in miopen, namely Dbsync gfx942 even though it shouldn't be affected so this needs to be investigated. Please add miopen as a label to the new PR for addressing the compiler codegen bug so that this can be addressed simultaneously.
aledudek pushed a commit that referenced this pull request May 20, 2026
… gfx90a (#6343)

## Motivation

Due to compiler version update, there are test failures in the test
suite `test_grouped_convnd_bwd_weight` when running on `gfx90a`. There
are four failing tests for FP16/BF16 that arise from a single kernel
instance. As the problem is in the current `develop` branch, the test
failures are blocking any PR merges into `develop`. An example of a
failed CI runs is here:
[http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/](http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/).
The underlying compiler problem is potentially the same as described in
#6342 as tests are passing for clang compiler version 20.0 and failing
for clang compiler version 22.0.

## Technical Details

This PR disables the compilation of the problematic bwd weight conv
instance for `gfx90a` by adding a new CMake flag `CK_USE_GFX90A` that
allows us to detect when we are compiling for `gfx90a`. Using the new
CMake flag, compilation of instance
`DeviceGroupedConvBwdWeight_Xdl_CShuffleV3<64, 128, 32, 32, Default, 8,
4, 1, 8, 8, 8, 8, 1, 1, 2>` is disabled for `gfx90a`.

Co-authored-by: Ville Pietilä <>
aledudek pushed a commit that referenced this pull request May 20, 2026
…degen bugs on gfx90a" (#6400)

Reverts #6343

This is causing failures in miopen, namely Dbsync gfx942 even though it shouldn't be affected so this needs to be investigated. Please add miopen as a label to the new PR for addressing the compiler codegen bug so that this can be addressed simultaneously.
shumway pushed a commit to ROCm/composable_kernel that referenced this pull request May 27, 2026
[CK] Disable compilation of problematic bwd weight conv instances for gfx90a (#6343)

## Motivation

Due to compiler version update, there are test failures in the test
suite `test_grouped_convnd_bwd_weight` when running on `gfx90a`. There
are four failing tests for FP16/BF16 that arise from a single kernel
instance. As the problem is in the current `develop` branch, the test
failures are blocking any PR merges into `develop`. An example of a
failed CI runs is here:
[http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/](http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/).
The underlying compiler problem is potentially the same as described in
#6342 as tests are passing for clang compiler version 20.0 and failing
for clang compiler version 22.0.

## Technical Details

This PR disables the compilation of the problematic bwd weight conv
instance for `gfx90a` by adding a new CMake flag `CK_USE_GFX90A` that
allows us to detect when we are compiling for `gfx90a`. Using the new
CMake flag, compilation of instance
`DeviceGroupedConvBwdWeight_Xdl_CShuffleV3<64, 128, 32, 32, Default, 8,
4, 1, 8, 8, 8, 8, 1, 1, 2>` is disabled for `gfx90a`.

Co-authored-by: Ville Pietilä <>
shumway pushed a commit to ROCm/composable_kernel that referenced this pull request May 27, 2026
[MIOPEN] [CK] Revert "[CK] Disable test cases affected by compiler codegen bugs on gfx90a" (#6400)

Reverts ROCm/rocm-libraries#6343

This is causing failures in miopen, namely Dbsync gfx942 even though it shouldn't be affected so this needs to be investigated. Please add miopen as a label to the new PR for addressing the compiler codegen bug so that this can be addressed simultaneously.
COrruDXC pushed a commit to COrruDXC/rocm-libraries that referenced this pull request Jun 4, 2026
… gfx90a (ROCm#6343)

## Motivation

Due to compiler version update, there are test failures in the test
suite `test_grouped_convnd_bwd_weight` when running on `gfx90a`. There
are four failing tests for FP16/BF16 that arise from a single kernel
instance. As the problem is in the current `develop` branch, the test
failures are blocking any PR merges into `develop`. An example of a
failed CI runs is here:
[http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/](http://micimaster.amd.com/blue/organizations/jenkins/rocm-libraries-folder%2FComposable%20Kernel/detail/develop/558/pipeline/).
The underlying compiler problem is potentially the same as described in
ROCm#6342 as tests are passing for clang compiler version 20.0 and failing
for clang compiler version 22.0.

## Technical Details

This PR disables the compilation of the problematic bwd weight conv
instance for `gfx90a` by adding a new CMake flag `CK_USE_GFX90A` that
allows us to detect when we are compiling for `gfx90a`. Using the new
CMake flag, compilation of instance
`DeviceGroupedConvBwdWeight_Xdl_CShuffleV3<64, 128, 32, 32, Default, 8,
4, 1, 8, 8, 8, 8, 1, 1, 2>` is disabled for `gfx90a`.

Co-authored-by: Ville Pietilä <>
COrruDXC pushed a commit to COrruDXC/rocm-libraries that referenced this pull request Jun 4, 2026
…degen bugs on gfx90a" (ROCm#6400)

Reverts ROCm#6343

This is causing failures in miopen, namely Dbsync gfx942 even though it shouldn't be affected so this needs to be investigated. Please add miopen as a label to the new PR for addressing the compiler codegen bug so that this can be addressed simultaneously.
JonathanLichtnerAMD added a commit that referenced this pull request Aug 19, 2026
Adds an automatic per-PR `dbsync-rocjitsu` job to therock-ci.yml (matrixed over gfx942 + gfx950)
that fetches this run's own TheRock source-CK build artifact and runs the MIOpen dbsync check
(StaticFDBSync) under the rocjitsu KMD interposer on a GPU-less runner. dbsync is CPU-only
(SKIP_KDB_TESTING=1, no kernel launch) except CK grouped-conv IsApplicable, which the arch-matched
rocjitsu config services -- so this validates each arch's SystemDB against the PR's own CK without
real hardware. This catches a PR's own CK change (the #6343 scenario), unlike the frozen-container
CK path, and doesn't depend on scarce GPU test runners.

Key wiring:
- Gated on needs.setup.outputs.miopen_selected (computed in the setup job by parsing
  linux_projects' per-bundle comma-separated projects_to_test), so it runs only when TheRock's
  MIOpen CI would.
- needs: setup only. The fetch step retry-polls (60s interval, 45 min budget) until this run's own
  MIOpen build has uploaded miopen_gtest, rather than depending on the whole therock-ci-linux
  matrix (which would also block on unrelated components' GPU test runs). The poll checks for
  miopen_gtest explicitly, not just the fetch script's exit code (which reports success as soon as
  any artifact -- e.g. another bundle's shared generic pieces -- lands).

Also renames the standalone workflow_dispatch diagnostic to therock-dbsync-rocjitsu.yml (drop the
"prototype" naming); it stays as a manual companion that takes an explicit artifact_run_id for
pointing at arbitrary/pinned builds the automatic gate can't self-reference.

ALMIOPEN-1779

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
JonathanLichtnerAMD added a commit that referenced this pull request Aug 23, 2026
Adds an automatic per-PR `dbsync-rocjitsu` job to therock-ci.yml (matrixed over gfx942 + gfx950)
that fetches this run's own TheRock source-CK build artifact and runs the MIOpen dbsync check
(StaticFDBSync) under the rocjitsu KMD interposer on a GPU-less runner. dbsync is CPU-only
(SKIP_KDB_TESTING=1, no kernel launch) except CK grouped-conv IsApplicable, which the arch-matched
rocjitsu config services -- so this validates each arch's SystemDB against the PR's own CK without
real hardware. This catches a PR's own CK change (the #6343 scenario), unlike the frozen-container
CK path, and doesn't depend on scarce GPU test runners.

Key wiring:
- Gated on needs.setup.outputs.miopen_selected (computed in the setup job by parsing
  linux_projects' per-bundle comma-separated projects_to_test), so it runs only when TheRock's
  MIOpen CI would.
- needs: setup only. The fetch step retry-polls (60s interval, 45 min budget) until this run's own
  MIOpen build has uploaded miopen_gtest, rather than depending on the whole therock-ci-linux
  matrix (which would also block on unrelated components' GPU test runs). The poll checks for
  miopen_gtest explicitly, not just the fetch script's exit code (which reports success as soon as
  any artifact -- e.g. another bundle's shared generic pieces -- lands).

Also renames the standalone workflow_dispatch diagnostic to therock-dbsync-rocjitsu.yml (drop the
"prototype" naming); it stays as a manual companion that takes an explicit artifact_run_id for
pointing at arbitrary/pinned builds the automatic gate can't self-reference.

ALMIOPEN-1779

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
JonathanLichtnerAMD added a commit that referenced this pull request Aug 23, 2026
Adds an automatic per-PR `dbsync-rocjitsu` job to therock-ci.yml (matrixed over gfx942 + gfx950)
that fetches this run's own TheRock source-CK build artifact and runs the MIOpen dbsync check
(StaticFDBSync) under the rocjitsu KMD interposer on a GPU-less runner. dbsync is CPU-only
(SKIP_KDB_TESTING=1, no kernel launch) except CK grouped-conv IsApplicable, which the arch-matched
rocjitsu config services -- so this validates each arch's SystemDB against the PR's own CK without
real hardware. This catches a PR's own CK change (the #6343 scenario), unlike the frozen-container
CK path, and doesn't depend on scarce GPU test runners.

Key wiring:
- Gated on needs.setup.outputs.miopen_selected (computed in the setup job by parsing
  linux_projects' per-bundle comma-separated projects_to_test), so it runs only when TheRock's
  MIOpen CI would.
- needs: setup only. The fetch step is build-aware: it polls therock_dbsync_build_leg_state.py for
  this run's MIOpen build-leg status, waiting while queued/running, failing fast if the build
  concluded without success, and erroring if it succeeded but the artifact never materializes --
  rather than depending on the whole therock-ci-linux matrix (which would also block on unrelated
  components' GPU tests) or using a fixed wait budget. Readiness is keyed on the arch-specific CK
  plugin (libMIOpenCKGroupedConv_<arch>.so) being present in the fetched tree, not on miopen_gtest
  (which ships in a separate, arch-independent artifact and can appear before the arch-specific one).
- The rocjitsu KMD config is CU-corrected to the arch's real CU count before each run
  (therock_dbsync_cu_correct_config.py rewrites the device-block CU fields; topology untouched, no
  emulation-cost change) -- rocjitsu's stock cdna configs declare a minimal (~4 CU) device, which
  makes CK's grouped-wrw occupancy-based auto-split-k miscompute and false-flag valid perf configs
  against real hardware CU counts.

Also adds the standalone therock-dbsync-rocjitsu.yml: a manually-dispatchable companion that takes
an explicit artifact_run_id for pointing at arbitrary/pinned builds the automatic gate can't
self-reference (e.g. a ROCm/TheRock multi_arch_ci.yml dispatch, or bisecting an older run).

ALMIOPEN-1779

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
JonathanLichtnerAMD added a commit that referenced this pull request Aug 24, 2026
Adds an automatic per-PR `dbsync-rocjitsu` job to therock-ci.yml (matrixed over gfx942 + gfx950)
that fetches this run's own TheRock source-CK build artifact and runs the MIOpen dbsync check
(StaticFDBSync) under the rocjitsu KMD interposer on a GPU-less runner. dbsync is CPU-only
(SKIP_KDB_TESTING=1, no kernel launch) except CK grouped-conv IsApplicable, which the arch-matched
rocjitsu config services -- so this validates each arch's SystemDB against the PR's own CK without
real hardware. This catches a PR's own CK change (the #6343 scenario), unlike the frozen-container
CK path, and doesn't depend on scarce GPU test runners.

Key wiring:
- Gated on needs.setup.outputs.miopen_selected (computed in the setup job by parsing
  linux_projects' per-bundle comma-separated projects_to_test), so it runs only when TheRock's
  MIOpen CI would.
- needs: setup only. The fetch step is build-aware: it polls therock_dbsync_build_leg_state.py for
  this run's MIOpen build-leg status, waiting while queued/running, failing fast if the build
  concluded without success, and erroring if it succeeded but the artifact never materializes --
  rather than depending on the whole therock-ci-linux matrix (which would also block on unrelated
  components' GPU tests) or using a fixed wait budget. Readiness is keyed on the arch-specific CK
  plugin (libMIOpenCKGroupedConv_<arch>.so) being present in the fetched tree, not on miopen_gtest
  (which ships in a separate, arch-independent artifact and can appear before the arch-specific one).
- The rocjitsu KMD config is CU-corrected to the arch's real CU count before each run
  (therock_dbsync_cu_correct_config.py rewrites the device-block CU fields; topology untouched, no
  emulation-cost change) -- rocjitsu's stock cdna configs declare a minimal (~4 CU) device, which
  makes CK's grouped-wrw occupancy-based auto-split-k miscompute and false-flag valid perf configs
  against real hardware CU counts.

Also adds the standalone therock-dbsync-rocjitsu.yml: a manually-dispatchable companion that takes
an explicit artifact_run_id for pointing at arbitrary/pinned builds the automatic gate can't
self-reference (e.g. a ROCm/TheRock multi_arch_ci.yml dispatch, or bisecting an older run).

ALMIOPEN-1779

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
JonathanLichtnerAMD added a commit that referenced this pull request Aug 24, 2026
Adds an automatic per-PR `dbsync-rocjitsu` job to therock-ci.yml (matrixed over gfx942 + gfx950)
that fetches this run's own TheRock source-CK build artifact and runs the MIOpen dbsync check
(StaticFDBSync) under the rocjitsu KMD interposer on a GPU-less runner. dbsync is CPU-only
(SKIP_KDB_TESTING=1, no kernel launch) except CK grouped-conv IsApplicable, which the arch-matched
rocjitsu config services -- so this validates each arch's SystemDB against the PR's own CK without
real hardware. This catches a PR's own CK change (the #6343 scenario), unlike the frozen-container
CK path, and doesn't depend on scarce GPU test runners.

Key wiring:
- Gated on needs.setup.outputs.miopen_selected (computed in the setup job by parsing
  linux_projects' per-bundle comma-separated projects_to_test), so it runs only when TheRock's
  MIOpen CI would.
- needs: setup only. The fetch step is build-aware: it polls therock_dbsync_build_leg_state.py for
  this run's MIOpen build-leg status, waiting while queued/running, failing fast if the build
  concluded without success, and erroring if it succeeded but the artifact never materializes --
  rather than depending on the whole therock-ci-linux matrix (which would also block on unrelated
  components' GPU tests) or using a fixed wait budget. Readiness is keyed on the arch-specific CK
  plugin (libMIOpenCKGroupedConv_<arch>.so) being present in the fetched tree, not on miopen_gtest
  (which ships in a separate, arch-independent artifact and can appear before the arch-specific one).
- The rocjitsu KMD config is CU-corrected to the arch's real CU count before each run
  (therock_dbsync_cu_correct_config.py rewrites the device-block CU fields; topology untouched, no
  emulation-cost change) -- rocjitsu's stock cdna configs declare a minimal (~4 CU) device, which
  makes CK's grouped-wrw occupancy-based auto-split-k miscompute and false-flag valid perf configs
  against real hardware CU counts.

Also adds the standalone therock-dbsync-rocjitsu.yml: a manually-dispatchable companion that takes
an explicit artifact_run_id for pointing at arbitrary/pinned builds the automatic gate can't
self-reference (e.g. a ROCm/TheRock multi_arch_ci.yml dispatch, or bisecting an older run).

ALMIOPEN-1779

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants