v0.40.7-rc1 去重 GGML 與 MLX 的 CUDA 執行庫
v0.40.7-rc1 把 GGML 與 MLX 兩個後端共用的 CUDA 庫合併進同一個 CUDA payload 目錄,消除重複打包。程序內和子程序載入 MLX 時都會解析這個打包依賴目錄;MLX 私有庫與 JIT 標頭檔案仍保留在 MLX overlay 中。此外補齊 OpenBLAS 的完整 Fortran 執行時依賴閉包,並在發布打包流程中校驗這些依賴。
依意思最接近的 30 筆
v0.40.7-rc1 把 GGML 與 MLX 兩個後端共用的 CUDA 庫合併進同一個 CUDA payload 目錄,消除重複打包。程序內和子程序載入 MLX 時都會解析這個打包依賴目錄;MLX 私有庫與 JIT 標頭檔案仍保留在 MLX overlay 中。此外補齊 OpenBLAS 的完整 Fortran 執行時依賴閉包,並在發布打包流程中校驗這些依賴。
llama.cpp b11436 修復 ggml-openvino 後端的 CI 測試失敗與多項 GPU 迴歸。上游 #29622 給輸入 embedding 圖加入混合 token/embd 分支,後端改為只從計算節點建置 OV 模型,並把同型別連續 DUP 按 CONT 翻譯以避免圖被拆分,修復了 CPU 與 GPU 上首個單 token decode 失敗;
ggml 修復了 CLAMP 運算元在非連續檢視上的定址錯誤,涉及 CPU 與 CUDA 後端。CUDA 此前按 ggml_nelements 做平坦處理、忽略檢視 stride,CPU 則把第 j 行按 j*nb01 定址、忽略 nb02/nb03;現在兩者都改為遵循 dims 1..3 的 stride,且 CUDA 的 supports_op 要求行連續,與 Metal 一致。
llama.cpp 發布建置 b11448,ggml-cuda 後端把大塊 BF16/FP16 到 F32 的轉換改為分塊執行(#29442),並修正分塊 cuBLAS 矩陣乘法未遵循目標 stride 的問題,提交由 Johannes Gäßler 參與。改動僅涉及 CUDA 後端,影響用 NVIDIA GPU 做本地推理的場景;該建置同時覆蓋 macOS Apple Silicon 與 Linux、Windows 的 CUDA 12/13 等平台。
llama.cpp 發布 b11563 建置,其中 ggml 把符號預設可見性改為 hidden,避免一批內部符號通過 GGML_API 洩漏(#30014,討論見 #29997)。同批建置覆蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,含 CUDA 12/13、ROCm 10.0、Vulkan、SYCL、OpenVINO 等後端。
llama.cpp 發布建置 b11581,主要改動是刪除模型實現中多餘的 ggml_cont 呼叫,官方稱所有 unary kernel 現在都已支援這種用法,CUDA unary kernel 也已跟進。同一批提交修正了 qwen3next:在用於廣播乘法的 sigmoid 前後恢復 cont_2d 張量連續性,並清理 dflash 的 cont。
llama.cpp 建置 b11632 為 CUDA 和 HIP 後端加入 GDN chunked kernel(自 tetherto#257 移植)。在 RTX 3090(SM86)與 RTX 4090(SM89)通過正確性和 prefill 基準測試後,CUDA 側啟用 GDN MMA,其他未測試架構繼續沿用原有 fallback;ggml 側另註明 GDN 只在 n_tokens > K 時保證最終狀態。
llama.cpp 發布 b11720,ggml 的 SUM 運算新增非連續(non-contiguous)張量檢視支援,覆蓋 CPU、CUDA、Vulkan 與 WebGPU 四種後端,並補充了非連續檢視的測試用例。
llama.cpp 發布建置 b11687,核心改動是重構 ggml-cpu 的 s309x repack 輔助函式(PR #30588)。同批預編譯產物覆蓋 macOS/iOS、Linux、Android、Windows 與 openEuler,其中 macOS Apple Silicon 的 KleidiAI 啟用版和 openEuler 建置被標記為 DISABLED。
llama.cpp 發布每日建置 b11592,ggml-cuda 的 CUDA graph 除錯日誌改為只在設定 GGML_CUDA_GRAPH_DEBUG 後才輸出,並移除了這部分日誌的 NDEBUG 編譯開關。同一批提交把 CUDA 環境變數的讀取改成靜態常量快取,程序內只查詢一次,不再每次呼叫重複讀取。
llama.cpp 發布 b11731,ggml-cpu 後端將 ggml_v_silu 與 ggml_v_expf 向量化,提交者為 IBM 的 Aaron Teo,可加速 CPU 推理中的 SiLU 啟用與指數運算。該版本照例更新了各平台預編譯產物,覆蓋 CUDA 12/13、Vulkan、ROCm、SYCL、OpenVINO、Android 及 Windows arm64 等。
llama.cpp 發布 b11662 版本(同步 ggml),預編譯建置提供 ROCm 10.0、CUDA 13(13.4 庫)以及驍龍平台的 CPU、Adreno GPU 與 Hexagon NPU 版本。
llama.cpp 發布建置 b11459,唯一列出的程式碼改動是 ggml-webgpu 在 WASI 上不再啟用 Dawn 原生特性。該建置的預編譯產物覆蓋 macOS Apple Silicon(arm64)與 Intel(x64)、iOS XCFramework、Linux、Android、Windows 以及 openEuler。後端包括 CPU、Vulkan、CUDA 12、CUDA 13、ROCm 10.0、OpenVINO 與 SYCL;
llama.cpp 現在可以通過 ggml RPC 後端,把推理任務分散到異構裝置上共同完成,即同一次推理可由不同型別的硬體一起承擔。llama.cpp 作者 Georgi Gerganov 說明,這一能力目前仍是進階設定,但會隨時間逐步降低使用門檻,讓普通使用者也能用上。原文未給出支援的具體硬體組合、效能表現或可用版本。
llama.cpp 發布 b11786 建置,ggml-cpu 後端的 f32 gelu_quick 與 geglu_quick 改為不依賴 fp16 查表直接計算,同時保留 GGML_GELU_QUICK_FP16 表路徑,並新增 VXE 的 gelu_quick 路徑。該版本還為 f32 CPU 核心補充 test-gelu-quick 測試,並從其中移除 inf/nan 輸入。
Google AI Edge 推出 ML Drift,一個面向端側 AI 與機器學習推理的高效能通用 GPU 計算框架。它把 OpenGL ES、OpenCL、Metal、WebGPU 等底層硬體與圖形計算 API 抽象掉,讓開發者無需直接處理這些介面,就能在移動端與桌面端建置即時互動式 ML 體驗,覆蓋從複雜影片特效到生成式 AI 的場景。
ggml-openvino 後端更新到 2026.4.1,重點最佳化 Qwen3.5 MoE 推理效能,並新增推理效能分析、預設使用遠端輸出張量、磁碟快取模型直載(cache_only)等能力。在 Arc B390 上以 q4_asym64_all 重量化執行 gemma-4-26B-A4B,pp512 從 66.16 t/s 提升到 1608.73 t/s,tg128 從 25.94 提升到 26.46 t/s,困惑度基本不變。
llama.cpp 建置 b11529 修復了 ggml 中 ggml_acc 的越界寫漏洞:ggml_acc_impl 將 size_t 偏移量收窄為 int32_t 時未做檢查,超大偏移會截斷成負數,再被符號擴充套件為巨大 size_t 導致邊界斷言失效,可在 dst 緩衝區下方越界寫入。修復方式是在收窄前檢查偏移量,與 ggml_set_impl 中已有檢查保持一致。該版本同時提供 macOS、Linux、Windows、Android 等多平台預編譯包。
llama.cpp 的 SYCL 後端放行了 GLM-4.7 Flash 的 MLA 形狀走 MKL flash attention,此前該形狀因 K/V 寬度不一致、head dim 上限 512 被排程器拒絕,預填充只能回退到更慢的 TILE kernel。在 Intel Arc Pro B70 上,pp8192 從 432.80 提升到 1292.29 tok/s(2.99 倍,+198.6%),tg256 在噪聲範圍內基本不變(45.67 對 45.65)。
llama.cpp 合併 PR #29071,修復 SYCL 後端在 Flash Attention(FA)中混用不同型號 GPU 時出現的問題。改動位於 ggml/src/ggml-sycl/ggml-sycl.cpp,提交由 Georgi Gerganov 共同署名。該修復包含在版本 b11464 中,此版本同時提供 Ubuntu x64(SYCL FP32、FP16)與 Windows x64(SYCL)等建置。
llama.cpp 發布 b11770 建置,CUDA 後端新增對 ssm_conv 卷積核尺寸 7 的支援(#30873),補齊狀態空間模型在 GPU 上的運算元覆蓋。該版本同時提供 macOS、iOS、Linux、Android、Windows 與 openEuler 的預編譯包,覆蓋 CUDA 12/13、ROCm 10.0、Vulkan、SYCL、OpenVINO 及 Snapdragon 的 CPU、Adreno GPU、Hexagon NPU 等後端。
llama.cpp 發布 b11486 建置,Hexagon 後端的 GELU 啟用函式精度得到改進(#30104)。該版本繼續為驍龍平台提供 Hexagon NPU、Adreno GPU 與 CPU 三類後端,覆蓋 Linux arm64、Android arm64 與 Windows arm64。
llama.cpp 合併 PR #27096,修復 ggml-cpu 後端 GGML_OP_SOFT_MAX_BACK 在 dst 與 src1(y)別名時輸出靜默錯誤的問題:原實現先覆蓋 y 再讀取,導致結果錯誤。補丁改為單次融合迴圈,先讀兩個輸入再寫出,並新增迴歸測試強制觸發該別名。CUDA 核心因先完成歸約再寫出,不受影響。
llama.cpp 發布 b11407 版本,修復了在開啟 -DGGML_VULKAN_RUN_TESTS=ON 時 Vulkan 後端出現的未宣告識別符號問題。該版本同步提供 macOS、Linux、Windows、Android 等多平台預編譯包,涵蓋 CPU、CUDA 12/13、Vulkan、ROCm 10.0、OpenVINO、SYCL 及 Snapdragon 的 Adreno GPU 與 Hexagon NPU 等後端。
llama.cpp 發布 b11494,ggml-cuda 將 GDN 狀態列數(cols_per_warp)的預設值定為 4,此前該值經歷每 warp 2 列與 4 列的調整,並在 S_v=128 時使用 4 列。
v0.40.5 把 MLX 原本為 Metal 寫的自訂核心移植到 CUDA,MLX 推理路徑由此延伸到 NVIDIA GPU。同一版本中,OpenAI 相容層可在 Responses 歷史裡接受自訂工具呼叫,應用端澄清了雲支付報錯提示,文件更新模型推薦並統一措辭。此外還有 MLX 的版本號提升,以及新貢獻者 @willietran 的首次提交。
llama.cpp 修復了 ggml-cpu 後端 SET_ROWS 運算元的多執行緒越界寫入問題:該運算元按 n_tasks=1 規劃,但每個執行緒都會執行並各自佔用 F16→F32 轉換緩衝區的一行,當計算圖中還有別的多執行緒運算元時,編號大於 0 的執行緒就會寫到工作緩衝區之外;修復方式是把 set_rows 併入 n_task=n_threads 的執行緒組。
llama.cpp 合併了 K2 Horizon 稠密模型與 MoVA 支援,包含 GGUF 轉換、計算圖、tokenizer、chat template,以及推理與工具呼叫。
llama.cpp 發布 b11384 版本,官網為 llama.app,並附 GitHub 建置證明。該版本提供 macOS、iOS、Linux、Android、Windows 及 openEuler 的預編譯包,涵蓋 Apple Silicon、CUDA 12/13、ROCm 10.0、Vulkan、SYCL、OpenVINO 與 Snapdragon 的 CPU、Adreno GPU、Hexagon NPU 等後端。
llama.cpp 發布 b11532 建置,ModernBERT 編碼器改用精確 GELU(exact GELU),替代此前的近似實現;同時保留 ggml_geglu 上的 tanh GELU 別名,並把 gelu_python 對映到 ggml_geglu_erf。