Ollama 0.32.14 menghentikan sokongan GPU untuk kad siri RTX 30 dengan mengeluarkan kernel CUDA sm_86, menyebabkan masa larian (runtime) beralih secara senyap kepada CPU dan penjanaan model menjadi sangat perlahan.

Apa yang berubah dalam 0.32.14

Binari baharu ini dibina untuk seni bina pengkomputeran 7.5, 8.9, 10.0 dan 12.0 sahaja. Seni bina 8.6 – nama kod untuk siri RTX 30 NVIDIA, A40 dan A6000 – telah hilang. Apabila pelancar mencari kernel yang sepadan, ia tidak menjumpainya, melaporkan "split" GPU dalam ollama ps, dan kemudian diteruskan tanpa pecutan.

Mengapa fallback lama tidak lagi berfungsi

Versi terdahulu menyertakan laluan sekunder yang, jika kernel utama gagal, akan memuatkan perpustakaan CUDA 12. Perpustakaan tersebut masih mengandungi kod untuk sm_86, membolehkan perkakasan yang sama menjalankan model tersebut. Dalam 0.32.14, kod fallback telah dikeluarkan secara tidak sengaja, jadi pelancar melangkau GPU sepenuhnya dan berjalan pada pemproses hos.

Siapa yang terkesan

Sesiapa yang menggunakan RTX 3080, 3080 Ti, 3090, 3090 Ti, A40, A6000 atau mana-mana kad lain berasaskan keupayaan pengkomputeran 8.6 akan mengalami kelembapan ini. Perubahan ini tidak kelihatan – tiada mesej ralat, tiada kegagalan sistem (crash) – cuma penurunan ketara dalam daya pemprosesan (throughput).

Cara mengesahkan anda menggunakan CPU

  1. Mulakan penjanaan dan, dalam terminal lain, jalankan nvidia-smi. Jika lajur “Memory-Used” kekal pada 0 MiB, tugasan sedang dijalankan pada CPU.
  2. Semak log Ollama untuk baris yang mengandungi library=CUDA compute=8.6. Ketiadaannya mengesahkan bahawa fallback tidak pernah diaktifkan.
  3. Bandingkan angka token-sesaat dengan garis dasar (baseline) GPU yang diketahui; model besar yang mengambil masa beberapa minit pada versi terdahulu kini akan mengambil masa berpuluh-puluh minit.

Menetapkan pemboleh ubah persekitaran (environment variables) seperti CUDA_VISIBLE_DEVICES tidak membaiki masalah ini kerana ketiadaan kernel tersebut adalah disebabkan pengabaian semasa masa kompilasi (compile-time omission), bukannya bendera masa larian (runtime flag).

Penyelesaian pantas: kekal pada 0.32.13

Windows

  • Nyahpasang (Uninstall) pemasangan Ollama semasa.
  • Muat turun pemasang 0.32.13 daripada halaman rilis GitHub projek tersebut.
  • Jalankan pemasang dan mulakan semula perkhidmatan Ollama.

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

Selepas penurunan versi (downgrade), ulangi semakan nvidia-smi; anda sepatutnya melihat penggunaan VRAM bukan sifar dan lonjakan dalam kelajuan penjanaan.

Apa yang perlu diperhatikan dalam rilis masa hadapan

Pengabaian sm_86 nampaknya merupakan satu kecuaian dalam skrip binaan (build script) dan bukannya pengguguran (deprecation) yang disengajakan. Sehingga penyelenggara memulihkan kernel yang hilang atau mengaktifkan semula fallback CUDA 12, sebarang naik taraf melebihi 0.32.13 membawa risiko yang sama. Perhatikan penjejak isu (issue tracker) projek untuk tampalan (patch) yang menambah semula kernel 8.6, dan uji penggunaan GPU sejurus selepas setiap kemas kini.

Kesimpulannya: rilis 0.32.14 secara tidak sengaja melumpuhkan pecutan siri RTX 30. Sahkan aktiviti GPU dengan nvidia-smi, dan jika anda bergantung pada kad tersebut, kembali (roll back) ke 0.32.13 sehingga kernel yang hilang dipulihkan.