Skip to content

fix(rocke): make static ISA analysis work on RDNA and gfx12 - #13965

Merged
cgmillette merged 19 commits into
developfrom
users/juzoka/rocke-rdna-isa-analysis
Oct 29, 2026
Merged

cgmillette merged 19 commits into
developfrom
users/juzoka/rocke-rdna-isa-analysis

Conversation

@JohnUzoka

@JohnUzoka JohnUzoka commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

rocKE's static ISA analysis (rocke.analysis.parse_isa) only recognizes CDNA instruction names.
On gfx11/gfx12 it reports zero matrix ops, zero global loads and zero LDS reads, double-counts
gfx12 split barriers, and misses gfx12 split memory waits. The runbook's dsl_probes also build or
lower every kernel for gfx950 regardless of the requested arch, so gfx942/gfx90a results describe
a gfx950 kernel and gfx11/gfx12 kernels fail to build. The static-inspection step of the runbook
therefore gives no usable signal on RDNA.

Technical Details

  • parse_isa:
    • count v_wmma/v_swmmac (new wmma), global_load/global_store/global_load_lds, and
      spills (scratch_load/scratch_store)
    • count gfx11+ ds_load/ds_store as LDS reads/writes
    • count a gfx12 split barrier (s_barrier_signal + s_barrier_wait) once
    • count gfx12 s_wait_*cnt as memory waits; s_wait_alu gets its own field
    • keep WMMA out of VALU and waits/barriers out of SALU
    • existing CDNA fields are unchanged; global_* was not counted on any arch before
  • ResourceInfo.max_flat_workgroup_size replaces workgroup_size_hint, which never held a size
    (None for code objects, the WGP-mode flag in assembler text).
  • compare_variant_reports: add wg_bound (the declared max_workgroup_size),
    wg_launch (the real threads per workgroup, from the new optional
    VariantReport.launch_block_size; None when not given) and wg_compiled
    (the size the compiler budgeted for). A compiled size above the bound means
    LLVM ignored the amdgpu-flat-work-group-size attribute; above the launch
    size, the register budget is smaller than the launch needs.
  • dsl_probes compile for the requested arch:
    • probe_isa_inspect.py: headline counts come from parse_isa; compile for mcpu; gfx12 wait
      patterns keep the counter name.
    • probe_occupancy.py: compile for arch.name (caps exist for CDNA only).
    • probe_lowering_compare.py: both the LLVM-direct and the HIP-debug side lower for arch.
    • probe_config_sweep.py, probe_intrinsic_counts.py: new arch parameter (default gfx950).
    • probe_intrinsic_counts.py: count WMMA/SWMMAC intrinsics; the 16x16x16 f16/bf16, 32x32x8 f16
      and 4x4x4 f16 MFMA patterns never matched (pre-gfx950 intrinsic names have no dot before the
      type) and now do.
    • A kernel that needs an intrinsic the target can't lower fails that one entry instead of
      aborting the process inside LLVM or reporting results for an unsupported target. All five
      probes, including probe_intrinsic_counts, raise on ArchDomainWarning per entry; later
      entries still run and the caller's warning filter is restored.
  • The attention demo driver (library/builders/common/dsl_probe_attention_demos.py) forwards
    --arch to all five demos. --arch accepts any known_arches() target; only occupancy
    needs resource caps, so it alone rejects targets without them, with a CLI error.
  • No change to emitted IR.

Not in scope: tensor_load_to_lds (gfx1250) is not counted; transpose loads have no counter of
their own; probe_occupancy has no RDNA/wave32 resource caps.

Test Plan

  • New unit tests from verbatim gfx1201 llvm-objdump lines and llvm-readelf --notes lines.
  • New tests for the probes (platform/tests/tools/test_dsl_probes.py,
    library/tests/test_dsl_probe_attention_demos.py): every changed probe
    builds for the requested target and fails per entry when it can't; the
    intrinsic and ISA counters match MFMA/WMMA names and gfx12 disassembly;
    the attention demo forwards --arch. They fail against develop's probes,
    and skip when the dsl_docs tools are not installed.
  • platform/tests/run_all.py (Tier 1) on ROCm 10.2 (clang 24), on this branch and on develop
    at the same commit, each in a fresh TMPDIR.
  • Each changed probe compared before/after on the same inputs: gfx950 (the attention demo's
    kernels, GEMMs) for identical output, and every other known target through the demo CLI.
    probe_lowering_compare was run with real hipcc.
  • RDNA/gfx12 parse_isa counts compared with an independent tally of llvm-objdump mnemonics.

