Skip to content

Commit 714e65d

Browse files
bghimireamdclaudemousdahl-amdadickin-amd
authored
feat(integration-tests): initial support-claim population (#11658)
JIRA ID : ALMIOPEN-2425 ## Summary Populates RFC 0015 support-claim sidecars across **quick, standard, and full** tiers for gfx90a/linux, gfx942/linux, and gfx1151/windows. **65 sidecars total — 41 quick, 8 standard, 16 full.** All carry real engine claims; no source-only graphs, no empty files. ## Scope note An earlier revision of this description said the standard and full tiers were deferred. That was stale — both tiers are in this change set and are reviewed here. Per-tier evidence is below. ## Per-tier breakdown | Tier | Sidecars | Case-claims | Engines | Arch/platform cells | |---|---|---|---|---| | quick | 41 | 3990 | HIP_MLOPS (27), MIOPEN (24), MIOPEN_DET (5), HIPBLASLT (4), ASM_SDPA (4) | gfx942/linux 66, gfx1151/windows 69, gfx90a/linux 54 | | standard | 8 | — (single-graph) | ASM_SDPA (8) | gfx942/linux 8 | | full | 16 | 3420 | HIP_MLOPS (14), MIOPEN (13), MIOPEN_DET (2) | gfx942/linux 33, gfx1151/windows 29, gfx90a/linux 25 | Standard-tier sidecars are all single-graph SdpaFwd variants (bf16 / hd128+hd192 / causal+nomask / Gqa+Medium), claimed by ASM_SDPA_ENGINE on gfx942 only. Full-tier sidecars are Batchnorm family (11), ConvolutionFwdPointwise (2), Layernorm (2), RMSNormBackward (1). ## Details **Data:** Mode-B write runs per arch, one per plugin. Quick tier landed in `populate initial gfx90a` / `populate gfx942` / `populate gfx1151`; standard+full landed in their own dedicated commits (`populate gfx90a standard+full tier`, `populate gfx942 standard+full tier`). 6 quick sidecars are gfx942-only (4 SdpaFwd + 2 ConvolutionFwdPointwise where gfx942 supports graphs gfx90a does not). **Code fix:** Guards both single-graph and sweep branches in `SupportClaimWriter.cpp` — if the file doesn't already exist and the merged claims are empty, skip writing. Adds `filesSkipped` to `WriteSummary` and two unit tests. **Stale-claim cleanup:** 24 RMSNormBackward bfp16 case IDs removed from the quick tier — a TOML skip was added after the authoring run, so `--write-support-claims` would no longer produce them. ## Verification `verify_support_claims.py` exits 0 over the **entire** bundle tree — all three tiers, not just quick. Per RFC 0015 §9.3 that covers, for every sidecar including the 16 full-tier ones: - Schema: `version == 1`, arch → platform tokens drawn from {linux, windows}, sweep groups have non-empty `cases` + `support` - Sweep case ids: every claimed id exists in the sibling `sweep.json`, no duplicate id per engine - `enforcement_level`: no unrecognised value on a graph carrying a non-empty claim - Orphaned sidecars: no `X.support.json` without a sibling `X.json`; no `support.json` outside a sweep root Idempotency (re-running the write passes → `written: 0`, empty diff) and the unit-test counts below were confirmed on the authoring runs that produced this data; they have not been re-run since the latest develop merge. ## Stacking Stacks on #10594 (support-claim authoring infrastructure). Latest `develop` merged in. ## Deferred - Additional arches (MI350 / etc.) — same commands on the target hardware - Windows on gfx90a / gfx942 (gfx1151/windows is covered here) ## Test plan - [x] Schema verifier passes across all three tiers - [x] Idempotency confirmed on the authoring runs - [x] Unit tests pass (15 writer + 4 round-trip) - [ ] CI 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: mousdahl-amd <mitch.ousdahl@amd.com> Co-authored-by: Adam Dickin <adam.dickin@amd.com>
1 parent 320d658 commit 714e65d

65 files changed

Lines changed: 9377 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
{
2+
"claims": {
3+
"HIP_MLOPS_ENGINE": [
4+
{
5+
"cases": [
6+
"16_3_8_14_14_bfp16_ncdhw",
7+
"16_3_8_14_14_bfp16_ndhwc",
8+
"16_3_8_14_14_fp16_ncdhw",
9+
"16_3_8_14_14_fp16_ndhwc",
10+
"16_3_8_14_14_fp32_ncdhw",
11+
"16_3_8_14_14_fp32_ndhwc",
12+
"1_3_14_14_bfp16_nchw",
13+
"1_3_14_14_bfp16_nhwc",
14+
"1_3_14_14_fp16_nchw",
15+
"1_3_14_14_fp16_nhwc",
16+
"1_3_14_14_fp32_nchw",
17+
"1_3_14_14_fp32_nhwc",
18+
"2_3_1_1_bfp16_nchw",
19+
"2_3_1_1_bfp16_nhwc",
20+
"2_3_1_1_fp16_nchw",
21+
"2_3_1_1_fp16_nhwc",
22+
"2_3_1_1_fp32_nchw",
23+
"2_3_1_1_fp32_nhwc",
24+
"2_3_2_4_4_bfp16_ncdhw",
25+
"2_3_2_4_4_bfp16_ndhwc",
26+
"2_3_2_4_4_fp16_ncdhw",
27+
"2_3_2_4_4_fp16_ndhwc",
28+
"2_3_2_4_4_fp32_ncdhw",
29+
"2_3_2_4_4_fp32_ndhwc",
30+
"2_3_3_1_1_bfp16_ncdhw",
31+
"2_3_3_1_1_bfp16_ndhwc",
32+
"2_3_3_1_1_fp16_ncdhw",
33+
"2_3_3_1_1_fp16_ndhwc",
34+
"2_3_3_1_1_fp32_ncdhw",
35+
"2_3_3_1_1_fp32_ndhwc",
36+
"4_64_7_7_bfp16_nchw",
37+
"4_64_7_7_bfp16_nhwc",
38+
"4_64_7_7_fp16_nchw",
39+
"4_64_7_7_fp16_nhwc",
40+
"4_64_7_7_fp32_nchw",
41+
"4_64_7_7_fp32_nhwc",
42+
"8_16_28_28_bfp16_nchw",
43+
"8_16_28_28_bfp16_nhwc",
44+
"8_16_28_28_fp16_nchw",
45+
"8_16_28_28_fp16_nhwc",
46+
"8_16_28_28_fp32_nchw",
47+
"8_16_28_28_fp32_nhwc"
48+
],
49+
"support": {
50+
"gfx1151": [
51+
"windows"
52+
],
53+
"gfx90a": [
54+
"linux"
55+
],
56+
"gfx942": [
57+
"linux"
58+
]
59+
}
60+
}
61+
],
62+
"MIOPEN_ENGINE": [
63+
{
64+
"cases": [
65+
"16_3_8_14_14_bfp16_ncdhw",
66+
"16_3_8_14_14_bfp16_ndhwc",
67+
"16_3_8_14_14_fp16_ncdhw",
68+
"16_3_8_14_14_fp16_ndhwc",
69+
"16_3_8_14_14_fp32_ncdhw",
70+
"16_3_8_14_14_fp32_ndhwc",
71+
"1_3_14_14_bfp16_nchw",
72+
"1_3_14_14_bfp16_nhwc",
73+
"1_3_14_14_fp16_nchw",
74+
"1_3_14_14_fp16_nhwc",
75+
"1_3_14_14_fp32_nchw",
76+
"1_3_14_14_fp32_nhwc",
77+
"1_3_14_bfp16_ncl",
78+
"1_3_14_bfp16_nlc",
79+
"1_3_14_fp16_ncl",
80+
"1_3_14_fp16_nlc",
81+
"1_3_14_fp32_ncl",
82+
"1_3_14_fp32_nlc",
83+
"2_3_1_1_bfp16_nchw",
84+
"2_3_1_1_bfp16_nhwc",
85+
"2_3_1_1_fp16_nchw",
86+
"2_3_1_1_fp16_nhwc",
87+
"2_3_1_1_fp32_nchw",
88+
"2_3_1_1_fp32_nhwc",
89+
"2_3_2_4_4_bfp16_ncdhw",
90+
"2_3_2_4_4_bfp16_ndhwc",
91+
"2_3_2_4_4_fp16_ncdhw",
92+
"2_3_2_4_4_fp16_ndhwc",
93+
"2_3_2_4_4_fp32_ncdhw",
94+
"2_3_2_4_4_fp32_ndhwc",
95+
"2_3_3_1_1_bfp16_ncdhw",
96+
"2_3_3_1_1_bfp16_ndhwc",
97+
"2_3_3_1_1_fp16_ncdhw",
98+
"2_3_3_1_1_fp16_ndhwc",
99+
"2_3_3_1_1_fp32_ncdhw",
100+
"2_3_3_1_1_fp32_ndhwc",
101+
"2_64_128_bfp16_ncl",
102+
"2_64_128_bfp16_nlc",
103+
"2_64_128_fp16_ncl",
104+
"2_64_128_fp16_nlc",
105+
"2_64_128_fp32_ncl",
106+
"2_64_128_fp32_nlc",
107+
"4_64_7_7_bfp16_nchw",
108+
"4_64_7_7_bfp16_nhwc",
109+
"4_64_7_7_fp16_nchw",
110+
"4_64_7_7_fp16_nhwc",
111+
"4_64_7_7_fp32_nchw",
112+
"4_64_7_7_fp32_nhwc",
113+
"4_8_56_bfp16_ncl",
114+
"4_8_56_bfp16_nlc",
115+
"4_8_56_fp16_ncl",
116+
"4_8_56_fp16_nlc",
117+
"4_8_56_fp32_ncl",
118+
"4_8_56_fp32_nlc",
119+
"8_16_28_28_bfp16_nchw",
120+
"8_16_28_28_bfp16_nhwc",
121+
"8_16_28_28_fp16_nchw",
122+
"8_16_28_28_fp16_nhwc",
123+
"8_16_28_28_fp32_nchw",
124+
"8_16_28_28_fp32_nhwc"
125+
],
126+
"support": {
127+
"gfx1151": [
128+
"windows"
129+
],
130+
"gfx90a": [
131+
"linux"
132+
],
133+
"gfx942": [
134+
"linux"
135+
]
136+
}
137+
}
138+
]
139+
},
140+
"version": 1
141+
}
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
{
2+
"claims": {
3+
"HIP_MLOPS_ENGINE": [
4+
{
5+
"cases": [
6+
"16_3_8_14_14_bfp16_ncdhw",
7+
"16_3_8_14_14_bfp16_ndhwc",
8+
"16_3_8_14_14_fp16_ncdhw",
9+
"16_3_8_14_14_fp16_ndhwc",
10+
"16_3_8_14_14_fp32_ncdhw",
11+
"16_3_8_14_14_fp32_ndhwc",
12+
"1_3_14_14_bfp16_nchw",
13+
"1_3_14_14_bfp16_nhwc",
14+
"1_3_14_14_fp16_nchw",
15+
"1_3_14_14_fp16_nhwc",
16+
"1_3_14_14_fp32_nchw",
17+
"1_3_14_14_fp32_nhwc",
18+
"2_3_1_1_bfp16_nchw",
19+
"2_3_1_1_bfp16_nhwc",
20+
"2_3_1_1_fp16_nchw",
21+
"2_3_1_1_fp16_nhwc",
22+
"2_3_1_1_fp32_nchw",
23+
"2_3_1_1_fp32_nhwc",
24+
"2_3_2_4_4_bfp16_ncdhw",
25+
"2_3_2_4_4_bfp16_ndhwc",
26+
"2_3_2_4_4_fp16_ncdhw",
27+
"2_3_2_4_4_fp16_ndhwc",
28+
"2_3_2_4_4_fp32_ncdhw",
29+
"2_3_2_4_4_fp32_ndhwc",
30+
"2_3_3_1_1_bfp16_ncdhw",
31+
"2_3_3_1_1_bfp16_ndhwc",
32+
"2_3_3_1_1_fp16_ncdhw",
33+
"2_3_3_1_1_fp16_ndhwc",
34+
"2_3_3_1_1_fp32_ncdhw",
35+
"2_3_3_1_1_fp32_ndhwc",
36+
"4_64_7_7_bfp16_nchw",
37+
"4_64_7_7_bfp16_nhwc",
38+
"4_64_7_7_fp16_nchw",
39+
"4_64_7_7_fp16_nhwc",
40+
"4_64_7_7_fp32_nchw",
41+
"4_64_7_7_fp32_nhwc",
42+
"8_16_28_28_bfp16_nchw",
43+
"8_16_28_28_bfp16_nhwc",
44+
"8_16_28_28_fp16_nchw",
45+
"8_16_28_28_fp16_nhwc",
46+
"8_16_28_28_fp32_nchw",
47+
"8_16_28_28_fp32_nhwc"
48+
],
49+
"support": {
50+
"gfx1151": [
51+
"windows"
52+
],
53+
"gfx90a": [
54+
"linux"
55+
],
56+
"gfx942": [
57+
"linux"
58+
]
59+
}
60+
}
61+
],
62+
"MIOPEN_ENGINE": [
63+
{
64+
"cases": [
65+
"16_3_8_14_14_bfp16_ncdhw",
66+
"16_3_8_14_14_bfp16_ndhwc",
67+
"16_3_8_14_14_fp16_ncdhw",
68+
"16_3_8_14_14_fp16_ndhwc",
69+
"16_3_8_14_14_fp32_ncdhw",
70+
"16_3_8_14_14_fp32_ndhwc",
71+
"1_3_14_14_bfp16_nchw",
72+
"1_3_14_14_bfp16_nhwc",
73+
"1_3_14_14_fp16_nchw",
74+
"1_3_14_14_fp16_nhwc",
75+
"1_3_14_14_fp32_nchw",
76+
"1_3_14_14_fp32_nhwc",
77+
"1_3_14_bfp16_ncl",
78+
"1_3_14_bfp16_nlc",
79+
"1_3_14_fp16_ncl",
80+
"1_3_14_fp16_nlc",
81+
"1_3_14_fp32_ncl",
82+
"1_3_14_fp32_nlc",
83+
"2_3_1_1_bfp16_nchw",
84+
"2_3_1_1_bfp16_nhwc",
85+
"2_3_1_1_fp16_nchw",
86+
"2_3_1_1_fp16_nhwc",
87+
"2_3_1_1_fp32_nchw",
88+
"2_3_1_1_fp32_nhwc",
89+
"2_3_2_4_4_bfp16_ncdhw",
90+
"2_3_2_4_4_bfp16_ndhwc",
91+
"2_3_2_4_4_fp16_ncdhw",
92+
"2_3_2_4_4_fp16_ndhwc",
93+
"2_3_2_4_4_fp32_ncdhw",
94+
"2_3_2_4_4_fp32_ndhwc",
95+
"2_3_3_1_1_bfp16_ncdhw",
96+
"2_3_3_1_1_bfp16_ndhwc",
97+
"2_3_3_1_1_fp16_ncdhw",
98+
"2_3_3_1_1_fp16_ndhwc",
99+
"2_3_3_1_1_fp32_ncdhw",
100+
"2_3_3_1_1_fp32_ndhwc",
101+
"2_64_128_bfp16_ncl",
102+
"2_64_128_bfp16_nlc",
103+
"2_64_128_fp16_ncl",
104+
"2_64_128_fp16_nlc",
105+
"2_64_128_fp32_ncl",
106+
"2_64_128_fp32_nlc",
107+
"4_64_7_7_bfp16_nchw",
108+
"4_64_7_7_bfp16_nhwc",
109+
"4_64_7_7_fp16_nchw",
110+
"4_64_7_7_fp16_nhwc",
111+
"4_64_7_7_fp32_nchw",
112+
"4_64_7_7_fp32_nhwc",
113+
"4_8_56_bfp16_ncl",
114+
"4_8_56_bfp16_nlc",
115+
"4_8_56_fp16_ncl",
116+
"4_8_56_fp16_nlc",
117+
"4_8_56_fp32_ncl",
118+
"4_8_56_fp32_nlc",
119+
"8_16_28_28_bfp16_nchw",
120+
"8_16_28_28_bfp16_nhwc",
121+
"8_16_28_28_fp16_nchw",
122+
"8_16_28_28_fp16_nhwc",
123+
"8_16_28_28_fp32_nchw",
124+
"8_16_28_28_fp32_nhwc"
125+
],
126+
"support": {
127+
"gfx1151": [
128+
"windows"
129+
],
130+
"gfx90a": [
131+
"linux"
132+
],
133+
"gfx942": [
134+
"linux"
135+
]
136+
}
137+
}
138+
]
139+
},
140+
"version": 1
141+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"claims": {
3+
"HIP_MLOPS_ENGINE": [
4+
{
5+
"cases": [
6+
"1_16_8_112_112_bfp16_ncdhw",
7+
"1_16_8_112_112_bfp16_ndhwc",
8+
"1_16_8_112_112_fp16_ncdhw",
9+
"1_16_8_112_112_fp16_ndhwc",
10+
"1_16_8_112_112_fp32_ncdhw",
11+
"1_16_8_112_112_fp32_ndhwc",
12+
"5_256_4_14_14_bfp16_ncdhw",
13+
"5_256_4_14_14_bfp16_ndhwc",
14+
"5_256_4_14_14_fp16_ncdhw",
15+
"5_256_4_14_14_fp16_ndhwc",
16+
"5_256_4_14_14_fp32_ncdhw",
17+
"5_256_4_14_14_fp32_ndhwc"
18+
],
19+
"support": {
20+
"gfx1151": [
21+
"windows"
22+
],
23+
"gfx90a": [
24+
"linux"
25+
],
26+
"gfx942": [
27+
"linux"
28+
]
29+
}
30+
}
31+
],
32+
"MIOPEN_ENGINE": [
33+
{
34+
"cases": [
35+
"1_16_8_112_112_bfp16_ncdhw",
36+
"1_16_8_112_112_bfp16_ndhwc",
37+
"1_16_8_112_112_fp16_ncdhw",
38+
"1_16_8_112_112_fp16_ndhwc",
39+
"1_16_8_112_112_fp32_ncdhw",
40+
"1_16_8_112_112_fp32_ndhwc",
41+
"5_256_4_14_14_bfp16_ncdhw",
42+
"5_256_4_14_14_bfp16_ndhwc",
43+
"5_256_4_14_14_fp16_ncdhw",
44+
"5_256_4_14_14_fp16_ndhwc",
45+
"5_256_4_14_14_fp32_ncdhw",
46+
"5_256_4_14_14_fp32_ndhwc"
47+
],
48+
"support": {
49+
"gfx1151": [
50+
"windows"
51+
],
52+
"gfx90a": [
53+
"linux"
54+
],
55+
"gfx942": [
56+
"linux"
57+
]
58+
}
59+
}
60+
]
61+
},
62+
"version": 1
63+
}

0 commit comments

Comments
 (0)