使用 FastFlowLM 在 AMD NPU 上运行 LLM - Fedora 指南
您现在可以在 Fedora 上直接通过 AMD NPU 运行大语言模型(LLM)。本指南将向您展示如何在搭载 Ryzen AI Max 390 芯片的 ASUS ROG Flow Z13 上搭建这一技术栈。
该设置需要四个工作层:
- Kernel + DKMS 驱动 (amdxdna):创建设备节点并加载固件。
- XRT base:AMD 运行时环境。
- XRT NPU plugin:允许 XRT 识别 NPU。
- FastFlowLM (flm):运行模型的工具。
由于 Fedora 缺乏预构建的软件包,您必须从源码进行构建。
⚠️ 开始前的关键修复
启用 IOMMU 许多用户为了进行 GPU 调优而禁用了 IOMMU,但这会导致 NPU 无法工作。 检查您的设置:
cat /proc/cmdline如果您看到amd_iommu=off,请将其从/etc/default/grub中移除,重新生成 grub 配置并重启。设置无限 Memlock NPU 需要锁定内存。 检查您的限制:
ulimit -l如果不是 unlimited,请将以下内容添加到/etc/security/limits.d/99-memlock.conf:* soft memlock unlimited* hard memlock unlimited然后注销并重新登录。修复 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
构建步骤摘要
- 安装依赖项:使用
dnf安装git、dkms、cmake以及各种开发库。 - 构建 XRT:克隆
xdna-driver仓库。为 Fedora 创建一个cmake3包装器。构建并安装 RPM 包。 - 安装 NPU Plugin:从
xdna-driver仓库构建xrt_plugin并安装生成的 RPM 包。 - 构建 FastFlowLM:克隆
FastFlowLM仓库并使用cmake进行构建和安装。
验证命令
检查内核和 NPU:
flm validate
检查硬件:
xrt-smi examine
xrt-smi validate
运行模型:
flm run gemma4-it:e4b
性能基准测试 (Ryzen AI Max 390)
- 首字延迟 (Time to first token): 1.21 s
- Prefill 速度: 18 tok/s
- 解码速度 (Decoding speed): 11 tok/s
来源: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5
可选学习社区: https://t.me/GyaanSetuAi
