FastFlowLM ਨਾਲ AMD NPU 'ਤੇ LLMs ਚਲਾਉਣਾ - Fedora Guide

ਹੁਣ ਤੁਸੀਂ Fedora ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਿੱਧੇ ਆਪਣੇ AMD NPU 'ਤੇ Large Language Models ਚਲਾ ਸਕਦੇ ਹੋ। ਇਹ ਗਾਈਡ ਤੁਹਾਨੂੰ Ryzen AI Max 390 ਚਿੱਪ ਵਾਲੇ ASUS ROG Flow Z13 'ਤੇ ਇਸ ਸਟੈਕ ਨੂੰ ਸੈੱਟਅੱਪ ਕਰਨ ਦਾ ਤਰੀਕਾ ਦਿਖਾਉਂਦੀ ਹੈ।

ਸੈੱਟਅੱਪ ਲਈ ਚਾਰ ਕੰਮ ਕਰਦੇ ਲੇਅਰਾਂ (layers) ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ:

  • Kernel + DKMS driver (amdxdna): ਡਿਵਾਈਸ ਨੋਡ ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਫਰਮਵੇਅਰ ਲੋਡ ਕਰਦਾ ਹੈ।
  • XRT base: AMD runtime।
  • XRT NPU plugin: XRT ਨੂੰ NPU ਦੇਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
  • FastFlowLM (flm): ਉਹ ਟੂਲ ਜੋ ਮਾਡਲਾਂ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।

ਕਿਉਂਕਿ Fedora ਵਿੱਚ ਇਸ ਲਈ ਪਹਿਲਾਂ ਤੋਂ ਬਣੇ (prebuilt) ਪੈਕੇਜ ਨਹੀਂ ਹਨ, ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਸੋਰਸ (source) ਤੋਂ ਬਣਾਉਣਾ ਪਵੇਗਾ।

⚠️ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਮਹੱਤਵਪੂਰਨ ਸੁਧਾਰ (Critical Fixes)

  1. IOMMU ਨੂੰ ਇਨੇਬਲ (Enable) ਕਰੋ ਬਹੁਤ ਸਾਰੇ ਉਪਭੋਗਤਾ 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 ਪਾਥ (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 ਬਣਾਓ। RPMs ਬਿਲਡ ਅਤੇ ਇੰਸਟਾਲ ਕਰੋ।
  • 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

ਵਿਕਲਪਿਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi