Skip to content

fix(ci): regenerate consumer graph for kfdtest edges - #7297

Merged
BrianHarrisonAMD merged 1 commit into
mainfrom
users/bharriso/consumer-graph-kfdtest-drift
Aug 12, 2026
Merged

BrianHarrisonAMD merged 1 commit into
mainfrom
users/bharriso/consumer-graph-kfdtest-drift

Conversation

@BrianHarrisonAMD

@BrianHarrisonAMD BrianHarrisonAMD commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

kfdtest was added as a subproject in #6334, but the committed consumer graph was never regenerated. The drift check compares the whole file, so any PR touching a graph-affecting path either fails it or has to carry these lines in an unrelated diff.

GitHub issue: #7298

Technical Details

Regenerated test_tools/therock_consumer_graph.json with check_consumer_graph_drift.py --write. No other files change.

The diff is the kfdtest node plus its seven reverse edges from core/CMakeLists.txt: amd-llvm, rocr-runtime, therock-libdrm, therock-numactl, therock-yaml-cpp, therock-zlib, therock-zstd.

No behavior change. Selection can now emit kfdtest, but there is no kfdtest key in fetch_test_configurations.py, so no job is scheduled.

Test Plan

Drift check, policy validation, selection unit tests, pre-commit.

Test Result

  • --validate-policies: OK, 18 component keys against 116 graph nodes
  • determine_rocm_test_dependencies_test.py: 49 passed
  • pre-commit: passed

Submission Checklist

kfdtest was added as a subproject in #6334 but the committed consumer
graph was not regenerated, so main carries no kfdtest edges. The drift
check compares the whole file, so every PR that touches a
graph-affecting path now fails it or has to carry these lines.

Regenerated with check_consumer_graph_drift.py --write. The diff is
exactly the kfdtest registration plus its seven BUILD_DEPS/RUNTIME_DEPS
reverse edges (amd-llvm, rocr-runtime, therock-libdrm, therock-numactl,
therock-yaml-cpp, therock-zlib, therock-zstd).

No behavior change today: selection can now emit "kfdtest", but there is
no kfdtest key in fetch_test_configurations.py, so no job is scheduled.

Refs: #6334
@therock-pr-bot

therock-pr-bot Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR Description ✅ Pass —
⛔ Forbidden Files ✅ Pass —
🧪 Unit Test ✅ Pass PR does not contain code files — Unit Test auto-passed
🔎 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.

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

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

BrianHarrisonAMD added a commit that referenced this pull request Aug 12, 2026
Adds hipdnn_integration_tests as a consumer of rocrand, following the
RUNTIME_DEPS edge added in the previous commit.

The kfdtest edges this file also needed are split out into #7297, which
this branch is stacked on.

@andmar-amd andmar-amd 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, but I would wait for one of the others green thumb.

@BrianHarrisonAMD BrianHarrisonAMD changed the title test_tools: regenerate consumer graph for kfdtest edges fix(ci): regenerate consumer graph for kfdtest edges Aug 12, 2026
@BrianHarrisonAMD
BrianHarrisonAMD merged commit c617050 into main Aug 12, 2026
57 of 58 checks passed
@github-project-automation github-project-automation Bot moved this from TODO to Done in TheRock Triage Aug 12, 2026
@BrianHarrisonAMD
BrianHarrisonAMD deleted the users/bharriso/consumer-graph-kfdtest-drift branch August 12, 2026 16:09
BrianHarrisonAMD added a commit that referenced this pull request Aug 12, 2026
Adds hipdnn_integration_tests as a consumer of rocrand, following the
RUNTIME_DEPS edge added in the previous commit.

The kfdtest edges this file also needed are split out into #7297, which
this branch is stacked on.
BrianHarrisonAMD added a commit that referenced this pull request Aug 14, 2026
…7166)

## Summary

