Skip to content

test(rocjitsu): add CPU artifact smoke component - #6525

Closed
newling wants to merge 6 commits into
ROCm:mainfrom
newling:rocjitsu-component-smoke
Closed

newling wants to merge 6 commits into
ROCm:mainfrom
newling:rocjitsu-component-smoke

Conversation

@newling

@newling newling commented Jul 13, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Follow-up to #6517. The rocjitsu artifact payload is intended to be runnable from TheRock artifacts; add a small CPU-only test component that validates that installed payload through the normal TheRock test-component matrix.

JIRA ID : AIHPBLAS-3605
https://amd-hub.atlassian.net/browse/AIHPBLAS-3605

Summary

  • add a Linux-only rocjitsu test component selected via PROJECTS_TO_TEST=rocjitsu
  • mark the component as linux_cpu_runner: true and fetch artifacts with --rocjitsu
  • add test_rocjitsu.py to verify the installed CLI, libraries, configs, and schemas
  • run rocjitsu --version from the installed artifact tree
  • add unit coverage that the component is CPU-only and does not request GPU container devices

Local validation

  • python3 -m unittest build_tools.github_actions.tests.fetch_test_configurations_test
  • python3 -m unittest build_tools.tests.artifact_descriptor_overlap_test
  • python3 -m py_compile build_tools/github_actions/test_executable_scripts/test_rocjitsu.py build_tools/github_actions/fetch_test_configurations.py
  • synthetic test_rocjitsu.py run against a temporary fake install tree

Dependency

This is stacked on #6517 and includes its rocjitsu artifact descriptor change until that PR lands.

@therock-pr-bot

therock-pr-bot Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
🌿 Branch Name ✅ Pass —
📝 PR Title/Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass —
🔎 pre-commit ✅ Pass —
🚫 Draft PR 🔜 To Be Enabled —
🚩 Feature Flag 🔜 To Be Enabled —
📊 Code Coverage 🔜 To Be Enabled —
🤖 therock-pr-bot ✅ Pass —

🎉 All checks passed! This PR is ready for review.

📖 Need help? See the Policy FAQ for details on every check and how to fix failures.

@therock-pr-bot

Copy link
Copy Markdown

Pre-commit check failed

⛔ pre-commit failed

Please run locally:

  • python -m pip install pre-commit
  • pre-commit install
  • pre-commit run --all-files --show-diff-on-failure

This repo uses .pre-commit-config.yaml.

@newling
newling force-pushed the rocjitsu-component-smoke branch from 5f93ebe to ed6512a Compare July 13, 2026 22:42
@therock-pr-bot

Copy link
Copy Markdown

🎉 All checks passed! This PR is ready for review.

newling added a commit to ROCm/rocm-libraries that referenced this pull request Jul 23, 2026
## Motivation

Adds minimal rocjitsu race detection for GEMMs on gfx1151, gfx950, and
gfx942/gfx94X, run through `hipblaslt-bench` and `tensilelite-client`.

This is the third step in the evolution of race detection for hipBLASLt:

1. #7951 did not use TheRock.
It used a free GitHub runner, checked out rocm-libraries and
rocm-systems, built them, and ran rocjitsu with hipBLASLt.
2. #8929 used TheRock, but
only ran `hipblaslt-bench` on gfx950.
3. This PR uses TheRock, adds gfx1151 and gfx942/gfx94X coverage, adds a
reduced `tensilelite-client` path, and runs rocjitsu on a CPU build
runner instead of consuming a GPU test runner.

JIRA ID : AIHPBLAS-3605
https://amd-hub.atlassian.net/browse/AIHPBLAS-3605

## High Level Overview

For hipBLASLt TheRock Linux rows on supported GPU families, this adds a
post-build rocjitsu race-check job.

The flow is:

1. The normal TheRock build produces the ROCm runtime, hipBLASLt, and
TensileLite test artifacts.
2. The race-check job fetches those artifacts from the same TheRock run.
3. The job builds rocjitsu from a pinned rocm-systems revision.
4. The job runs small `hipblaslt-bench` and `tensilelite-client`
workloads under rocjitsu race detection.
5. The script reports a failure if a workload fails or rocjitsu reports
a race.

The check is initially advisory. Failures remain visible in the job logs
and uploaded reports, but do not fail the required TheRock CI summary
while the job's reliability is evaluated.

The goal is to test GPU-targeted hipBLASLt and TensileLite artifacts
under CPU-side emulation without requiring GPU runner capacity.

### Workspace Layout

The job uses three repository checkouts in one workspace:

- `ROCm/TheRock` is checked out at the workspace root. Its actions and
scripts fetch the artifacts produced by the current TheRock run.
- The current `ROCm/rocm-libraries` revision is checked out under
`rocm-libraries/`. A sparse checkout provides the race-check driver
script from `.github/scripts`.
- `ROCm/rocm-systems` is checked out under `rocm-systems/` at a pinned
revision. A sparse checkout provides the rocjitsu sources and
machine-readable ISA data needed to build rocjitsu.

These checkouts provide the workflow logic and test tooling. The ROCm
runtime, compiler, hipBLASLt, TensileLite, and test payload being
exercised still come from the artifacts produced by the associated
TheRock build.

## End-to-end CI Proof

A recent CI run has successful rocjitsu race-check jobs for all three
target rows:

