Backend personalizado de llama.cpp descarga la multiplicación de matrices de LLM a la NPU AMD XDNA2 en Ryzen AI MAX 385

Backend Personalizado para Descarga en NPU AMD XDNA2
Un desarrollador ha creado un backend personalizado de llama.cpp que envía operaciones GEMM directamente al NPU AMD XDNA2 en Ryzen AI MAX 385 (Strix Halo). Este enfoque evita el uso de la iGPU y la contención de memoria compartida.
Configuración de Hardware y Software
Modelo: Meta-Llama-3.1-8B-Instruct Q4_K_M
Hardware: Ryzen AI MAX 385, CachyOS 6.19, controlador amdxdna, XRT 2.21.75
Resultados de Rendimiento
- Prefill Vulkan + decodificación NPU: 930 t/s prefill (pp512), 43.7 t/s decodificación (tg64), 41.5W potencia promedio, 0.947 J/tok
- Solo Vulkan: 833 t/s prefill, 41.6 t/s decodificación, 52.2W potencia promedio, 1.3 J/tok
- Solo CPU: 4.6 t/s prefill, 3.76 t/s decodificación
La ruta de decodificación del NPU ahorra aproximadamente 10W en comparación con solo Vulkan, manteniendo (y superando ligeramente) el rendimiento de decodificación, ya que la iGPU permanece libre para otras tareas.
Pila Técnica
- Kernels: mlir-aie xclbins (Xilinx/mlir-aie, Apache 2.0)
- Envío en tiempo de ejecución: XRT 2.21.75
- Base: Fork de ggml-org/llama.cpp (MIT)
- Enrutamiento de kernels: 4 ranuras xclbin que cubren diferentes mosaicos de dimensión K con enrutamiento MIN_N/MAX_N para seleccionar el kernel apropiado en tiempo de ejecución
Investigación del Límite de Rendimiento
El desarrollador intentó superar los 43.7 t/s de decodificación con varios enfoques:
- Barrido por lotes N=1..64: Sin mejora (rendimiento plano)
- Int4 doble cuantización: Destruyó SNR (44.8 → 19.7 dB) - callejón sin salida
- Descarga en cascada: Descartada por la documentación de AMD
- Decodificación especulativa con borrador Llama-3.2-1B: 44% tasa de aceptación, 212 t/s borrador, pero ganancia efectiva cero
La falta de mejora con la decodificación especulativa (que normalmente proporciona ganancias con una tasa de aceptación del 44%) indica que el cuello de botella es el ancho de banda de LPDDR5, no el cómputo. El NPU ya está alcanzando el límite de memoria, haciendo que 43.7 t/s sea el máximo para este modelo en este hardware.
Enlaces del Proyecto
- GitHub: https://github.com/BrandedTamarasu-glitch/OllamaAMDNPU
- Registro de cambios: https://brandedtamarasu-glitch.github.io/OllamaAMDNPU/xdna-npu/
El proyecto fue construido con Claude Sonnet 4.6 / Claude Code, divulgado con fines de reproducibilidad. El desarrollador busca comentarios de otros que ejecuten Strix Halo o Phoenix con el controlador amdxdna para comparar el rendimiento de decodificación en cuantizaciones comparables y determinar si otras configuraciones XDNA2 encuentran el mismo límite de rendimiento.
📖 Read the full source: r/LocalLLaMA
👀 Ver también

Claude Ops: Panel de navegación para el estado en vivo y seguimiento de subagentes de Claude Code
Un panel de navegador local y gratuito para macOS que rastrea el estado en vivo de las sesiones de Claude Code, la herramienta actual, los subagentes generados y envía notificaciones push del sistema cuando se necesita entrada.

OpenUtter: Consulta las transcripciones de Google Meet en vivo a través de OpenClaw
OpenUtter es una habilidad que se une a Google Meet como invitado a través de un navegador sin interfaz, captura subtítulos en vivo y los transmite a tu bus de eventos OpenClaw. Puedes consultar la transcripción en vivo durante la llamada vía Telegram, WhatsApp, Slack o Discord.

Renderizador 3D Basado en Terminal Construido con el Sistema de Código Multi-Agente Claude
Un desarrollador creó tortuise, un renderizador 3D basado puramente en terminal que muestra splats gaussianos usando símbolos Unicode y ASCII, construido en 3 días utilizando 70-80 agentes de IA coordinados a través de una configuración Claude Code con subagentes dentro de subagentes.

TruthGuard: Ganchos de Script de Shell que Detectan Mentiras de Agentes de Programación con IA
TruthGuard es una herramienta de código abierto que utiliza ganchos de script de shell para verificar lo que realmente hacen Claude Code y Gemini CLI frente a lo que afirman. Detecta ediciones fantasmas, mentiras sobre códigos de salida, atajos peligrosos y bloquea confirmaciones cuando fallan las pruebas.