Ollama 0.32.14 sm_86 CUDA kernels বাদ দিয়ে RTX 30-series কার্ডের জন্য GPU সাপোর্ট সরিয়ে নিয়েছে, যার ফলে রানটাইম নিঃশব্দে CPU-তে চলে যায় এবং মডেল জেনারেশন অত্যন্ত ধীরগতির হয়ে পড়ে।
0.32.14-এ কী পরিবর্তন হয়েছে
নতুন বাইনারিটি শুধুমাত্র 7.5, 8.9, 10.0 এবং 12.0 compute architecture-এর জন্য তৈরি করা হয়েছে। Architecture 8.6 – যা NVIDIA-র RTX 30-series, A40 এবং A6000-এর কোড নেম – এখানে অনুপস্থিত। যখন লঞ্চার একটি ম্যাচিং কার্নেল খোঁজে, তখন সেটি কিছুই পায় না, ollama ps-এ একটি GPU “split” রিপোর্ট করে এবং তারপর কোনো অ্যাক্সিলারেশন ছাড়াই কাজ চালিয়ে যায়।
কেন আগের fallback পদ্ধতিটি আর কাজ করছে না
আগের রিলিজগুলোতে একটি সেকেন্ডারি পাথ (secondary path) ছিল যা প্রাইমারি কার্নেল ব্যর্থ হলে CUDA 12 লাইব্রেরি লোড করত। সেই লাইব্রেরিতে sm_86-এর জন্য কোড ছিল, যা একই হার্ডওয়্যারে মডেলটি চালাতে সাহায্য করত। 0.32.14-এ এই fallback কোডটি অনিচ্ছাকৃতভাবে সরিয়ে ফেলা হয়েছে, ফলে লঞ্চার সম্পূর্ণভাবে GPU এড়িয়ে যায় এবং হোস্ট প্রসেসরের ওপর চলে।
কারা এর প্রভাব অনুভব করবেন
যারা RTX 3080, 3080 Ti, 3090, 3090 Ti, A40, A6000 অথবা compute capability 8.6 ভিত্তিক অন্য যেকোনো কার্ড ব্যবহার করছেন, তারা এই ধীরগতি লক্ষ্য করবেন। এই পরিবর্তনটি অদৃশ্য – কোনো এরর মেসেজ বা ক্র্যাশ হবে না – শুধু থ্রুপুট (throughput)-এ একটি লক্ষণীয় হ্রাস দেখা যাবে।
আপনি CPU-তে চলছেন কি না তা কীভাবে যাচাই করবেন
- একটি জেনারেশন শুরু করুন এবং অন্য একটি টার্মিনালে
nvidia-smiরান করুন। যদি “Memory-Used” কলামটি 0 MiB-এ থাকে, তবে কাজটির জন্য CPU ব্যবহৃত হচ্ছে। - Ollama লগ-এ
library=CUDA compute=8.6যুক্ত কোনো লাইন আছে কি না তা পরীক্ষা করুন। এটি না থাকা মানে হলো fallback পদ্ধতিটি কাজ করেনি। - টোকেন-প্রতি-সেকেন্ড (token-per-second) সংখ্যাটি একটি পরিচিত GPU বেসলাইনের সাথে তুলনা করুন; আগের রিলিজগুলোতে একটি বড় মডেল যা কয়েক মিনিট সময় নিত, সেটি এখন কয়েক দশ মিনিট সময় নিতে পারে।
CUDA_VISIBLE_DEVICES-এর মতো এনভায়রনমেন্ট ভেরিয়েবল সেট করলে এই সমস্যার সমাধান হবে না, কারণ অনুপস্থিত কার্নেলগুলো কম্পাইল-টাইম ওমিশন (compile-time omission), কোনো রানটাইম ফ্ল্যাগ নয়।
দ্রুত সমাধান: 0.32.13 ভার্সনে ফিরে যান
Windows
- বর্তমান Ollama ইনস্টলেশনটি আনইনস্টল করুন।
- প্রজেক্টের GitHub রিলিজ পেজ থেকে 0.32.13 ইনস্টলারটি ডাউনলোড করুন।
- ইনস্টলারটি রান করুন এবং 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 দিয়ে চেক করুন; আপনি নন-জিরো (non-zero) VRAM ব্যবহার এবং জেনারেশন স্পিডে বড় ধরনের বৃদ্ধি দেখতে পাবেন।
ভবিষ্যৎ রিলিজগুলোতে যা খেয়াল রাখতে হবে
sm_86 বাদ পড়াটি কোনো ইচ্ছাকৃত পরিবর্তন (deprecation) নয়, বরং বিল্ড স্ক্রিপ্টে একটি ভুল বলে মনে হচ্ছে। মেইনটেইনাররা যতক্ষণ না অনুপস্থিত কার্নেলগুলো ফিরিয়ে আনছেন বা CUDA 12 fallback পুনরায় চালু করছেন, ততক্ষণ 0.32.13-এর পরের যেকোনো আপগ্রেড একই ঝুঁকি বহন করবে। 8.6 কার্নেল পুনরায় যুক্ত করার কোনো প্যাচ (patch) আসছে কি না তা দেখতে প্রজেক্টের ইস্যু ট্র্যাকার (issue tracker) নজরে রাখুন এবং প্রতিটি আপডেটের পরপরই GPU ব্যবহার পরীক্ষা করুন।
সারকথা: 0.32.14 রিলিজটি অনিচ্ছাকৃতভাবে RTX 30-series অ্যাক্সিলারেশন বন্ধ করে দিয়েছে। nvidia-smi দিয়ে GPU অ্যাক্টিভিটি যাচাই করুন, এবং আপনি যদি এই কার্ডগুলোর ওপর নির্ভর করেন, তবে অনুপস্থিত কার্নেলগুলো ফিরে না আসা পর্যন্ত 0.32.13 ভার্সনে রোলব্যাক করুন।