The hipDNN integration test suite is adding rocRAND-based GPU tensor
data generation in
[rocm-libraries#10305](ROCm/rocm-libraries#10305).
That change calls `find_package(rocrand)` unconditionally, so TheRock
must declare the dependency before it lands. This PR wires rocRAND into
the `hipdnn_integration_tests` subproject, artifact topology, artifact
fetch, and Linux packaging.

Stacked on #7297, which regenerates the consumer graph for unrelated
kfdtest edges missing from `main` (#7298). It must merge first.

ISSUE ID : ROCm/rocm-libraries#8991

## Risk Assessment

Low risk. Build wiring only, scoped to the `hipdnn_integration_tests`
subproject and its artifact. No product code, no public API, no change
to any other subproject. The main consequence is that enabling
`THEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS` now force-enables
`THEROCK_ENABLE_RAND`, which adds rocRAND to the build graph for
configurations that previously excluded it.

## ASIC Coverage

Passing PR CI is sufficient. The change is ASIC-independent: it adds a
link dependency on rocRAND's host API only. The integration test suite
compiles no device code at build time, since all of its kernels are
HipRTC-compiled at runtime from embedded sources, so the
`hipdnn-integration-tests` artifact remains `TARGET_NEUTRAL`. rocRAND's
per-arch device code lives in `librocrand`'s fatbin and is delivered by
the existing target-specific `rand` artifact, which is already resolved
per-architecture by the artifact fetch.

## Testing Summary

- Topology validation confirming the new artifact dependency resolves
and stays acyclic.
- Feature-resolution check confirming `THEROCK_ENABLE_RAND` is
force-enabled and declared before its dependent.
- Generator and schema checks on the modified topology and packaging
manifest.
- End-to-end CI validation on a dry-run branch that points the
`rocm-libraries` submodule at the consuming PR.

## Testing Checklist

- [x] Topology validation - `BuildTopology.validate_topology()` -
Status: Passed
- [x] Topology unit tests - `python3 -m unittest
tests.build_topology_test` - Status: Passed
- [x] Feature resolution - `therock_finalize_features()` with
`-DTHEROCK_ENABLE_RAND=OFF -DTHEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS=ON`
resolves to `RAND=ON` - Status: Passed
- [x] Feature ordering - `topology_to_cmake.py` emits `RAND` before
`HIPDNN_INTEGRATION_TESTS` - Status: Passed
- [x] Packaging manifest - `json.load` on
`build_tools/packaging/linux/package.json` - Status: Passed
- [x] Commit hooks - `pre-commit run --files` - Status: Passed
- [x] Unit test - `pytest
build_tools/tests/install_rocm_from_artifacts_test.py` - 18 passed;
verified failing when the `rand_lib` line is reverted - Status: Passed
- [ ] Dry-run CI with
[rocm-libraries#10305](ROCm/rocm-libraries#10305)
- `users/bharriso/hipdnn-integration-tests-rocrand-dryrun`, gfx94X -
Status: Re-running after the restack - Link:
[run](https://github.com/ROCm/TheRock/actions/runs/31607249037) (prior
run on the old base passed:
[31126893581](https://github.com/ROCm/TheRock/actions/runs/31126893581))
- [ ] PR CI - GitHub PR checks - Status: Pending

## Technical Changes

- `ml-libs/CMakeLists.txt`: adds `rocRAND` to `hipdnn_integration_tests`
`RUNTIME_DEPS`. This satisfies the super-project dependency provider,
which raises a fatal error when a subproject calls `find_package` on a
provided package without a declared edge, and places `librocrand` in the
dist tree for link and RPATH. `RUNTIME_DEPS` rather than `BUILD_DEPS`
because the library is linked, matching the existing `miopenprovider` to
`MIOpen` and `hipblasltprovider` to `hipBLASLt` edges, which are
likewise `TARGET_NEUTRAL` consumers of target-specific libraries.
- `BUILD_TOPOLOGY.toml`: adds `rand` to the `hipdnn-integration-tests`
artifact dependencies, which force-enables `THEROCK_ENABLE_RAND` and
makes sharded CI fetch the `rand` artifact before building and testing
`ml-libs`.
- `build_tools/install_rocm_from_artifacts.py`: fetches `rand_lib`
alongside `--hipdnn-integration-tests`. Artifact expansion is explicit
rather than transitive, so without this the test runners have no
`librocrand` to load.
- `build_tools/packaging/linux/package.json`: `amdrocm-dnn-test` now
depends on `amdrocm-rand`.
- `test_tools/therock_consumer_graph.json`: adds
`hipdnn_integration_tests` as a consumer of `rocrand`. One line.
- `build_tools/tests/install_rocm_from_artifacts_test.py`: asserts
`--hipdnn-integration-tests` pulls `rand_lib`, so the dependency cannot
be dropped silently in a future merge conflict.

## Merge Order

This PR must merge after #7297 and before
[rocm-libraries#10305](ROCm/rocm-libraries#10305).
That PR calls `find_package(rocrand)` unconditionally, and TheRock's
dependency provider fails configuration for an undeclared provided
package regardless of the `QUIET` argument.
lumachad pushed a commit that referenced this pull request Aug 17, 2026
…7166)

## Summary

The hipDNN integration test suite is adding rocRAND-based GPU tensor
data generation in
[rocm-libraries#10305](ROCm/rocm-libraries#10305).
That change calls `find_package(rocrand)` unconditionally, so TheRock
must declare the dependency before it lands. This PR wires rocRAND into
the `hipdnn_integration_tests` subproject, artifact topology, artifact
fetch, and Linux packaging.

Stacked on #7297, which regenerates the consumer graph for unrelated
kfdtest edges missing from `main` (#7298). It must merge first.

ISSUE ID : ROCm/rocm-libraries#8991

## Risk Assessment

Low risk. Build wiring only, scoped to the `hipdnn_integration_tests`
subproject and its artifact. No product code, no public API, no change
to any other subproject. The main consequence is that enabling
`THEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS` now force-enables
`THEROCK_ENABLE_RAND`, which adds rocRAND to the build graph for
configurations that previously excluded it.

## ASIC Coverage

Passing PR CI is sufficient. The change is ASIC-independent: it adds a
link dependency on rocRAND's host API only. The integration test suite
compiles no device code at build time, since all of its kernels are
HipRTC-compiled at runtime from embedded sources, so the
`hipdnn-integration-tests` artifact remains `TARGET_NEUTRAL`. rocRAND's
per-arch device code lives in `librocrand`'s fatbin and is delivered by
the existing target-specific `rand` artifact, which is already resolved
per-architecture by the artifact fetch.

## Testing Summary

- Topology validation confirming the new artifact dependency resolves
and stays acyclic.
- Feature-resolution check confirming `THEROCK_ENABLE_RAND` is
force-enabled and declared before its dependent.
- Generator and schema checks on the modified topology and packaging
manifest.
- End-to-end CI validation on a dry-run branch that points the
`rocm-libraries` submodule at the consuming PR.

## Testing Checklist

- [x] Topology validation - `BuildTopology.validate_topology()` -
Status: Passed
- [x] Topology unit tests - `python3 -m unittest
tests.build_topology_test` - Status: Passed
- [x] Feature resolution - `therock_finalize_features()` with
`-DTHEROCK_ENABLE_RAND=OFF -DTHEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS=ON`
resolves to `RAND=ON` - Status: Passed
- [x] Feature ordering - `topology_to_cmake.py` emits `RAND` before
`HIPDNN_INTEGRATION_TESTS` - Status: Passed
- [x] Packaging manifest - `json.load` on
`build_tools/packaging/linux/package.json` - Status: Passed
- [x] Commit hooks - `pre-commit run --files` - Status: Passed
- [x] Unit test - `pytest
build_tools/tests/install_rocm_from_artifacts_test.py` - 18 passed;
verified failing when the `rand_lib` line is reverted - Status: Passed
- [ ] Dry-run CI with
[rocm-libraries#10305](ROCm/rocm-libraries#10305)
- `users/bharriso/hipdnn-integration-tests-rocrand-dryrun`, gfx94X -
Status: Re-running after the restack - Link:
[run](https://github.com/ROCm/TheRock/actions/runs/31607249037) (prior
run on the old base passed:
[31126893581](https://github.com/ROCm/TheRock/actions/runs/31126893581))
- [ ] PR CI - GitHub PR checks - Status: Pending

## Technical Changes

- `ml-libs/CMakeLists.txt`: adds `rocRAND` to `hipdnn_integration_tests`
`RUNTIME_DEPS`. This satisfies the super-project dependency provider,
which raises a fatal error when a subproject calls `find_package` on a
provided package without a declared edge, and places `librocrand` in the
dist tree for link and RPATH. `RUNTIME_DEPS` rather than `BUILD_DEPS`
because the library is linked, matching the existing `miopenprovider` to
`MIOpen` and `hipblasltprovider` to `hipBLASLt` edges, which are
likewise `TARGET_NEUTRAL` consumers of target-specific libraries.
- `BUILD_TOPOLOGY.toml`: adds `rand` to the `hipdnn-integration-tests`
artifact dependencies, which force-enables `THEROCK_ENABLE_RAND` and
makes sharded CI fetch the `rand` artifact before building and testing
`ml-libs`.
- `build_tools/install_rocm_from_artifacts.py`: fetches `rand_lib`
alongside `--hipdnn-integration-tests`. Artifact expansion is explicit
rather than transitive, so without this the test runners have no
`librocrand` to load.
- `build_tools/packaging/linux/package.json`: `amdrocm-dnn-test` now
depends on `amdrocm-rand`.
- `test_tools/therock_consumer_graph.json`: adds
`hipdnn_integration_tests` as a consumer of `rocrand`. One line.
- `build_tools/tests/install_rocm_from_artifacts_test.py`: asserts
`--hipdnn-integration-tests` pulls `rand_lib`, so the dependency cannot
be dropped silently in a future merge conflict.

## Merge Order

This PR must merge after #7297 and before
[rocm-libraries#10305](ROCm/rocm-libraries#10305).
That PR calls `find_package(rocrand)` unconditionally, and TheRock's
dependency provider fails configuration for an undeclared provided
package regardless of the `QUIET` argument.
lumachad pushed a commit that referenced this pull request Aug 18, 2026
…7166)

## Summary

The hipDNN integration test suite is adding rocRAND-based GPU tensor
data generation in
[rocm-libraries#10305](ROCm/rocm-libraries#10305).
That change calls `find_package(rocrand)` unconditionally, so TheRock
must declare the dependency before it lands. This PR wires rocRAND into
the `hipdnn_integration_tests` subproject, artifact topology, artifact
fetch, and Linux packaging.

Stacked on #7297, which regenerates the consumer graph for unrelated
kfdtest edges missing from `main` (#7298). It must merge first.

ISSUE ID : ROCm/rocm-libraries#8991

## Risk Assessment

Low risk. Build wiring only, scoped to the `hipdnn_integration_tests`
subproject and its artifact. No product code, no public API, no change
to any other subproject. The main consequence is that enabling
`THEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS` now force-enables
`THEROCK_ENABLE_RAND`, which adds rocRAND to the build graph for
configurations that previously excluded it.

## ASIC Coverage

Passing PR CI is sufficient. The change is ASIC-independent: it adds a
link dependency on rocRAND's host API only. The integration test suite
compiles no device code at build time, since all of its kernels are
HipRTC-compiled at runtime from embedded sources, so the
`hipdnn-integration-tests` artifact remains `TARGET_NEUTRAL`. rocRAND's
per-arch device code lives in `librocrand`'s fatbin and is delivered by
the existing target-specific `rand` artifact, which is already resolved
per-architecture by the artifact fetch.

## Testing Summary

- Topology validation confirming the new artifact dependency resolves
and stays acyclic.
- Feature-resolution check confirming `THEROCK_ENABLE_RAND` is
force-enabled and declared before its dependent.
- Generator and schema checks on the modified topology and packaging
manifest.
- End-to-end CI validation on a dry-run branch that points the
`rocm-libraries` submodule at the consuming PR.

## Testing Checklist

- [x] Topology validation - `BuildTopology.validate_topology()` -
Status: Passed
- [x] Topology unit tests - `python3 -m unittest
tests.build_topology_test` - Status: Passed
- [x] Feature resolution - `therock_finalize_features()` with
`-DTHEROCK_ENABLE_RAND=OFF -DTHEROCK_ENABLE_HIPDNN_INTEGRATION_TESTS=ON`
resolves to `RAND=ON` - Status: Passed
- [x] Feature ordering - `topology_to_cmake.py` emits `RAND` before
`HIPDNN_INTEGRATION_TESTS` - Status: Passed
- [x] Packaging manifest - `json.load` on
`build_tools/packaging/linux/package.json` - Status: Passed
- [x] Commit hooks - `pre-commit run --files` - Status: Passed
- [x] Unit test - `pytest
build_tools/tests/install_rocm_from_artifacts_test.py` - 18 passed;
verified failing when the `rand_lib` line is reverted - Status: Passed
- [ ] Dry-run CI with
[rocm-libraries#10305](ROCm/rocm-libraries#10305)
- `users/bharriso/hipdnn-integration-tests-rocrand-dryrun`, gfx94X -
Status: Re-running after the restack - Link:
[run](https://github.com/ROCm/TheRock/actions/runs/31607249037) (prior
run on the old base passed:
[31126893581](https://github.com/ROCm/TheRock/actions/runs/31126893581))
- [ ] PR CI - GitHub PR checks - Status: Pending

## Technical Changes

- `ml-libs/CMakeLists.txt`: adds `rocRAND` to `hipdnn_integration_tests`
`RUNTIME_DEPS`. This satisfies the super-project dependency provider,
which raises a fatal error when a subproject calls `find_package` on a
provided package without a declared edge, and places `librocrand` in the
dist tree for link and RPATH. `RUNTIME_DEPS` rather than `BUILD_DEPS`
because the library is linked, matching the existing `miopenprovider` to
`MIOpen` and `hipblasltprovider` to `hipBLASLt` edges, which are
likewise `TARGET_NEUTRAL` consumers of target-specific libraries.
- `BUILD_TOPOLOGY.toml`: adds `rand` to the `hipdnn-integration-tests`
artifact dependencies, which force-enables `THEROCK_ENABLE_RAND` and
makes sharded CI fetch the `rand` artifact before building and testing
`ml-libs`.
- `build_tools/install_rocm_from_artifacts.py`: fetches `rand_lib`
alongside `--hipdnn-integration-tests`. Artifact expansion is explicit
rather than transitive, so without this the test runners have no
`librocrand` to load.
- `build_tools/packaging/linux/package.json`: `amdrocm-dnn-test` now
depends on `amdrocm-rand`.
- `test_tools/therock_consumer_graph.json`: adds
`hipdnn_integration_tests` as a consumer of `rocrand`. One line.
- `build_tools/tests/install_rocm_from_artifacts_test.py`: asserts
`--hipdnn-integration-tests` pulls `rand_lib`, so the dependency cannot
be dropped silently in a future merge conflict.

## Merge Order

This PR must merge after #7297 and before
[rocm-libraries#10305](ROCm/rocm-libraries#10305).
That PR calls `find_package(rocrand)` unconditionally, and TheRock's
dependency provider fails configuration for an undeclared provided
package regardless of the `QUIET` argument.
avansick-amd added a commit that referenced this pull request Aug 18, 2026
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Adam Van Sickle <adam.vansickle@amd.com>

## Motivation

`rocprofiler-compute` gained a `THEROCK_BUNDLED_ZLIB` runtime dep in
#7421, but the
committed consumer graph was never regenerated. The drift check compares
the whole
file, so any PR touching a graph-affecting path either fails it or has
to carry this
line in an unrelated diff. Same class as #7298 / #7297.

## Technical Details

Regenerated `test_tools/therock_consumer_graph.json` with
`check_consumer_graph_drift.py --write` from a full-tree
`THEROCK_ENABLE_ALL=ON`
`gfx94X-dcgpu` configure. No other files change.

The diff is one line: `rocprofiler-compute` added to `therock-zlib`'s
consumers.

`rocprofiler-compute` has a key in `fetch_test_configurations.py`, 
so changes to `therock-zlib` can now schedule its tests. 
That follows from the dependency #7421 added.

## Test Plan

- Regenerated locally, then confirmed the result matches what CI
independently
computed on #7376.

## Test Result

- Consumer graph drift check: pass.

## Submission Checklist

- [x] Look over the contributing guidelines at
https://github.com/ROCm/TheRock/blob/main/CONTRIBUTING.md.
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.

3 participants