Test Result

  • New tests fail without this change and pass with it.
  • Tier 1: relative-path guard, byte-identity and arch-domain gates green; ctest passes; pytest
    fails the same pre-existing set on this branch and on develop. The IR-validity gate is
    UNVALIDATED on both (no llvm24 flavor for ROCm 10's clang).
  • gfx950 probe output is unchanged (the attention demo's isa_inspect only reorders rows with
    equal counts). For any other target each probe compiles or lowers for that target; kernels that
    can't build for it fail per entry, and valid CDNA/RDNA/gfx12 kernels still produce results.
  • RDNA/gfx12 counts match the independent tally.

JIRA ID: AICK-2653

parse_isa only recognized CDNA instruction names, so on gfx11/gfx12 it
reported zero matrix ops, zero loads and zero LDS reads, double-counted
gfx12 split barriers and missed gfx12 split memory waits.

parse_isa:
- count v_wmma/v_swmmac (new `wmma`), global_load/global_store and
  global_load_lds, and scratch_load/scratch_store (spills)
- count gfx11+ ds_load/ds_store as LDS reads/writes
- count a gfx12 split barrier (s_barrier_signal + s_barrier_wait) once
- count gfx12 s_wait_*cnt as memory waits; s_wait_alu gets its own field
- keep WMMA out of VALU and waits/barriers out of SALU

global_load/global_store were not counted on any arch before; existing
CDNA fields are unchanged.

ResourceInfo: replace workgroup_size_hint, which never held a size, with
max_flat_workgroup_size from the code-object metadata.
compare_variant_reports adds wg_launch and wg_compiled; a compiled bound
above the launch size means LLVM ignored the flat-work-group-size
attribute and budgeted registers for a larger workgroup.

probe_isa_inspect: take headline counts from parse_isa instead of a
separate CDNA-only classifier, and compile for `mcpu` (it always built
for gfx950, so gfx11/gfx12 kernels failed to build). CDNA output is
unchanged; gfx12 wait patterns keep the counter name.
@JohnUzoka JohnUzoka self-assigned this Oct 19, 2026
@JohnUzoka
JohnUzoka requested a review from a team as a code owner October 19, 2026 21:40
@therock-pr-bot

therock-pr-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

✅ All Checks Passed — Ready for Review

Check Status Details
📝 PR 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.

🙋 Wish to Override Policy?

@therock-pr-bot

Copy link
Copy Markdown

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

@JohnUzoka
JohnUzoka marked this pull request as draft October 19, 2026 22:16
probe_occupancy, probe_lowering_compare, probe_config_sweep and
probe_intrinsic_counts built or lowered every kernel for gfx950 whatever
target was requested, so gfx942/gfx90a results described a gfx950 kernel
and gfx11/gfx12 kernels failed to build or lower.

- probe_occupancy: compile for arch.name (caps exist for CDNA only)
- probe_lowering_compare: LLVM-direct side compiles for `arch`, like the
  HIP side already did
- probe_config_sweep, probe_intrinsic_counts: new `arch` parameter,
  default gfx950
- probe_intrinsic_counts: count WMMA and SWMMAC intrinsics

gfx950 output is unchanged.
…ntrinsics

Now that the dsl_probes compile for the requested arch, a kernel that needs
an intrinsic the target cannot lower (e.g. a gfx950-only MFMA built for
gfx942) emits ArchDomainWarning and then aborts the whole process inside
LLVM, so the per-entry BUILD-FAIL handling never runs.

probe_isa_inspect, probe_occupancy, probe_lowering_compare and
probe_config_sweep now treat ArchDomainWarning as an error around
compile_kernel. The warning only fires on a measured, definite negative,
so the entry fails with a message naming the intrinsic and the run
continues. Kernels that build are unaffected.
…counts

LLVM names the older MFMA intrinsics without a dot before the type
(mfma.f32.16x16x16f16, mfma.f32.32x32x8f16, mfma.f32.16x16x16bf16.1k),
while the gfx950 ones have it (mfma.f32.16x16x32.f16). The 16x16x16 f16,
16x16x16 bf16, 32x32x8 f16 and 4x4x4 f16 patterns required the dot and
never matched; make it optional. gfx950 counts are unchanged.
…ested arch

compile_hip_backend passed arch to hipcc but not to lower_kernel_to_hip,
so the HIP source was generated for gfx950 and gfx11/gfx12 kernels failed
before hipcc ran. gfx950 output is unchanged.
@JohnUzoka
JohnUzoka marked this pull request as ready for review October 20, 2026 21:31
@cgmillette

Copy link
Copy Markdown
Contributor

Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max

PR #13965 — make static ISA analysis work on RDNA and gfx12 — 🟢 First-round: no closer look needed — counts verified against real gfx1151 / gfx1201 code objects

Prior item Status
Reviewers 🟢 None yet — no reviews or threads
Bots / CI 🟢 Policy bot, pre-commit, clang-tidy pass; TheRock CI hipkernelprovider green on Linux gfx94X and Windows gfx110X (both shards each)
Our checks 🟢 Merges cleanly with develop (51 behind); no workgroup_size_hint reader remains anywhere (ran). Compiled a WMMA kernel (matmul_nbits large_n) for gfx1151, and its LDS-staged variant for gfx1201, with an LLVM 24 toolchain, then tallied the llvm-objdump mnemonics by hand: every new or changed parse_isa counter matches. On gfx1201 that is LDS reads 12 / writes 66 (develop: 0 / 0), split barriers 3 (develop: 6), memory waits 28 (develop: 3), and 16 WMMA kept out of VALU; max_flat_workgroup_size reads the 128-lane launch block on both targets (ran). The library tests that consume parse_isa / ResourceInfo (attention-backward resources and counted sync, KDA decode resources, occupancy calibration): 34 failed / 1,893 passed on both the merge and develop — no change (ran). The PR's new tests pass on the merge; rule_scan clean (ran)

Net-new: none.

Utility: 🟢 Positive — the static-inspection step now reports real matrix, memory, LDS, barrier and wait counts on RDNA / gfx12 instead of zeros and double counts.


Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted

First-round review: a local qwen3.6 model made the independent first pass; the orchestrator (Claude Opus 5.5) verified it — merge simulation with develop, parse_isa against hand-tallied gfx1151 / gfx1201 disassembly with develop as the before-picture, and the library consumers on the merge vs develop — and owns this merge-worthiness call. It flags whether a closer look is needed; it is not an approval or a rejection.

@CongMa13

Copy link
Copy Markdown
Contributor

I reviewed this PR again. The following review threads are still unresolved, or comments have no author reply:

If you have already fixed these, please reply on each comment to say so and resolve the threads. Please request my review again once all comments and threads are resolved.

@JohnUzoka

Copy link
Copy Markdown
Contributor Author

No changes needed from the first-round review: the counts match my own checks (independent mnemonic tally on gfx1151/gfx1201/gfx1250, and the TESTING.md Tier 1 gate on ROCm 10 shows the same pre-existing failures on this branch and on develop). The branch merges cleanly with develop

@JohnUzoka
JohnUzoka requested a review from CongMa13 October 22, 2026 16:58

@CongMa13 CongMa13 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.

I found two actionable issues in the requested-architecture probe path; details are in the inline comments.

…orted histograms

Review follow-ups:

- dsl_probe_attention_demos.py forwards --arch to the config_sweep and
  intrinsic_counts demos; both previously used the probes' gfx950 default.
  --arch now accepts every known_arches() target. Only occupancy needs
  resource caps, so it alone rejects targets missing from ARCH_BY_NAME, with
  a CLI error instead of a KeyError.
- probe_intrinsic_counts promotes ArchDomainWarning to an error per entry,
  like the other probes, so a kernel the target can't lower reports
  LOWER-FAIL instead of a histogram for an unsupported target. Later
  entries still run, and the caller's warning filter is restored.
- README: document both behaviors and the HIP side's arch argument.
- Tests: CLI target forwarding/choices (library) and per-entry
  LOWER-FAIL with real lowering (platform). Both skip when the dsl_docs
  tools are not installed.
@JohnUzoka
JohnUzoka requested a review from a team as a code owner October 22, 2026 21:37
@github-actions github-actions Bot added the rocke-lib: attention Touches rocKE library attention/FMHA kernels label Oct 22, 2026
@JohnUzoka
JohnUzoka requested a review from CongMa13 October 22, 2026 21:46

@CongMa13 CongMa13 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.

I found one actionable issue in the new workgroup comparison.

compare_variant_reports labelled KernelDef.max_workgroup_size as wg_launch.
That value is the declared upper bound the flat-work-group-size attribute
is lowered from (256 by default), not the launch size, so a kernel launched
with fewer threads showed launch == compiled and hid the oversized register
budget the column was meant to flag.

- The row now has wg_bound (the declared bound), wg_launch (the actual
  threads per workgroup, None unless the caller supplies it) and
  wg_compiled (the size the compiler budgeted for).
- VariantReport gains an optional launch_block_size, also accepted by
  from_artifact and included in as_dict.
- Tests cover a bound-only report (wg_launch stays None) and a kernel left
  at the 256 default but launched with 64 threads.
…_probe

The probe changes were only checked by hand before. Add host-only
regressions in platform/tests/tools/test_dsl_probes.py:

- probe_isa_inspect, probe_occupancy, probe_lowering_compare and
  probe_config_sweep compile for the requested target and fail one entry
  (not the whole run) when the target can't lower the kernel. Driven with
  a gfx942 kernel that needs ds.read.tr16.b64, so each entry fails during
  lowering and no compiler runs.
- probe_intrinsic_counts: the per-entry failure test moves here from
  test_probe_intrinsic_counts.py.
- count_intrinsics matches the pre-gfx950 MFMA names (no dot before the
  type) and WMMA/SWMMAC, using names rocKE's lowering emits.
- categorize_isa counts verbatim gfx12 disassembly (WMMA, global, scratch,
  ds_load/store, split waits and barriers) and keeps gfx12 wait names.

All seven fail against develop's probes and pass with this branch. They
skip when the dsl_docs tools are not installed.
Like the WaveScope sidecar and LDS analyzer tests, it loads tools from the dsl_docs source tree, which is not installed.
@JohnUzoka
JohnUzoka requested a review from CongMa13 October 23, 2026 17:53
@cgmillette

Copy link
Copy Markdown
Contributor

Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max

PR #13965 — make static ISA analysis work on RDNA and gfx12 — 🟢 Follow-up: no closer look needed — all three of CongMa13's items are fixed with tests, the counts we checked last time are untouched, and CI is green at head

Prior item Status
Ours (10-21): parse_isa counts match hand-tallied gfx1151 / gfx1201 disassembly 🟢 Still holds: commits 1–6 are unchanged (range-diff), and the new commits do not touch parse_isa (ran)
CongMa13 (10-22) P2: the attention demo drops --arch, so its sweep and intrinsic counts use the gfx950 default 🟢 FIXED in 97bb79f7: the demo forwards --arch to both and takes its choices from known_arches(); only the occupancy probe, which needs caps, rejects targets without them. Its tests pass (ran)
CongMa13 (10-22) P2: probe_intrinsic_counts treats an ArchDomainWarning as success 🟢 FIXED in 97bb79f7: that entry now reports LOWER-FAIL with no histogram, later entries still run, and the caller's warning filter is restored. Its real-lowering test passes (ran)
CongMa13 (10-23) P2: the report shows max_workgroup_size, the declared bound, as the launch size 🟢 FIXED in 1a6bd4eb: the report now shows wg_bound and the actual wg_launch separately (launch_block_size is optional). The new report tests pass on the merge (9 vs develop's 6) (ran) and in all four TheRock shards at head (read)
Bots / CI 🟢 Green at head 9d142986: TheRock Multi-Arch (all four Test hipkernelprovider shards), ASAN and the hipDNN superbuilds (read)
Our checks 🟢 Range-diff from e66667d0: commits 1–6 unchanged and 4 new; the rest are develop merges (ran). On a merge with today's develop: the new and changed probe tests pass (24), as do the report tests above. The merge is clean (75 behind); rule_scan is clean (ran)
# Sev file:line Finding
N1 🟡 library/tests/test_dsl_probe_attention_demos.py The new demo tests, which hold CongMa13's --arch fix, are in no CTest list, so CI never runs them. (tests/tools/test_dsl_probes.py stays source-only by design: 9d142986 keeps it out of the install because it loads tools from the dsl_docs tree.) → add the demo test file to a library CPU lane.

Utility: 🟢 Positive — the static-inspection step now reports real matrix, memory, LDS, barrier and wait counts on RDNA / gfx12. The probes honour the requested target, and the report no longer passes a bound off as the launch size.


Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted

Follow-up review: a local qwen3.6 model made the independent first pass. The orchestrator (Claude Opus 5.5) verified it. The checks were a range-diff against the head we reviewed, the new and changed probe and report tests on a merge with today's develop and on develop, a check of their CTest enrollment, and the CI logs at head. The orchestrator owns this merge-worthiness call. It flags whether a closer look is needed; it is not an approval or a rejection.

@CongMa13

Copy link
Copy Markdown
Contributor

I reviewed this PR again. The following review threads are still unresolved, or comments have no author reply:

If you have already fixed these, please reply on each comment to say so and resolve the threads. Please request my review again once all comments and threads are resolved.

@JohnUzoka

Copy link
Copy Markdown
Contributor Author

Checked with a real cmake --install: the dsl_docs probes aren't installed (no dsl_probes dir, no probe_*.py), and the demo driver imports them at load time, so the driver itself can't run in the installed tree. Run there, this test skips all 17 cases, so enrolling it in a CTest lane would add a permanently skipped entry rather than coverage. It's source-only for the same reason as test_dsl_probes.py (TESTING.md gap G6). It runs from a source checkout and fails against the pre-fix driver.

…-rdna-isa-analysis

# Conflicts:
#	dnn-providers/hip-kernel-provider/rocke/platform/CMakeLists.txt
@cgmillette

Copy link
Copy Markdown
Contributor

Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max

PR #13965 — make static ISA analysis work on RDNA and gfx12 — 🟢 Follow-up: no closer look needed — only a develop merge since our last review, and the author's answer on our N1 checks out, so we retract it

Prior item Status
Ours N1 🟡 (10-24): the demo tests were in no CTest list ⚪ RETRACTED: the author is right (ran). The install does not ship the dsl_probes, and the test's fixture skips when they are missing. With the dsl_docs tree absent, as it is in the installed layout, all 17 cases skip. So enrolling the test would add a permanently skipped entry. It is source-only for the same reason as test_dsl_probes.py
CongMa13 (10-26): our comment had no author reply 🟢 The author replied on 10-26 (read)
Bots / CI 🟢 At e624b4e2, the hipDNN superbuilds fail only on develop's break, which #14412 fixes: KeyError: 'kernel_source' and EveryHandlerReportsSupportsSaving… (read). The other checks pass, apart from one queued gfx110X shard
Our checks 🟢 The range-diff from 9d142986 shows all 10 commits unchanged; the new head is a develop merge (ran). On a clean merge with today's develop, the probe and demo tests pass 24 and the report tests pass 9 (ran). rule_scan is clean (ran)

No net-new findings. The worker flagged return +cats in probe_isa_inspect.py as a stray +. We dropped that: unary + on a Counter is the idiom that drops zero-count buckets.

Utility: 🟢 Positive — the static-inspection step reports real matrix, memory, LDS, barrier and wait counts on RDNA / gfx12, and the probes honour the requested target.


Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted

Follow-up review: a local qwen3.6 model made the independent first pass. The orchestrator (Claude Opus 5.5) verified it. The checks were a range-diff against the head we reviewed and the author's install claim, tested by running the demo tests with the dsl_docs tree absent. They also covered the probe and report tests on a merge with today's develop and the CI logs at head. The orchestrator owns this merge-worthiness call. It flags whether a closer look is needed; it is not an approval or a rejection.

@cgmillette cgmillette 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, pending @CongMa13 's approval

@CongMa13

Copy link
Copy Markdown
Contributor

I reviewed this PR again. The following review threads are still unresolved, or comments have no author reply:

If you have already fixed these, please reply on each comment to say so and resolve the threads. Please request my review again once all comments and threads are resolved.

@CongMa13

Copy link
Copy Markdown
Contributor

I reviewed this PR again. The following review threads are still unresolved, or comments have no author reply:

If you have already fixed these, please reply on each comment to say so and resolve the threads.

@cgmillette

Copy link
Copy Markdown
Contributor

Automated review: Model - qwen3.6:35b-a3b-coding-mtp-q4_K_M, effort: max

PR #13965 — make static ISA analysis work on RDNA and gfx12 (JohnUzoka, AICK-2653) — 🟢 Follow-up: CI red is develop's

Prior item Status
Ours (10-21): parse_isa counts match hand-tallied gfx1151 / gfx1201 disassembly 🟢 Still holds: isa.py and its tests are unchanged. test_parse_isa_rdna_gfx12 passes on the merge (ran) and in CI on gfx94X and gfx110X (read)
CongMa13 (10-22, 10-23) ×3 P2: the demo drops --arch; ArchDomainWarning counts as success; the bound is shown as the launch size 🟢 FIXED 97bb79f7, 1a6bd4eb: unchanged since, threads resolved. On the merge the demo tests (17), the probe tests (7) and the report tests pass (ran)
Ours (10-24) N1 🟡: the demo tests were in no CTest list ⚪ RETRACTED on 10-26 (posted): the install ships no dsl_probes, so the test could only skip there
cgmillette (10-26) APPROVED at e624b4e2: "LGTM, pending CongMa13's approval" 🟡 Stale: predates 1d514276, the develop merge below
CongMa13 (10-27, 10-28): our 10-26 follow-up has no author reply 🟡 OPEN: nothing to fix. That post has no open items (it retracted our N1 and found nothing new), so a one-line reply from the author should clear the check. CongMa13's review is still pending (read)
AnaghaRaoAMD (10-28) APPROVED at 1d514276 🟢 Current: given at head (read)
Bots / CI 🟢 Every failure comes from develop or a flake. Policy bot, pre-commit, clang-tidy and the hipDNN superbuild pass. TheRock Multi-Arch built 1d514276 on develop 2a5d4915 (10-27), and all four hipkernelprovider shards fail in all 5 attempts. gfx94X ×2 fail only rocke_differential_golden_ll / _canonical, on exactly the stale configs of #14474 (target_intrinsics, moe_fused_mega_fp8), which #14501 re-blessed. gfx110X ×2 fail those plus the Windows TestGfx1151WmmaAttentionDecodePacks census, which #14553 fixed; in attempts 4 and 5 one shard also hit a one-off timeout. Both fixes landed after 2a5d4915, and re-runs reuse that build, so a develop merge is what clears it. The PR's new parse_isa and report tests pass on both arches (read)
Our checks 🟢 The only change since our 10-26 review is the develop merge 1d514276. Its hand-resolved conflict in platform/CMakeLists.txt is comment-only: it keeps develop's new wording and the PR's test_dsl_probes.py exclusion, but misspells dsl_docs as dsl_doc. The PR's diff in the other 12 files is identical to the one we reviewed (ran). The merge with today's develop is clean (47 behind / 18 ahead), and nothing on develop reads the removed workgroup_size_hint. On the merge the native build and ctest (33/33) pass, and so does the differential golden (ll on all three flavors, and canonical). The PR's three test files pass 379; the 14 skips need torch and are outside the PR's tests (ran). Rules 1–3 clean, no links added (ran)

Net-new: none.

Utility: 🟢 Positive — real RDNA / gfx12 ISA counts; probes honour the requested target.


Legend: 🔴 blocking · 🟠 should-fix · 🟡 minor nit · 🟢 info/good · ⚪ retracted

Follow-up review: a local qwen3.6 model made the independent first pass. The orchestrator (Claude Opus 5.5) verified it. The checks were the PR's own diff at the old and new heads, including the hand-resolved CMake conflict, and a merge with today's develop: native build and ctest, the differential golden checks that CI runs, and the PR's three test files. They also covered the CI logs of all five attempts at head, traced to the develop commit that CI built on. The orchestrator owns this merge-worthiness call. It flags whether a closer look is needed; it is not an approval or a rejection.

@cgmillette
cgmillette enabled auto-merge (squash) October 29, 2026 19:59
@cgmillette
cgmillette merged commit 2304e8d into develop Oct 29, 2026
97 checks passed
@cgmillette
cgmillette deleted the users/juzoka/rocke-rdna-isa-analysis branch October 29, 2026 20:00
@assistant-librarian

Copy link
Copy Markdown
Contributor

TheRock Submodule Bump Activity

Newest first

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants