Repository navigation
test(rocke): cover gfx942 and gfx950 in the dispatch and small platform tests (AICK-2822) - #15004
Conversation
…-2822) Parametrize the gemm dispatch tests over gfx942 and gfx950, with per-arch expected values where the archs differ. Mark the split-K planner, the split-K depth test and the bf16 decode capability test arch_specific: their cost model and candidates exist for gfx950 only. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…g dispatch tests (AICK-2822) Parametrize the core, build, binding and norm tests over both archs. Mark the arch-bound moe tests, the moe example parity test (the example spec is invalid on gfx942) and the toy tuning family arch_specific with a reason. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…and numeric tests (AICK-2822) Parametrize the comgr, device-info, arch-domain artifact, LDS registry and b32 LDS profile tests over both archs. Mark the LDS profile tests whose bank behavior differs, and the tf32 and f64 MFMA numeric tests, arch_specific with a reason. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
✅ 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. |
… (AICK-2822) Revert the cross-arch parametrization in test_lds_profile_gfx942.py and test_lds_profile_gfx950.py. Each file again tests only its own profile, and every test carries arch_specific. Move the cases that both profiles share into test_lds_profile_cdna_common.py, parametrized over gfx942 and gfx950. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ke/aick-2822-arch-dispatch-small-dirs # Conflicts: # dnn-providers/hip-kernel-provider/rocke/platform/tests/numeric/test_gfx942_f64_mma_numeric.py # dnn-providers/hip-kernel-provider/rocke/platform/tests/numeric/test_gfx942_tf32_numeric.py # dnn-providers/hip-kernel-provider/rocke/platform/tests/runtime/test_device_info.py
…(AICK-2822) Parametrize test_f64_gemm_rejects_unsupported over gfx942 and gfx950, with per-arch refusal messages and LDS caps. Mark the fp64 pad budget test, the moe fp8 K=128 catalog test, the gfx942 lds_swizzle numeric test and the five dsl_probes tests that need a target without ds.read.tr16.b64 as arch_specific with a reason. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ke/aick-2822-arch-dispatch-small-dirs Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max PR #15004 — test(rocke): cover gfx942 and gfx950 in the dispatch and small platform tests (CongMa13, AICK-2822) — 🟠 First-round: arch list copies; body figure
Utility: 🟢 Positive — widened tests catch four per-arch breaks develop's versions missed Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted First-round review: first pass by a local qwen3.6 model, verified by the orchestrator (Claude Opus 5.5). Checks: merge with develop, build + ctest, byte identity, goldens, changed tests (source and installed), per-arch mutation runs, CI logs at this and the previous head, code quality. Flags whether a closer look is needed; not an approval or rejection. |
Add COVERED_ARCHES to rocke.tests.arch_marks and import it at each site that listed gfx942 and gfx950. Build both core registry fixtures from it. Derive the 32x32 warp tile from the MMA catalog. Drop the duplicate LDS helpers in the common profile file. Remove arch loops that only change a label in the comgr and device info tests. State the real limit in the f64 MFMA probe mark. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ke/aick-2822-arch-dispatch-small-dirs
|
Addressed in
Tests: 499 passed, 36 skipped on the changed files after the merge. Pre-commit (black 25.12.0) passes. |
|
Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: high PR #15004 — test(rocke): cover gfx942 and gfx950 in the dispatch and small platform tests (CongMa13, AICK-2822) — 🟢 Follow-up: all three items fixed
Net-new: none. Utility: 🟢 Positive — one arch constant now drives every widened test; items fixed Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted Follow-up review: first pass by qwen3.6 (local), verified by the orchestrator (Claude Opus 5.5). Checks: merge with develop, build + ctest, byte identity, goldens, changed tests (source and installed), arch-constant mutants, CI logs at this head, code quality. Flags whether a closer look is needed; not an approval or rejection. |
Conflict: dispatch_tests/core/test_binding.py. develop's #15004 runs the binding tests on every covered arch; this branch moved the binding to the shared rocke.numeric.bf16 codec and dropped its private _bf16_from_f32/_f32_from_bf16. The file keeps develop's arch parametrization and this branch's codec: the reference output encodes with f32_to_bf16, and the bf16 class checks the binding uses the shared codec. The round-trip and nearest-even tests it replaced are in tests/numeric/test_bf16_codec.py.
JIRA ID: AICK-2822
Draft until CI reports.
Summary — For human reviewers
The short version
This is story S06b of the epic that covers
gfx942andgfx950in rocKE tests (S06a is #14713). It covers the dispatch tests and the small test directories underplatform/tests. Each single-arch test is now parametrized over both archs or markedarch_specificwith a reason.What changes
Three commits, one for each group of directories. Only test files change.
dispatch_tests/gemm. 28 tests run on both archs, with per-arch expected values where the archs differ (MFMA intrinsic names, CU counts, warp tiles). 24 tests arearch_specific: the split-K cost model is fitted forgfx950only, andsplit_k_cost_model("gfx942")returnsNone.dispatch_tests/core,moe,norm,tuning.test_moe_matches_the_example_exactlyisgfx950only. The example spec is invalid ongfx942(bf16 warp tile(16, 16, 32)).moetests that name one arch are marked.tuning/test_tuning_template.pyare markedgfx950. The toy family namesgfx950in 33 fixed labels. The tuning mechanics do not depend on the arch. Parametrizing needs about 30 label changes. Reviewers: say if you prefer parametrization.runtime,tools,analysis,numeric.comgr,device_info, arch-domain artifact, LDS registry and b32 LDS profile tests run on both archs.tf32test and thef64MFMA test are marked. Each reason states the difference.test_lds_profile_gfx942.pyandtest_lds_profile_gfx950.pytest their own profile only. Every test there is marked. The cases that both profiles share are in the newtest_lds_profile_cdna_common.py, parametrized over both archs.test_f64_gemm_rejects_unsupportedruns on both archs with per-arch messages and LDS caps. The fp64 pad budget test, themoefp8 K=128 catalog test, the gfx942lds_swizzlenumeric test and fivedsl_probestests are marked.Behavior changes to check
gfx950before. They now also run on agfx942runner. They passed on onegfx942device.test_dispatch_gfx950_requestis renamedtest_dispatch_cdna_request.How this was tested
core/test_example_parity.py::TestEveryRegisteredKernelBuilds. That pair builds every kernel on every arch and is too slow for a local run.llvm20(rocm7.1.1),llvm22(rocm7.2) andllvm23(rocm10.1_therock): 473 passed, 10 skipped, 0 failed on the 27 files at the merge commit. The last commit's 4 files: 56 passed, 26 skipped, 0 failed on each flavor. The skips need a GPU. The containers have none.gfx942. Thegfx950cases ran without agfx950device.ruff checkwithout--fix: no new finding on the changed files. Pre-commit passes.arch_specific, scope of AICK-2822: unmarked single-arch tests go from 175 ondevelopto 7. The 7 are scan false positives (an arch name in a label, comment or docstring). Marked tests go from 2 to 78. Tests that run on both archs go from 28 to 145.Review follow-up
COVERED_ARCHESinrocke.tests.arch_marks, replaces the per-file copies of thegfx942andgfx950pair.gfx942only.test_support.pyderives the 32x32 warp tile from the MMA catalog.device_infotests and threecomgrtests that only changed a label run on one arch again.Not done
gfx950hardware run.Summary — For AI reviewers
Change surface
30 test files, one of them new (
tests/analysis/test_lds_profile_cdna_common.py). No emitter,core,helpers,instancesorlibrary/kernelsfile changes. The byte-identity gate is not affected.Properties to verify
subTestloop, so agfx942failure does not hide agfx950case.arch_specificcall states a reason that matches the code under test.gfx1151,gfx1250,gfx90a,gfx1201) are unchanged.Where to look first
gemm/test_fp16_rcr.py: per-arch MFMA intrinsic table.gemm/test_split_k_wgrad.py: per-arch default group counts.tuning/test_tuning_template.py: the_toy_archmarker.tools/test_arch_domain_artifact.py:ARCHclass attribute and*Gfx950Testsubclasses.🤖 Generated with Claude Code