FastFlowLM을 사용하여 AMD NPU에서 LLM 실행하기 - Fedora 가이드

이제 Fedora를 사용하여 AMD NPU에서 대규모 언어 모델(LLM)을 직접 실행할 수 있습니다. 이 가이드는 Ryzen AI Max 390 칩이 탑재된 ASUS ROG Flow Z13에서 스택을 설정하는 방법을 설명합니다.

설정을 위해서는 네 가지 작동 계층이 필요합니다:

  • Kernel + DKMS driver (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에는 잠긴 메모리(locked memory)가 필요합니다. 제한 사항을 확인하세요: 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를 사용하여 git, dkms, cmake 및 다양한 개발 라이브러리를 설치합니다.
  • XRT 빌드: xdna-driver 저장소를 클론합니다. Fedora용 cmake3 래퍼를 생성합니다. RPM을 빌드하고 설치합니다.
  • NPU 플러그인 설치: 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) 속도: 11 tok/s

출처: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5

선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi