Backend personnalisé llama.cpp décharge la multiplication matricielle des LLM vers le NPU AMD XDNA2 sur Ryzen AI MAX 385

✍️ OpenClawRadar📅 Publié: March 26, 2026🔗 Source
Backend personnalisé llama.cpp décharge la multiplication matricielle des LLM vers le NPU AMD XDNA2 sur Ryzen AI MAX 385
Ad

Backend Personnalisé pour le Délestage vers le NPU AMD XDNA2

Un développeur a créé un backend personnalisé pour llama.cpp qui envoie directement les opérations GEMM vers le NPU AMD XDNA2 sur le Ryzen AI MAX 385 (Strix Halo). Cette approche évite l'utilisation de l'iGPU et les conflits de mémoire partagée.

Configuration Matérielle et Logicielle

Modèle : Meta-Llama-3.1-8B-Instruct Q4_K_M

Matériel : Ryzen AI MAX 385, CachyOS 6.19, pilote amdxdna, XRT 2.21.75

Résultats de Performance

  • Préremplissage Vulkan + décodage NPU : 930 t/s préremplissage (pp512), 43,7 t/s décodage (tg64), 41,5W puissance moyenne, 0,947 J/tok
  • Vulkan uniquement : 833 t/s préremplissage, 41,6 t/s décodage, 52,2W puissance moyenne, 1,3 J/tok
  • CPU uniquement : 4,6 t/s préremplissage, 3,76 t/s décodage

Le chemin de décodage via le NPU économise environ 10W par rapport au Vulkan seul tout en maintenant (et en dépassant légèrement) le débit de décodage, car l'iGPU reste libre pour d'autres tâches.

Pile Technique

  • Noyaux : mlir-aie xclbins (Xilinx/mlir-aie, Apache 2.0)
  • Distribution d'exécution : XRT 2.21.75
  • Base : Fork de ggml-org/llama.cpp (MIT)
  • Routage des noyaux : 4 emplacements xclbin couvrant différentes tuiles de dimension K avec routage MIN_N/MAX_N pour sélectionner le noyau approprié à l'exécution
Ad

Investigation sur le Plafond de Performance

Le développeur a tenté de dépasser 43,7 t/s en décodage avec plusieurs approches :

  • Balayage par lots N=1..64 : Aucune amélioration (performance plate)
  • Double quantification Int4 : A détruit le SNR (44,8 → 19,7 dB) - impasse
  • Délestage en cascade : Exclu par la documentation AMD
  • Décodage spéculatif avec le brouillon Llama-3.2-1B : Taux d'acceptation de 44 %, 212 t/s pour le brouillon, mais gain effectif nul

L'absence d'amélioration avec le décodage spéculatif (qui apporte normalement des gains avec un taux d'acceptation de 44 %) indique que le goulot d'étranglement est la bande passante LPDDR5, et non le calcul. Le NPU atteint déjà le mur mémoire, faisant de 43,7 t/s le plafond pour ce modèle sur ce matériel.

Liens du Projet

  • GitHub : https://github.com/BrandedTamarasu-glitch/OllamaAMDNPU
  • Journal des modifications : https://brandedtamarasu-glitch.github.io/OllamaAMDNPU/xdna-npu/

Le projet a été construit avec Claude Sonnet 4.6 / Claude Code, divulgué à des fins de reproductibilité. Le développeur sollicite les retours d'autres utilisateurs exécutant Strix Halo ou Phoenix avec le pilote amdxdna pour comparer le débit de décodage sur des quantifications comparables et déterminer si d'autres configurations XDNA2 rencontrent le même plafond de performance.

📖 Lire la source complète : r/LocalLLaMA

Ad

👀 See Also

🦀
Tools

Chercheur développe une compétence de vérification de véracité pour le code Claude, découvre des hallucinations dans sa propre documentation.

Un chercheur a créé une compétence Claude Code appelée /veracity-tweaked-555 qui décompose les documents en affirmations atomiques et vérifie chacune via une recherche web en utilisant 16 agents parallèles sur 4 vagues. Lors d'un auto-audit, la compétence a obtenu 62/100 en raison de statistiques fabriquées et de revendications exagérées dans sa propre documentation.

OpenClawRadar
Optimiseur de Session Claude Gratuit : Estimateur de Jetons, Compresseur de Prompt et Planificateur de Session
Tools

Optimiseur de Session Claude Gratuit : Estimateur de Jetons, Compresseur de Prompt et Planificateur de Session

Un développeur a créé un outil gratuit et sans inscription pour aider à gérer les limites d'utilisation de Claude avec trois fonctionnalités : un estimateur de tokens pour prévisualiser la consommation des prompts, un compresseur de prompts qui réduit les prompts de 40 à 60 % en supprimant les phrases de remplissage, et un planificateur de session qui regroupe les tâches pour minimiser le rechargement du contexte.

OpenClawRadar
Le Qwen3.5-2B affiné avec l'architecture RAG-Engram améliore la précision des réponses ancrées de 50 % à 93 % dans un contexte de 8K.
Tools

Le Qwen3.5-2B affiné avec l'architecture RAG-Engram améliore la précision des réponses ancrées de 50 % à 93 % dans un contexte de 8K.

Un développeur a affiné Qwen3.5-2B avec une architecture personnalisée RAG-Engram pour résoudre le phénomène de 'perte au milieu', améliorant les réponses correctes à 8 000 tokens de 50 % à 93 % sur des requêtes du monde réel. Le système utilise une approche à deux niveaux avec des embeddings d'entités statiques et une navigation dynamique des segments.

OpenClawRadar
Un modèle pour exécuter Claude Code lors de sessions ininterrompues de nuit sans dérive
Tools

Un modèle pour exécuter Claude Code lors de sessions ininterrompues de nuit sans dérive

Un cadre en trois parties — exécuteur de chaîne, superviseur et un contrat de transfert unique — résout le problème de dérive de boucle de rétroaction dans les sessions autonomes Claude Code de plusieurs heures.

OpenClawRadar