Skip to content
Open
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions .github/workflows/test_rocm_wheels.yml

Copy link
Copy Markdown
Member

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:

  • artifact structure tests (CPU)
  • rocm wheels (python packages, GPU)
  • rocm native linux packages (CPU/GPU?)
  • rocm native windows packages (when available, CPU/GPU?)

Copy link
Copy Markdown
Member

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).

Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Copyright Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT

# Thin wrapper that dispatches to TheRock's test_rocm_wheels.yml.

name: Test ROCm Wheels

on:
workflow_dispatch:
inputs:
amdgpu_family:
description: GPU family to test
required: true
type: string
default: "gfx94X-dcgpu"

test_runs_on:
description: Runner label with a compatible GPU
required: true
type: string
default: "linux-gfx942-1gpu-ccs-csp-ossci-rocm"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: can you remove the newlines between each input? We don't have them there in either:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can remove most of the defaults from this wrapper, to make maintenance easier. The wrappers are not dispatched by human developers that benefit from defaults, they are dispatched by release workflows that already have complete (and dynamic!) inputs.


package_index_url:
description: Python package index URL
required: false
type: string
default: "https://rocm.nightlies.amd.com/whl-multi-arch/"

package_find_links_url:
description: Python package URL for --find-links
required: false
type: string
default: ""

python_version:
description: Python version
required: true
type: string
default: "3.12"

rocm_version:
description: ROCm version to install
required: true
type: string

kpack_split:
description: "'true' for a kpack-split flat build"
required: false
type: string
default: "false"

container_image_name:
description: Human-readable container image label
required: true
type: string
default: "ubuntu24.04"

container_image_url:
description: Container image reference
required: false
type: string
default: "ghcr.io/rocm/no_rocm_image_ubuntu24_04@sha256:405945a40deaff9db90b9839c0f41d4cba4a383c1a7459b28627047bf6302a26"

repository:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we please use the description we already use in other workflows?

      ref:
        description: "Branch, tag, or SHA to checkout."
        type: string
        default: ""
      repository:
        description: "Repository to checkout. Defaults to ROCm/TheRock."
        type: string
        default: "ROCm/TheRock"

description: Repository containing the test source
required: false
type: string
default: "ROCm/TheRock"

ref:
description: Branch, tag, or SHA containing the test source
required: false
type: string
default: "main"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about this default, let's stick to what the other wrapper workflows do:


permissions:
contents: read

jobs:
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 }}
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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The 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

cc @HereThereBeDragons

Loading