From 370debe46b3ebf350667c9f57d19f598b94feaa4 Mon Sep 17 00:00:00 2001 From: LeoBorcherding Date: Sat, 16 May 2026 14:27:30 -0500 Subject: [PATCH] fix: explicit warnings on AMD ROCm arch/version fallbacks + Fast-Install arg order MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setup.ps1: - Fix Fast-Install argument order: packages before flags, consistent with all other Fast-Install calls in the file (was: Fast-Install --force-reinstall --index-url $url torch ...) (now: Fast-Install torch torchvision torchaudio --force-reinstall --index-url $url) - Add explicit [WARN] substep when $HasROCm is true but arch mapping fails: - GPU arch detected but not in supported wheel list → names the arch and lists supported families so user knows exactly what to report - HIP SDK present (amd-smi path) but gcnArchName unreadable → instructs user to re-install the HIP SDK; previously fell back silently to CPU install.sh: - Add [WARN] to stderr before silent CPU fallback when AMD GPU is confirmed (rocminfo/amd-smi) but ROCm version cannot be read from any source (amd-smi, /opt/rocm/.info/version, hipconfig, dpkg, rpm) - Add [WARN] to stderr when ROCm version is too old (< 6.0) with upgrade link install.ps1 and setup.sh: no changes needed (already handle these paths correctly) --- install.sh | 11 ++++++++++- studio/setup.ps1 | 12 +++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 287327b5e5..41130f200d 100755 --- a/install.sh +++ b/install.sh @@ -1568,7 +1568,10 @@ get_torch_index_url() { if [ -n "$_rocm_tag" ]; then # Minimum supported: ROCm 6.0 (no PyTorch wheels exist for older) case "$_rocm_tag" in - rocm[1-5].*) echo "$_base/cpu"; return ;; + rocm[1-5].*) + echo "[WARN] ROCm $_rocm_tag detected but PyTorch ROCm wheels require ROCm 6.0+ -- falling back to CPU-only PyTorch" >&2 + echo "[WARN] Upgrade ROCm: https://rocm.docs.amd.com/en/latest/deploy/linux/index.html" >&2 + echo "$_base/cpu"; return ;; esac # Supported tags; 6.5+ clips to rocm6.4, 7.3+ caps to rocm7.2. case "$_rocm_tag" in @@ -1584,6 +1587,12 @@ get_torch_index_url() { esac return fi + # AMD GPU confirmed by rocminfo/amd-smi but ROCm version could not be + # read from any source (amd-smi, /opt/rocm/.info/version, hipconfig, + # dpkg, rpm). Warn explicitly rather than silently installing CPU PyTorch. + echo "[WARN] AMD GPU detected but ROCm version could not be determined -- falling back to CPU-only PyTorch" >&2 + echo "[WARN] Ensure one of the following is accessible: amd-smi, hipconfig, /opt/rocm/.info/version, rocm-core package" >&2 + echo "[WARN] To install ROCm: https://rocm.docs.amd.com/en/latest/deploy/linux/index.html" >&2 echo "$_base/cpu"; return fi # Parse CUDA version from nvidia-smi output (POSIX-safe, no grep -P) diff --git a/studio/setup.ps1 b/studio/setup.ps1 index 702e14ac6e..b61b64dd33 100644 --- a/studio/setup.ps1 +++ b/studio/setup.ps1 @@ -1899,6 +1899,16 @@ if ($HasROCm -and $CuTag -eq "cpu") { $archFamily = if ($ROCmGfxArch -and $archFamilyMap.ContainsKey($ROCmGfxArch)) { $archFamilyMap[$ROCmGfxArch] } else { $null } if ($archFamily) { $ROCmIndexUrl = "$amdIndexBase/$archFamily/" + } elseif ($ROCmGfxArch) { + # GPU arch detected but not in the supported wheel map — warn explicitly + # so the user knows why they are getting CPU PyTorch instead of ROCm. + substep "[WARN] AMD GPU ($ROCmGfxArch) not in supported arch list -- falling back to CPU-only PyTorch" "Yellow" + substep " Supported: gfx1200/1201 (RDNA 4), gfx1150/1151 (RDNA 3.5), gfx1100-1103 (RDNA 3), gfx90a, gfx908" "Yellow" + } else { + # HIP SDK present ($HasROCm=true via amd-smi) but gcnArchName was not + # readable — warn rather than silently falling back to CPU PyTorch. + substep "[WARN] AMD GPU detected (HIP SDK present) but GPU arch could not be read -- falling back to CPU-only PyTorch" "Yellow" + substep " Arch detection requires hipinfo to report gcnArchName. Re-install the HIP SDK if this is unexpected." "Yellow" } } @@ -1906,7 +1916,7 @@ $PyTorchWhlBase = if ($env:UNSLOTH_PYTORCH_MIRROR) { $env:UNSLOTH_PYTORCH_MIRROR if ($ROCmIndexUrl) { substep "installing PyTorch (AMD ROCm, $ROCmGfxArch)..." - $output = Fast-Install --force-reinstall --index-url $ROCmIndexUrl torch torchvision torchaudio | Out-String + $output = Fast-Install torch torchvision torchaudio --force-reinstall --index-url $ROCmIndexUrl | Out-String $torchInstallExit = $LASTEXITCODE if ($torchInstallExit -ne 0) { Write-Host "[WARN] AMD ROCm PyTorch install failed -- falling back to CPU" -ForegroundColor Yellow