Repository navigation
test(integration-tests): re-tier integration bundles per op and make tier cascading explicit - #13198
Merged
Merged
Conversation
…tiers JIRA ID : ALMIOPEN-2851 The bundle re-tier in this PR was produced by this tool, so reviewers can reproduce it and the next re-tier does not need a one-off script. It moves existing sweep cases and single-graph bundles between tier directories from an assignment file, and after --apply re-reads the tree and proves per case that the expanded graph, metadata, tensor_patches, golden pointer and per-engine support claims are identical before and after. Self-test added to test_migration.py: refusal of an unassigned case and of a duplicate id in one sweep, template unification (a literal moving into a placeholder template becomes an explicit attribute), claim regrouping, and single-bundle moves.
JIRA ID : ALMIOPEN-2851 Redistribute the existing bundle cases across quick/standard/comprehensive/full so each op has its own cover of every option axis at every tier. No case is added, removed or modified: 10,807 cases before and after, and the set of test identities modulo tier prefix is identical (gtest_list_tests before/after). Produced with migration-scripts/retier_bundles.py, which re-reads the tree after writing and proves per case that the expanded graph, metadata, tensor_patches, golden pointer and per-engine support claims are unchanged. - Cases move between tier dirs at case granularity (sweep.json cases and single-graph bundle dirs); golden pointers and per-engine support claims move with their case. - Fused-pointwise graph templates are unified to the placeholder form (relu_* clips, LayernormBackward normalized_dim_count) so quick-origin and full-origin cases can share a sweep; affected cases carry explicit attributes. - 11 cases stay in quick because code and tests reference them by tier-qualified name or path, and moving them would change harness behaviour or silently skip tests: the SDPA known-reference-gap bundles (ReferenceOpCoverage.cpp knownReferenceGaps; its CPU lane is also gated to quick_ bundles), the hip_flash2 golden-reference tests, the TestVerificationPaths sweep cases and the TestLoadGraphAndTensors bundle. - Tier-prefixed tolerance filters in MIOPEN_ENGINE.toml and HIPBLASLT_ENGINE.toml are made tier-agnostic.
…hat holds them JIRA ID : ALMIOPEN-2851 generate_golden_data.sh and regenerate_bundles.sh hard-coded the old quick/standard output dirs, so regenerating after the re-tier would have recreated the moved bundles next to the real ones. generate_bundle() now resolves the tier that already holds "<outdir>/<name>" and falls back to the tier named in outdir for a bundle that exists nowhere yet.
…ry YAML JIRA ID : ALMIOPEN-2851 Tiers cascade: standard runs quick + standard, comprehensive runs quick + standard + comprehensive, full runs everything. - miopen, hipblaslt, hip-kernel (HIP_MLOPS, ASM_SDPA, Gfx950AttentionDense) test_categories_integration.yaml: comprehensive no longer pulls in the full-tier bundles (full_*); it selects quick_*, standard_* and comprehensive_* (plus the C++ tier prefixes). "full" still runs everything. The full_Layernorm_* carve-out in the HIP_MLOPS file is removed, it only existed because comprehensive ran full_*. - Shared integration-tests/test_categories.yaml: enable the comprehensive and full categories for the lowercase golden-data tests (the PascalCase Comprehensive*/Full* GPU-reference cases stay disabled) and make the labels cumulative. - CTest category timeouts set to 2x the tier runtime budgets (standard 3600 s, comprehensive 7200 s); quick kept where it carried a documented workaround. - hip-kernel Gfx950AttentionDense GTEST_FILTERs now cover every tier of the SdpaFwd bshd bundles. - miopen ffm-quick ids that left the quick tier replaced by quick-tier cases. Verified by listing each generated CTest suite's selection per engine: quick < standard < comprehensive < full, comprehensive contains no full_* test.
…, close quick 3D conv gap JIRA ID : ALMIOPEN-2851 Uses per-case gtest times from the multi-arch CI run (37531786548): every comprehensive case whose slowest run on any platform is <= 200 ms moves to standard (1137 cases, <= 7.4 s extra per engine on the worst platform). Eight 3D convolution cases (zero padding, padding 2, dilation 2, grouped) move to quick, the only axis values quick lacked. Moved with migration-scripts/retier_bundles.py; per-case graph, metadata, golden pointer and support claims are verified identical before and after.
Conflicts: - HIP_MLOPS_ENGINE_test_categories_integration.yaml: keep the cascaded comprehensive tier (no full_*), which makes develop's full_Layernorm* carve-out (#13180) unnecessary. - hip-kernel-provider/src/integration_tests/CMakeLists.txt: keep the all-tier GTEST_FILTER and take develop's ENVIRONMENT_MODIFICATION (#12804).
✅ 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. |
adickin-amd
marked this pull request as ready for review
October 8, 2026 16:06
bghimireamd
reviewed
Oct 9, 2026
bghimireamd
reviewed
Oct 9, 2026
…ier_integration_bundles # Conflicts: # dnn-providers/hip-kernel-provider/hipkernel_Gfx950AttentionDense_test_categories_integration.yaml # dnn-providers/hip-kernel-provider/src/CMakeLists.txt # dnn-providers/hip-kernel-provider/src/integration_tests/CMakeLists.txt # dnn-providers/integration-tests/integration-test-bundles/comprehensive/SdpaFwd/bshd/bf16/hd128_causal_gqa/Small.json # dnn-providers/integration-tests/integration-test-bundles/comprehensive/SdpaFwd/bshd/bf16/hd128_causal_gqa/Small.support.json # dnn-providers/integration-tests/integration-test-bundles/comprehensive/SdpaFwd/bshd/fp16/hd128_causal_mha/Small.json # dnn-providers/integration-tests/integration-test-bundles/comprehensive/SdpaFwd/bshd/fp16/hd128_causal_mha/Small.support.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd128_causal_mha/Prefill.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd128_causal_mha/Prefill.support.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd128_nomask_bm128/Prefill.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd128_nomask_bm128/Prefill.support.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd128_nomask_gqa/Prefill.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd128_nomask_gqa/Prefill.support.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd64_causal_gqa/Small.json # dnn-providers/integration-tests/integration-test-bundles/full/SdpaFwd/bshd/bf16/hd64_causal_gqa/Small.support.json # dnn-providers/integration-tests/integration-test-bundles/quick/SdpaFwd/bshd/fp16/hd128_causal_crossattn/Prefill.json # dnn-providers/integration-tests/integration-test-bundles/quick/SdpaFwd/bshd/fp16/hd128_causal_crossattn/Prefill.support.json # dnn-providers/integration-tests/integration-test-bundles/standard/SdpaFwd/bshd/bf16/hd128_causal_mha/Small.json # dnn-providers/integration-tests/integration-test-bundles/standard/SdpaFwd/bshd/bf16/hd128_causal_mha/Small.support.json # dnn-providers/integration-tests/integration-test-bundles/standard/SdpaFwd/bshd/fp16/hd64_causal_gqa/Small.json # dnn-providers/integration-tests/integration-test-bundles/standard/SdpaFwd/bshd/fp16/hd64_causal_gqa/Small.support.json
bghimireamd
approved these changes
Oct 9, 2026
bghimireamd
left a comment
Contributor
There was a problem hiding this comment.
Overall the PR looks good! Did not see any missing tests and the number of tests before and after matched.
9 of 11 tasks
…ecar form retier_bundles.py ordered claim groups by arrival and used plain json.dumps, so 22 re-tiered support.json files did not round-trip through support_sidecar.py (hipdnn_support_sidecar_python_tests). Render them with support_sidecar.render instead and re-render the 22 files; claims are unchanged.
bghimireamd
added a commit
that referenced
this pull request
Oct 9, 2026
…laims (ALMIOPEN-2332) RFC 0015 §11 renderer, ported onto current develop. render_support_matrix.py joins every committed support sidecar to its graph and emits a combined markdown (or JSON) matrix of engine x (arch, platform) verdicts, with a committed overview kept fresh by a pre-commit check. bundle_discovery.py mirrors BundleDiscovery.hpp so the Python tools and the C++ harness agree on what a bundle is. The matrix is independent of bundle tiers, which move (ALMIOPEN-2851, retier_bundles.py). Tier and op come from the path (<tier>/<op>/...), with no tier or op names hardcoded. A unit's identity is its path below the tier plus case id (sweeps) or graph file (single bundles); copies in several tiers merge into one unit with claims unioned and every tier listed, and copies holding different graphs are an error, as are orphaned sidecars. Rendering develop's tree and the #13198 retiered tree gives identical output apart from tiers. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Author
|
running full workflow check on this PR https://github.com/ROCm/rocm-libraries/actions/runs/37998927094 |
bghimireamd
added a commit
that referenced
this pull request
Oct 9, 2026
…laims (ALMIOPEN-2332) RFC 0015 §11 renderer, ported onto current develop. render_support_matrix.py joins every committed support sidecar to its graph and emits a combined markdown (or JSON) matrix of engine x (arch, platform) verdicts, with a committed overview kept fresh by a pre-commit check. bundle_discovery.py mirrors BundleDiscovery.hpp so the Python tools and the C++ harness agree on what a bundle is. The matrix is independent of bundle tiers, which move (ALMIOPEN-2851, retier_bundles.py). Tier and op come from the path (<tier>/<op>/...), with no tier or op names hardcoded. A unit's identity is its path below the tier plus case id (sweeps) or graph file (single bundles); copies in several tiers merge into one unit with claims unioned and every tier listed, and copies holding different graphs are an error, as are orphaned sidecars. Rendering develop's tree and the #13198 retiered tree gives identical output apart from tiers. Co-Authored-By: Claude <noreply@anthropic.com>
bghimireamd
added a commit
that referenced
this pull request
Oct 10, 2026
…laims (ALMIOPEN-2332) RFC 0015 §11 renderer, ported onto current develop. render_support_matrix.py joins every committed support sidecar to its graph and emits a combined markdown (or JSON) matrix of engine x (arch, platform) verdicts, with a committed overview that CI keeps fresh. bundle_discovery.py mirrors BundleDiscovery.hpp so the Python tools and the C++ harness agree on what a bundle is. The matrix is independent of bundle tiers, which move (ALMIOPEN-2851, retier_bundles.py). Tier and op come from the path (<tier>/<op>/...), with no tier or op names hardcoded. A unit's identity is its path below the tier plus case id (sweeps) or graph file (single bundles); copies in several tiers merge into one unit with claims unioned and every tier listed, and copies holding different graphs are an error, as are orphaned sidecars. Rendering develop's tree and the #13198 retiered tree gives identical output apart from tiers. The renderer and bundle-discovery pytest suites are registered as ctests, so hipdnn-superbuild-ci runs them on every dnn-providers/ change. They include real-tree checks: the full matrix renders and the committed overview matches a fresh render. Those checks carry the bundle data, because the top-level pre-commit exclude hides integration-test-bundles/ from every hook; the pre-commit hooks give quick feedback on script changes. Co-Authored-By: Claude <noreply@anthropic.com>
bghimireamd
added a commit
that referenced
this pull request
Oct 10, 2026
…laims (ALMIOPEN-2332) RFC 0015 §11 renderer, ported onto current develop. render_support_matrix.py joins every committed support sidecar to its graph and emits a combined markdown (or JSON) matrix of engine x (arch, platform) verdicts, with a committed overview that CI keeps fresh. bundle_discovery.py mirrors BundleDiscovery.hpp so the Python tools and the C++ harness agree on what a bundle is. The matrix is independent of bundle tiers, which move (ALMIOPEN-2851, retier_bundles.py). Tier and op come from the path (<tier>/<op>/...), with no tier or op names hardcoded. A unit's identity is its path below the tier plus case id (sweeps) or graph file (single bundles); copies in several tiers merge into one unit with claims unioned and every tier listed, and copies holding different graphs are an error, as are orphaned sidecars. Rendering develop's tree and the #13198 retiered tree gives identical output apart from tiers. The renderer and bundle-discovery pytest suites are registered as ctests, so hipdnn-superbuild-ci runs them on every dnn-providers/ change. They include real-tree checks: the full matrix renders and the committed overview matches a fresh render. Those checks carry the bundle data, because the top-level pre-commit exclude hides integration-test-bundles/ from every hook; the pre-commit hooks give quick feedback on script changes. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Author
mousdahl-amd
approved these changes
Oct 13, 2026
mousdahl-amd
left a comment
Contributor
There was a problem hiding this comment.
LGTM, had a closer look at new code (retier_bundles.py) but nothing earth-shattering came up.
yassinsolim
added a commit
that referenced
this pull request
Oct 13, 2026
Resolve the SdpaBackward quick sweep conflict with #13198. Keep develop's re-tiered cases and give each case's stats tensor the rank-4 shape this branch uses (append 1 to its dims and strides). Applying the same transform to the merge base reproduces this branch's file byte for byte.
Contributor
TheRock Submodule Bump ActivityNewest first
|
adickin-amd
added a commit
that referenced
this pull request
Oct 14, 2026
Conflicts in the three provider test_categories_integration.yaml files: take develop (#13198 re-tiered bundles and removed full_* from the comprehensive tier), which supersedes this branch's earlier change. Restore the RMSNorm runtime_epsilon claim groups in the four quick/RMSNorm support.json files: #12932 restored the case in the sweeps, so the claims are no longer stale. Update running-tests.md for the new comprehensive tier contents and the ASM_SDPA lane, and note HIPDNN_LOG_GRAPH_DIR as a graph source in adding-tests.md.
bghimireamd
added a commit
that referenced
this pull request
Oct 15, 2026
Conflicts: quick/BatchnormBackward/Default/sweep.json and quick/BatchnormPointwise/Default/sweep.json. Develop's re-tier (#13198) moved most cases out of quick; this branch had only removed one case from each file. Resolved as develop's file minus that case: runtime_epsilon (tensor uids 6-7, template holds 0-5) and runtime_epsilon_momentum (uids 8-12, template holds 0-7) still cannot load against develop's templates. Co-Authored-By: Claude <noreply@anthropic.com>
adickin-amd
added a commit
that referenced
this pull request
Oct 21, 2026
…d remove covered C++ tests (#13418) ## Summary Ports the last C++ graph-test cases that had no bundle equivalent (batchnorm "Upcast", standalone unary activation) into bundles, then deletes the C++ graph tests that bundles now fully cover. Stacked on #13198 (re-tier); the base branch is that PR's head. JIRA ID : ALMIOPEN-2349 ## Risk Assessment Risk 2. Test data, test-harness tolerance mapping and test-source removal only, no product code. New bundle cases are additive; the C++ graph tests removed do not build by default (`BUILD_CPP_GRAPH_TESTS=OFF`), so CI never ran them. Residual risks: - The new cases add 462 tests across quick/standard/comprehensive/full on every provider lane (432 Upcast/Activation + 30 NCHW/NCDHW batchnorm-backward). - The removed tests' parameter counts were matched to bundles by capture provenance, not re-derived. - `ResampleFwd` bundle cases now resolve their tolerance per dtype (fp32 1e-5, fp16 1e-3, bf16 1e-2; the deleted C++ test's values) instead of the 1e-3 fallback. fp32 is 100x tighter on every provider lane that runs them. Verified on gfx942 only. ## ASIC Coverage Arch-independent mechanism. Behavior-shifting selection: every arch's lanes gain the new cases and the ResampleFwd tolerance change. Executed so far: gfx942 (Linux, mi300x) and gfx1151 (Windows). hipBLASLt, ASM_SDPA, gfx90a, gfx950 and gfx12 were not run, so a multi-arch run is recommended before merge (the Upcast cases skip on engines that decline output-widening graphs, so skip counts per arch should be checked). ## Testing Summary - **gfx942 (mi300x, Linux), quick tier (`ctest -L quick`)**: 39/39 passed, including `*_test_name_validation` for hipdnn, hipdnn-integration-tests and miopen-provider. - **New Upcast + Activation cases, all tiers, gfx942**: - HIP_MLOPS_ENGINE: 200 pass, 232 skip, 0 fail. The 232 skips are 72 `Pointwise/Activation` (no standalone pointwise) + 160 Upcast (1D and other declined cases). Upcast pass/skip by tier: quick 22/10, standard 100/46, comprehensive 22/16, full 56/88. So HIP_MLOPS executes 78 of the 182 full/comprehensive Upcast cases. - MIOPEN_ENGINE: 72 `Pointwise/Activation` pass; all 360 Upcast skip (engine declines them). 0 fail. - gfx1151/Windows (earlier run): same pass/skip counts for the 432 cases. - **New NCHW/NCDHW batchnorm-backward cases (30)**, MIOPEN_ENGINE, gfx942: 62/62 passed (30 new + their NHWC/NDHWC siblings + the ConvWrw large-values case), no skips. - **ResampleFwd**, HIP_MLOPS_ENGINE, gfx942: 48/48 pass at the new per-dtype tolerances. MIOPEN_ENGINE skips all 48 (not supported). - `TestToleranceResolver.*`: 11/11 pass. - Build with `-DBUILD_CPP_GRAPH_TESTS=ON` after the deletions configures (orphan/allow-list checks pass) and `hipdnn_integration_tests` and `hipdnn_integration_tests_unit_tests` build; unit tests pass (993, 4 skipped, 0 failed). - Bundle and migration tooling verifiers pass (`verify_golden_bundles.py` finding counts unchanged from base; `test_migration.py` 15/15). - Filter match counts checked with `--gtest_list_tests` on gfx942: CalcStats3d override 3, RMSNormBackward skip 12 (Default + Variant2), SDPA backward tolerance 8 fp16 + 8 bf16. ## Testing Checklist - [x] hipdnn_integration_tests unit tests - `hipdnn_integration_tests_unit_tests` - Status: Passed (993, 4 skipped) - [x] Migration tooling self-test - `python3 migration-scripts/test_migration.py` - Status: Passed (15/15) - [x] Support-claim verifier - `scripts/verify_support_claims.py` - Status: Passed - [x] Bundle verifier - `reference-data-scripts/verify_golden_bundles.py` - Status: no new findings (pre-existing findings elsewhere) - [x] Quick tier - `ctest -L quick` - Devices: gfx942 (Linux) - Status: Passed (39/39) - [x] New bundles, MIOPEN_ENGINE and HIP_MLOPS_ENGINE - `hipdnn_integration_tests --test-engine <E> --gtest_filter='*_upcast:*Pointwise_Activation*'` - Devices: gfx1151 (Windows), gfx942 (Linux) - Status: Passed (0 failures; see skips above) - [x] New NCHW/NCDHW batchnorm-backward cases and ConvWrw large-values case - MIOPEN_ENGINE - Devices: gfx942 - Status: Passed (62/62) - [x] ResampleFwd per-dtype tolerance - HIP_MLOPS_ENGINE - Devices: gfx942 - Status: Passed (48/48) - [x] `*_test_name_validation` - Devices: gfx942 (Linux superbuild) - Status: Passed (the Windows check was not re-run) - [ ] Multi-arch sweep - TheRock multi-arch CI - Status: Pending - [ ] PR CI - GitHub PR checks - Status: Pending ## Technical Changes - **Ported cases**: 360 Upcast cases (fp16/bf16 in, fp32 out) appended to the `BatchnormInference`, `...VarianceExt`, `...Pointwise` and `...VarianceExtPointwise` sweeps, in the same tier as the same-shape non-upcast case (ids end `_upcast`). New `Pointwise/Activation` topology (relu, relu6, clamp, leaky, sigmoid, tanh x NCHW/NHWC x fp32/fp16), one shape per tier in quick, standard and comprehensive. Graphs derived from existing cases and the C++ case generators, not captured. - **Removed C++**: the C++ graph tests whose cases are all bundled, the shared test-case headers nothing else includes, and their CMake registration. Kept: conv serialize round-trip, `is_supported_ext` timing, resample backward and MoE grouped matmul (need input-fill recipes; ALMIOPEN-2880, ALMIOPEN-2881), and the SDPA forward and chained tests. - **Provider TOML**: - Dropped overrides that matched only deleted C++ names and whose cases are already covered by bundles. - Retargeted to bundle names: the MIOPEN BatchnormBackward 3D tolerance override (`*_BatchnormBackward_Default.1_16_8_112_112_*_ncdhw`), the HIP_MLOPS RMSNormBackward Pure-bf16 skip (now covers Default and Variant2), the HIP_MLOPS Layernorm backward dtype entries, and the ASM_SDPA SdpaBwd tolerance overrides (`*_SdpaBackward_*.*_fp16_*` / `*_bfp16_*`). - Removed, not retargeted: the MIOPEN #6979 CBA skip and the hipBLASLt #8033 gfx12 skip. Retargeted to bundle names they became sweep-wide skips that hid cases the support-claim sidecars say pass on RDNA/gfx1200. They matched no bundle case at the base, so behavior is unchanged; unsupported cases skip on their own and claim regressions still fail. - **Coverage restored after review**: 30 NCHW/NCDHW cases (`1_4_2_2` and `2_3_2_4_4`, fp32/fp16/bf16) in `BatchnormBackward` Default and Variant2 and `BatchnormInferencePointwiseBatchnormBackward`, which the deleted C++ suites ran in both layouts; and the [-10, 10] input range (`metadata.inputs`) on the ConvWrw large-values case. - **Harness**: `ToleranceResolver` maps `ResampleFwdAttributes` to `resample::getTolerance<T>()` (it fell through to 1e-3 before), with a unit test. - **Docs**: README notes updated; tracker IDs removed from committed docs. - Layernorm backward `fp16_`/`bfp16_` filters also match Mixed/Upcast cases (the dtype tag is the input dtype). This predates the PR; a dtype-aware override is tracked separately.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Re-distributes the existing integration-test bundle cases across quick/standard/comprehensive/full so every op has its own cover of its option axes at each tier, and makes tier cascading explicit in every provider's category YAML (standard = quick+standard, comprehensive = quick+standard+comprehensive, full = everything). No test is added, removed or modified. Builds on #13089 (merged), which made large bundle suites fast enough to iterate on tiers.
JIRA ID : ALMIOPEN-2851
Partially addresses the ticket: still open are the README tier rules / per-op axis checklist and the coverage-gap report with its Jira issues.
Risk Assessment
Risk 3. Test-infrastructure and test-data only, no product code, but it changes which tests every provider lane selects per tier and moves 5,452 of 10,807 bundle cases. Residual risk is higher until the multi-arch run below passes.
Two behavior changes to be aware of:
comprehensiveno longer runsfull_*. The nightly set goes from all 10,807 bundle cases to 4,720 (quick 489 + standard 2,737 + comprehensive 1,494); the other 6,085 run only infull. This is the ticket's target model. This repo's superbuild CI runs plainctest --test-dir build(all suites), but label-driven lanes (TheRock / rocm-npi-dev) are outside this tree and should be checked by their owners.K_CPU_TIER_PREFIX = "quick_"(ReferenceOpCoverage.cpp) limits the golden-data CPU cross-check of Sdpa bundles to quick, so SDPA bundles that left quick are checked by the GPU reference only. Harness behavior is unchanged; whether to widen the cap is a decision for the owners.ASIC Coverage
Arch-independent mechanism, behavior-shifting selection: what runs in the quick/standard/comprehensive lanes changes on every arch. Moved cases keep their own per-engine/arch support claims. Passing PR CI is not sufficient: a multi-arch run is required, because locally only gfx1151/Windows with MIOPEN_ENGINE and HIP_MLOPS_ENGINE executed tests; HIPBLASLT_ENGINE, ASM_SDPA_ENGINE and Reduction skip every case there, and per-arch claims differ by tier directory for Layernorm and RMSNorm.
Testing Summary
--gtest_list_testsbefore vs after lists 10,886 tests both, identical names modulo tier prefix. The tool re-reads the tree from disk and proves, per case, that expanded graph, metadata, tensor_patches, golden pointer and support claims are identical (all 10,807 cases).retier_bundles.py(commit 1) applied to the pre-change tree with the same assignments produces the bundle tree in commit 2.full_*test;ctest -L <tier> --no-tests=error -Nis non-empty for all three providers.full_LayernormBackward(passes alone on baseline and after, and on a full re-run).Testing Checklist
hipdnn_integration_tests_unit_tests- Status: Passed (922)retier_bundlestest -python3 migration-scripts/test_migration.py- Status: Passed (15/15)*_test_name_validationwith the ROCm bin on PATH -ctest -R test_name_validation -V- Status: Passed (0 invalid names)scripts/verify_support_claims.py,reference-data-scripts/verify_golden_bundles.py- Status: Passed (same pre-existing findings as baseline)hipdnn_integration_tests --test-engine <E> --gtest_filter=<tier>_<Op>_*- Devices: gfx1151 (Windows) - Status: Passed (1 flake, see above). After commit 5,quick_*:standard_*passes on both engines (0 failures; 43.6 s MIOPEN, 368 s HIP_MLOPS wall).hipccenvironment errors, and a Windows hipBLASLt test binary that would not start; none depends on the tier layout. gfx950 and Windows gfx120X did not run; gfx1030 timed out.Technical Changes
Review the commits separately: 2 and 5 are generated data, 1/3/4 are the hand-written changes.
migration-scripts/retier_bundles.py(+ README section, self-test): moves cases between tiers from an assignment file and verifies per-case equivalence after writing.knownReferenceGaps, hip_flash2 golden-ref tests,TestVerificationPaths,TestLoadGraphAndTensors). Tier-prefixed TOML tolerance filters are made tier-agnostic.full_*and the obsoletefull_Layernorm_*carve-out is removed; CTest timeouts set to 2x tier budgets; Gfx950GTEST_FILTERs cover all tiers; two stale miopenffm-quickids replaced; shared YAML enables comprehensive/full for the lowercase golden-data tests only.