Skip to content

[ROCm][CI] Restore ROCm GPU CI: switch to the MI350 runner label - #168

Open
aryaman-gupta wants to merge 5 commits into
aryaman/upstreamfrom
aryaman/rocm-ci-mi350-firefight
Open

[ROCm][CI] Restore ROCm GPU CI: switch to the MI350 runner label#168
aryaman-gupta wants to merge 5 commits into
aryaman/upstreamfrom
aryaman/rocm-ci-mi350-firefight

Conversation

@aryaman-gupta

@aryaman-gupta aryaman-gupta commented Aug 19, 2026

Copy link
Copy Markdown

Why

The linux.rocm.gpu.gfx942.1 runner label is no longer served: the ROCm GPU test jobs queue and are cancelled without running a single step, so there is currently no ROCm GPU test coverage. The build jobs still pass, which is why this went unnoticed.

What

  • Switch the three ROCm GPU jobs to linux.rocm.gpu.ecosystem.mi350.1.
  • Restore gfx950 as a build target. Without it the wheel carries no MI350 code object and the first kernel launch segfaults before any test can run, so the runner change alone is not enough.
  • Disable the tests that fail on the new runner.

This is a firefighting change to restore the signal. It deliberately does not try to fix the underlying test failures — it disables them so the pipeline can go green, and each is tracked separately with a fix in progress.

aryaman-gupta and others added 5 commits August 19, 2026 15:55
…i350

The linux.rocm.gpu.gfx942.1 label is no longer served: the GPU test jobs are
created, queue indefinitely and are cancelled without running a single step,
so ROCm has had no GPU test coverage for some time. The build jobs are
unaffected and keep passing, which is why this went unnoticed.

Point the three ROCm GPU jobs at linux.rocm.gpu.ecosystem.mi350.1, which is
served. ROCm versions are left alone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
__configure_fbgemm_gpu_build_rocm gates gfx950 on
`[[ ${rocm_version_arr[0]} -ge 7 ]]`, but rocm_version_arr is never populated:
its only setter, __fetch_rocm_version_array in utils_base.bash, has no callers.
The expansion is always empty, so the test is false and gfx950 is silently
dropped from every OSS ROCm build.

Without this the MI350 runner is useless: the wheel carries no gfx950 code
object, so the first kernel launch segfaults inside hipLaunchKernel before any
test can run. Derive the version parts from BUILD_ROCM_VERSION, which both
ROCm CI workflows already set from the build matrix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two tests fail on ROCm but still pass on CUDA, so they are skipped
conditionally rather than disabled outright:

- nbit_forward_test test_nbit_forward_nan_zero_fill: the two INT4 D=160
  subcases leave NaNs in the output. Skipped per-subcase, so the three larger
  shapes keep running.
- batched_unary_embeddings_test test_gpu: the permute sub-test faults with a
  GPU memory access violation.

Both are tracked and have fixes in review; the skips are meant to be lifted as
those land.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The test fails on the MI350 runner: the forward output of the ROCm fallback
kernel does not match the reference for fp32 weights with a bf16 output. It is
also intermittent - the inputs come from unseeded torch.randn, so it
reproduces in roughly half of runs.

The test is already @skipIfNotRocm, so an unconditional unittest.skip is the
narrowest way to disable it. Kept in its own commit, and as a decorator rather
than a deletion, so re-enabling it with the kernel fix is a one-line revert.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The test fails on the MI350 runner: the device decodes NFP8 weights with the
arch-native OCP encoding while Python labels the tensor fnuz, so the two
disagree by one exponent bias and the comparison is off by a factor of two.

Like the Adagrad fallback test, it is already @skipIfNotRocm, so an
unconditional unittest.skip is the narrowest way to disable it. Own commit,
decorator rather than deletion, so restoring it with the dtype fix is a
one-line revert.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@aryaman-gupta
aryaman-gupta force-pushed the aryaman/rocm-ci-mi350-firefight branch from 61f4a3a to b842f18 Compare August 19, 2026 16:35
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