llama.cpp ReleasesActualizado el

[Pre-release / build continuo] b11630

[Pre-release / build continuo] ggml: corregir la disposición del resultado de conv_1d para entradas por lotes (#28738) * ggml: corregir la disposición del resultado de conv_1d para entradas por lotes El GEMM detrás de…

Pre-release / build continuo: esta es una versión experimental, no una versión estable.

ggml: corregir la disposición del resultado de conv_1d para entradas por lotes (#28738) * ggml: corregir la disposición del resultado de conv_1d para entradas por lotes El GEMM detrás de conv_1d pliega el lote en sus filas, por lo que el producto queda en memoria como [OL, N, OC], mientras que el reshape afirma [OL, OC, N]. La forma es correcta y el contenido está transpuesto, así que nada se dispara: sin assert, sin abort, el grafo simplemente se ejecuta y los canales salen entrelazados con los lotes. Con N == 1 ambas lecturas describen el mismo búfer, razón por la cual los tres vocoders del árbol nunca lo detectan, todos hacen squeeze a 2d justo después de la llamada. Hacer reshape a la disposición real y permutar OC y N de vuelta. La ruta N == 1 conserva su reshape directo, de modo que los llamadores actuales construyen el mismo grafo y no pagan ninguna copia extra. tests/test-conv-1d.cpp compara una convolución por lotes contra N convoluciones de lote único construidas con el mismo peso y las mismas rebanadas de entrada. Cinco de las siete geometrías fallan antes de este cambio y las siete pasan después. N == 1 y OC == 1 pasan de cualquier forma, ya que intercambiar dos dimensiones cuando una de ellas es 1 no cambia nada. La ruta por lotes es importante para proyectos de audio aguas abajo donde varias líneas de síntesis comparten un único grafo. Nada en mtmd pone un vocoder en lotes hoy, cada uno transmite un flujo y lleva su contexto izquierdo entre llamadas, pero la op ahora es correcta si uno de ellos desarrolla una dimensión de líneas. * ggml: construir el mismo grafo conv_1d para cada tamaño de lote Atender la revisión de ggerganov: eliminar la rama N == 1 de ggml_conv_1d. El resultado del GEMM siempre se redimensiona a [OC, N, OL] y se permuta de vuelta, como hace ggml_conv_2d, así que cada tamaño de lote construye el mismo grafo. Para N == 1 esto añade un cont sobre un tensor ya ordenado.

Sitio web: - https://llama.app

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

macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI habilitado) DISABLED - 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 de CUDA 12.8 - Ubuntu x64 (CUDA 13) - Bibliotecas de CUDA 13.4 - Ubuntu arm64 (CUDA 13) - Bibliotecas de CUDA 13.4 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon: CPU, GPU Adreno, NPU Hexagon) - guía de configuración

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

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

openEuler: - DISABLED - 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