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)
IOMMU ਨੂੰ ਇਨੇਬਲ (Enable) ਕਰੋ ਬਹੁਤ ਸਾਰੇ ਉਪਭੋਗਤਾ GPU ਟਿਊਨਿੰਗ ਲਈ IOMMU ਨੂੰ ਡਿਸੇਬਲ ਕਰ ਦਿੰਦੇ ਹਨ। ਇਹ NPU ਨੂੰ ਖਰਾਬ ਕਰ ਦਿੰਦਾ ਹੈ। ਆਪਣੀਆਂ ਸੈਟਿੰਗਾਂ ਚੈੱਕ ਕਰੋ:
cat /proc/cmdlineਜੇਕਰ ਤੁਹਾਨੂੰamd_iommu=offਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ/etc/default/grubਤੋਂ ਹਟਾ ਦਿਓ, ਆਪਣੀ grub ਕੌਂਫਿਗਰੀਸ਼ਨ ਨੂੰ ਰੀਜਨਰੇਟ ਕਰੋ, ਅਤੇ ਰੀਬੂਟ ਕਰੋ।Unlimited Memlock ਸੈੱਟ ਕਰੋ NPU ਨੂੰ ਲੌਕਡ ਮੈਮੋਰੀ (locked memory) ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਆਪਣੀ ਲਿਮਿਟ ਚੈੱਕ ਕਰੋ:
ulimit -lਜੇਕਰ ਇਹ unlimited ਨਹੀਂ ਹੈ, ਤਾਂ ਇਸਨੂੰ/etc/security/limits.d/99-memlock.confਵਿੱਚ ਜੋੜੋ:* soft memlock unlimited* hard memlock unlimitedਫਿਰ ਲੌਗ ਆਊਟ ਕਰਕੇ ਦੁਬਾਰਾ ਲੌਗਇਨ ਕਰੋ।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
