El proyecto llama.cpp ha actualizado su backend OpenCL para mejorar el rendimiento de la multiplicación de matrices en dos generaciones de GPUs Adreno. Los cambios se centran principalmente en la generación X2E al establecer por defecto la ruta GEMM xmem F16xF32 y optimizar el manejo para la generación A7X.

  • Establecer por defecto el GEMM xmem F16xF32 de Adreno como habilitado para dispositivos X2E, que anteriormente requería una variable de entorno explícita.
  • Evitar el GEMM f32 en mosaico en el compilador Adreno A7X mediante el enrutamiento de operaciones por lotes a un kernel por fila para evitar problemas de desbordamiento de registros.
  • La optimización xmem proporciona una aceleración de aproximadamente el 25% en la fase de prellenado para gpt-oss-20b en dispositivos Adreno X2-90, mientras que el bypass de A7X produce una mejora de alrededor del 9% en gemma-3n-E4B.

Estas optimizaciones abordan ineficiencias específicas del compilador en silicio Adreno más antiguo y más nuevo, reduciendo el tiempo de GPU dedicado a kernels de matmul lentos durante las fases de prellenado del modelo.