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

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
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
👀 See Also

Zot : Un agent de codage léger pour terminal prend désormais en charge Claude Opus 4.8
Zot est un agent de codage terminal minimal distribué sous forme d'un binaire Go statique unique, sans dépendance d'exécution ni Docker. Il prend désormais en charge Claude Opus 4.8 ainsi que des dizaines d'autres modèles.

Relvy améliore la précision de l'analyse des causes racines de Claude de 12 points de pourcentage sur le benchmark OpenRCA.
Relvy, un outil qui automatise les runbooks, a démontré une amélioration de 12 points de pourcentage de la précision de Claude sur le benchmark OpenRCA pour l'analyse des causes racines. Les résultats ont été partagés via un post Hacker News avec 11 points.

skill-depot : Un système de mémoire et de compétences local-first pour agents IA compatibles MCP
skill-depot est un système de récupération qui stocke les connaissances des agents sous forme de fichiers Markdown et utilise des embeddings vectoriels pour rechercher sémantiquement et charger sélectivement uniquement le contenu pertinent. Il fonctionne à 100 % en local sans clés API, est compatible avec tout agent compatible MCP et peut être configuré avec npx skill-depot init.

Universal CLAUDE.md réduit les tokens de sortie de Claude de 63 % dans les benchmarks.
Un développeur a créé un fichier universel CLAUDE.md qui réduit de 63 % les tokens de sortie de Claude lors de cinq tests de référence tout en maintenant la précision technique. Le fichier traite les comportements courants de Claude comme les réponses verbeuses, le formatage inutile et les suggestions non sollicitées.