Ollama 0.32.14 ನಲ್ಲಿ sm_86 CUDA kernels ಗಳನ್ನು ಕೈಬಿಟ್ಟಿರುವುದರಿಂದ RTX 30-series ಕಾರ್ಡ್‌ಗಳ GPU ಬೆಂಬಲವು ಇಲ್ಲವಾಗಿದೆ, ಇದರಿಂದಾಗಿ runtime ಮೌನವಾಗಿ CPU ಗೆ ಬದಲಾಗುತ್ತದೆ ಮತ್ತು ಮಾಡೆಲ್ ಜನರೇಷನ್ (model generation) ಅತ್ಯಂತ ನಿಧಾನವಾಗುತ್ತದೆ.

0.32.14 ರಲ್ಲಿ ಏನ ಬದಲಾಗಿದೆ

ಹೊಸ binary ಅನ್ನು ಕೇವಲ 7.5, 8.9, 10.0 ಮತ್ತು 12.0 ಕಂಪ್ಯೂಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳಿಗಾಗಿ (compute architectures) ನಿರ್ಮಿಸಲಾಗಿದೆ. NVIDIA ನ RTX 30-series, A40 ಮತ್ತು A6000 ಗಳ ಕೋಡ್ ನೇಮ್ ಆಗಿರುವ ಆರ್ಕಿಟೆಕ್ಚರ್ 8.6 ಇಲ್ಲದಂತಾಗಿದೆ. ಲಾಂಚರ್ ಹೊಂದಿಕೆಯಾಗುವ kernel ಅನ್ನು ಹುಡುಕಿದಾಗ ಅದು ಸಿಗುವುದಿಲ್ಲ, ollama ps ನಲ್ಲಿ GPU “split” ಎಂದು ವರದಿ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಂತರ ಯಾವುದೇ acceleration ಇಲ್ಲದೆ ಮುಂದುವರಿಯುತ್ತದೆ.

ಹಳೆಯ fallback ಏಕೆ ಈಗ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ

ಹಿಂದಿನ ಬಿಡುಗಡೆಗಳಲ್ಲಿ (releases) ಒಂದು secondary path ಇತ್ತು, ಒಂದು ವೇಳೆ primary kernels ವಿಫಲವಾದರೆ ಅದು CUDA 12 library ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತಿತ್ತು. ಆ library ನಲ್ಲಿ sm_86 ಗಾಗಿ ಕೋಡ್ ಇತ್ತು, ಇದು ಅದೇ ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ ಮಾಡೆಲ್ ಅನ್ನು ರನ್ ಮಾಡಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತಿತ್ತು. 0.32.14 ರಲ್ಲಿ fallback ಕೋಡ್ ಅನ್ನು ಅಚಾತುರ್ಯದಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಲಾಂಚರ್ GPU ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಿಟ್ಟುಹೋಗಿ host processor ಮೇಲೆ ರನ್ ಆಗುತ್ತದೆ.

ಯಾರ ಮೇಲೆ ಇದರ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ

RTX 3080, 3080 Ti, 3090, 3090 Ti, A40, A6000 ಅಥವಾ compute capability 8.6 ಆಧಾರಿತ ಯಾವುದೇ ಇತರ ಕಾರ್ಡ್ ಬಳಸುವವರಿಗೆ ಈ ನಿಧಾನಗತಿಯ ಅನುಭವವಾಗುತ್ತದೆ. ಈ ಬದಲಾವಣೆ ಕಣ್ಣಿಗೆ ಕಾಣಿಸುವುದಿಲ್ಲ – ಯಾವುದೇ error message ಅಥವಾ crash ಇರುವುದಿಲ್ಲ – ಕೇವಲ throughput ನಲ್ಲಿ ಗಮನಾರ್ಹ ಇಳಿಕೆಯಾಗುತ್ತದೆ.

