La version b9933 de llama.cpp traite des problèmes critiques d'OpenCL qui causaient une sortie corrompue pour les poids quantifiés Q6_K lorsque la dimension ne01 n'est pas un multiple de 128. Ce bug a affecté des modèles comme granite-3.1-3b-a800m-instruct, où des tailles de vocabulaire impaires ont déclenché une gestion incorrecte de la mémoire sur les GPU Adreno.

La correction détourne la multiplication matricielle dense du chemin noshuffle lorsque ne01 % 128 != 0, en utilisant GEMV plat pour le décodage et en retombant sur le CPU pour d'autres formes. De plus, la version implémente get_alloc_size pour les tampons OpenCL afin de réserver une marge d'alignement, empêchant ainsi les chevauchements de sous-tampons qui corrompaient silencieusement les tenseurs voisins.

Cette mise à jour garantit des résultats d'inférence corrects sur les appareils avec des contraintes d'alignement spécifiques et empêche la corruption de la mémoire dans le traitement des poids quantifiés.