La version b11815 du projet llama.cpp corrige la manière dont son backend SYCL traite la convolution en deux dimensions (Conv2D) avec des entrées et des noyaux dont les canaux sont ordonnés d’une certaine façon. Auparavant, l’opération pouvait lire des entrées non contiguës en utilisant des décalages d’éléments incorrects et renvoyer silencieusement des résultats erronés.
La modification limite l’opération aux entrées et aux noyaux contigus, conformément aux exigences du backend CUDA, et ajoute une vérification de la contiguïté des entrées. Le projet indique que le nombre d’échecs aux tests Conv2D sous SYCL est passé de 16 à zéro : les 2 006 tests ont tous réussi.
Pourquoi c'est important
Pour les développeurs qui utilisent le backend SYCL de llama.cpp, cette correction règle un cas où Conv2D pouvait produire silencieusement des résultats erronés. Les notes de version ne précisent toutefois pas quelles applications ou quels matériels sont susceptibles de rencontrer cette disposition de tenseurs.