GPU AMD niewykrywane / ROCm nieobsługiwany (Ollama i llama.cpp)
Radeon jest zainstalowany, ale nic nie chce z niego korzystać
Autor Jakub Rusinowski
Błąd
Error: no compatible GPUs were discovered
Kiedy się pojawia
Masz kartę Radeon, ale Ollama liczy na CPU albo build z ROCm zgłasza brak urządzeń. Częsty wariant to rocBLAS error: Could not initialize Tensile host: No devices found. Karta jest zainstalowana, tylko stos obliczeniowy AMD nie chce się do niej przyznać.
Co się właściwie dzieje
Wnioskowanie na GPU AMD przechodzi przez ROCm, a ROCm oficjalnie wspiera węższą listę kart niż CUDA u NVIDII. Twoja karta może być nieobsługiwana, obsługiwana tylko *częściowo* albo obsługiwana, lecz raportująca wersję architektury gfx, dla której zainstalowane biblioteki ROCm nie mają skompilowanych kerneli. Na Windowsie sytuacja jest jeszcze bardziej dziurawa. To zatem problem wykrywania i zgodności, a nie pamięci.
Jak to naprawić
- 1
Sprawdź, czy ROCm widzi kartę
Zacznij od tego, czy stos AMD w ogóle wykrywa kartę.
rocminfowypisuje wykryte agenty, arocm-smipokazuje stan GPU. Jeśli żadne z nich jej nie widzi, problemem jest instalacja ROCm albo nieobsługiwana karta — zajmij się tym, zanim ruszysz dalej.rocminfo | grep gfx # shows the GPU architecture if detected rocm-smi - 2
Nadpisz wersję gfx dla kart obsługiwanych częściowo
Wiele konsumenckich Radeonów działa bez zarzutu, ale raportuje wersję
gfx, w którą ROCm oficjalnie nie celuje. Wymuszenie zgodnej wersji przezHSA_OVERRIDE_GFX_VERSIONkaże ROCm użyć kerneli zbudowanych dla bliskiego krewnego. Na przykład część kart RDNA3 działa z wartością11.0.0. Ustaw ją przed uruchomieniem.# RDNA3 example — match the value to your architecture export HSA_OVERRIDE_GFX_VERSION=11.0.0 ollama serve - 3
Zainstaluj build z ROCm i właściwy sterownik
Upewnij się, że masz Ollamę z obsługą ROCm (albo build llama.cpp z HIP/ROCm) oraz pasujący sterownik AMD. Standardowa instalacja bywa wyłącznie na CPU albo zbudowana pod inną wersję ROCm niż twoja. Na Linuksie sprawdź jeszcze, czy twój użytkownik należy do grup
renderivideo, bo bez tego nie sięgnie do urządzenia.# Linux (bash) — device permissions; log out and back in afterwards sudo usermod -aG render,video $USER # Windows (PowerShell) — no group step exists; check you have the ROCm build ollama --version - 4
Jeśli karta nie jest obsługiwana, dobierz model do tego, co możesz uruchomićNajczęstsze rozwiązanie
Jeśli ROCm naprawdę nie obsłuży twojego GPU, na razie zostaje ci liczenie na CPU — a wtedy mniejszy model w niższej kwantyzacji jest różnicą między „da się używać” a „nie do zniesienia”. Sprawdź, które modele działają na twoim zestawie w akceptowalnym tempie, i wybierz taki, który daje radę.
Sprawdź, co pasuje do Twojego sprzętusprawdź, które modele działają dobrze na twoim zestawie AMDOtwórz kalkulator VRAM →
Powiązane
Najczęściej zadawane pytania
Czy moje GPU AMD nadaje się do lokalnych LLM-ów?
Zajrzyj na listę kart obsługiwanych przez ROCm i uruchom rocminfo, żeby poznać swoją wersję gfx. Nowsze karty RDNA2 i RDNA3 zwykle działają (czasem po nadpisaniu gfx); starsze albo z niższej półki bywają nieobsługiwane, co zostawia cię z wnioskowaniem na CPU.
Co robi HSA_OVERRIDE_GFX_VERSION?
Każe ROCm traktować twoją kartę jak wskazaną architekturę, dzięki czemu użyje kerneli zbudowanych dla bliskiego krewnego. To standardowe obejście dla kart sprawnych, ale nieobjętych oficjalnie przez zainstalowaną wersję ROCm — ustaw wartość odpowiadającą generacji twojego GPU.
Czy AMD działa w tym zastosowaniu na Windowsie?
Wsparcie się poprawia, ale wciąż jest skromniejsze niż na Linuksie. Najlepsze wyniki daje zwykle ROCm na Linuksie; na Windowsie sprawdź, czy konkretne narzędzie dostarcza działający backend AMD lub Vulkan dla twojej karty.