A Zyphra lançou o ZYFA (Zyphra FlashAttention on AMD), um conjunto de kernels de atenção de preenchimento (prefill) FP8 e BF16 para GPUs AMD Instinct MI355X. O ZYFA é o motor de atenção FP8 da Zyphra para preenchimento de contexto longo, e o código é de código aberto sob a licença Apache 2.0. Em ativações de modelos reais, seus kernels FP8 rodam de 1,16 a 1,76x mais rápido que o AITER, a biblioteca de kernels padrão da AMD. Na dimensão de cabeça 128, o erro FP8 do ZYFA é de 62-78% menor que o do AITER. TL;DR (Em resumo) Estrutura: É uma biblioteca de kernels. Atenção causal direta (prefill) em FP8 e4m3 e BF16, com dimensão de cabeça 128 e forma MLA (192/128). Roda em: Apenas AMD Instinct MI355X (CDNA4, gfx950), ROCm 7.2.3, PyTorch 2.12. Interface flash_attn_func de fácil integração. Desempenho: 1,16-1,76x o throughput FP8 do AITER em ativações reais; BF16 empata aproximadamente (1,01-1,02x). Melhor caso: 2.672 TFLOP/s FP8 a 32K tokens, 53% do pico da folha de dados FP8 (AITER: 39%). Pior caso: Apenas 1,16x em ativações Mistral-7B; o clock FP8 cai para 1.628 MHz contra 2.108 MHz do AITER. O que é o ZYFA? O ZYFA é fornecido na forma de um artigo técnico juntamente com o código da Zyphra. Ele alimenta o motor de atenção do Zyphra Optimization Engine (ZOE), que executa a Zyphra Cloud. Os kernels BF16 são escritos em HIP. Os kernels FP8 são assembly agendado manualmente, emitido por um gerador Python. Por que a atenção FP8 tem desempenho inferior no MI355X? As instruções de matriz FP8 rodam ao dobro do pico do BF16. Mas o FP8 acelera apenas os 2 produtos de matriz, QKᵀ e PV. O softmax entre eles é executado na unidade vetorial na mesma velocidade em ambas as precisões. Para 32 queries contra 128 keys, o trabalho da matriz FP8 leva 1.024 ciclos. O softmax FP8 exato leva 896 ciclos vetoriais. Assim, o kernel precisa de uma sobreposição quase perfeita para manter as unidades de matriz ocupadas. Os rastros de thread da Zyphra mostram que o pipeline de matriz do AITER fica ocioso por 31,7% dos ciclos. O MI355X não rastreia a conclusão da instrução da matriz em hardware, então a ordem das instruções deve criar essa sobreposição. Como o ZYFA funciona? O ZYFA utiliza 3 técnicas: Lean P: uma multiplicação-adição em vez de um
Fonte: MarkTechPost
Publicado em 2026-11-06