O projeto llama.cpp expandiu seu genérico kernel de Multiplicação Matricial (MMA) de poucas linhas para suportar tipos de dados de origem adicionais, incluindo BF16, Q1_0, Q2_0, MXFP4, Q2_K, Q3_K, TQ2_0 e vários tipos IQ. Esta atualização permite que o kernel otimizado manipule qualquer tipo com um desquantizador de peso de 16 linhas, aplicando limiares específicos de contagem de linhas no hardware M3 Ultra onde o desempenho começa a exceder os kernels atuais.

  • O novo suporte cobre BF16, Q1_0, Q2_0, MXFP4, Q2_K, Q3_K, TQ2_0 e tipos IQ.
  • Os limiares de desempenho variam por tipo: 5 linhas para TQ2_0, 4 para BF16, 3 para MXFP4/Q2_0/Q2_K/IQ4_NL e 2 para os demais.
  • Resultados de benchmark no M3 Ultra mostram razões de desempenho variando de 0.23 a 1.01 dependendo da contagem de linhas e sobreposição do kernel.

Esta alteração melhora a eficiência da inferência para uma faixa mais ampla de formatos de quantização ao aproveitar as capacidades do kernel MMA em baixas contagens de linhas.