Backend Personalizado do llama.cpp Descarrega Multiplicação de Matrizes LLM para NPU AMD XDNA2 no Ryzen AI MAX 385

✍️ OpenClawRadar📅 Publicado: March 26, 2026🔗 Source
Backend Personalizado do llama.cpp Descarrega Multiplicação de Matrizes LLM para NPU AMD XDNA2 no Ryzen AI MAX 385
Ad

Backend Personalizado para Descarga no NPU AMD XDNA2

Um desenvolvedor criou um backend personalizado para llama.cpp que despacha operações GEMM diretamente para o NPU AMD XDNA2 no Ryzen AI MAX 385 (Strix Halo). Essa abordagem evita o uso da iGPU e a contenção de memória compartilhada.

Configuração de Hardware e Software

Modelo: Meta-Llama-3.1-8B-Instruct Q4_K_M

Hardware: Ryzen AI MAX 385, CachyOS 6.19, driver amdxdna, XRT 2.21.75

Resultados de Desempenho

  • Prefill Vulkan + decodificação NPU: 930 t/s prefill (pp512), 43,7 t/s decode (tg64), 41,5W potência média, 0,947 J/tok
  • Apenas Vulkan: 833 t/s prefill, 41,6 t/s decode, 52,2W potência média, 1,3 J/tok
  • Apenas CPU: 4,6 t/s prefill, 3,76 t/s decode

O caminho de decodificação do NPU economiza aproximadamente 10W em comparação com apenas Vulkan, mantendo (e até superando levemente) a taxa de decodificação, já que a iGPU permanece livre para outros trabalhos.

Stack Técnico

  • Kernels: mlir-aie xclbins (Xilinx/mlir-aie, Apache 2.0)
  • Despacho em tempo de execução: XRT 2.21.75
  • Base: Fork de ggml-org/llama.cpp (MIT)
  • Roteamento de kernel: 4 slots xclbin cobrindo diferentes blocos de dimensão K com roteamento MIN_N/MAX_N para selecionar o kernel apropriado em tempo de execução
Ad

Investigação do Limite de Desempenho

O desenvolvedor tentou ultrapassar 43,7 t/s de decodificação com várias abordagens:

  • Varredura de lote N=1..64: Nenhuma melhoria (desempenho plano)
  • Int4 double-quant: Matou SNR (44,8 → 19,7 dB) - beco sem saída
  • Descarga em cascata: Descartada pela documentação da AMD
  • Decodificação especulativa com rascunho Llama-3.2-1B: 44% taxa de aceitação, 212 t/s rascunho, mas ganho efetivo zero

A falta de melhoria na decodificação especulativa (que normalmente fornece ganhos com 44% de taxa de aceitação) indica que o gargalo é a largura de banda LPDDR5, não o processamento. O NPU já está atingindo o limite de memória, tornando 43,7 t/s o teto para este modelo neste hardware.

Links do Projeto

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

O projeto foi construído com Claude Sonnet 4.6 / Claude Code, divulgado para fins de reprodutibilidade. O desenvolvedor está buscando feedback de outros que executam Strix Halo ou Phoenix com o driver amdxdna para comparar a taxa de decodificação em quantizações comparáveis e determinar se outras configurações XDNA2 encontram o mesmo limite de desempenho.

📖 Leia a fonte completa: r/LocalLLaMA

Ad

👀 See Also

Plugin de Canal Matriz Claude Code Construído em Rust com Suporte E2EE
Tools

Plugin de Canal Matriz Claude Code Construído em Rust com Suporte E2EE

Um desenvolvedor criou um plugin de canal Matrix para Claude Code em Rust, adicionando suporte para texto, arquivos, imagens com descriptografia E2EE, encadeamento de respostas, reações e comandos de bot. O binário de 14MB é licenciado MIT e funciona com qualquer servidor Matrix.

OpenClawRadar
OpenClaw Alexa Voice Proxy Permite Interação de Voz Bidirecional
Tools

OpenClaw Alexa Voice Proxy Permite Interação de Voz Bidirecional

openclaw-alexa-voice é um proxy Node.js que conecta uma Alexa Custom Skill ao gateway OpenClaw com um sistema de resposta de três níveis para consultas de voz. Ele lida com respostas rápidas em menos de 1 segundo, respostas do agente em menos de 12 segundos e consultas complexas adiadas processadas de forma assíncrona dentro de 2 minutos.

OpenClawRadar
Heddle: Aplicação de Confiança e Registro de Auditoria para Conexões MCP do Claude Desktop
Tools

Heddle: Aplicação de Confiança e Registro de Auditoria para Conexões MCP do Claude Desktop

Heddle é uma ferramenta de código aberto que adiciona níveis de confiança, controles de acesso e registro de auditoria às conexões MCP do Claude Desktop, permitindo o gerenciamento seguro de múltiplos serviços através de uma única interface com seis pacotes iniciais incluídos.

OpenClawRadar
Total Recall: Conhecimento Local de Grafos para Histórias de Conversação de Código do Claude
Tools

Total Recall: Conhecimento Local de Grafos para Histórias de Conversação de Código do Claude

Total Recall é um sistema de código aberto que importa transcrições de conversas em JSONL do Claude Code para um banco de dados SQLite com busca de texto completo e embeddings vetoriais, tornando o histórico de conversas pesquisável entre sessões. Ele recupera trechos reais de conversas com contexto consciente do DAG e inclui um importador do ChatGPT.

OpenClawRadar