Le backend Metal introduit de nouveaux noyaux de multiplication matricielle pour 2 à 16 lignes source, permettant un décodage spéculatif plus rapide sur les appareils Apple Silicon dépourvus de l'API tensor. Ces noyaux déquantifient les poids une seule fois et divisent les dimensions K entre les threadgroups, offrant des gains de performance significatifs par rapport aux approches mat-vec précédentes.
- Implémente des noyaux MMA spécifiques pour Q4_0, Q8_0, Q5_K, et des chemins génériques pour F32, F16 et d'autres types de quantification.
- Active ces noyaux sur le matériel MTLGPUFamilyApple7+ lorsque les nombres de lignes dépassent les seuils où ils surpassent les noyaux mat-vec.
- Ajoute une logique de fusion pour combiner les opérations MUL_MAT + ADD et regrouper jusqu'à 16 copies f32 adjacentes de même disposition en un seul dispatch.
- Met à jour l'optimiseur de graphe et l'encodeur pour gérer les propriétés du périphérique, les vérifications de concurrence et le suivi des vues pour les groupes fusionnés.
Cette optimisation résout les régressions de performance dans le décodage spéculatif sur le matériel M3 Ultra en s'assurant que les opérations tensor restent efficaces même avec de petites tailles de lot.