O projeto llama.cpp lançou a versão b11140, que inclui uma otimização de CUDA que habilita o uso de sparse-fa para o prefill dsv4. Esta atualização aborda problemas de desempenho no processo de varredura de máscaras do flash attention ao templatear kernels para permitir o desenrolamento de loops em tempo de compilação.

  • O loop de consulta de `flash_attn_mask_to_sparse_indices` agora é limitado em tempo de compilação, reduzindo o tempo de varredura de 46 para 17 microssegundos para formas de decodificação esparsa com 49k colunas.
  • As verificações de fora dos limites para a varredura da máscara esparsa foram movidas para o código do host, permitindo que a operação esparsa em lote no contexto de 49k caia de 586 para 244 microssegundos.

Este lançamento fornece binários para macOS, Linux, Windows, Android e openEuler através de backends de CPU, GPU e NPU.