Ollama 0.32.14 با حذف هسته‌های CUDA sm_86، پشتیبانی از کارت‌های گرافیک سری RTX 30 را از دست داده است؛ در نتیجه، زمان اجرا به‌طور خودکار به CPU سوئیچ می‌کند و سرعت تولید مدل به شدت کاهش می‌یابد.

چه چیزی در نسخه 0.32.14 تغییر کرد

فایل باینری جدید فقط برای معماری‌های محاسباتی 7.5، 8.9، 10.0 و 12.0 ساخته شده است. معماری 8.6 – نام کد برای سری RTX 30 انویدیا، A40 و A6000 – حذف شده است. وقتی لانچر به دنبال هسته (kernel) مطابقت‌دار می‌گردد، چیزی پیدا نمی‌کند، در دستور ollama ps وضعیت GPU را به صورت "split" گزارش می‌دهد و سپس بدون شتاب‌دهنده به کار خود ادامه می‌دهد.

چرا روش جایگزین (fallback) قدیمی دیگر کار نمی‌کند

نسخه‌های قبلی دارای یک مسیر ثانویه بودند که در صورت شکست هسته‌های اصلی، کتابخانه CUDA 12 را بارگذاری می‌کرد. آن کتابخانه هنوز حاوی کدهایی برای sm_86 بود که اجازه می‌داد همان سخت‌افزار مدل را اجرا کند. در نسخه 0.32.14، کد جایگزین به‌طور ناخواسته حذف شده است، بنابراین لانچر به‌طور کامل از GPU صرف‌نظر کرده و روی پردازنده اصلی (host processor) اجرا می‌شود.

چه کسانی تحت تأثیر قرار می‌گیرند

هر کسی که از RTX 3080، 3080 Ti، 3090، 3090 Ti، A40، A6000 یا هر کارت گرافیک دیگری با قابلیت محاسباتی (compute capability) 8.6 استفاده می‌کند، با کاهش سرعت مواجه خواهد شد. این تغییر نامرئی است – بدون پیام خطا یا کرش (crash) – فقط یک افت محسوس در نرخ پردازش (throughput) است.

چگونه تأیید کنید که روی CPU هستید

  1. یک فرآیند تولید (generation) را شروع کنید و در ترمینال دیگری دستور nvidia-smi را اجرا کنید. اگر ستون "Memory-Used" روی 0 MiB باقی ماند، یعنی پردازش روی CPU انجام می‌شود.
  2. لاگ‌های Ollama را برای یافتن خطی حاوی library=CUDA compute=8.6 بررسی کنید. نبود این خط تأیید می‌کند که حالت جایگزین (fallback) هرگز فعال نشده است.
  3. اعداد توکن در ثانیه (token-per-second) را با یک معیار (baseline) مشخص از GPU مقایسه کنید؛ مدلی بزرگ که در نسخه‌های قبلی چند دقیقه زمان می‌برد، اکنون ممکن است ده‌ها دقیقه طول بکشد.

تنظیم متغیرهای محیطی مانند CUDA_VISIBLE_DEVICES مشکل را حل نمی‌کند، زیرا حذف هسته‌ها در زمان کامپایل (compile-time) رخ داده است، نه به عنوان یک پرچم (flag) در زمان اجرا.

راه حل سریع: استفاده از نسخه 0.32.13

ویندوز

  • نسخه فعلی Ollama را حذف (Uninstall) کنید.
  • نصب‌کننده نسخه 0.32.13 را از صفحه releases پروژه در GitHub دانلود کنید.
  • نصب‌کننده را اجرا کرده و سرویس Ollama را مجدداً راه‌اندازی کنید.

لینوکس

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

پس از بازگشت به نسخه قدیمی (downgrade)، دوباره بررسی nvidia-smi را انجام دهید؛ باید میزان استفاده از VRAM را غیر از صفر و جهشی در سرعت تولید مشاهده کنید.

آنچه باید در نسخه‌های آینده زیر نظر داشت

به نظر می‌رسد حذف sm_86 یک اشتباه در اسکریپت ساخت (build script) باشد تا یک تصمیم عمدی برای منسوخ کردن (deprecation). تا زمانی که نگهدارندگان پروژه هسته‌های حذف شده را بازگردانند یا حالت جایگزین CUDA 12 را دوباره فعال کنند، هرگونه ارتقا به نسخه‌ای بالاتر از 0.32.13 با همین ریسک همراه خواهد بود. بخش issue tracker پروژه را برای دریافت وصله‌ای (patch) که هسته‌های 8.6 را دوباره اضافه می‌کند زیر نظر داشته باشید و بلافاصله پس از هر به‌روزرسانی، میزان استفاده از GPU را تست کنید.

خلاصه مطلب: نسخه 0.32.14 به‌طور ناخواسته شتاب‌دهی سری RTX 30 را غیرفعال می‌کند. فعالیت GPU را با nvidia-smi تأیید کنید و اگر به این کارت‌ها متکی هستید، تا زمانی که هسته‌های حذف شده بازگردانده شوند، به نسخه 0.32.13 بازگردید (roll back).