Le projet llama.cpp a mis à jour son backend OpenCL pour améliorer les performances de multiplication matricielle sur deux générations de GPU Adreno. Les modifications ciblent principalement la génération X2E en activant par défaut le chemin GEMM xmem F16xF32 et en optimisant la gestion pour la génération A7X.

  • Activation par défaut du GEMM xmem F16xF32 d'Adreno pour les appareils X2E, qui nécessitait auparavant une variable d'environnement explicite.
  • Contournement du GEMM f32 en tuiles sur le compilateur Adreno A7X en dirigeant les opérations par lots vers un noyau par ligne afin d'éviter les problèmes de débordement de registre.
  • L'optimisation xmem offre une accélération d'environ 25 % du préremplissage sur gpt-oss-20b pour les appareils Adreno X2-90, tandis que le contournement A7X procure une amélioration d'environ 9 % sur gemma-3n-E4B.

Ces optimisations corrigent des inefficacités spécifiques du compilateur dans les puces Adreno anciennes et récentes, réduisant le temps GPU passé dans les noyaux matmul lents lors des phases de préremplissage du modèle.