- gfx1151:
https://github.com/ROCm/rocm-libraries/actions/runs/29942116838/job/89005639878
- gfx950-dcgpu:
https://github.com/ROCm/rocm-libraries/actions/runs/29942116838/job/89010903066
- gfx94X-dcgpu:
https://github.com/ROCm/rocm-libraries/actions/runs/29942116838/job/89015610352

## Current Limitations

- rocjitsu is still built from a pinned rocm-systems source checkout.
This should move to a packaged TheRock component artifact.
- The check is initially advisory while its reliability is evaluated.
- The TensileLite YAMLs are embedded in the script. They should move to
checked-in test data or be replaced by existing product-owned workloads.

## Next Steps And Ongoing Work

- Evaluate the job's reliability and decide when it should become
blocking.
- Move rocjitsu consumption to a complete TheRock runnable artifact.
- Move the inline TensileLite YAMLs into checked-in test data or reuse
existing workloads.
- Continue the TheRock-side work toward a cleaner component path:
  - ROCm/TheRock#6517 makes rocjitsu available as a runnable artifact.
  - ROCm/TheRock#6525 adds a component-level rocjitsu smoke test.
- ROCm/TheRock#6575 separates artifact selection from runner placement
so GPU-targeted artifacts can be tested on CPU runners.
bghimireamd pushed a commit to ROCm/rocm-libraries that referenced this pull request Jul 28, 2026
## Motivation

Adds minimal rocjitsu race detection for GEMMs on gfx1151, gfx950, and
gfx942/gfx94X, run through `hipblaslt-bench` and `tensilelite-client`.

This is the third step in the evolution of race detection for hipBLASLt:

1. #7951 did not use TheRock.
It used a free GitHub runner, checked out rocm-libraries and
rocm-systems, built them, and ran rocjitsu with hipBLASLt.
2. #8929 used TheRock, but
only ran `hipblaslt-bench` on gfx950.
3. This PR uses TheRock, adds gfx1151 and gfx942/gfx94X coverage, adds a
reduced `tensilelite-client` path, and runs rocjitsu on a CPU build
runner instead of consuming a GPU test runner.

JIRA ID : AIHPBLAS-3605
https://amd-hub.atlassian.net/browse/AIHPBLAS-3605

## High Level Overview

For hipBLASLt TheRock Linux rows on supported GPU families, this adds a
post-build rocjitsu race-check job.

The flow is:

1. The normal TheRock build produces the ROCm runtime, hipBLASLt, and
TensileLite test artifacts.
2. The race-check job fetches those artifacts from the same TheRock run.
3. The job builds rocjitsu from a pinned rocm-systems revision.
4. The job runs small `hipblaslt-bench` and `tensilelite-client`
workloads under rocjitsu race detection.
5. The script reports a failure if a workload fails or rocjitsu reports
a race.

The check is initially advisory. Failures remain visible in the job logs
and uploaded reports, but do not fail the required TheRock CI summary
while the job's reliability is evaluated.

The goal is to test GPU-targeted hipBLASLt and TensileLite artifacts
under CPU-side emulation without requiring GPU runner capacity.

### Workspace Layout

The job uses three repository checkouts in one workspace:

- `ROCm/TheRock` is checked out at the workspace root. Its actions and
scripts fetch the artifacts produced by the current TheRock run.
- The current `ROCm/rocm-libraries` revision is checked out under
`rocm-libraries/`. A sparse checkout provides the race-check driver
script from `.github/scripts`.
- `ROCm/rocm-systems` is checked out under `rocm-systems/` at a pinned
revision. A sparse checkout provides the rocjitsu sources and
machine-readable ISA data needed to build rocjitsu.

These checkouts provide the workflow logic and test tooling. The ROCm
runtime, compiler, hipBLASLt, TensileLite, and test payload being
exercised still come from the artifacts produced by the associated
TheRock build.

## End-to-end CI Proof

A recent CI run has successful rocjitsu race-check jobs for all three
target rows:

- gfx1151:
https://github.com/ROCm/rocm-libraries/actions/runs/29942116838/job/89005639878
- gfx950-dcgpu:
https://github.com/ROCm/rocm-libraries/actions/runs/29942116838/job/89010903066
- gfx94X-dcgpu:
https://github.com/ROCm/rocm-libraries/actions/runs/29942116838/job/89015610352

## Current Limitations

- rocjitsu is still built from a pinned rocm-systems source checkout.
This should move to a packaged TheRock component artifact.
- The check is initially advisory while its reliability is evaluated.
- The TensileLite YAMLs are embedded in the script. They should move to
checked-in test data or be replaced by existing product-owned workloads.

## Next Steps And Ongoing Work

- Evaluate the job's reliability and decide when it should become
blocking.
- Move rocjitsu consumption to a complete TheRock runnable artifact.
- Move the inline TensileLite YAMLs into checked-in test data or reuse
existing workloads.
- Continue the TheRock-side work toward a cleaner component path:
  - ROCm/TheRock#6517 makes rocjitsu available as a runnable artifact.
  - ROCm/TheRock#6525 adds a component-level rocjitsu smoke test.
- ROCm/TheRock#6575 separates artifact selection from runner placement
so GPU-targeted artifacts can be tested on CPU runners.
@newling newling closed this Aug 25, 2026
@github-project-automation github-project-automation Bot moved this from TODO to Done in TheRock Triage Aug 25, 2026
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.

1 participant