llama.cpp Releases

[Pre-lanzamiento / construcción continua] b11463

[Pre-lanzamiento / construcción continua] sycl: acelera el relleno previo de GLM MLA con MKL flash attention (#29171) * sycl: acelera el relleno previo de GLM MLA con MKL flash attention GLM-4.7 Flash utiliza una forma…

Build prelanzado / construcción continua: esta es una construcción experimental, no una versión estable.

sycl: acelerar el llenado previo de GLM MLA con MKL flash attention (#29171) * sycl: acelerar el llenado previo de GLM MLA con MKL flash attention GLM-4.7 Flash utiliza una forma MLA con 576 cabezas Q/K de ancho, una cabeza V de 512 de ancho, GQA 20 y F16 KV. El despachador SYCL rechaza esta forma porque la puerta normal de MKL flash-attention requiere que los anchos de K/V coincidan y limita la dimensión de la cabeza a 512, por lo que el procesamiento del prompt retrocede al kernel TILE, que es considerablemente más lento. Acepte únicamente la forma 576/576/512, GQA-20 F16 validada en el pipeline existente. Mantenga todas las otras formas K/V no compatibles en sus caminos de fallback actuales. Maneje la caché V de GLM como una vista estrecha de filas K. Seleccione el descriptor F16 estructurado cuando el paso de fila esté relleno, y asigne alias a los búferes de desacumulación K/V solo cuando su ancho lógico coincida. Limite la excepción de paso a una vista real V que comparte el paso de fila de K. Añada la prueba exacta del backend de ruta de prompt 576/512, GQA-20. En un Intel Arc Pro B70 con el valor master e613ef2, pp8192, mejora de 432.80 a 1292.29 tok/s (2.99x, +198.6%). tg256 permanece sin cambios dentro del ruido, en 45.67 frente a 45.65 tok/s. La prueba MLA exacta pasa y la salida de depuración confirma el despacho de MKL. * sycl: almacenar los puntajes de atención flash de MKL en F16 Mantener la salida QK GEMM en F16 en lugar de F32. La softmax en línea sigue convirtiendo cada puntaje en F32 para su máximo, exponente y suma, por lo que las matemáticas por elemento no cambian, aparte de la redondeación del puntaje, y la matriz F32 se escribía únicamente para ser consumida como probabilidades F16. La matriz de puntaje F32 es el mayor intermedio de atención por flash en este camino; al almacenarla como F16, se reduce su tamaño y el tráfico. Esto se basa en los cargas de softmax coalescidas desde 1aa2954bd, que leen cada fila de puntaje de manera cooperativa, por lo que el tipo de dato más pequeño aporta beneficios. Medido en un Intel Arc Pro B70 con la configuración del commit anterior: -ngl 999 -b 4096 -ub 1024 -ctk f16 -ctv f16 -fa: pp8192 1583.9 -> 1657.1 tok/s (+4.6%) pp64000 610.0 -> 684.5 tok/s (+12.2%) pp131072 ~354 -> 402.1 tok/s (+13.5%) tg256 en un contexto de 8k no ha cambiado (32.64), y la suite FLASH_ATTN_EXT no muestra fallos nuevos. Los casos del backend GLM MLA exactos pasan frente al CPU. Ajuste la cifra de referencia de ~354 si prefiere citar solo los pares medidos (el punto de 131k únicamente para despachos provino de la versión mantenida equivalente). Opcionalmente agregue Assisted-by: según las directrices de contribución, ya que AI contribuyó al cambio. * Revertir “sycl: almacenar los puntajes de atención flash de MKL en F16” Esto revertirá el commit 265f9748164dc88e02678425b75f520ccd528b32.

Web: - https://llama.app

Atestaciones: - https://github.com/ggml-org/llama.cpp/attestations/53529269

macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI activado) DESACTIVADO - macOS Intel (x64) - iOS XCFramework

Linux: - Ubuntu x64 (CPU) - Ubuntu arm64 (CPU) - Ubuntu s390x (CPU) - Ubuntu x64 (Vulkan) - Ubuntu arm64 (Vulkan) - Ubuntu x64 (CUDA 12) - Bibliotecas CUDA 12.8 - Ubuntu x64 (CUDA 13) - Bibliotecas CUDA 13.4 - Ubuntu arm64 (CUDA 13) - Bibliotecas CUDA 13.4 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - guía de configuración

Android: - Android arm64 (CPU) - Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - guía de configuración

Windows: - Windows x64 (CPU) - Windows arm64 (CPU) - Windows arm64 (OpenCL Adreno) - Windows x64 (CUDA 12) - CUDA 12.4 DLLs - Windows x64 (CUDA 13) - CUDA 13.4 DLLs - Windows arm64 (CUDA 13) - CUDA 13.4 DLLs - Windows x64 (Vulkan) - Windows arm64 (Vulkan) - Windows x64 (OpenVINO) - Windows x64 (SYCL) - Windows x64 (ROCm 10.0)

openEuler: - DESACTIVADO - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph)

UI: - UI

Fuente original

llama.cpp Releases

Notas sobre el contenido

La publicación original y los derechos pertenecen a la fuente.

Traducción automática · Consulte el original