FastFlowLM மூலம் AMD NPU-வில் LLM-களை இயக்குதல் - Fedora வழிகாட்டி

இப்போது Fedora பயன்படுத்தி உங்கள் AMD NPU-வில் நேரடியாக Large Language Models-களை இயக்க முடியும். Ryzen AI Max 390 சிப் கொண்ட ASUS ROG Flow Z13 சாதனத்தில் இந்தத் தொகுப்பை (stack) எவ்வாறு அமைப்பது என்பதை இந்த வழிகாட்டி காட்டுகிறது.

இந்த அமைப்பிற்கு நான்கு செயல்பாட்டு அடுக்குகள் (layers) தேவை:

  • Kernel + DKMS driver (amdxdna): சாதன முனையத்தை (device node) உருவாக்கி, firmware-ஐ ஏற்றுகிறது.
  • XRT base: AMD runtime.
  • XRT NPU plugin: XRT-ஆல் NPU-வைக் கண்டறிய அனுமதிக்கிறது.
  • FastFlowLM (flm): மாடல்களை இயக்கும் கருவி.

Fedora-வில் இதற்கான முன் கட்டமைக்கப்பட்ட தொகுப்புகள் (prebuilt packages) இல்லாததால், நீங்கள் இதை மூலக் குறியீட்டிலிருந்து (source) உருவாக்க வேண்டும்.

⚠️ தொடங்குவதற்கு முன் முக்கியமான திருத்தங்கள்

  1. IOMMU-வைச் செயல்படுத்தவும் GPU tuning-க்காகப் பல பயனர்கள் IOMMU-வை முடக்கிவிடுகிறார்கள். இது NPU-வைச் செயலிழக்கச் செய்யும். உங்கள் அமைப்புகளைச் சரிபார்க்கவும்: cat /proc/cmdline நீங்கள் amd_iommu=off என்பதைக் கண்டால், அதை /etc/default/grub-லிருந்து நீக்கிவிட்டு, உங்கள் grub config-ஐ மீண்டும் உருவாக்கி (regenerate), கணினியை மறுதொடக்கம் (reboot) செய்யவும்.

  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 பாதையைச் சரிசெய்யவும் xrt-smi-க்கு symlink பயன்படுத்த வேண்டாம். இது உட்புற ஸ்கிரிப்டை (internal script) உடைத்துவிடும். அதற்குப் பதிலாக ஒரு 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 மற்றும் பல்வேறு மேம்பாட்டு நூலகங்களை (development libraries) நிறுவ dnf-ஐப் பயன்படுத்தவும்.
  • XRT-ஐ உருவாக்கவும்: xdna-driver repo-வை குளோன் (clone) செய்யவும். Fedora-விற்கான cmake3 wrapper-ஐ உருவாக்கவும். RPM-களை உருவாக்கி நிறுவவும்.
  • NPU Plugin-ஐ நிறுவவும்: xdna-driver repo-விலிருந்து xrt_plugin-ஐ உருவாக்கி, அதன் மூலம் கிடைக்கும் RPM-ஐ நிறுவவும்.
  • FastFlowLM-ஐ உருவாக்கவும்: FastFlowLM repo-வை குளோன் செய்து, cmake மூலம் உருவாக்கி நிறுவவும்.

சரிபார்ப்பு கட்டளைகள் (Verification Commands)

Kernel மற்றும் NPU-வைச் சரிபார்க்க: flm validate

வன்பொருளைச் (hardware) சரிபார்க்க: xrt-smi examine xrt-smi validate

ஒரு மாடலை இயக்க: flm run gemma4-it:e4b

செயல்திறன் அளவீடுகள் (Performance Benchmarks) (Ryzen AI Max 390)

  • முதல் டோக்கனுக்கான நேரம் (Time to first token): 1.21 s
  • Prefill வேகம்: 18 tok/s
  • Decoding வேகம்: 11 tok/s

ஆதாரம்: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5

விருப்பமான கற்றல் சமூகம்: https://t.me/GyaanSetuAi