FastFlowLM ಬಳಸಿ AMD NPU ಮೇಲೆ LLMಗಳನ್ನು ರನ್ ಮಾಡುವುದು - Fedora ಮಾರ್ಗದರ್ಶಿ

ಈಗ ನೀವು Fedora ಬಳಸಿ ನಿಮ್ಮ AMD NPU ಮೇಲೆ ನೇರವಾಗಿ Large Language Models ಅನ್ನು ರನ್ ಮಾಡಬಹುದು. Ryzen AI Max 390 ಚಿಪ್ ಹೊಂದಿರುವ ASUS ROG Flow Z13 ನಲ್ಲಿ ಈ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಹೇಗೆ ಸೆಟಪ್ ಮಾಡುವುದು ಎಂಬುದನ್ನು ಈ ಮಾರ್ಗದರ್ಶಿ ತೋರಿಸುತ್ತದೆ.

ಈ ಸೆಟಪ್‌ಗೆ ನಾಲ್ಕು ಕಾರ್ಯನಿರ್ವಹಣಾ ಪದರಗಳು (layers) ಅಗತ್ಯವಿವೆ:

  • Kernel + DKMS driver (amdxdna): ಇದು device node ಅನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು firmware ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ.
  • XRT base: ಇದು AMD runtime ಆಗಿದೆ.
  • XRT NPU plugin: ಇದು XRT ಗೆ NPU ಅನ್ನು ಗುರುತಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
  • FastFlowLM (flm): ಇದು ಮಾಡೆಲ್‌ಗಳನ್ನು ರನ್ ಮಾಡುವ ಟೂಲ್ ಆಗಿದೆ.

Fedora ನಲ್ಲಿ ಇದಕ್ಕೆ ಮೊದಲೇ ನಿರ್ಮಿಸಲಾದ (prebuilt) ಪ್ಯಾಕೇಜ್‌ಗಳು ಇಲ್ಲದ ಕಾರಣ, ನೀವು ಇದನ್ನು source ನಿಂದಲೇ ಬಿಲ್ಡ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.

⚠️ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಮಾಡಬೇಕಾದ ಪ್ರಮುಖ ಸರಿಪಡಿಸುವಿಕೆಗಳು (Critical Fixes)

  1. IOMMU ಅನ್ನು ಎನೇಬಲ್ ಮಾಡಿ ಅನೇಕ ಬಳಕೆದಾರರು GPU ಟ್ಯೂನಿಂಗ್‌ಗಾಗಿ IOMMU ಅನ್ನು ಡಿಸೇಬಲ್ ಮಾಡುತ್ತಾರೆ. ಇದು NPU ಅನ್ನು ಕಾರ್ಯನಿರ್ವಹಿಸದಂತೆ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ: cat /proc/cmdline ಒಂದು ವೇಳೆ ನೀವು amd_iommu=off ಅನ್ನು ನೋಡಿದರೆ, ಅದನ್ನು /etc/default/grub ನಿಂದ ತೆಗೆದುಹಾಕಿ, ನಿಮ್ಮ grub ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ರೀಜನರೇಟ್ ಮಾಡಿ ಮತ್ತು ರೀಬೂಟ್ ಮಾಡಿ.

  2. Unlimited Memlock ಅನ್ನು ಸೆಟ್ ಮಾಡಿ NPU ಗೆ ಲಾಕ್ ಮಾಡಲಾದ ಮೆಮೊರಿ (locked memory) ಅಗತ್ಯವಿದೆ. ನಿಮ್ಮ ಮಿತಿಯನ್ನು (limit) ಪರಿಶೀಲಿಸಿ: ulimit -l ಇದು unlimited ಇಲ್ಲದಿದ್ದರೆ, ಇದನ್ನು /etc/security/limits.d/99-memlock.conf ಗೆ ಸೇರಿಸಿ: * soft memlock unlimited * hard memlock unlimited ನಂತರ ಲಾಗ್ ಔಟ್ ಮಾಡಿ ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ.

  3. xrt-smi ಪಾತ್ (Path) ಅನ್ನು ಸರಿಪಡಿಸಿ xrt-smi ಗೆ symlink ಮಾಡಬೇಡಿ. ಇದು ಇಂಟರ್ನಲ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಹಾಳು ಮಾಡುತ್ತದೆ. ಬದಲಾಗಿ ಒಂದು wrapper ಬಳಸಿ:

sudo tee /usr/local/bin/xrt-smi <<'EOF'
#!/bin/sh
exec /opt/xilinx/xrt/bin/xrt-smi "$@"
EOF
sudo chmod +x /usr/local/bin/xrt-smi

ಬಿಲ್ಡ್ ಹಂತಗಳ ಸಾರಾಂಶ (Build Steps Summary)

  • Dependencies ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ: git, dkms, cmake ಮತ್ತು ವಿವಿಧ ડેವಲಪ್‌ಮೆಂಟ್ ಲೈಬ್ರರಿಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು dnf ಬಳಸಿ.
  • XRT ಬಿಲ್ಡ್ ಮಾಡಿ: xdna-driver ರೆಪೊ (repo) ಅನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ. Fedora ಗಾಗಿ cmake3 wrapper ಅನ್ನು ರಚಿಸಿ. RPM ಗಳನ್ನು ಬಿಲ್ಡ್ ಮಾಡಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ.
  • NPU Plugin ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ: xdna-driver ರೆಪೊ ನಿಂದ xrt_plugin ಅನ್ನು ಬಿಲ್ಡ್ ಮಾಡಿ ಮತ್ತು ಅದರ ಫಲಿತಾಂಶವಾಗಿ ಬರುವ RPM ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ.
  • FastFlowLM ಬಿಲ್ಡ್ ಮಾಡಿ: FastFlowLM ರೆಪೊ ಅನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ ಮತ್ತು ಬಿಲ್ಡ್ ಹಾಗೂ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು cmake ಬಳಸಿ.

ಪರಿಶೀಲನಾ ಕಮಾಂಡ್‌ಗಳು (Verification Commands)

ಕೆರ್ನೆಲ್ ಮತ್ತು NPU ಅನ್ನು ಪರಿಶೀಲಿಸಿ: flm validate

ಹಾರ್ಡ್‌ವೇರ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ: xrt-smi examine xrt-smi validate

ಮಾಡೆಲ್ ರನ್ ಮಾಡಿ: flm run gemma4-it:e4b

ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳು (Performance Benchmarks) (Ryzen AI Max 390)

  • ಮೊದಲ ಟೋಕನ್‌ಗೆ ತಗುಲುವ ಸಮಯ: 1.21 s
  • Prefill ವೇಗ: 18 tok/s
  • Decoding ವೇಗ: 11 tok/s

ಮೂಲ (Source): https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5

ಐಚ್ಛಿಕ ಕಲಿಕಾ ಸಮುದಾಯ (Optional learning community): https://t.me/GyaanSetuAi