ನೀವು CPU ಮೇಲೆ ರನ್ ಆಗುತ್ತಿದ್ದೀರಾ ಎಂದು ಹೇಗೆ ಪರಿಶೀಲಿಸುವುದು

  1. ಒಂದು generation ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಇನ್ನೊಂದು terminal ನಲ್ಲಿ nvidia-smi ರನ್ ಮಾಡಿ. “Memory-Used” ಕಾಲಂ 0 MiB ನಲ್ಲಿಯೇ ಇದ್ದರೆ, ಕೆಲಸವು CPU ಮೇಲೆ ನಡೆಯುತ್ತಿದೆ ಎಂದರ್ಥ.
  2. Ollama logs ನಲ್ಲಿ library=CUDA compute=8.6 ಎಂಬ ಸಾಲು ಇದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. ಅದು ಇಲ್ಲದಿದ್ದರೆ fallback ಕಾರ್ಯಗೊಳವಾಗಿಲ್ಲ ಎಂದು ಖಚಿತವಾಗುತ್ತದೆ.
  3. Token-per-second ಸಂಖ್ಯೆಯನ್ನು ತಿಳಿದಿರುವ GPU baseline ನೊಂದಿಗೆ ಹೋಲಿಸಿ; ಹಿಂದಿನ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ನಿಮಿಷोंಗಳಲ್ಲಿ ರನ್ ಆಗುತ್ತಿದ್ದ ದೊಡ್ಡ ಮಾಡೆಲ್ ಈಗ ಹತ್ತಾರು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.

CUDA_VISIBLE_DEVICES ನಂತಹ environment variables ಸೆಟ್ ಮಾಡುವುದರಿಂದ ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಏಕೆಂದರೆ ಇಲ್ಲದ kernels ಗಳು compile-time omission ಆಗಿವೆ, runtime flag ಅಲ್ಲ.

ಶೀಘ್ರ ಪರಿಹಾರ: 0.32.13 ಕ್ಕೆ pin ಮಾಡಿ

Windows

  • ಪ್ರಸ್ತುತ ಇರುವ Ollama ಇನ್‌ಸ್ಟಾಲೇಶನ್ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ (Uninstall) ಮಾಡಿ.
  • ಪ್ರಾಜೆಕ್ಟ್‌ನ GitHub releases ಪುಟದಿಂದ 0.32.13 ಇನ್‌ಸ್ಟಾಲರ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ.
  • ಇನ್‌ಸ್ಟಾಲರ್ ಅನ್ನು ರನ್ ಮಾಡಿ ಮತ್ತು Ollama ಸೇವೆಯನ್ನು (service) ಮರುಪ್ರಾರಂಭಿಸಿ.

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), build script ನಲ್ಲಿನ ಒಂದು ಅಚಾತುರ್ಯದಂತೆ ಕಾಣುತ್ತಿದೆ. ನಿರ್ವಾಹಕರು (maintainers) ಕಳೆದುಹೋದ kernels ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವವರೆಗೆ ಅಥವಾ CUDA 12 fallback ಅನ್ನು ಮತ್ತೆ ಸಕ್ರಿಯಗೊಳಿಸುವವರೆಗೆ, 0.32.13 ಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಯಾವುದೇ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡುವುದು ಇದೇ ಅಪಾಯವನ್ನು ತರುತ್ತದೆ. 8.6 kernels ಅನ್ನು ಮತ್ತೆ ಸೇರಿಸುವ patch ಗಾಗಿ ಪ್ರಾಜೆಕ್ಟ್‌ನ issue tracker ಅನ್ನು ಗಮನಿಸುತ್ತಿರಿ ಮತ್ತು ಪ್ರತಿ ಅಪ್‌ಡೇಟ್ ನಂತರ ತಕ್ಷಣವೇ GPU ಬಳಕೆಯನ್ನು ಪರೀಕ್ಷಿಸಿ.

ಸಾರಾಂಶ: 0.32.14 ಬಿಡುಗಡೆಯು ಅಚಾತುರ್ಯದಿಂದ RTX 30-series acceleration ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. nvidia-smi ಮೂಲಕ GPU ಚಟುವಟಿಕೆಯನ್ನು ಪರಿಶೀಲಿಸಿ, ಮತ್ತು ನೀವು ಆ ಕಾರ್ಡ್‌ಗಳನ್ನು ಅವಲಂಬಿಸಿದ್ದರೆ, ಕಳೆದುಹೋದ kernels ಮರುಸ್ಥಾಪನೆಯಾಗುವವರೆಗೆ 0.32.13 ಕ್ಕೆ ಹಿಂದಕ್ಕೆ ಹೋಗಿ (roll back).