La version b10306 de llama.cpp introduit des optimisations de performance pour le backend SYCL, ciblant spécifiquement les opérations Gated Linear Unit (GLU). La mise à jour ajoute un chemin rapide contigu pour les opérations GLU fusionnées et consolide les noyaux auparavant distincts pour partager un lanceur commun.
- Ajoute des cas de test de performance SWIGLU couvrant 17408 colonnes avec 512 et 2048 tokens en f16 et f32.
- Consolide les noyaux fusionnés-GLU en prenant l'opération comme argument, supprimant les constantes SYCL_GELU_BLOCK_SIZE et SYCL_SILU_BLOCK_SIZE inutilisées.
- Implémente une dispatch de noyau plat pour les opérandes contigus où les mathématiques d'index de désentrelacement se réduisent à l'identité.
- Réalise une amélioration de performance de +14% en f16 et de +4% en f32 pour GLU divisé sur un Arc Pro B70, les opérations fusionnées restant inchangées.
Ces modifications améliorent l'efficacité du backend SYCL en réduisant la duplication de code et en optimisant les motifs d'accès mémoire pour des configurations tensorielles spécifiques.