llama.cpp 按專家 token 縮放 MoE 下投影,並支援張量並行
llama.cpp 建置 b11785 把 MoE 下投影的全域性 amax 縮放改為按專家 token 計算的因子:沿中間維做 POOL_1D 最大值歸約得到縮放量,輸出端再用同一 2 的冪因子還原。同時在 Meta 的 split-state 邏輯中加入 POOL_1D 處理,沿 axis 0 切分時變成各裝置複製的部分結果,從而支援張量並行。該提交還把 amax src1 縮放結果改為通過結構體返回,並清理註釋。
原標題:b11785
閱讀原文
| 評分 | 44 / 42(平均 43,門檻 60) |
|---|---|
| 狀態 | 未入選 |
原文
相關報導
llama.cpp 修復 Metal 後端每 token 9 專家 MoE 核心缺失
llama.cpp 建置 b11755 修復了 Metal 後端缺少每 token 9 專家 MoE 核心變體的問題(#30610、#30699),涉及 Apple Silicon 上的 MoE 推理路徑。該版本照例發布全平台預編譯包,覆蓋 macOS/iOS、Linux(CUDA 12/13、ROCm 10.0、Vulkan、SYCL、OpenVINO)、Android、Windows 及 openEuler 昇騰等後端。
llama.cpp 新 PR 將共享專家融合進 MMVQ,部分 MoE 架構提速
llama.cpp 的 PR #29184 提出在 CUDA 後端把共享專家融合進 MMVQ,為部分 MoE 架構帶來提速,例如 Qwen 35B A3B。有評論稱該改動使 TG 速度提升約 5%,並指出僅對部分 MoE 架構有效。
llama.cpp 新版最佳化 Vulkan 上 MoE 重複專家的矩陣乘
llama.cpp 發布 b11554,Vulkan 後端改進了 MoE 推理中 mul_mat_id 對重複專家 id 的處理:不再逐個迴圈,而是在預計算階段統一處理。原本受限的 hoist row ids 最佳化現在預設開啟,會生成緊湊的 tile 描述列表、按需發射多個 tile,從而收緊 workgroup 數量上界,尾部執行緒可直接提前退出。
llama.cpp b11507 支援 MoE 快取跨多 GPU
llama.cpp 發布 b11507 版本,新增 MoE 快取跨多張 GPU 的支援(PR #30112),可讓混合專家模型在多 GPU 環境下更充分地利用視訊記憶體。該版本同時更新了各平台預編譯產物,覆蓋 macOS Apple Silicon、iOS、Linux(CUDA 12/13、Vulkan、ROCm 10.0、SYCL、OpenVINO)、Windows、Android 以及 openEuler 等平台。
llama.cpp 測試修復:MoE 路由選擇不再受後端噪聲干擾
llama.cpp 建置 b11752 的兩項改動都集中在測試程式碼:MoE 路由選擇加入 step 2 的偏置斜坡,讓每個專家擁有獨立的分數區間,使 top-k 只由專家索引決定,避免後端浮點噪聲把 token 路由到不同專家。此前只有 Beam 架構(8 個專家用 2 個、4 組用 2 個)會撞上這個問題,在 M2 Ultra 上 20 個種子有 2 個失敗、logits 相差 4e-3;修復後 160 個種子全部與 CPU 參考值吻合在 4e-7 以內。