使用 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 缺乏预构建的软件包,您必须从源码进行构建。

⚠️ 开始前的关键修复

  1. 启用 IOMMU 许多用户为了进行 GPU 调优而禁用了 IOMMU,但这会导致 NPU 无法工作。 检查您的设置: cat /proc/cmdline 如果您看到 amd_iommu=off,请将其从 /etc/default/grub 中移除,重新生成 grub 配置并重启。

  2. 设置无限 Memlock NPU 需要锁定内存。 检查您的限制: ulimit -l 如果不是 unlimited,请将以下内容添加到 /etc/security/limits.d/99-memlock.conf* soft memlock unlimited * hard memlock unlimited 然后注销并重新登录。

  3. 修复 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 安装 gitdkmscmake 以及各种开发库。
  • 构建 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