FastFlowLM తో AMD NPU పై LLMలను రన్ చేయడం - Fedora గైడ్

ఇప్పుడు మీరు Fedora ఉపయోగించి మీ AMD NPU పై నేరుగా Large Language Models (LLMలను) రన్ చేయవచ్చు. 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) ప్యాకేజీలు లేవు కాబట్టి, మీరు దీనిని సోర్స్ నుండి బిల్డ్ చేయాలి.

⚠️ ప్రారంభించే ముందు ముఖ్యమైన పరిష్కారాలు (Critical Fixes)

  1. IOMMUని ఎనేబుల్ చేయండి GPU ట్యూనింగ్ కోసం చాలా మంది వినియోగదారులు IOMMUని డిసేబుల్ చేస్తారు. ఇది NPU పనితీరును దెబ్బతీస్తుంది. మీ సెట్టింగ్‌లను తనిఖీ చేయండి: cat /proc/cmdline ఒకవేళ మీకు amd_iommu=off అని కనిపిస్తే, దానిని /etc/default/grub నుండి తొలగించి, మీ grub కాన్ఫిగరేషన్‌ను రీజనరేట్ చేసి, రీబూట్ చేయండి.

  2. Unlimited Memlockని సెట్ చేయండి NPUకి లాక్ చేయబడిన మెమరీ (locked memory) అవసరం. మీ లిమిట్‌ను తనిఖీ చేయండి: ulimit -l అది unlimited కాకపోతే, /etc/security/limits.d/99-memlock.conf ఫైల్‌లో ఇది జోడించండి: * soft memlock unlimited * hard memlock unlimited ఆ తర్వాత లాగ్ అవుట్ అయ్యి మళ్ళీ లాగిన్ అవ్వండి.

  3. xrt-smi పాత్‌ను సరిచేయండి 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 repo నుండి xrt_pluginని బిల్డ్ చేసి, వచ్చిన RPMని ఇన్‌స్టాల్ చేయండి.
  • FastFlowLMని బిల్డ్ చేయండి: FastFlowLM repoని క్లోన్ చేసి, బిల్డ్ మరియు ఇన్‌స్టాల్ చేయడానికి cmakeని ఉపయోగించండి.

వెరిఫికేషన్ కమాండ్స్ (Verification Commands)

కెర్నల్ మరియు NPUని తనిఖీ చేయండి: flm validate

హార్డ్‌వేర్‌ను తనిఖీ చేయండి: xrt-smi examine xrt-smi validate

మోడల్‌ను రన్ చేయండి: flm run gemma4-it:e4b

పెర్ఫార్మెన్స్ బెంచ్‌మార్క్‌లు (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