O projeto llama.cpp fundiu as operações RMS_NORM e SCALE em um único kernel CUDA para reduzir a sobrecarga do host/driver. Anteriormente, nós de SCALE separadas adicionavam lançamentos extras de kernel que eram desprezíveis no processamento em lote comum, mas aumentavam significativamente a latência durante o decodificação especulativa draft-mtp.

  • A fusão adiciona uma flag do_scale a rms_norm_f32, permitindo que o caminho fundido compartilhe o kernel, a redução e o lançador enquanto mantém a equivalência numérica bit-a-bit.
  • Em uma configuração com 2x GTX 1080 Ti e Qwen3.8-27B, a taxa de transferência do prefill a frio melhorou em 4,2% para 8000 tokens e 4,8% para 20000 tokens sob condições draft-mtp.
  • A contagem de lançamentos por ubatch diminuiu de 1032,9 + 841,7 para 978,9 + 799,7, igualando as contagens anteriores da linha de base sem alterar as somas das operações da GPU.
  • Todos os testes de backend para RMS_NORM_SCALE, NORM_SCALE e operações relacionadas passaram em ambas as GPUs, com a perplexidade permanecendo idêntica à versão não fundida.

Esta otimização melhora a velocidade de inferência especificamente em cenários de decodificação especulativa ao reduzir o custo cumulativo dos lançamentos de kernel.