llama.cpp CUDA 後端將 NVFP4 的 gate/up 矩陣乘與 GLU 融合進 MMQ
llama.cpp 的 CUDA 後端把 NVFP4 的 gate/up 矩陣乘與 GLU 啟用融合進 MMQ 核心,以減少中間結果的讀寫。該 PR(#31296)還讓融合後的 gate/up MMQ 遵循請求的 src1 精度,複用 NVFP4 scale 檢查邏輯,跳過未被使用的融合 FP4 核心,並補充 W4A8 無 scale 與批次輸入的測試。發布包覆蓋 Linux、Windows 的 x64 與 arm64 CUDA 12.8、13.4 建置。
原標題:b12122
閱讀原文
| 評分 | 45 / 45(平均 45,門檻 60) |
| 狀態 | 未入選 |
|---|
原文
Title: CUDA: fuse NVFP4 gate/up matmuls and GLU in MMQ ( #31296 )
cuda: fuse NVFP4 gate/up and GLU in MMQ
cuda: honor the requested src1 precision in fused gate/up MMQ
cuda: share NVFP4 scale checks, skip unused fused FP4 kernels
cuda: test NVFP4 fused MMQ at W4A8 without scales and with batches, clean up naming
cuda: check gate_scale before loading the fused NVFP4 gate scale
Website:
https://llama.app
Attestations:
https://github.com/ggml-org/llama.cpp/attestations/63914210
macOS/iOS:
macOS Apple Silicon (arm64)
macOS Apple Silicon (arm64, KleidiAI enabled) DISABLED
macOS Intel (x64)
iOS XCFramework
Linux:
Ubuntu x64 (CPU)
Ubuntu arm64 (CPU)
Ubuntu s390x (CPU)
Ubuntu 26.04 s390x (CPU)
Ubuntu 26.04 s390x (zDNN)
Ubuntu x64 (Vulkan)
Ubuntu arm64 (Vulkan)
Ubuntu x64 (CUDA 12) - CUDA 12.8 libraries
Ubuntu x64 (CUDA 13) - CUDA 13.4 libraries
Ubuntu arm64 (CUDA 13) - CUDA 13.4 libraries
Ubuntu x64 (ROCm 10.0)
Ubuntu x64 (OpenVINO)
Ubuntu x64 (SYCL FP32)
Ubuntu x64 (SYCL FP16)
Linux arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide
Android:
Android arm64 (CPU)
Android arm64 (Snapdragon: CPU, Adreno GPU, Hexagon NPU) - setup guide
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:
DISABLED
openEuler x86 (310p)
openEuler x86 (910b, ACL Graph)
openEuler aarch64 (310p)
openEuler aarch64 (910b, ACL Graph)
UI:
UI
相關報導
llama.cpp releasesAI 評分49
llama.cpp 發布 b11417 建置,CUDA 後端針對 NVFP4 型別的 mmq 累加做了最佳化,改進 mmq_vec_dot_fp4_fp4_mma 以提升效能,並修正 mma_block_scaled_fp4 迴圈的縮排。該版本建置覆蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,包含 CUDA 12.8、CUDA 13.4、ROCm 10.0、Vulkan、SYCL、OpenVINO 等後端;
llama.cpp releasesAI 評分43
llama.cpp 發布 b11962 建置,在 CUDA 的 MMQ 路徑中把 MoE(MUL_MAT_ID)的 gate/up 投影與 GLU 融合成一個運算元,減少中間結果的視訊記憶體讀寫與運算元呼叫開銷。
llama.cpp releasesAI 評分56
llama.cpp 的 CUDA 後端把稠密 FFN 的 gate 與 up 兩次矩陣乘合併為一次 mul_mat_q 呼叫,並在寫回階段直接計算 GLU,主要加速 prompt 處理。權重按每 8 行交錯裝載,使每個執行緒同時持有 up 值與對應的 gate 值,MMA 迴圈、warp 佈局與 vec_dot 保持原樣,寫回只輸出一半行。
llama.cpp releasesAI 評分43
llama.cpp 建置版本 b11517 發布,其中 CUDA 後端將 src1 精度顯式傳遞給主機端的 MMQ 配置輔助函式(PR #30168,作者來自 NVIDIA),屬於量化矩陣乘效能/正確性相關的底層調整。
llama.cpp releasesAI 評分43
llama.cpp 發布 b11515,主要變更是 SYCL 後端為 Q5_K 量化補上重排佈局的 MMVQ 核心,並加入融合 GLU(#29375),面向 Intel GPU 的量化推理。建置矩陣照舊覆蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,包含 CUDA 12/13、ROCm 10.0、Vulkan、OpenVINO、SYCL FP32/FP16 等後端;