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

✍️ OpenClawRadar📅 Publicado: 26 de marzo de 2026🔗 Source
Backend personalizado de llama.cpp descarga la multiplicación de matrices de LLM a la NPU AMD XDNA2 en Ryzen AI MAX 385
Ad

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
Ad

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

Ad

👀 Ver también

El Complemento Claude Compact Guard Utiliza el Nuevo Gancho PostCompact para Preservar el Contexto
Herramientas

El Complemento Claude Compact Guard Utiliza el Nuevo Gancho PostCompact para Preservar el Contexto

Un desarrollador ha lanzado claude-compact-guard, un complemento que guarda automáticamente el contexto crítico antes de que el comando /compact de Claude lo destruya, y luego lo reinyecta todo después. Utiliza el nuevo gancho PostCompact de Anthropic, lanzado hace 4 días.

OpenClawRadar
Servidor MCP de Shipshots: Claude diseña capturas de pantalla de la App Store y videos de vista previa
Herramientas

Servidor MCP de Shipshots: Claude diseña capturas de pantalla de la App Store y videos de vista previa

Shipshots es un editor visual con un servidor MCP que permite a Claude diseñar materiales de marketing mediante llamadas a herramientas. Genera capturas de pantalla para tiendas de aplicaciones, videos de vista previa animados y gráficos para redes sociales basados en descripciones de texto.

OpenClawRadar
Problemas de Compromiso: Una Herramienta que Analiza y 'Entierra' Repositorios de GitHub Incompletos
Herramientas

Problemas de Compromiso: Una Herramienta que Analiza y 'Entierra' Repositorios de GitHub Incompletos

Un desarrollador creó una herramienta llamada Commitment Issues que analiza repositorios de GitHub para determinar si están abandonados, genera un 'certificado de defunción' y extrae el último mensaje de commit como 'últimas palabras'. La herramienta utiliza heurísticas como frecuencia de commits, última actividad y estrellas vs. impulso, y fue prototipada usando Claude.

OpenClawRadar
Eä: Un compilador SIMD para Python escrito en Rust
Herramientas

Eä: Un compilador SIMD para Python escrito en Rust

Un desarrollador creó Eä, un compilador para kernels SIMD en aproximadamente 12k líneas de Rust que genera bibliotecas compartidas y envoltorios de Python a partir de archivos .ea, logrando aceleraciones de 6.6× sobre NumPy sin ctypes ni sistemas de compilación.

OpenClawRadar