Skip to content

Stop reporting unknown GPU archs as MI300X (baremetal) - #1460

Merged
chaojhou merged 1 commit into
mainfrom
fix/mgehre/gpu-label-not-mi300x
Sep 14, 2026
Merged

chaojhou merged 1 commit into
mainfrom
fix/mgehre/gpu-label-not-mi300x

Conversation

@mgehre-amd

Copy link
Copy Markdown
Collaborator

detect_gpu_label() in install_baremetal.sh fell through to MI300X for any
arch outside gfx942/gfx950, so a Strix Halo (gfx1151) host was reported as an
MI300X. The label is substituted into the operator prompt setup
prints as GPU: <label>, so the fabricated part number gets pasted into an
optimization request and forwarded as --gpu-type mi300x.

Use the gfx target for unrecognised archs.

The support for Ryzen AI parts itself will come in a follow-up PR.

Tests: added/updated? commands run?

No automated test: the installer is shell, and exercising detect_gpu_label
from pytest means extracting the function out of the script and stubbing
rocm-smi, which is more harness than the four-line change warrants. Verified
by hand against the real binary instead (below).

shellcheck src/hyperloom/inference_optimizer/assets/install_baremetal.sh
ruff check . && ruff format --check .

shellcheck findings on the installer are byte-identical to main.

Verified on a Ryzen AI Max+ 395 (rocminfo reports gfx1151):

detect_gpu_label <arch> main this branch
gfx1151 MI300X gfx1151
gfx90a MI300X gfx90a
"" (nothing probed) MI300X unknown
gfx942 / gfx950 MI300X / MI355X unchanged

Breaking changes: no

Only the fallback arm changes. gfx942/gfx950 and the rocm-smi product-name path
behave exactly as before.

PR addresses single concern: yes

Linked issue(s): none

Root cause is upstream (Magpie/TraceLens/GEAK/IntelliKit/AgentKernelArena): no

@mgehre-amd
mgehre-amd requested a review from a team as a code owner September 9, 2026 09:37
detect_gpu_label() fell through to "MI300X" for any arch outside
gfx942/gfx950, so a Strix Halo (gfx1151) host was reported as an MI300X.
The label is substituted into the operator prompt that setup prints as
"GPU: <label>", so the fabricated part number gets pasted into an
optimization request and forwarded as --gpu-type mi300x. That selects the
wrong Magpie runner scripts and keys recipe-KB rows to hardware the run
never executed on, quietly making baseline numbers incomparable across
sessions.

Unrecognized architectures now report the probed gfx id, and an
undetectable one reports "unknown". Both are honest values that fail
visibly against the --gpu-type choices instead of resolving to a valid
but wrong MI part number.

Changes:
- The Python-side probe (gpu_types._autodetect_gpu_type) was already
  correct -- it returns None for unmapped archs -- so only the shell
  helper fabricated a label. Deliberately did not add a gfx1151 mapping:
  Hyperloom ships no Magpie runner scripts or aiter kernels for it, so
  claiming support would be a worse lie than the one being removed.
@mgehre-amd
mgehre-amd force-pushed the fix/mgehre/gpu-label-not-mi300x branch from b7449dd to 4dc1479 Compare September 9, 2026 13:23
@chaojhou
chaojhou merged commit 5bfab15 into main Sep 14, 2026
27 checks passed
@chaojhou
chaojhou deleted the fix/mgehre/gpu-label-not-mi300x branch September 14, 2026 09:56
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