-
Notifications
You must be signed in to change notification settings - Fork 8
Add wrappers to rockrel #84
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 10 commits
8222a60
c87956f
0339d3e
a09e10d
4f282f0
5787793
ac6a76a
48f9752
617691a
74c66ca
b198e51
437dc34
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,110 @@ | ||||||
| # Copyright Advanced Micro Devices, Inc. | ||||||
| # SPDX-License-Identifier: MIT | ||||||
|
|
||||||
| # Thin wrapper that dispatches to TheRock's test_rocm_wheels.yml. | ||||||
| # This exists so that release workflows running in rockrel's context | ||||||
| # can dispatch test runs to this repo (which then calls TheRock). | ||||||
|
|
||||||
| name: Test ROCm Wheels | ||||||
|
|
||||||
| on: | ||||||
| workflow_dispatch: | ||||||
| inputs: | ||||||
| amdgpu_family: | ||||||
| description: GPU family to test (e.g., gfx94X-dcgpu, gfx110X-all) | ||||||
| required: true | ||||||
| type: string | ||||||
| test_runs_on: | ||||||
| description: Runner label to use. The selected runner should have a GPU supported by amdgpu_family | ||||||
| required: true | ||||||
| type: string | ||||||
| package_index_url: | ||||||
| description: Full Python package index URL for use with --index-url. | ||||||
| type: string | ||||||
| package_find_links_url: | ||||||
| description: Full Python package index URL for use with --find-links (usually instead of package_index_url) | ||||||
| type: string | ||||||
| python_version: | ||||||
| required: true | ||||||
| type: string | ||||||
| default: "3.12" | ||||||
| rocm_version: | ||||||
| description: ROCm version to pip install (e.g. "7.10.0a20251124") | ||||||
| required: true | ||||||
| type: string | ||||||
| kpack_split: | ||||||
| description: Whether the package index is split by kernel packages (kpack) | ||||||
| type: boolean | ||||||
| default: true | ||||||
| container_image_name: | ||||||
| description: >- | ||||||
| Short, human-readable label for the container image (e.g. 'ubuntu24.04', | ||||||
| 'ubi10', 'native'). | ||||||
| type: string | ||||||
| container_image_url: | ||||||
| description: >- | ||||||
| Container image reference. Leave empty to run directly on the runner | ||||||
| (required for Windows and native Linux runners). | ||||||
| type: string | ||||||
| repository: | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. can we please use the description we already use in other workflows? |
||||||
| description: "TheRock repository to checkout." | ||||||
| type: string | ||||||
| default: "ROCm/TheRock" | ||||||
| ref: | ||||||
| description: "Branch, tag, or SHA to checkout in TheRock." | ||||||
| type: string | ||||||
| default: "" | ||||||
|
|
||||||
| permissions: | ||||||
| contents: read | ||||||
|
|
||||||
| run-name: Test ROCm Wheels (${{ inputs.amdgpu_family }}, py${{ inputs.python_version }}, ${{ inputs.rocm_version }}) | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not identical to in therock: |
||||||
|
|
||||||
| jobs: | ||||||
| notify_quartz_start: | ||||||
| name: "Quartz - started - test rocm wheels (rockrel)" | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| if: ${{ vars.NOTIFY_QUARTZ_ENABLED == 'true' }} | ||||||
| runs-on: ubuntu-24.04 | ||||||
| timeout-minutes: 10 | ||||||
| continue-on-error: true | ||||||
| steps: | ||||||
| - uses: ROCm/Quartz/.github/actions/notify_quartz@f386a9756620938616af0b4d5d04b24ae6e0353f # notify_quartz/v1.1.1 | ||||||
| with: | ||||||
| run_phase: started | ||||||
| reporting_workflow: test_rocm_wheels.yml | ||||||
| workflow_inputs: ${{ toJSON(inputs) }} | ||||||
| gh_app_client_id: ${{ secrets.GH_APP_HAULY_CID }} | ||||||
| gh_app_private_key: ${{ secrets.GH_APP_HAULY_PRIVATE_KEY }} | ||||||
|
|
||||||
| test: | ||||||
| uses: ROCm/TheRock/.github/workflows/test_rocm_wheels.yml@main | ||||||
| secrets: inherit | ||||||
| with: | ||||||
| amdgpu_family: ${{ inputs.amdgpu_family }} | ||||||
| test_runs_on: ${{ inputs.test_runs_on }} | ||||||
| package_index_url: ${{ inputs.package_index_url }} | ||||||
| package_find_links_url: ${{ inputs.package_find_links_url }} | ||||||
| python_version: ${{ inputs.python_version }} | ||||||
| rocm_version: ${{ inputs.rocm_version }} | ||||||
| kpack_split: ${{ inputs.kpack_split }} | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. is not defined in workflow_call in https://github.com/ROCm/TheRock/blob/main/.github/workflows/test_rocm_wheels.yml |
||||||
| container_image_name: ${{ inputs.container_image_name }} | ||||||
| container_image_url: ${{ inputs.container_image_url }} | ||||||
| repository: ${{ inputs.repository }} | ||||||
| ref: ${{ inputs.ref }} | ||||||
|
Comment on lines
+63
to
+93
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should add quartz notify steps like those recently added to https://github.com/ROCm/rockrel/blob/main/.github/workflows/test_artifacts.yml in f962e5f here |
||||||
|
|
||||||
| notify_quartz_completed: | ||||||
| name: "Quartz - completed - test rocm wheels (rockrel)" | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| if: ${{ always() && vars.NOTIFY_QUARTZ_ENABLED == 'true' }} | ||||||
| needs: [test] | ||||||
| runs-on: ubuntu-24.04 | ||||||
| timeout-minutes: 10 | ||||||
| continue-on-error: true | ||||||
| steps: | ||||||
| - uses: ROCm/Quartz/.github/actions/notify_quartz@f386a9756620938616af0b4d5d04b24ae6e0353f # notify_quartz/v1.1.1 | ||||||
| with: | ||||||
| run_phase: completed | ||||||
| reporting_workflow: test_rocm_wheels.yml | ||||||
| workflow_inputs: ${{ toJSON(inputs) }} | ||||||
| workflow_captured_outputs: ${{ toJSON(needs) }} | ||||||
| gh_app_client_id: ${{ secrets.GH_APP_HAULY_CID }} | ||||||
| gh_app_private_key: ${{ secrets.GH_APP_HAULY_PRIVATE_KEY }} | ||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is probably worth adding, unlike (currently) the pytorch and jax test jobs.
For this to be used, we'd want to dispatch the workflow here: https://github.com/ROCm/TheRock/blob/a3e3f450db81b55f53a05581ebf52a21583c1126/.github/workflows/multi_arch_release_linux.yml#L197-L299, with inputs similar to those used to test rocm wheels on CI: https://github.com/ROCm/TheRock/blob/a3e3f450db81b55f53a05581ebf52a21583c1126/.github/workflows/multi_arch_ci_linux.yml#L279-L307
That being said, we could also merge "test rocm wheels" with "test rocm native linux packages" into a single workflow to limit how many workflow files we have. It could even be a single "test rocm" workflow that would include:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We discussed offline. This will be useful to keep, especially as we add more tests to this workflow like tests for amdsmi, hipdnn, and rocprofiler.
To work on this you can trigger https://github.com/ROCm/TheRock/actions/workflows/test_rocm_wheels.yml directly to get familiar with the inputs and test any changes to the workflow. Then you can trigger https://github.com/ROCm/TheRock/actions/workflows/multi_arch_release.yml (in TheRock) from your branch with 1-2 GPU families per platform (maybe gfx950 on Linux due to queues for gfx942).