การรัน LLMs บน AMD NPU ด้วย FastFlowLM - คู่มือสำหรับ Fedora
ตอนนี้คุณสามารถรัน Large Language Models บน AMD NPU ของคุณได้โดยตรงผ่าน Fedora คู่มือนี้จะแสดงวิธีการตั้งค่า stack บน ASUS ROG Flow Z13 ที่ใช้ชิป Ryzen AI Max 390
การตั้งค่านี้ต้องใช้ 4 เลเยอร์ในการทำงาน:
- Kernel + DKMS driver (amdxdna): สร้าง device node และโหลด firmware
- XRT base: AMD runtime
- XRT NPU plugin: ช่วยให้ XRT มองเห็น NPU
- FastFlowLM (flm): เครื่องมือสำหรับรันโมเดล
เนื่องจาก Fedora ยังไม่มีแพ็กเกจสำเร็จรูปสำหรับเรื่องนี้ คุณจึงต้อง build จาก source
⚠️ การแก้ไขที่สำคัญก่อนเริ่มดำเนินการ
เปิดใช้งาน IOMMU ผู้ใช้หลายคนปิดการใช้งาน IOMMU เพื่อปรับแต่ง GPU ซึ่งจะทำให้ NPU ใช้งานไม่ได้ ตรวจสอบการตั้งค่าของคุณด้วย:
cat /proc/cmdlineหากคุณเห็นamd_iommu=offให้ลบออกใน/etc/default/grubจากนั้นสร้าง grub config ใหม่และรีบูตเครื่องตั้งค่า Memlock เป็นแบบไม่จำกัด (Unlimited) NPU จำเป็นต้องใช้ locked memory ตรวจสอบขีดจำกัดของคุณด้วย:
ulimit -lหากไม่ใช่ unlimited ให้เพิ่มบรรทัดเหล่านี้ลงใน/etc/security/limits.d/99-memlock.conf:* soft memlock unlimited* hard memlock unlimitedจากนั้นให้ log out แล้ว log in เข้ามาใหม่แก้ไข Path ของ xrt-smi ห้ามทำ symlink ให้กับ xrt-smi เพราะจะทำให้สคริปต์ภายในเสียหาย ให้ใช้ 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
- ติดตั้ง dependencies: ใช้ dnf เพื่อติดตั้ง git, dkms, cmake และไลบรารีสำหรับการพัฒนาต่างๆ
- Build XRT: Clone repo xdna-driver สร้าง cmake3 wrapper สำหรับ Fedora จากนั้น build และติดตั้ง RPMs
- ติดตั้ง NPU Plugin: Build xrt_plugin จาก repo xdna-driver และติดตั้ง RPM ที่ได้
- Build FastFlowLM: Clone repo FastFlowLM และใช้ cmake ในการ build และติดตั้ง
คำสั่งสำหรับตรวจสอบความถูกต้อง
ตรวจสอบ kernel และ NPU:
flm validate
ตรวจสอบฮาร์ดแวร์:
xrt-smi examine
xrt-smi validate
รันโมเดล:
flm run gemma4-it:e4b
ผลการทดสอบประสิทธิภาพ (Ryzen AI Max 390)
- เวลาในการสร้าง token แรก: 1.21 วินาที
- ความเร็วในการ 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
