يتخلى إصدار Ollama 0.32.14 عن دعم وحدة معالجة الرسومات (GPU) لبطاقات سلسلة RTX 30 من خلال حذف نواة CUDA sm_86، مما يؤدي إلى انتقال وقت التشغيل بصمت إلى وحدة المعالجة المركزية (CPU) وتباطؤ عملية توليد النماذج بشكل كبير.

ما الذي تغير في الإصدار 0.32.14

تم بناء الملف الثنائي الجديد لمعماريات الحوسبة 7.5 و8.9 و10.0 و12.0 فقط. أما المعمارية 8.6 -وهي الاسم الكودي لسلسلة NVIDIA RTX 30 وبطاقات A40 وA6000- فهي مفقودة. عندما يبحث المشغل عن نواة مطابقة، لا يجد أي شيء، ويبلغ عن وجود "انقسام" (split) في وحدة معالجة الرسومات عبر الأمر ollama ps ، ثم يستمر في العمل بدون تسريع.

لماذا لم يعد نظام التراجع (fallback) القديم يعمل

كانت الإصدارات السابقة تتضمن مساراً ثانوياً يقوم بتحميل مكتبة CUDA 12 في حال فشل النوى الأساسية. كانت تلك المكتبة لا تزال تحتوي على كود لـ sm_86، مما يسمح لنفس الأجهزة بتشغيل النموذج. أما في الإصدار 0.32.14، فقد تمت إزالة كود التراجع عن غير قصد، لذا يتخطى المشغل وحدة معالجة الرسومات تماماً ويعمل على المعالج المضيف.

من سيتأثر بهذا التغيير

سيلاحظ أي شخص يستخدم بطاقات RTX 3080، أو 3080 Ti، أو 3090، أو 3090 Ti، أو A40، أو A6000، أو أي بطاقة أخرى تعتمد على قدرة حوسبية 8.6، هذا التباطؤ. التغيير غير مرئي - لا توجد رسالة خطأ ولا يحدث انهيار للنظام - فقط انخفاض ملحوظ في معدل الإنتاجية (throughput).

كيف تتحقق مما إذا كنت تعمل على وحدة المعالجة المركزية (CPU)

  1. ابدأ عملية توليد، وفي نافذة طرفية (terminal) أخرى، قم بتشغيل nvidia-smi. إذا ظل عمود "Memory-Used" عند 0 MiB، فإن العمل يتم على وحدة المعالجة المركزية.
  2. تحقق من سجلات (logs) Ollama بحثاً عن سطر يحتوي على library=CUDA compute=8.6. غياب هذا السطر يؤكد أن نظام التراجع لم يتم تفعيله أبداً.
  3. قارن أرقام الرموز في الثانية (tokens-per-second) مع معيار أساسي معروف لوحدة معالجة الرسومات؛ فالنموذج الكبير الذي كان يستغرق دقائق في الإصدارات السابقة سيستغرق الآن عشرات الدقائق.

إن تعيين متغيرات البيئة مثل CUDA_VISIBLE_DEVICES لا يحل المشكلة لأن النوى المفقودة هي حذف تم أثناء وقت التجميع (compile-time)، وليس مجرد علامة (flag) في وقت التشغيل.

حل سريع: التثبيت على الإصدار 0.32.13

Windows

  • قم بإلغاء تثبيت إصدار Ollama الحالي.
  • قم بتنزيل برنامج التثبيت 0.32.13 من صفحة إصدارات المشروع على GitHub.
  • قم بتشغيل برنامج التثبيت وأعد تشغيل خدمة 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

بعد العودة للإصدار السابق، كرر فحص nvidia-smi؛ يجب أن ترى استخداماً غير صفري لذاكرة الفيديو (VRAM) وقفزة في سرعة التوليد.

ما يجب مراقبته في الإصدارات المستقبلية

يبدو أن حذف sm_86 هو سهو في نص بناء البرنامج (build script) وليس إيقافاً متعمداً للميزة. وإلى أن يقوم القائمون على المشروع باستعادة النوى المفقودة أو إعادة تفعيل نظام التراجع CUDA 12، فإن أي ترقية تتجاوز الإصدار 0.32.13 تحمل نفس المخاطر. راقب متتبع المشكلات (issue tracker) الخاص بالمشروع بحثاً عن تصحيح يعيد إضافة نوى 8.6، واختبر استخدام وحدة معالجة الرسومات فور كل تحديث.

الخلاصة: يقوم الإصدار 0.32.14 بتعطيل تسريع سلسلة RTX 30 عن غير قصد. تحقق من نشاط وحدة معالجة الرسومات باستخدام nvidia-smi ، وإذا كنت تعتمد على تلك البطاقات، فعد إلى الإصدار 0.32.13 حتى يتم استعادة النوى المفقودة.