Skip to content

Add RDNA4 GPU support (RX 9070 XT, RX 9070, RX 9060 XT, RX 9000 XT) f… - #1032

Open
Maxritz wants to merge 1 commit into
AMD-AGI:mainfrom
Maxritz:main
Open

Add RDNA4 GPU support (RX 9070 XT, RX 9070, RX 9060 XT, RX 9000 XT) f…#1032
Maxritz wants to merge 1 commit into
AMD-AGI:mainfrom
Maxritz:main

Conversation

@Maxritz

@Maxritz Maxritz commented Jul 26, 2026

Copy link
Copy Markdown

…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)

@Maxritz
Maxritz requested a review from a team as a code owner July 26, 2026 05:36
@Maxritz
Maxritz marked this pull request as draft July 26, 2026 05:36
@Maxritz
Maxritz marked this pull request as ready for review August 1, 2026 12:54
@ZhengGong-amd

Copy link
Copy Markdown
Collaborator

Please address the following before this PR can move forward.

1. Update the PR description

Replace the template placeholders with a complete description.

2. Resolve merge conflicts

Rebase or merge main and fix all conflicts cleanly.

3. Fix blockers from review

Blocker A — Syntax error in tests

In src/hyperloom/inference_optimizer/tests/test_coverage_margin3_unit.py, remove the stray duplicate function header:

  • Delete the incomplete test_multi_node_state_paths_resolution_and_migration line.
  • Keep only test_multi_node_state_paths_resolution_and_binding.

This currently causes IndentationError and breaks pytest collection.

Blocker B — Align CLI with new GPU types

Update --gpu-type choices in src/hyperloom/inference_optimizer/cli/parser.py to include:

  • rx9070xt, rx9070, rx9060xt, rx9000xt

Also update related docs and contracts.

Blocker C — Match docs to actual support level

Current docs imply full Hyperloom support on RDNA4 and Windows 11, but downstream paths are incomplete:

  • No Magpie scripts such as sglang_rx9070xt.sh
  • _gpu_runner_type() has no RDNA4 fallback mapping
  • _AMD_GPU_DISPATCH_IDENTITIES has no RDNA4 entries
  • Compatibility matrix still shows IntelliKit, Magpie, and AgentKernelArena as Instinct-only

Either:

  • Narrow docs to roofline and GPU-detection support only, or
  • Add the missing runner mapping, dispatch identity, and component matrix updates for true E2E support.

Also fix docs/compatibility.rst table formatting (duplicate separator rows and column misalignment).

4. Important follow-ups

Windows autodetection edge cases

Current hipConfig tag matching misses plain names such as:

  • RX 9070
  • AMD Radeon RX 9070

Add tests and parsing for non-XT variants.

Hardware spec accuracy

All 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

  • Restore trailing newline in README.md
  • Avoid unrelated whitespace-only edits in CHANGELOG.md
  • Fill PR test plan with commands such as:
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>
@Maxritz

Maxritz commented Aug 6, 2026

Copy link
Copy Markdown
Author

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

Fix Status Details
A (duplicate def in test_coverage_margin3_unit.py) Already resolved in upstream 4cfe232 — inherited
B (--gpu-type choices) Added rx9070xt, rx9070, rx9060xt, r9000 to cli/parser.py:275
C2 (_AMD_GPU_DISPATCH_IDENTITIES) gfx1201→rx9070xt (64 CU), gfx1203→r9000 (64 CU), gfx1206→rx9060xt (32 CU), gfx1207→rx9070 (56 CU)
C4 (docs/compatibility.rst) Converted grid-table → list-table, added RX 9070 XT, RX 9070, RX 9060 XT, R9000 to GEAK + Magpie rows
E (_autodetect_gpu_type) Added Windows hipConfig probe path with tags "Radeon Pro R9000", "RX 9070" (bare, no XT), regex fallback; mi308x/mi325x now correctly normalize to mi300x runner label
F (roofline ceilings) Expanded per-SKU peak (HW_SPECS) + achievable (HW_SPECS_ACHIEVABLE) tables scaled by CU-count × game-clock ratios

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
rx9070xt (gfx1201, 64 CU) fp32_peak=14.6 fp32_sustained=11.0
r9000 (gfx1203, 64 CU) fp32_peak=14.6 fp32_sustained=11.0 ← 32GB GDDR6
rx9070 (gfx1207, 56 CU) fp32_peak=11.0 fp32_sustained=8.3
rx9060xt (gfx1206, 32 CU) fp32_peak=7.7 fp32_sustained=5.8

R9000 shares the RX 9070 XT's die — same peak (14.6 FP32) and sustained (11.0 FP32), but 32GB GDDR6 vs 16GB.

@Maxritz Maxritz closed this Aug 6, 2026
@Maxritz Maxritz reopened this Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants