A versão llama.cpp b10236 introduz uma implementação de Metal do DSv4 Lightning Indexer, suportando especificamente entradas de 128 dimensões com consultas e pesos F32 junto com chaves e máscaras F16.

  • A atualização inclui kernels em blocos e de cauda para lidar com comprimentos KV próximos aos limites de 8 e 64 elementos.
  • Os tiles K são armazenados e desquantizados na memória do grupo de threads F16 antes dos carregamentos de matriz simdgroup, suportando formatos F32, F16, BF16 e vários formatos de quantização.

Os benchmarks mostram uma taxa de preenchimento antecipado (pp512) melhorada em comprimentos de sequência de 10k, 20k e 30k tokens em comparação com versões anteriores.

Esta otimização melhora o desempenho de inferência em dispositivos Apple Silicon ao aprimorar os padrões de acesso à memória para o Lightning Indexer.