Ollama 0.32.14, sm_86 CUDA çekirdeklerini (kernels) dahil etmeyerek RTX 30 serisi kartlar için GPU desteğini düşürüyor; bu nedenle çalışma zamanı sessizce CPU'ya geri dönüyor ve model üretimi aşırı derecede yavaşlıyor.

0.32.14 sürümünde ne değişti?

Yeni ikili dosya (binary) yalnızca 7.5, 8.9, 10.0 ve 12.0 hesaplama mimarileri için derlenmiştir. NVIDIA'nın RTX 30 serisi, A40 ve A6000 için kod adı olan 8.6 mimarisi eksiktir. Başlatıcı (launcher) eşleşen bir çekirdek aradığında hiçbir şey bulamaz, ollama ps komutunda bir GPU "split" durumu raporlar ve ardından hızlandırma olmadan devam eder.

Eski yedekleme (fallback) mekanizması neden artık çalışmıyor?

Önceki sürümler, birincil çekirdeklerin başarısız olması durumunda CUDA 12 kütüphanesini yükleyen ikincil bir yol sunuyordu. Bu kütüphane hâlâ sm_86 için kod içeriyordu ve aynı donanımın modeli çalıştırmasına olanak tanıyordu. 0.32.14 sürümünde yedekleme kodu yanlışlıkla kaldırıldı, bu nedenle başlatıcı GPU'yu tamamen atlıyor ve ana işlemci (host processor) üzerinde çalışıyor.

Kimler etkileniyor?

RTX 3080, 3080 Ti, 3090, 3090 Ti, A40, A6000 veya hesaplama kapasitesi (compute capability) 8.6 olan başka herhangi bir kart kullanan herkes bu yavaşlamayı fark edecektir. Değişim görünmezdir; hata mesajı veya çökme olmaz, sadece işleme kapasitesinde (throughput) fark edilir bir düşüş yaşanır.

CPU üzerinde olduğunuzu nasıl doğrularsınız?

  1. Bir üretim başlatın ve başka bir terminalde nvidia-smi komutunu çalıştırın. Eğer “Memory-Used” sütunu 0 MiB seviyesinde kalıyorsa, işlem CPU üzerindedir.
  2. Ollama günlüklerinde (logs) library=CUDA compute=8.6 içeren bir satır olup olmadığını kontrol edin. Bu satırın olmaması, yedekleme mekanizmasının hiç devreye girmediğini doğrular.
  3. Saniye başına token (token-per-second) sayılarını bilinen bir GPU temel değeriyle (baseline) karşılaştırın; önceki sürümlerde dakikalar süren büyük bir model artık onlarca dakika sürecektir.

CUDA_VISIBLE_DEVICES gibi ortam değişkenlerini (environment variables) ayarlamak sorunu çözmez; çünkü eksik çekirdekler bir çalışma zamanı bayrağı (runtime flag) değil, derleme zamanı (compile-time) eksikliğidir.

Hızlı çözüm: 0.32.13 sürümüne sabitleyin

Windows

  • Mevcut Ollama kurulumunu kaldırın.
  • Projenin GitHub releases sayfasından 0.32.13 yükleyicisini indirin.
  • Yükleyiciyi çalıştırın ve Ollama servisini yeniden başlatın.

Linux

sudo systemctl stop ollama
# replace <package> with the 0.32.13 .deb or .rpm you downloaded
sudo dpkg -i <package>   # for Debian-based
# or sudo rpm -Uvh <package>   # for RPM-based
sudo systemctl start ollama

Sürüm düşürme işleminden sonra nvidia-smi kontrolünü tekrarlayın; sıfırdan farklı bir VRAM kullanımı ve üretim hızında bir artış görmelisiniz.

Gelecek sürümlerde nelere dikkat edilmeli?

sm_86'nın dahil edilmemesi, kasıtlı bir kullanımdan kaldırma (deprecation) işleminden ziyade, derleme betiğindeki (build script) bir gözden kaçırma gibi görünüyor. Bakımcılar eksik çekirdekleri geri yükleyene veya CUDA 12 yedekleme mekanizmasını yeniden etkinleştirene kadar, 0.32.13 üzerindeki her güncelleme aynı riski taşır. 8.6 çekirdeklerini yeniden ekleyen bir yama için projenin hata takipçisini (issue tracker) izleyin ve her güncellemeden hemen sonra GPU kullanımını test edin.

Özetle: 0.32.14 sürümü, yanlışlıkla RTX 30 serisi hızlandırmasını devre dışı bırakıyor. GPU etkinliğini nvidia-smi ile doğrulayın ve bu kartlara güveniyorsanız, eksik çekirdekler geri yüklenene kadar 0.32.13 sürümüne geri dönün.