Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1844,7 +1844,7 @@ exit 0
$nameArchTable = @(
@{ P = "9070 XT|9080"; A = "gfx1201" } # RDNA 4 (RX 9070 XT / 9080)
@{ P = "9070|9060"; A = "gfx1200" } # RDNA 4 (RX 9070 / 9060)
@{ P = "8060S|8050S|8040S|Strix Halo|Ryzen AI Max|AI Max"; A = "gfx1151" } # RDNA 3.5 (Strix Halo: Radeon 8060S/8050S/8040S iGPU, Ryzen AI Max+)
@{ P = "8065S|8060S|8050S|8040S|Strix Halo|Ryzen AI Max|AI Max"; A = "gfx1151" } # RDNA 3.5 (Strix Halo + Gorgon Halo: Radeon 8065S/8060S/8050S/8040S iGPU, Ryzen AI Max / Max+)
@{ P = "890M|880M|860M|840M|Strix Point|Krackan|HX 37[05]|AI 9 HX|AI 9 36[05]|AI 7 35[05]|AI 5 34[05]|AI 7 PRO 35|AI 5 33"; A = "gfx1150" } # RDNA 3.5 (Strix/Krackan Point: Radeon 890M/880M iGPU, Ryzen AI 9 HX 370/375)
@{ P = "RX 7900|RX 7800|RX 7700(?!S)|PRO W7900|PRO W7800|PRO W7700"; A = "gfx1100" } # RDNA 3 desktop/workstation (Navi 31)
@{ P = "RX 7600|RX 7700S|RX 7650|PRO W7600|PRO W7500|PRO V710"; A = "gfx1102" } # RDNA 3 (Navi 33)
Expand Down
6 changes: 3 additions & 3 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1636,7 +1636,7 @@ _maybe_reroute_strixhalo_to_2404() {
# CUDA_VISIBLE_DEVICES=""/-1 and the /proc/driver/nvidia fallback for PATH/timeout gaps.
if _has_usable_nvidia_gpu; then return 0; fi
# Strix APUs show in /proc/cpuinfo; discrete cards don't, so also try WMI. Either reroutes.
if ! grep -qiE 'Ryzen AI Max|Radeon 80[0-9]0S|Strix Halo' /proc/cpuinfo 2>/dev/null \
if ! grep -qiE 'Ryzen AI Max|Radeon 80[0-9][05]S|Strix Halo' /proc/cpuinfo 2>/dev/null \
&& ! _wsl_amd_gpu_name >/dev/null 2>&1; then
return 0
fi
Expand Down Expand Up @@ -2649,7 +2649,7 @@ _maybe_bootstrap_rocm_wsl() {
[ -e /dev/dxg ] || return 0
# Strix APUs show in /proc/cpuinfo (the CPU model); discrete cards don't, so also
# ask the Windows host. Either signal suffices; the bootstrap detects arch from rocminfo.
if ! grep -qiE 'Ryzen AI Max|Radeon 80[0-9]0S|Strix Halo' /proc/cpuinfo 2>/dev/null \
if ! grep -qiE 'Ryzen AI Max|Radeon 80[0-9][05]S|Strix Halo' /proc/cpuinfo 2>/dev/null \
&& ! _wsl_amd_gpu_name >/dev/null 2>&1; then
return 0
fi
Expand Down Expand Up @@ -2960,7 +2960,7 @@ elif case "$TORCH_INDEX_URL" in */rocm*|*/gfx*) true ;; *) false ;; esac; then
case "$_gpu_disp_mkt" in
*"9070 XT"*|*9080*) _gpu_disp_gfx="gfx1201" ;; # RDNA 4
*9070*|*9060*) _gpu_disp_gfx="gfx1200" ;; # RDNA 4
*"8060S"*|*"8050S"*|*"8040S"*|*"Strix Halo"*|*"Ryzen AI Max"*|*"AI Max"*) _gpu_disp_gfx="gfx1151" ;; # RDNA 3.5 (Strix Halo: Radeon 8060S/8050S/8040S iGPU, Ryzen AI Max+)
*"8065S"*|*"8060S"*|*"8050S"*|*"8040S"*|*"Strix Halo"*|*"Ryzen AI Max"*|*"AI Max"*) _gpu_disp_gfx="gfx1151" ;; # RDNA 3.5 (Strix Halo + Gorgon Halo: Radeon 8065S/8060S/8050S/8040S iGPU, Ryzen AI Max / Max+)
*"890M"*|*"880M"*|*"860M"*|*"840M"*|*"Strix Point"*|*"Krackan"*|*"HX 37"*|*"AI 9 HX"*|*"AI 9 36"*|*"AI 7 35"*|*"AI 5 34"*|*"AI 7 PRO 35"*|*"AI 5 33"*) _gpu_disp_gfx="gfx1150" ;; # RDNA 3.5 (Strix/Krackan Point: Radeon 890M/880M iGPU, Ryzen AI 9 HX 370/375)
*"RX 7600"*|*"RX 7700S"*|*"RX 7650"*|*"PRO W7600"*|*"PRO W7500"*|*"PRO V710"*) _gpu_disp_gfx="gfx1102" ;; # RDNA 3 (Navi 33)
*"RX 7900"*|*"RX 7800"*|*"RX 7700"*|*"PRO W7900"*|*"PRO W7800"*|*"PRO W7700"*) _gpu_disp_gfx="gfx1100" ;; # RDNA 3 desktop / workstation (Navi 31)
Expand Down
4 changes: 2 additions & 2 deletions studio/install_python_stack.py
Original file line number Diff line number Diff line change
Expand Up @@ -719,8 +719,8 @@ def _dedup_pick(tokens: list[str]) -> "str | None":
_WIN_GPU_NAME_ARCH_TABLE: "list[tuple[str, str]]" = [
(r"9070 XT|9080", "gfx1201"), # RDNA 4 (Radeon RX 9070 XT / 9080)
(r"9070|9060", "gfx1200"), # RDNA 4 (Radeon RX 9070 / 9060)
# RDNA 3.5 (Strix Halo: Radeon 8060S/8050S/8040S iGPU, Ryzen AI Max+)
(r"8060S|8050S|8040S|Strix Halo|Ryzen AI Max|AI Max", "gfx1151"),
# RDNA 3.5 (Strix Halo + Gorgon Halo: Radeon 8065S/8060S/8050S/8040S iGPU, Ryzen AI Max / Max+)
(r"8065S|8060S|8050S|8040S|Strix Halo|Ryzen AI Max|AI Max", "gfx1151"),
Comment on lines +722 to +723

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Do not route 8065S hosts to a runtime that lacks its PCI support

On a driver-only host this new fallback selects the gfx1151 AMD index, whose installer paths constrain torch to the bundled ROCm 7.13 runtime. The commit notes that Gorgon Halo device support was only added in ROCm 7.14 and that an HSA override may be needed; without updating the runtime/index or setting that override, these newly recognized 8065S systems install ROCm torch that cannot enumerate the GPU, rather than the previous CPU fallback. Gate this mapping on a compatible runtime or add the required newer runtime/override handling.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

8065S and 8060S resolve to the identical gfx1151 arch and the identical wheel: the name table returns only an arch string with no per-name runtime floor, and both flow through the same repo.amd.com/rocm/whl/gfx1151/ path that already ships for Strix Halo 8060S. So gating this mapping on a compatible runtime cannot target 8065S without also gating 8060S, which is the currently working, already shipped config.

The wheel is not pinned to 7.13. gfx1151 uses the floor torch>=2.11.0,<2.12.0 against the per-arch index, which resolves to torch-2.11.0+rocm7.13.0 today only because that is the sole 2.11 build on the index. ROCm 7.14 is now a production release adding Gorgon Halo enablement for the Ryzen AI Max PRO 495/490/485; when AMD publishes a 2.11.x+rocm7.14 wheel on that same per-arch channel, as they did across 7.9 through 7.13, pip selects it with no change here.

On worse-than-before: a ROCm build on a device the runtime cannot enumerate still runs on CPU with torch.cuda.is_available() False, which is no worse than the prior CPU fallback. The only genuinely worse mode, is_available() True with a GPU memory access fault, is a pre-existing gfx1151 runtime maturity issue that already affects the shipped 8060S on these same wheels (ROCm/legacy-rocm-build#5824, pytorch/pytorch#173367); it is not introduced by recognizing an additional marketing name. The newer-runtime / HSA override caveat is already noted in the PR description and is an AMD runtime detail independent of installer name inference. Keeping the mapping.

Comment on lines +722 to +723

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Classify Radeon 8065S as unified memory in Studio's OOM guard

When a Radeon wheel omits both is_integrated and the GCN-arch fields—the exact name-fallback case supported by _rocm_classify_unified_memory—the new 8065S host is installed and used as gfx1151 but is classified as discrete because worker.py recognizes only 8060s and 8050s. The OOM guard then applies the discrete 0.90 cap instead of the APU policy (0.80 on Linux or 1.0 on Windows), risking unnecessary allocation failures on Windows and reduced OS headroom on Linux. Add 8065s to that fallback and its parameterized regression test.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in f3c9bab: added 8065s to the unified-memory name fallback in _rocm_classify_unified_memory (and its parameterized regression test). This path is the name-only last resort, so a Radeon 8065S reported without gcnArchName or is_integrated now gets the APU cap (0.80 on Linux, 1.0 on Windows) instead of the discrete 0.90, matching how 8060S/8050S are handled. When the arch is readable it already classified as gfx1151 unified via the gcnArchName branch.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Route Radeon 8065S only to a supporting ROCm runtime

On Windows hosts that reach this marketing-name fallback (no directly reported HIP/amd-smi arch), this mapping selects AMD's gfx1151 wheel index, which the existing installer pins to torch 2.11.0+rocm7.13.0. The commit itself notes that Gorgon Halo's PCI device support was added only in ROCm 7.14, so this newly enabled path installs a runtime that cannot enumerate the 8065S unless the user separately supplies a newer runtime or HSA override. Gate this mapping until a 7.14-compatible wheel/runtime is selected, or update the selected runtime together with the detection.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same concern as the thread above, and the blocking objection still stands. 8065S and 8060S resolve to the identical gfx1151 arch and the identical wheel through the same code path, so gating 8065S to a 7.14 runtime also gates the already shipped Strix Halo 8060S, which works on 7.13 today. That trades a real regression of a shipped config for a theoretical concern on the same wheel.

The gfx1151 selection is a torch>=2.11.0,<2.12.0 floor, not a 7.13 pin. It resolves to 2.11.0+rocm7.13.0 only because that is the sole 2.11 build on the per-arch index right now, and pip will auto-select a 2.11.x+rocm7.14 wheel from that same channel once AMD publishes one (ROCm 7.14 is GA with Gorgon Halo enablement). A device the runtime cannot enumerate falls back to CPU with torch.cuda.is_available() False, no worse than the prior CPU fallback. Holding the mapping.

# RDNA 3.5 (Strix/Krackan Point: Radeon 890M/880M iGPU, Ryzen AI 9 HX 370/375)
(
r"890M|880M|860M|840M|Strix Point|Krackan|HX 37[05]|AI 9 HX|AI 9 36[05]"
Expand Down
2 changes: 1 addition & 1 deletion studio/setup.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1498,7 +1498,7 @@ if (-not $HasNvidiaSmi) {
$nameArchTable = @(
@{ P = "9070 XT|9080"; A = "gfx1201" } # RDNA 4 (Radeon RX 9070 XT / 9080)
@{ P = "9070|9060"; A = "gfx1200" } # RDNA 4 (Radeon RX 9070 / 9060)
@{ P = "8060S|8050S|8040S|Strix Halo|Ryzen AI Max|AI Max"; A = "gfx1151" } # RDNA 3.5 (Strix Halo: Radeon 8060S/8050S/8040S iGPU, Ryzen AI Max+)
@{ P = "8065S|8060S|8050S|8040S|Strix Halo|Ryzen AI Max|AI Max"; A = "gfx1151" } # RDNA 3.5 (Strix Halo + Gorgon Halo: Radeon 8065S/8060S/8050S/8040S iGPU, Ryzen AI Max / Max+)
@{ P = "890M|880M|860M|840M|Strix Point|Krackan|HX 37[05]|AI 9 HX|AI 9 36[05]|AI 7 35[05]|AI 5 34[05]|AI 7 PRO 35|AI 5 33"; A = "gfx1150" } # RDNA 3.5 (Strix/Krackan Point: Radeon 890M/880M iGPU, Ryzen AI 9 HX 370/375)
@{ P = "RX 7900|RX 7800|RX 7700(?!S)|PRO W7900|PRO W7800|PRO W7700"; A = "gfx1100" } # RDNA 3 desktop / workstation (Navi 31)
@{ P = "RX 7600|RX 7700S|RX 7650|PRO W7600|PRO W7500|PRO V710"; A = "gfx1102" } # RDNA 3 (Navi 33)
Expand Down
2 changes: 1 addition & 1 deletion studio/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1136,7 +1136,7 @@ elif [ "$_setup_amd_detected" = true ]; then
case "$_setup_mkt" in
*"9070 XT"*|*9080*) _setup_gfx="gfx1201" ;; # RDNA 4
*9070*|*9060*) _setup_gfx="gfx1200" ;; # RDNA 4
*"8060S"*|*"8050S"*|*"8040S"*|*"Strix Halo"*|*"Ryzen AI Max"*|*"AI Max"*) _setup_gfx="gfx1151" ;; # RDNA 3.5 (Strix Halo: Radeon 8060S/8050S/8040S iGPU, Ryzen AI Max+)
*"8065S"*|*"8060S"*|*"8050S"*|*"8040S"*|*"Strix Halo"*|*"Ryzen AI Max"*|*"AI Max"*) _setup_gfx="gfx1151" ;; # RDNA 3.5 (Strix Halo + Gorgon Halo: Radeon 8065S/8060S/8050S/8040S iGPU, Ryzen AI Max / Max+)
*"890M"*|*"880M"*|*"860M"*|*"840M"*|*"Strix Point"*|*"Krackan"*|*"HX 37"*|*"AI 9 HX"*|*"AI 9 36"*|*"AI 7 35"*|*"AI 5 34"*|*"AI 7 PRO 35"*|*"AI 5 33"*) _setup_gfx="gfx1150" ;; # RDNA 3.5 (Strix/Krackan Point: Radeon 890M/880M iGPU, Ryzen AI 9 HX 370/375)
*"RX 7600"*|*"RX 7700S"*|*"RX 7650"*|*"PRO W7600"*|*"PRO W7500"*|*"PRO V710"*) _setup_gfx="gfx1102" ;; # RDNA 3 (Navi 33)
*"RX 7900"*|*"RX 7800"*|*"RX 7700"*|*"PRO W7900"*|*"PRO W7800"*|*"PRO W7700"*) _setup_gfx="gfx1100" ;; # RDNA 3 desktop / workstation (Navi 31)
Expand Down
Loading