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

O ClawControl 1.7.1 melhora a confiabilidade das mensagens e o suporte a mídia para o OpenClaw.
O ClawControl 1.7.1 corrige vários problemas do lado do cliente, incluindo acúmulo descontrolado de texto, mensagens fantasmas e problemas no tratamento de mídia. A atualização mantém compatibilidade com o OpenClaw até a versão 3.28.

Painel web de código aberto monitora o uso de tokens do Claude para fluxos de trabalho remotos
Um desenvolvedor criou o react-ai-token-monitor, um painel web leve que analisa arquivos de projetos Claude locais em tempo real para calcular custos, mostrar detalhamentos de modelos e rastrear padrões de uso. A ferramenta revelou US$ 4.808 em tokens Claude consumidos em março de 2026 em um plano Max 20x.

O arquivo de protocolo do Claude Code reduz questionamentos repetitivos
Um desenvolvedor criou um único arquivo .md para ~/.claude/rules/ que infere o tipo de tarefa e o risco a partir da primeira mensagem, eliminando a sequência típica de três perguntas do Claude Code antes de começar o trabalho.

Análise do Conselho LLM Revela Estratégias Práticas de Otimização de Tokens de Código Claude
Um desenvolvedor usou a ferramenta LLM Council com 5 personas para analisar padrões de uso do Claude Code, identificando que o modo de pensamento estendido por padrão era o maior consumidor de tokens. O playbook resultante alcançou redução de 60-70% nos tokens com mesma ou melhor qualidade de saída.