Repository navigation
Conversation
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
geomin12
left a comment
There was a problem hiding this comment.
lgtm! errors are flaky infra issues, can retry
83e81a8 to
83f3c62
Compare
amd-arosa
left a comment
There was a problem hiding this comment.
don't ship the rocjitsu cli.
we should ship the hook if it's ready.
please confirm the hook doesn't containe all rocjitsu symbols.
also add it to the symbol check in the cmake
| [components.dev."emulation/rocjitsu/stage"] | ||
| [components.run."emulation/rocjitsu/stage"] | ||
| include = [ | ||
| "bin/rocjitsu", |
There was a problem hiding this comment.
we already ship mirage. mirage is built to be the public rocjitsu cli.
also just alias rocjitsu="mirage run"
There was a problem hiding this comment.
I have an end-to-end CI workflow (race detection in rocm-libraries) working in this PR: ROCm/rocm-libraries#9363 that uses rocjitsu cli. That PR builds rocjitsu in the CI job though, which I'd prefer to avoid. That is why I wanted to ship rocjitsu (i.e. this PR) -- then I wouldn't need to build rocjitsu in CI.
I have tried getting the same end-to-end working with Mirage (instead of rocjitsu cli) in this PR: ROCm/rocm-libraries#9613 but it looks like I need to install cargo. In https://github.com/ROCm/rocm-libraries/actions/runs/29791059379/job/88513099846 : Could not find MIRAGE_CARGO_FOUND using the following names: cargo in.
Using cargo is not a blocker, but it adds a new dimension of complexity. I want this to be as easy as possible for developers to reproduce. The 'best' for rocm-libraries developers would've been just to install rocjitsu.
Anyway I will push try cargo (i.e. I'll keep iterating on ROCm/rocm-libraries#9613), see if I can get that over the line.
There was a problem hiding this comment.
just updated https://ghcr.io/rocm/therock_build_manylinux_x86_64
d20e1cd to
a5ac276
Compare
## 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.
c43bd3e to
78c82af
Compare
## 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.
…ponents intended for etsting
This reverts commit 239f4dc.
78c82af to
4ad57e7
Compare
| default_patterns = false | ||
| include = [ | ||
| "lib/librocjitsu.so", | ||
| "lib/librocjitsu_hooks.so", |
There was a problem hiding this comment.
Why are we shipping these hooks? Who is the consumer of these?
Motivation
The rocjitsu build installs its runtime library, instrumentation hook, CLI, configs, and schemas, but the artifact descriptor did not package all of that test tooling.
This change makes the installed rocjitsu CLI available to CI and development workflows that fetch rocjitsu test artifacts.
Summary
librocjitsu_hooks.soalongsidelibrocjitsu.soin thelibartifactlibrocjitsu_hooks.soas an installed shared librarytestcomponent containingbin/rocjitsurunartifact throughshare/rocjitsu/**The CLI is available when rocjitsu test artifacts are fetched, for example with:
Local validation
python3 -m unittest build_tools.tests.artifact_descriptor_overlap_testgit diff --checkon the changed descriptor.build_tools/fileset_tool.py artifactagainst a temporary synthetic rocjitsu install tree and confirmed the descriptor routes:lib/librocjitsu.soandlib/librocjitsu_hooks.soto thelibartifactbin/rocjitsuto thetestartifactshare/rocjitsu/**to therunartifactinclude/rocjitsu/**to thedevartifactJIRA ID : AIHPBLAS-3605
https://amd-hub.atlassian.net/browse/AIHPBLAS-3605