Skip to content

Mount /home/runner/_work in ROCm workflow containers - #840

Open
mkunredd wants to merge 6 commits into
ROCm:amd-mainfrom
mkunredd:add-rocm-workdir-volume-mount
Open

mkunredd wants to merge 6 commits into
ROCm:amd-mainfrom
mkunredd:add-rocm-workdir-volume-mount

Conversation

@mkunredd

Copy link
Copy Markdown

Summary

  • Add a /home/runner/_work:/home/runner/_work volume mount to the container: section in pytest_rocm.yml.
  • Add the same volume mount to the existing volumes: block in bazel_rocm.yml.

This ensures the GitHub Actions workspace is available inside ROCm container jobs.

Test plan

  • Trigger ROCm pytest workflow and confirm container jobs can access the workspace path.
  • Trigger ROCm Bazel workflow and confirm container jobs can access the workspace path.

@mkunredd

Copy link
Copy Markdown
Author

Validation update

Container init (8GPU, no workflow-side dind): validated on run 31652689759Initialize containers passed on gfx950.8 with the /home/runner/_work mount. The job then failed on wheel download (curl 403) because standalone CI - Pytest ROCm dispatch has no prior build/upload step.

rocOps: no infra changes needed — production gfx950.8 runner config in ROCm/rocOps already provides dind + shared _work hostPath; this PR is the required workflow consumer-side mount.

End-to-end build + test validation: triggered run 31652941629 (CI - Wheel Tests (Continuous), platforms=rocm, suites=pytest) on this branch to exercise build-rocm-artifactsrun-pytest-rocm including gfx950.8.

@mkunredd

Copy link
Copy Markdown
Author

End-to-end validation (build + gfx950.8 pytest): run 31652956563CI - Wheel Tests (Nightly/Release) on this branch. Builds ROCm plugin/pjrt + jax/jaxlib first, then runs pytest on gfx950.1/4/8.

Cancelled duplicate continuous run 31652941629 to avoid overlapping ROCm builds.

@mkunredd

Copy link
Copy Markdown
Author

Release backport opened: #841
ocm-jaxlib-v0.11.1-alpha. Full validation still running: 31652956563.

@mkunredd

Copy link
Copy Markdown
Author

Nodind manual-test label added to workflow_dispatch only. Validation dispatch: https://github.com/ROCm/jax/actions/runs/31653907730 (runner: \�md-do-linux.jax.gpu.gfx950.8-nodind). Requires rocOps app deploy first.

@magaonka-amd
magaonka-amd force-pushed the amd-main branch 5 times, most recently from d4a3ae2 to be81179 Compare August 13, 2026 21:56
magaonka-amd and others added 4 commits August 13, 2026 21:26
Drop 43 of the 45 test-target exclusions in build/rocm/ci_test_targets.txt,
leaving only two:

- buffer_callback_test_gpu, whose py_import deps are incompatible with
  pre-built plugin wheels (build_jaxlib=false).
- pallas:ops_test_mgpu_gpu, a multi-accelerator test that is excluded from
  single_gpu runs anyway.

Most of the dropped exclusions traced back to a complex-GEMM gap that no
longer reproduces: C64 and C128 matmul return correct results on ROCm 7.14.
The three teardown-hang exclusions (cholesky_update_test,
pallas:pallas_vmap_test and pallas:gpu_paged_attention_test) each passed
five consecutive runs with no hang.

This brings the suite to 114 single-GPU GPU targets. Validated on MI300X
(gfx942); the bazel CI pool is gfx950, so CI is the real gate.
Upstream CI has stopped publishing jax/jaxlib nightly wheels to GCS
(gs://jax-nightly-artifacts/latest), leaving the ROCm nightly test legs
running against missing/stale base wheels.

On the ROCm fork, build the base jax and jaxlib wheels on the same
amd-do-linux.jax.cpu runners as the ROCm plugin/pjrt wheels and upload
them to the same S3 prefix, so the ROCm test legs consume freshly built
wheels instead of the broken GCS bucket. Upstream (jax-ml) behavior is
unchanged.

- ci/build_rocm_artifacts.sh: allow "jax"/"jaxlib" artifacts; skip
  auditwheel for the pure-python jax wheel.
- wheel_tests_nightly_release.yml: new fork-only build-rocm-jax-jaxlib
  job; wire it into the ROCm test legs and select S3 as the jax/jaxlib
  source on the fork.
- pytest_rocm.yml / bazel_rocm.yml: new optional jax-jaxlib-source input
  (default gcs), forwarded to the download action.
- download-jax-rocm-wheels: when source is s3, fetch jax/jaxlib from the
  CloudFront listing alongside the ROCm wheels instead of GCS.

(cherry picked from commit 8654db6)
- Label the nightly and continuous ROCm matrices `N (7.14.0)` and
  `N+1 (therock-latest)` so the release track is identifiable from the job name.
- Report the ROCm release version rather than the wheel packaging major in the
  build, pytest and Bazel job names, and report the GPU count as
  `gfx950 <n>-GPU`.
- Remove the duplicate continuous Bazel ROCm leg: `gfx950.8` ran the same
  `--config=single_gpu` suite as `gfx950.4` under an identical job name.
- Apply the same labels to the fork-only `build-rocm-jax-jaxlib` nightly job.

The Bazel job name sits inside a Presubmit Naming Check block, so the presubmit
job names change from `ROCM=7` to `ROCM=7.14.0`. The internal
github-rocm-presubmits and github-rocm-blocking-presubmits checks need to be
updated to match.

wheel_tests_rocm_release.yml keeps its `TheRock <version>` labels: it validates
one specific ROCm release, so it is single-track.
Bind-mount the runner workspace into GitHub container: jobs so checkout
and artifacts work on ARC runners that use hostPath _work volumes.

Co-authored-by: Cursor <cursoragent@cursor.com>
@mkunredd
mkunredd force-pushed the add-rocm-workdir-volume-mount branch from 48bad50 to 262203f Compare August 14, 2026 18:01
…port

Co-authored-by: Cursor <cursoragent@cursor.com>
@magaonka-amd
magaonka-amd force-pushed the amd-main branch 4 times, most recently from 79d884e to ed8289a Compare August 20, 2026 18:51
@magaonka-amd
magaonka-amd force-pushed the amd-main branch 5 times, most recently from 360638e to e156ed6 Compare September 2, 2026 21:33
@magaonka-amd
magaonka-amd force-pushed the amd-main branch 3 times, most recently from 564a88e to a53a18e Compare September 13, 2026 22:57
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.

4 participants