본문으로 건너뛰기
AI NEWS JOURNAL
llama.cpp releasesAI NEWS / JOURNAL

b11879

CUDA: fuse FFN gate/up matmuls and GLU in MMQ with interleaved gate/up rows (#29948) * cuda: fuse FFN gate/up and GLU in MMQ with interleaved gate/up rows For prompt processing, run the gate and up matmuls of a dense FFN as one mul_mat_q launch and apply the GLU in the write-back. - The loaders take the gate weights as a second pointer and fill the weight tile with up and gate rows interleaved in chunks of 8, so each thread holds an up value and the matching gate value (rows r and r + 8 of an MMA tile). - The MMA loop is unchanged: same tile, warp layout, vec_dot and one sum[] per thread. The fused write-back computes the GLU from registers and writes half the rows. - The fused path uses the regular tiling (no stream-k) with the column tiles innermost so that neighbouring blocks share weig

번역 대기 중입니다. 완료되면 자동 업데이트됩니다.

CUDA: fuse FFN gate/up matmuls and GLU in MMQ with interleaved gate/up rows (#29948)

* cuda: fuse FFN gate/up and GLU in MMQ with interleaved gate/up rows

For prompt processing, run the gate and up matmuls of a dense FFN as one

mul_mat_q launch and apply the GLU in the write-back.

- The loaders take the gate weights as a second pointer and fill the weight

tile with up and gate rows interleaved in chunks of 8, so each thread holds

an up value and the matching gate value (rows r and r + 8 of an MMA tile).

- The MMA loop is unchanged: same tile, warp layout, vec_dot and one sum[]

per thread. The fused write-back computes the GLU from registers and writes

half the rows.

- The fused path uses the regular tiling (no stream-k) with the column tiles

innermost so that neighbouring blocks share weight tiles.

- Enabled for Q4_K, Q5_K, Q6_K, Q8_0 and IQ4_XS on NVIDIA Turing and newer.

* cuda: assert the fused MMQ gate argument and trim redundant comments

* cuda: move the fused MMQ hint check to should_fuse and add TODOs

* cuda: pass prec_src1 to the fused MMQ write-back

* cuda: fuse only with efficient tiling and no fallback, merge the GLU write-back

* cuda: require has_fusion explicitly, drop the fusion-only src1 precision check

* cuda: launch the fused MMQ kernel through the stream-k kernel with one block per tile

* cuda: inline the MMQ tiling-efficiency check

* tests: one fused gate/up MMQ case per type and GLU op

* cuda: always launch the fused MMQ kernel with one block per tile

* tests: shorten the fused gate/up MMQ test comment

* cuda: select the fused MMQ loader and write-back in ggml_cuda_mmq_get_util_funcs

* cuda: run the fused MMQ kernel on the plain tiling path

* cuda: put the column tiles innermost in the MMQ plain tiling path

**Website:**

-

**Attestations:**

-

**macOS/iOS:**

- [macOS Apple Silicon (arm64)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-macos-arm64.tar.gz)

- macOS Apple Silicon (arm64, KleidiAI enabled) [DISABLED](https://github.com/ggml-org/llama.cpp/pull/23780)

- [macOS Intel (x64)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-macos-x64.tar.gz)

- [iOS XCFramework](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-xcframework.zip)

**Linux:**

- [Ubuntu x64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-x64.tar.gz)

- [Ubuntu arm64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-arm64.tar.gz)

- [Ubuntu s390x (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-s390x.tar.gz)

- [Ubuntu x64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-vulkan-x64.tar.gz)

- [Ubuntu arm64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-vulkan-arm64.tar.gz)

- [Ubuntu x64 (CUDA 12)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-cuda-12.8-x64.tar.gz) - [CUDA 12.8 libraries](https://github.com/ggml-org/llama.cpp/releases/download/b11879/cudart-llama-b11879-bin-ubuntu-cuda-12.8-x64.tar.gz)

- [Ubuntu x64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-cuda-13.4-x64.tar.gz) - [CUDA 13.4 libraries](https://github.com/ggml-org/llama.cpp/releases/download/b11879/cudart-llama-b11879-bin-ubuntu-cuda-13.4-x64.tar.gz)

- [Ubuntu arm64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-cuda-13.4-arm64.tar.gz) - [CUDA 13.4 libraries](https://github.com/ggml-org/llama.cpp/releases/download/b11879/cudart-llama-b11879-bin-ubuntu-cuda-13.4-arm64.tar.gz)

- [Ubuntu x64 (ROCm 10.0)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-rocm-10.0-x64.tar.gz)

- [Ubuntu x64 (OpenVINO)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-openvino-2026.4.1-x64.tar.gz)

- [Ubuntu x64 (SYCL FP32)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-sycl-fp32-x64.tar.gz)

- [Ubuntu x64 (SYCL FP16)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-ubuntu-sycl-fp16-x64.tar.gz)

- [Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-linux-arm64-snapdragon.tar.gz) - [setup guide](https://github.com/ggml-org/llama.cpp/blob/master/docs/backend/snapdragon/linux.md)

**Android:**

- [Android arm64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-android-arm64.tar.gz)

- [Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-android-arm64-snapdragon.tar.gz) - [setup guide](https://github.com/ggml-org/llama.cpp/blob/master/docs/backend/snapdragon/README.md)

**Windows:**

- [Windows x64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-cpu-x64.zip)

- [Windows arm64 (CPU)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-cpu-arm64.zip)

- [Windows arm64 (OpenCL Adreno)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-opencl-adreno-arm64.zip)

- [Windows x64 (CUDA 12)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-cuda-12.4-x64.zip) - [CUDA 12.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/b11879/cudart-llama-bin-win-cuda-12.4-x64.zip)

- [Windows x64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-cuda-13.4-x64.zip) - [CUDA 13.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/b11879/cudart-llama-bin-win-cuda-13.4-x64.zip)

- [Windows arm64 (CUDA 13)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-cuda-13.4-arm64.zip) - [CUDA 13.4 DLLs](https://github.com/ggml-org/llama.cpp/releases/download/b11879/cudart-llama-bin-win-cuda-13.4-arm64.zip)

- [Windows x64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-vulkan-x64.zip)

- [Windows arm64 (Vulkan)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-vulkan-arm64.zip)

- [Windows x64 (OpenVINO)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-openvino-2026.4.1-x64.zip)

- [Windows x64 (SYCL)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-sycl-x64.zip)

- [Windows x64 (ROCm 10.0)](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-bin-win-rocm-10.0-x64.zip)

**openEuler:**

- [DISABLED](https://github.com/ggml-org/llama.cpp/pull/23705)

- openEuler x86 (310p)

- openEuler x86 (910b, ACL Graph)

- openEuler aarch64 (310p)

- openEuler aarch64 (910b, ACL Graph)

**UI:**

- [UI](https://github.com/ggml-org/llama.cpp/releases/download/b11879/llama-b11879-ui.tar.gz)

자료 출처

llama.cpp releases
← 전체 소식 이어 읽기