تشغيل نماذج اللغة الكبيرة (LLMs) على AMD NPU باستخدام FastFlowLM - دليل Fedora

يمكنك الآن تشغيل نماذج اللغة الكبيرة (LLMs) مباشرة على AMD NPU الخاص بك باستخدام Fedora. يوضح لك هذا الدليل كيفية إعداد حزمة البرمجيات (stack) على جهاز ASUS ROG Flow Z13 المزود بشريحة Ryzen AI Max 390.

يتطلب الإعداد أربع طبقات عمل:

  • Kernel + DKMS driver (amdxdna): يقوم بإنشاء عقدة الجهاز (device node) وتحميل البرامج الثابتة (firmware).
  • XRT base: بيئة تشغيل AMD.
  • XRT NPU plugin: يسمح لـ XRT بالتعرف على NPU.
  • FastFlowLM (flm): الأداة التي تقوم بتشغيل النماذج.

نظرًا لأن Fedora تفتقر إلى حزم جاهزة لهذا الغرض، يجب عليك البناء من المصدر (build from source).

⚠️ إصلاحات حاسمة قبل البدء

  1. تفعيل IOMMU يقوم العديد من المستخدمين بتعطيل IOMMU من أجل ضبط أداء GPU، وهذا يؤدي إلى تعطل NPU. تحقق من إعداداتك: cat /proc/cmdline إذا رأيت amd_iommu=off في المخرجات، فقم بإزالته من /etc/default/grub ثم أعد إنشاء تكوين grub وأعد التشغيل.

  2. ضبط Memlock إلى غير محدود (Unlimited) يحتاج NPU إلى ذاكرة مقفلة (locked memory). تحقق من الحد الخاص بك: ulimit -l إذا لم يكن "unlimited"، فأضف ما يلي إلى /etc/security/limits.d/99-memlock.conf: * soft memlock unlimited * hard memlock unlimited بعد ذلك، قم بتسجيل الخروج ثم الدخول مرة أخرى.

  3. إصلاح مسار 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

ملخص خطوات البناء

  • تثبيت التبعيات (dependencies): استخدم dnf لتثبيت git و dkms و cmake ومختلف مكتبات التطوير.
  • بناء XRT: قم بعمل clone لمستودع xdna-driver. أنشئ غلاف cmake3 لـ Fedora. قم ببناء وتثبيت حزم RPM.
  • تثبيت NPU Plugin: قم ببناء xrt_plugin من مستودع xdna-driver وقم بتثبيت حزمة RPM الناتجة.
  • بناء FastFlowLM: قم بعمل clone لمستودع FastFlowLM واستخدم cmake للبناء والتثبيت.

أوامر التحقق

تحقق من النواة (kernel) و NPU: flm validate

تحقق من الأجهزة (hardware): xrt-smi examine xrt-smi validate

تشغيل نموذج: flm run gemma4-it:e4b

مقاييس الأداء (Ryzen AI Max 390)

  • الوقت حتى ظهور أول توكن (Time to first token): 1.21 ثانية
  • سرعة التعبئة المسبقة (Prefill speed): 18 توكن/ثانية
  • سرعة فك التشفير (Decoding speed): 11 توكن/ثانية

المصدر: https://dev.to/ankk98/running-llms-on-amd-npu-with-fastflowlm-fedora-guide-1oo5

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi