La última compilación de llama.cpp incorpora una importante optimización para kernels CUDA que acelera las operaciones de recolección de filas (get_rows) cuando origen y destino comparten el mismo tipo de dato. Anteriormente, la función k_get_rows_float copiaba elemento por elemento con un hilo por valor, recalculando trabajo invariante para cada elemento. Ahora se ha extraído esa lógica común y se ha añadido una variante vectorizada (k_get_rows_float_vec) que copia bloques de 16 bytes (int4) por hilo en los casos contiguos.
La nueva ruta vectorizada se activa en tiempo de compilación cuando los tipos coinciden y, en ejecución, solo si los punteros base y todos los pasos de fila están alineados a 16 bytes y el tamaño de fila es múltiplo del vector. Para evitar regresiones en recolecciones pequeñas de una sola fila, se mantiene una compuerta de ocupación que mantiene esos casos en la ruta escalar, más rica en bloques.
En pruebas con hardware Strix Halo (gfx1151), la operación de estado recurrente de DeltaNet (ne00=524288) mejoró de 18,6 µs a 13,0 µs, superando incluso al backend Vulkan, y sin pérdida de rendimiento en recolecciones pequeñas. En total, el tiempo de get_rows se redujo un 27%. Todas las pruebas del backend (test-backend-ops GET_ROWS) pasan correctamente.
La versión incluye binarios precompilados para macOS, Linux, Windows y Android, con soporte para diversas aceleraciones por hardware (CUDA, Vulkan, ROCm, OpenVINO, SYCL, etc.).



