Ollama 0.32.14 వెర్షన్‌లో sm_86 CUDA kernels తొలగించబడటం వల్ల RTX 30-series కార్డ్‌లకు GPU సపోర్ట్ నిలిపివేయబడింది. దీనివల్ల రన్‌టైమ్ నిశ్శబ్దంగా CPUకి మారుతుంది (fallback) మరియు మోడల్ జనరేషన్ వేగం చాలా తగ్గిపోతుంది.

0.32.14లో ఏమి మారింది

కొత్త బైనరీ కేవలం 7.5, 8.9, 10.0 మరియు 12.0 కంప్యూట్ ఆర్కిటెక్చర్‌ల కోసం మాత్రమే రూపొందించబడింది. NVIDIA యొక్క RTX 30-series, A40 మరియు A6000 ల కోడ్ నేమ్ అయిన ఆర్కిటెక్చర్ 8.6 ఇందులో లేదు. లాంచర్ సరిపోయే కెర్నల్ కోసం వెతికినప్పుడు ఏదీ దొరకదు, ollama psలో GPU “split” అని రిపోర్ట్ చేస్తుంది, ఆపై ఎటువంటి యాక్సిలరేషన్ లేకుండా ముందుకు సాగుతుంది.

పాత ఫాల్‌బ్యాక్ (fallback) ఎందుకు పనిచేయడం లేదు

మునుపటి వెర్షన్లలో ఒక సెకండరీ పాత్ ఉండేది, ఒకవేళ ప్రైమరీ కెర్నల్స్ విఫలమైతే, అది CUDA 12 లైబ్రరీని లోడ్ చేసేది. ఆ లైబ్రరీలో sm_86 కోసం కోడ్ ఉండేది, దీనివల్ల అదే హార్డ్‌వేర్‌తో మోడల్‌ను రన్ చేయవచ్చని. కానీ 0.32.14లో ఆ ఫాల్‌బ్యాక్ కోడ్ అనుకోకుండా తొలగించబడింది, దీనివల్ల లాంచర్ GPUని పూర్తిగా వదిలేసి హోస్ట్ ప్రాసెసర్‌పై రన్ అవుతుంది.

ఎవరిపై ప్రభావం పడుతుంది

RTX 3080, 3080 Ti, 3090, 3090 Ti, A40, A6000 లేదా కంప్యూట్ కెపాబిలిటీ 8.6 ఆధారంగా పనిచేసే ఇతర కార్డ్‌లను ఉపయోగించే ఎవరికైనా ఈ స్లోడౌన్ కనిపిస్తుంది. ఈ మార్పు ఎటువంటి ఎర్రర్ మెసేజ్ లేదా క్రాష్ లేకుండా చాలా నిశ్శబ్దంగా జరుగుతుంది – కేవలం పనితీరు (throughput) గణనీయంగా తగ్గడం మాత్రమే కనిపిస్తుంది.

మీరు CPUని వాడుతున్నారో లేదో ఎలా తనిఖీ చేయాలి

  1. మోడల్ జనరేషన్‌ను ప్రారంభించి, మరొక టెర్మినల్‌లో nvidia-smi రన్ చేయండి. ఒకవేళ “Memory-Used” కాలమ్ 0 MiB వద్దే ఉంటే, పని CPUలో జరుగుతోందని అర్థం.
  2. Ollama లాగ్స్‌లో library=CUDA compute=8.6 అని ఉన్న లైన్ కోసం వెతకండి. అది లేకపోతే, ఫాల్‌బ్యాక్ ఎప్పుడూ పనిచేయలేదని నిర్ధారించుకోవచ్చు.
  3. టోకెన్-పర్-సెకండ్ (token-per-second) సంఖ్యలను పాత GPU బేస్‌లైన్‌తో పోల్చి చూడండి; మునుపటి వెర్షన్లలో కొన్ని నిమిషాల్లో పూర్తయ్యే పెద్ద మోడల్, ఇప్పుడు పదుల నిమిషాల సమయం తీసుకుంటుంది.

CUDA_VISIBLE_DEVICES వంటి ఎన్విరాన్మెంట్ వేరియబుల్స్‌ను సెట్ చేయడం వల్ల ఈ సమస్య పరిష్కారం కాదు, ఎందుకంటే మిస్ అయిన కెర్నల్స్ కంపైల్-టైమ్ (compile-time) లోనే తొలగించబడ్డాయి, ఇవి రన్‌టైమ్ ఫ్లాగ్స్ (runtime flags) కాదు.

తక్షణ పరిష్కారం: 0.32.13 వెర్షన్‌కు మారండి

Windows

  • ప్రస్తుత Ollama ఇన్‌స్టాలేషన్‌ను అన్‌ఇన్‌స్టాల్ చేయండి.
  • ప్రాజెక్ట్ యొక్క GitHub releases పేజీ నుండి 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

వెర్షన్‌ను తగ్గించిన (downgrade) తర్వాత, మళ్ళీ nvidia-smi ద్వారా తనిఖీ చేయండి; ఇప్పుడు మీకు VRAM వినియోగం కనిపిస్తుంది మరియు జనరేషన్ వేగం పెరిగినట్లు గమనించవచ్చు.

భవిష్యత్తు వెర్షన్లలో గమనించవలసినవి

sm_86ని తొలగించడం అనేది కావాలని చేసిన మార్పులా కాకుండా, బిల్డ్ స్క్రిప్ట్‌లో జరిగిన పొరపాటులా కనిపిస్తోంది. మెయింటైనర్లు మిస్ అయిన కెర్నల్స్‌ను తిరిగి తీసుకువచ్చే వరకు లేదా CUDA 12 ఫాల్‌బ్యాక్‌ను మళ్ళీ ఎనేబుల్ చేసే వరకు, 0.32.13 కంటే పై వెర్షన్‌లకు అప్‌గ్రేడ్ చేయడం వల్ల ఇదే రిస్క్ ఉంటుంది. 8.6 కెర్నల్స్‌ను తిరిగి చేర్చే ప్యాచ్ కోసం ప్రాజెక్ట్ యొక్క ఇష్యూ ట్రాకర్‌ను గమనిస్తూ ఉండండి, మరియు ప్రతి అప్‌డేట్ తర్వాత వెంటనే GPU వినియోగాన్ని పరీక్షించండి.

ముఖ్య గమనిక: 0.32.14 వెర్షన్ అనుకోకుండా RTX 30-series యాక్సిలరేషన్‌ను నిలిపివేస్తుంది. nvidia-smiతో GPU యాక్టివిటీని తనిఖీ చేయండి, మరియు మీరు ఆ కార్డ్‌లపై ఆధారపడి ఉంటే, మిస్ అయిన కెర్నల్స్ తిరిగి వచ్చే వరకు 0.32.13 వెర్షన్‌కు రోల్‌బ్యాక్ చేయండి.