O projeto llama.cpp lançou a compilação b11266, que inclui uma otimização do Vulkan que carrega as matrizes A F32 dois elementos por vez quando estão alinhadas a 2. Essa alteração corrige problemas de desempenho no hardware da Intel, onde carregar floats um por um é ineficiente, e também corrige uma validação ausente para o alinhamento de `a_offset` no patch original.

  • A modificação aproveita a lógica de carregamento já existente em 2-alinhamento em `mul_mat_vec` para melhorar a taxa de transferência nas arquiteturas BMG da Intel.
  • Os resultados de benchmark em uma B60 da Intel mostram aceleramentos significativos para formas específicas de multiplicação de matrizes, com o desempenho aumentando de 153,08 GFLOPS para 221,66 GFLOPS em um caso de teste e até 1,63 TFLOPS em outro.
  • A versão fornece binários para macOS (Apple Silicon e Intel), Linux (CPU, Vulkan, CUDA, ROCm, OpenVINO, SYCL, Snapdragon), Android, Windows e openEuler.

Esta atualização melhora o desempenho de inferência em GPUs da Intel usando o backend Vulkan ao otimizar os padrões de acesso à memória para operações de matriz de ponto flutuante.