Skip to content

Changes to integrate Test Filter Standardization for miopen in TheRock - #3595

Merged
dileepr1 merged 18 commits into
mainfrom
users/dravindr/miopen_test_filters
Mar 11, 2026
Merged

dileepr1 merged 18 commits into
mainfrom
users/dravindr/miopen_test_filters

Conversation

@dileepr1

Copy link
Copy Markdown
Contributor

Motivation

This PR is to integrate the Test Filter Standardization POC done in MIOpen to TheRock

Technical Details

The POC in MIOpen is done here: ROCm/rocm-libraries#3513.
This PR adds test_filters.py as a generic runner to call the required test categories from MIOpen, and can be expanded to other components.

Test Plan

Test Result

Once active, the MIOpen CI tests will be triggered through this.

@geomin12 geomin12 left a comment

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.

looks like tests are passing! just a few comments

@dileepr1
dileepr1 requested a review from geomin12 March 4, 2026 18:50
1. The script is invoked by the **Test component** workflow with env vars set (component name, GPU arch, test type, sharding).
1. The script expects the component under test to have a ctest based interface, with labels corresponding to test categories like quick, standard, comprehensive and full(which can be run for scenarios like smoke test, pre-commit etc)
1. The component can opt to always exclude some tests or based on condition like OS and GPU where the test is getting run
1. The script discovers which **GPU-specific test suites** exist by running `ctest --print-labels` and parsing labels of the form `ex_gpu_{gpu_arch}`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

We're discussing how to handle systems having variable GPU memory. This is being driven by APUs such as Strix Halo. We probably don't need a complete answer for this PR, but it wouldn't hurt to start thinking about it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The particular issue is that many existing tests assuming having a certain amount of GPU memory. For MIOpen, this wasn't part of the design so we don't know the actual minimum, but roughly 12GB. We were seeing lots of failures on a Strix Halo having 16GB system memory, in which case the memory allocated to GPU was appx 4GB 'dedicated' and 4.9GB 'shared' for a total of 8.9GB.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think this can be easily handled if we know the gfx models and their available memory and the memory needed for each of the tests before hand by using the exclude_gpu_gfx* section in test_categories.yaml.
Automation may be possible by adding the memory details of gpus and tests in the yaml file as well.
But it will need more thought in case the same gpu model can have multiple memory values in the test set up.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Unfortunately, the latter is the case on APU. CPU and GPU memory come from the same physical RAM sticks and the OS divides it up. GPU memory can be user-modified not only by changing the system RAM, but also modifying firmware and/or software settings. The memory configuration has to be queried before each run just prior to launching the tests.

@geomin12 geomin12 left a comment

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.

duplicate of #3769?

please check comments in #3769 as this is identical

@geomin12 geomin12 left a comment

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.

lgtm! let's wait for CI to pass properly then can approve

@geomin12 geomin12 left a comment

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.

FYI for future reference, you can add test:miopen label to only test miopen (no need to wait for all tests): https://github.com/ROCm/TheRock/blob/main/docs/development/ci_behavior_manipulation.md

@geomin12 geomin12 left a comment

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.

it passes! lgtm

@dileepr1
dileepr1 merged commit 1053a8b into main Mar 11, 2026
121 of 124 checks passed
@dileepr1
dileepr1 deleted the users/dravindr/miopen_test_filters branch March 11, 2026 13:24
@github-project-automation github-project-automation Bot moved this from TODO to Done in TheRock Triage Mar 11, 2026
ScottTodd added a commit that referenced this pull request Mar 13, 2026
## Motivation

Code unrelated to the github actions API keeps landing in this file as
if it were a general utility:

* #2873 (comment)
* #3595 (comment)

See the comment at the top of the file:


https://github.com/ROCm/TheRock/blob/ca2a06c6c9fa47a21e21d1c6f0c133e9566eeb05/build_tools/github_actions/github_actions_utils.py#L4-L7

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
@amd-justchen amd-justchen mentioned this pull request Mar 13, 2026
1 task done
aalabsi-amd added a commit to ROCm/rocm-libraries that referenced this pull request Mar 16, 2026
## Motivation

Bumping the rock hash to include rcom-system fixes
ROCm/TheRock@4b49136

This should also include the work for the test filter standardization:
ROCm/TheRock#3595

## Technical Details

Update the rock hash
## Test Plan

Tests Pass for miopen and other projects
Check if test filter work is included here

## Test Result

<!-- Briefly summarize test outcomes. -->

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
dileepr1 added a commit that referenced this pull request Mar 17, 2026
## Motivation

Moving the function out of github_actions_utils.py as per
[this](#3595 (comment))
comment in #3595.

## Technical Details

NA

## Test Plan

CI tests handled by test_runner.py should continue to run.

## Test Result

NA

## Submission Checklist

- [ ] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.

---------

Co-authored-by: Dileep Ravindranathan <dileep@dell-rack-13.amd.com>
jovanau pushed a commit to jovanau/rocm-libraries that referenced this pull request Mar 19, 2026
## Motivation

Bumping the rock hash to include rcom-system fixes
ROCm/TheRock@4b49136

This should also include the work for the test filter standardization:
ROCm/TheRock#3595

## Technical Details

Update the rock hash
## Test Plan

Tests Pass for miopen and other projects
Check if test filter work is included here

## Test Result

<!-- Briefly summarize test outcomes. -->

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants