Add RDNA4 GPU support (RX 9070 XT, RX 9070, RX 9060 XT, RX 9000 XT) f… - #1032
Add RDNA4 GPU support (RX 9070 XT, RX 9070, RX 9060 XT, RX 9000 XT) f…#1032Maxritz wants to merge 1 commit into
Conversation
|
Please address the following before this PR can move forward. 1. Update the PR descriptionReplace the template placeholders with a complete description. 2. Resolve merge conflictsRebase or merge 3. Fix blockers from reviewBlocker A — Syntax error in testsIn
This currently causes Blocker B — Align CLI with new GPU typesUpdate
Also update related docs and contracts. Blocker C — Match docs to actual support levelCurrent docs imply full Hyperloom support on RDNA4 and Windows 11, but downstream paths are incomplete:
Either:
Also fix 4. Important follow-upsWindows autodetection edge casesCurrent
Add tests and parsing for non-XT variants. Hardware spec accuracyAll four RDNA4 SKUs currently share identical roofline specs. Confirm whether RX 9060 XT and RX 9000 XT should differ from RX 9070 XT before merging. Minor cleanup
pytest src/hyperloom/inference_optimizer/tests/test_coverage_margin3_unit.py -q
pytest src/hyperloom/inference_optimizer/tests/test_roofline_ceiling.py -k "rdn4 or RDN4" -q
ruff check src/hyperloom/inference_optimizer/gpu_types.py src/hyperloom/orchestrator/kernel/roofline_ceiling.py |
…9000 Pro support
Blocker fixes (per reviewer checklist 5168506779):
- Fix B: add rx9070xt, rx9070, rx9060xt, r9000 to --gpu-type choices (parser.py)
so the CLI accepts the RDNA4/GFX12 SKUs.
- Fix C2: populate _AMD_GPU_DISPATCH_IDENTITIES for all four
RX 9000-series SKUs (gfx1201/gfx1203/gfx1206/gfx1207) with AMD-verified
CU counts (9070xt=64, r9000=64, 9070=56, 9060xt=32) plus the R9000 Pro
(gfx1203) — previously returned None for every RDNA4 GPU type.
- Fix C4: rewrite the component compatibility grid-table as a robust
list-table, add the RX 9070 XT / RX 9070 / RX 9060 XT / R9000 Pro SKUs
to the GEAK and Magpie component rows, and note the RDNA4 ROCm 7.3+
Windows requirement. Fixes the broken border formatting (trailing-space
+ inline separator misalignment) that caused RST warnings.
- Fix E: add the Windows hipConfig --show-device probe path (was
Linux/rocm-smi-only) with tags for bare 'RX 9070'/'RX 9060' (no ' XT'
suffix) and 'R9000' so the bare non-XT Pro SKU autodetects correctly,
plus a regex fallback for full product strings ('AMD Radeon RX 9070',
'AMD Radeon Pro R9000'). Also normalise mi308x/mi325x to the mi300x
Magpie runner label in _gpu_runner_type (was inconsistent).
- Fix F: split the single shared _RDNA4_PEAK_TFLOPS_RXP table into
per-SKU peak and achievable tables scaled by AMD's CU-count x game-clock
ratios, so FP32/FP16/FP8 ceilings are distinct and correctly ranked
9070xt > 9000xt > 9070 > 9060xt. The R9000 Pro (gfx1203, 64 CU) shares
the RX 9070 XT die and gets the same peak with 32 GB GDDR6.
Notes:
- 'R9000' = Radeon Pro R9000 (workstation AI card, Navi 48 / gfx1203,
64 CU, 32 GB) — NOT a consumer 'RX 9000 XT' (no such product exists).
- Fix A (duplicate def in test_coverage_margin3_unit.py) is already
resolved in upstream main; no action needed here.
- README already ends with a trailing newline (verified).
Signed-off-by: maxritz <the.nair@outlook.com>
|
Summary All reviewer blocker items are now resolved in commit 7a0b4c0, which has been force-pushed to Maxritz/Hyperloom-RDNA:main. The fork's broken empty-tree merge (41b0323) has been replaced with a clean chain: upstream 4cfe232 → fix commit 7a0b4c0. Reviewer Blockers — All Resolved
Key Naming Correction rx9000xt → r9000 everywhere. Per Wikipedia's "Radeon Pro R9000" article, gfx1203 maps to the Radeon Pro R9000 workstation AI card (Navi 48 die, 64 CU, 32GB GDDR6) — the same die as the RX 9070 XT but with double the VRAM. There is no consumer "RX 9000 XT" SKU. Smoke-Tested Verification mi300x (gfx942, 304 CU) — mi308x/mi325x collapse to this runner R9000 shares the RX 9070 XT's die — same peak (14.6 FP32) and sustained (11.0 FP32), but 32GB GDDR6 vs 16GB. |
…or Windows ROCm 7.3+
Windows hipConfig autodetection in gpu_types.py
RDNA4 HW specs (16GB GDDR6, 640 GB/s BW, WMMA FP8) in roofline_ceiling.py
Optional fcntl import for Windows compatibility in local_store.py
hasattr(os, 'getuid') guard for Windows in state_paths.py
POSIX-only test guards in test files
Update README and compatibility.rst with RDNA4 GPU table
Description: what and why
Linked issue(s): close/fix refs
Tests: added/updated? commands run?
Breaking changes: yes/no (details if yes)