TL;DR
Model yüklüyken ollama ps çalıştırın: PROCESSOR sütunu gerçeği söyler. 100% GPU demek GPU sağlam demektir, okumayı bırakabilirsiniz. 40%/60% CPU/GPU gibi bir bölünme, modelin VRAM’e sığmadığını gösterir — daha küçük bir quant kullanın. 100% CPU, Ollama’nın kullanılabilir GPU bulamadığı demektir: genellikle güncel olmayan bir sürücü, eksik grup üyeliği (Linux’ta AMD), sabitlenmiş bir OLLAMA_LLM_LIBRARY ya da GPU erişimi olmadan başlatılmış bir konteyner. Logların adını verdiği nedeni düzeltin; sayıları zaten yaklaşık beş.
Ollama’nın GPU’yu gerçekten kullandığını nasıl kontrol ederim?
İki komut, tahmin yok.
# Bir terminalde: model yükle
ollama run llama3.2 "hello"
# Diğerinde: nerede çalıştığına bak
ollama ps NAME ID SIZE PROCESSOR UNTIL
llama3.2:latest a80c4de17cd9 3.3 GB 100% GPU 4 minutes from now PROCESSOR sütununun üç hâli vardır:
100% GPU— her katman GPU’ya yüklendi. Bitti.48%/52% CPU/GPU— kısmi yükleme. GPU çalışıyordur ama model artı bağlam VRAM’e sığmamıştır. Aşağıdaki VRAM bölümüne bakın.100% CPU— çıkarım CPU’da. GPU ya hiç algılanmadı ya da bilinçli olarak devre dışı bırakıldı.
Ardından sunucu logunu okuyun; Ollama’nın açılışta gerçekten bulduğu donanımı adlandıran yer orasıdır:
journalctl -u ollama --no-pager | grep -i "inference compute" Sağlıklı bir NVIDIA makinesinde aradığınız satır şuna benzer:
inference compute id=GPU-xxxx library=CUDA compute=8.9 driver=12.4 name=NVIDIA GeForce RTX 4070 Hiç satır yok ya da satır CPU-only fallback mesajıyla bitiyorsa, probleminizi buldunuz. Bu yazının geri kalanı beş nedendir; olasılığı en yüksek olanı başta.
Ollama neden “no compatible GPU discovered” diyor?
NVIDIA’da suçlu çoğunlukla sürücüdür, CUDA değil. Ollama kendi CUDA çalışma zamanı kütüphanelerini taşır; CUDA toolkit kurulu olmasa da olur — ama paketli çalışma zamanının konuşabilecek kadar yeni bir sürücü gerekir. nvidia-smi çalışıyor olması kanıt değildir; yalnızca bir sürücünün var olduğunu gösterir, yeterince yeni olduğunu değil.
nvidia-smi --query-gpu=driver_version --format=csv,noheader Sürüm yıllar gerideyse güncelleyin ve reboot edin:
# Debian/Ubuntu ailesi
sudo apt install nvidia-driver-570
# Arch ailesi
sudo pacman -S nvidia Sürücü güncellemesinden sonra Ollama servisini yeniden başlatın ki cihazları yeniden algılasın — algılama, açılışta bir kez yapılır; her istekte değil:
sudo systemctl restart ollama Log artık GPU’nuzu library=CUDA ile yazıyorsa işiniz bitti. Hâlâ direniyorsa, herhangi bir yerde OLLAMA_LLM_LIBRARY tanımlı mı diye bakın — aşağıdaki “güncelleme sonrası” bölümüne bakın.
Ollama neden modelin yalnızca bir kısmını GPU’ya yüklüyor?
Kısmi yükleme bir hata değil, aritmetiktir: model ağırlıkları + bağlam pencerenizin KV önbelleği VRAM’e sığmalıdır. Q4’te bir 7B model kabaca 4–5 GB’dır; 8K bağlam verirseniz önbellek üstüne ekler. 8 GB’lık bir kartta bir şeylerin CPU’da kalması gerekir ve ollama ps bölünmeyi gösterir.
Boşluğu kapatmanın üç yolu, en ucuzdan başlayarak:
- Daha küçük quant. Q8’den Q4’e inmek ağırlık boyutunu yarıya indirir, makul bir kalite bedeliyle. Takaslar GGUF quantization seviyeleri anlatımında sıralanıyor.
- Daha kısa bağlam. Önbellek boyutuna hükmeden
num_ctx‘dir. 8 GB kartta 32K bağlam, katmanların çoğunun CPU’da kalması demektir. - Daha az GPU katmanı.
num_gpuseçeneği, kaç katmanın yükleneceğini sınırlar. Katman sayısının altına ayarlamak bölünmeyi garantiler — birisi bunu Modelfile’da ya da API çağrısında ayarladıysa, kaldırın.
Ters tuzağı da not edin: 100% GPU gösteren ama beklenenden yavaş çalışan bir GPU, sistem RAM’ine swap atıyor olabilir. ollama ps SIZE değerini gerçek VRAM’inizle karşılaştırın.
Ollama neden AMD GPU’mu kullanmıyor?
Linux’ta AMD üç şey ister ve üçü de kontrol edilebilir:
1. Derlemde ROCm desteği. Resmî Linux kurulum betiği, ROCm derlemiyle birlikte gelir. Sunucunun ne algıladığını doğrulayın:
journalctl -u ollama --no-pager | grep -iE "rocm|inference compute" 2. Grup üyeliği. ROCm çalışma zamanı /dev/kfd ve /dev/dri erişimi ister; bu da render ve video grupları demektir:
sudo usermod -aG render,video $USER
# çıkış yapıp geri girin, sonra:
sudo systemctl restart ollama Tek başına bu eksik grup, her forumdaki en yaygın “Ollama Ubuntu’da GPU kullanmıyor” gönderisidir ve sürücü asla problem olmadığı için sürücü yeniden kurulumlarından sağ çıkar.
3. Desteklenen bir GPU — ya da bir override. Desteklenmeyen RDNA2 tüketici kartları (gfx1031, gfx1032), ROCm yığını çalışsa bile algılamada başarısız olur. Standart işe yarar çözüm, uyumlu bir hedef takmak:
sudo systemctl edit ollama [Service]
Environment="HSA_OVERRIDE_GFX_VERSION=10.3.0" Ardından sudo systemctl restart ollama. Bu, desteklenmeyen ama yaygın kullanılan bir override’dır; ters teperse silin ve resmî destek bölgesine dönersiniz. Otomatik algılamayla boğuşmak yerine backend’ler üzerinde tam kontrol istiyorsanız, işte asıl fark oradadır: llama.cpp vs Ollama karşılaştırması.
Windows’ta AMD desteği daha dardır — kurulumun bozuk olduğunu varsaymadan önce kartınızı Ollama’nın desteklenen GPU listesinde kontrol edin.
Güncellemeden sonra Ollama GPU’yu kullanmayı neden bıraktı?
Güncellemeler üç şeyden birini değiştirir; olasılık sırasıyla:
- Sabitlenmiş bir backend kütüphanesi.
OLLAMA_LLM_LIBRARYbelirli bir runner’ı zorlar (cuda_v11,rocm, hattacpu). Hata ayıklama içindir, otomatik algılamayı sessizce ezer ve sebebi çoktan unutulmuşken kabuk profillerinde ve servis dosyalarında yaşamaya devam eder. Bulun ve kaldırın:
systemctl show ollama --property=Environment | grep -i llm_library
env | grep OLLAMA - Sürücü, çalışma zamanının gerisinde kaldı. Ollama güncellemeleri daha yeni bir CUDA çalışma zamanı paketler; sürücünüz ise siz onu taşıyana dek yerinde sayar. Çözüm, yukarıdaki sürücü bölümüyle aynı.
- Servis bir konteynerdir ve flag’ler kaybolmuştur. GPU flag’leri olmadan yeniden yaratılan konteyner, CPU-only bir konteynerdir. NVIDIA çağrısı şudur:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 ollama/ollama AMD konteynerleri için karşılığı, aygıt geçişi (device passthrough) artı grup eklemeleridir:
docker run -d --device=/dev/kfd --device=/dev/dri
--group-add video --group-add render
-v ollama:/root/.ollama -p 11434:11434 ollama/ollama --gpus=all yoksa GPU da yoktur — Docker’ın cömert davranmaya meyli yoktur.
Ollama WSL2’de çalışır mı?
Evet, doğru sürücü doğru yerdeyse: Windows NVIDIA sürücüsünü kurun; asla dağıtımın içine Linux sürücüsü kurmayın — WSL içi bir sürücü, CUDA geçişini tamir etmek yerine bozar. Ardından WSL’nin kendisini güncelleyin ve geçiş aygıtının var olduğunu doğrulayın:
wsl --update # PowerShell'den
ls /dev/dxg # WSL içinde — GPU kullanımı için mutlaka var olmalı /dev/dxg mevcut ve Windows sürücüsü güncelse, WSL2’deki Ollama yerli bir kurulum gibi GPU’ya yükler. Dolaylılığı tamamen atlamak isterseniz, Ollama’nın Windows derlemi yerli çalışır ve GPU’yu WSL’siz görür.
Ollama’nın hiç GPU’ya ihtiyacı var mı?
Hayır — yalnızca CPU’yla çalışmak işlevsel olarak aynıdır, sadece yavaştır; hızlı bir CPU’da küçük modeller için fazlasıyla kullanılabilir. Apple Silicon’da soru kendiliğinden çözülür: Metal birleşik belleği otomatik kullanır ve tek sınır, modelle paylaşmaya razı olduğunuz RAM miktarıdır.
Beş dakikalık kontrol listesi
| Belirti | Muhtemel neden | Çözüm |
|---|---|---|
ollama ps‘te 100% CPU, NVIDIA kart mevcut | Paketli CUDA için sürücü çok eski | Sürücüyü güncelle, reboot, servisi yeniden başlat |
100% CPU, Linux’ta AMD | Eksik render/video grubu | usermod -aG render,video, yeniden giriş |
100% CPU, desteklenmeyen AMD kart | ROCm, gfx hedefini reddediyor | HSA_OVERRIDE_GFX_VERSION=10.3.0 |
40%/60% CPU/GPU bölünmesi | Model + bağlam VRAM’i aşıyor | Daha küçük quant ya da daha kısa num_ctx |
| Dün GPU, bugün CPU | Sabitlenmiş OLLAMA_LLM_LIBRARY ya da bayat sürücü | Ortam değişkenini bul ve kaldır; sürücüyü güncelle |
| Yerli çalışımda GPU, Docker’da CPU | Konteyner GPU flag’leri olmadan başlatılmış | --gpus=all ile (ya da AMD aygıtlarıyla) yeniden oluştur |
Bu sırayla kontrol edin: durum için ollama ps, algılama listesi için sunucu logları, sonra tablo. On seferin dokuzunda log satırı, hangi satırda olduğunuzu çoktan söylemiştir.
— mrsaynothing
Get the next one by email
One email per post. No spam, no algorithms.
what is this?Git Revert vs Reset: Geçmişinizi Hangisi Kurtarır?
Yazıları beğendiniz mi? Ben geçim için böyle inşa ederim. beni işe al