La version llama.cpp b10236 introduit une implémentation Metal du DSv4 Lightning Indexer, prenant spécifiquement en charge les entrées de 128 dimensions avec des requêtes et poids F32 ainsi que des clés et masques F16.

  • La mise à jour inclut des noyaux en tuiles et de queue pour gérer les longueurs KV proches des limites de 8 et 64 éléments.
  • Les tuiles K sont préchargées et déquantifiées dans la mémoire du groupe de threads F16 avant les chargements de matrices simdgroup, prenant en charge les formats F32, F16, BF16 et divers formats de quantification.

Les benchmarks montrent un débit de préremplissage (pp512) amélioré pour des longueurs de séquence de 10k, 20k et 30k tokens par rapport aux versions précédentes.

Cette optimisation améliore les performances d'inférence sur les appareils Apple Silicon en améliorant les modèles d'accès mémoire pour le Lightning Indexer.