Conversation
Gate every caller workflow job by `github.repository_owner` so that forks only run the CI subset they have infrastructure for. Non-ROCm jobs: `github.repository_owner == 'jax-ml'` ROCm jobs: `github.repository_owner == 'jax-ml' || github.repository_owner == 'ROCm'`
job naming, and nightly build workflow Version-tier S3 artifact layout: - Add rocm-release-version tier to S3 artifact paths to prevent wheel collisions across ROCm versions. - Add per-repo/branch/version LATEST pointer for wheel resolution. - Parameterize manylinux container image in build_rocm_artifacts.yml. - Plumb s3_download_uri through bazel_rocm.yml. Standardize CI job naming and matrix schema: - Unify ROCm matrix entries across all caller workflows to use a canonical schema with label, wheel-version, release-version, and tag fields. - Update job names to use matrix.rocm.label. - Add rocm-release-version input to pytest_rocm, bazel_rocm, and download-jax-rocm-wheels to decouple wheel filename matching from S3 path construction. - Add manylinux-image input to build_rocm_artifacts so callers can override the container image. Nightly workflow: - Add a dedicated build-rocm-artifacts job to the nightly workflow that builds wheels with pinned XLA (clone_main_xla: 0) and uploads to a nightly-specific S3 path. - Update nightly pytest and bazel ROCm jobs to depend on the new build.
Extends the wheel test continuous and nightly release workflows to run against TheRock 7.13.0 and TheRock latest builds in addition to ROCm 7.2.0.
5ab7632 to
80c6d34
Compare
|
@mminutoli should we keep docker files here now that rocm-jax would be depricated. Or do we still want to keep all the infra related files there? |
| run: | | ||
| working-directory: ./build/rocm/docker/ |
There was a problem hiding this comment.
Probably a typo, it needs to be its own line. As it is now, the script will fail
| # - jammy | ||
| # - el7 | ||
| # - el8 | ||
| set -x |
There was a problem hiding this comment.
| set -x | |
| set -euo pipefail | |
| set -x |
|
|
||
| jobs: | ||
| build-docker: | ||
| runs-on: ${{ fromJSON(inputs.runner-label) }} |
There was a problem hiding this comment.
| runs-on: ${{ fromJSON(inputs.runner-label) }} | |
| runs-on: ${{ inputs.runner-label }} |
| required: false | ||
| default: 'plugin_wheels' | ||
| type: string | ||
| extra-cr-tag: |
| df -h | ||
| rocm-smi -a || true | ||
| rocminfo | grep gfx || true | ||
| - uses: actions/checkout@v4 |
There was a problem hiding this comment.
We should be using v6+ on actions/checkou or pinned hashes
| rocminfo | grep gfx || true | ||
| - uses: actions/checkout@v4 | ||
| - name: Download wheel artifacts | ||
| uses: actions/download-artifact@v4 |
There was a problem hiding this comment.
Same. Needs a relevant version and pinned hash
| ROCM_DEB_REPO=${ROCM_DEB_REPO_HOME}${ROCM_VERS}/ | ||
| AMDGPU_DEB_REPO=${AMDGPU_DEB_REPO_HOME}${AMDGPU_REPO_VERS}/ | ||
|
|
||
| DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated update |
There was a problem hiding this comment.
git diff --check says there's a trailing whitspace
|
do we need to put this to jax upstream? not sure what's sync policy in rocm/jax? |
|
We keep our infra in another repository. So maybe we should close this PR and open one there. Nevertheless, the right approach seems to have hermetic root in the build, right @alekstheod ? |
mminutoli
left a comment
There was a problem hiding this comment.
As said above, this should be closed IMHO.
3f9e8b4 to
f25f2b4
Compare
acfa9f3 to
7643edc
Compare
2d7351c to
3aec073
Compare
79d884e to
ed8289a
Compare
360638e to
e156ed6
Compare
a53a18e to
9714167
Compare
Add docker image to build and test JAX and XLA using hermetic llvm and sysroot based on ub22 image used for ml-build images