O projeto llama.cpp lançou um patch que altera a forma como o código Vulkan carrega valores de ponto flutuante de 32 bits (F32). Em GPUs Intel, carregar dois valores de uma vez é mais rápido do que carregá-los individualmente. Por isso, a nova lógica usa uma carga alinhada a 2 na rotina mul_mat_vec. A alteração também acrescenta uma verificação de alinhamento que estava faltando. Em testes numa placa B60, o desempenho chegou a 1,63 TFLOPS para determinados tamanhos de matriz, um ganho expressivo em relação à versão anterior.
Por que importa
Cálculos mais rápidos na GPU aceleram a inferência de LLMs para quem usa o llama.cpp em hardware Intel.