O projeto llama.cpp atualizou seu backend OpenCL para melhorar o desempenho de multiplicação de matrizes em duas gerações de GPUs Adreno. As alterações visam principalmente a geração X2E, ativando por padrão o caminho GEMM xmem F16xF32 e otimizando o tratamento para a geração A7X.

  • Ativação por padrão do GEMM xmem F16xF32 da Adreno para dispositivos X2E, que anteriormente exigia uma variável de ambiente explícita.
  • Contorno do GEMM f32 em blocos no compilador Adreno A7X, roteando operações em lote para um kernel por linha para evitar problemas de transbordamento de registradores.
  • A otimização xmem proporciona um aumento de velocidade de pré-filling de aproximadamente 25% no gpt-oss-20b para dispositivos Adreno X2-90, enquanto o contorno do A7X resulta em melhoria de cerca de 9% no gemma-3n-E4B.

Essas otimizações abordam ineficiências específicas do compilador em silício Adreno mais antigo e mais recente, reduzindo o tempo da GPU gasto em kernels de multiplicação de matrizes lentos durante as fases de pré-filling do modelo.