Chạy LLM trên AMD NPU với FastFlowLM - Hướng dẫn dành cho Fedora

Giờ đây bạn có thể chạy các Mô hình Ngôn ngữ Lớn (LLM) trực tiếp trên NPU AMD của mình bằng Fedora. Hướng dẫn này sẽ chỉ bạn cách thiết lập các lớp phần mềm trên ASUS ROG Flow Z13 với chip Ryzen AI Max 390.

Việc thiết lập yêu cầu bốn lớp hoạt động:

  • Kernel + driver DKMS (amdxdna): Tạo node thiết bị và tải firmware.
  • XRT base: Runtime của AMD.
  • XRT NPU plugin: Cho phép XRT nhận diện NPU.
  • FastFlowLM (flm): Công cụ dùng để chạy các mô hình.

Vì Fedora thiếu các gói cài đặt sẵn cho việc này, bạn phải xây dựng (build) từ mã nguồn.

⚠️ Các bản sửa lỗi quan trọng trước khi bắt đầu

  1. Bật IOMMU Nhiều người dùng thường tắt IOMMU để tinh chỉnh GPU. Điều này sẽ làm hỏng NPU. Kiểm tra cài đặt của bạn: cat /proc/cmdline Nếu bạn thấy amd_iommu=off, hãy xóa nó khỏi /etc/default/grub, tạo lại cấu hình grub và khởi động lại máy.

  2. Thiết lập Memlock không giới hạn NPU cần bộ nhớ được khóa (locked memory). Kiểm tra giới hạn của bạn: ulimit -l Nếu nó không phải là "unlimited", hãy thêm dòng này vào /etc/security/limits.d/99-memlock.conf:

  • soft memlock unlimited
  • hard memlock unlimited Sau đó, hãy đăng xuất và đăng nhập lại.
  1. Sửa đường dẫn xrt-smi Đừng tạo symlink cho xrt-smi. Việc này sẽ làm hỏng script nội bộ. Thay vào đó, hãy sử dụng một 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

Tóm tắt các bước Build

  • Cài đặt các phụ thuộc (dependencies): Sử dụng dnf để cài đặt git, dkms, cmake và các thư viện phát triển khác nhau.
  • Build XRT: Clone repo xdna-driver. Tạo một wrapper cmake3 cho Fedora. Build và cài đặt các file RPM.
  • Cài đặt NPU Plugin: Build xrt_plugin từ repo xdna-driver và cài đặt file RPM thu được.
  • Build FastFlowLM: Clone repo FastFlowLM và sử dụng cmake để build và cài đặt.

Các lệnh xác minh

Kiểm tra kernel và NPU: flm validate

Kiểm tra phần cứng: xrt-smi examine xrt-smi validate

Chạy một mô hình: flm run gemma4-it:e4b

Điểm chuẩn hiệu năng (Ryzen AI Max 390)

  • Thời gian đến token đầu tiên: 1.21 s
  • Tốc độ prefill: 18 tok/s
  • Tốc độ giải mã (decoding): 11 tok/s

Nguồn: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5

Cộng đồng học tập tùy chọn: https://t.me/GyaanSetuAi