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.