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

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

NotebookLM MCP Estruturado: Servidor Gratuito Conecta Claude ao NotebookLM com Estruturação Automática de Prompts
Um servidor MCP gratuito chamado NotebookLM MCP Structured conecta o Claude Desktop aos notebooks do NotebookLM com estruturação automática de prompts. O servidor reestrutura consultas com base no tipo (comparação, lista, análise, explicação ou extração) e adiciona verificações de completude e restrições de fidelidade.

WinRemote MCP: Servidor MCP de Código Aberto para Controle Total de Desktops Windows
O WinRemote MCP fornece aos agentes de IA controle total sobre desktops Windows, permitindo detecção de interface, operações de arquivos, acesso ao registro e muito mais, utilizando mais de 40 ferramentas.

Painel de Sessões do Claude Code: Ferramenta de Código Aberto para Monitoramento de Múltiplas Sessões
Um painel de código aberto que monitora várias sessões do Claude Code simultaneamente, mostrando uso de tokens, custos, status da sessão, uso da janela de contexto e subagentes ativos. A instalação requer três comandos: git clone, cd e npm install && npm start.

OpenMontage: Sistema de Produção de Vídeo Agente de Código Aberto para Assistentes de Codificação com IA
OpenMontage é um sistema de produção de vídeo de código aberto que transforma assistentes de codificação de IA como o Claude Code em estúdios de produção completos. Ele lida com pesquisa, planejamento de cenas, escrita de roteiro, narração de voz, seleção de música, geração de legendas e validação por meio de pipelines automatizados.