所屬事件:
llama.cpp 新增批次張量複製 API,CUDA 讀取改用對映主機記憶體(1 個來源 · 2 則報導)
10 月 30 日,llama.cpp 發布建置 b12002,為 ggml 加入通用批次張量複製 API,並把 llama 的 context io 改為按批次執行裝置張量複製,替代原先逐個張量的裝置複製路徑。新 API 已獲 CUDA 後端支援,會按緩衝區型別分組排程;該版本同時移除舊的非同步 tensor_n 介… 看完整事件
llama.cpp CUDA 批次張量讀取改用對映主機記憶體
llama.cpp 合入 PR #31391,CUDA 後端將批次張量讀取改為聚集(gather)到對映主機記憶體:小讀取使用 8 位元組複製,大讀取改用 pinned DMA,descriptor 的 pinned 緩衝區擴大到 128k。實現上增加條件派發、把主機記憶體註冊改為 RAII,並調整張量測試以控制 CI 耗時。該 PR 由 Codex 輔助完成。
原標題:b12080
閱讀原文
同一事件共有 2 則報導(1 個來源),看事件全貌
| 評分 | 42 / 44(平均 43,門檻 60) |
| 狀態 | 未入選 |
|---|
原文
cuda : gather batched tensor reads into mapped host memory (PR to master) ( #31391 )
cuda: gather batched tensor reads into mapped host memory
Assisted-by: Codex
add comments
Assisted-by: Codex
simplify the implementation based on checks that exist earlier in the flow
simplify batched tensor gather indexing
add conditional dispatch
address comments - make host registration raii, better test mindful of ci time, assert instead of return false
cuda : gather small reads and use pinned DMA for large reads
cuda : use std::vector for host gather descriptors
cuda : add 8-byte gather copies, generalize tensor test and log registration failures
common buffer for descriptors
simplify stream sync + increase to 128k descriptor pinned buf
Website:
https://llama.app
Attestations:
https://github.com/ggml-org/llama.cpp/attestations/63324058
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 評分43
llama.cpp 建置版本 b11517 發布,其中 CUDA 後端將 src1 精度顯式傳遞給主機端的 MMQ 配置輔助函式(PR #30168,作者來自 NVIDIA),屬於量化矩陣乘效能/正確性相關的底層調整。
llama.cpp releasesAI 評分41
llama.cpp 發布建置 b11456,其中 ggml-cuda 在緩衝區初始化的 padding memset 中改用每執行緒 stream(#28782),CI 也重新為 ROCm 啟用 test-backend-ops 的 -j 並行測試。該建置覆蓋 macOS/iOS、Linux、Android、Windows 與 openEuler,含 CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL 等後端;
llama.cpp releasesAI 評分16
llama.cpp 發布 b11391 建置版本,唯一程式碼改動是將 CUDA 後端的 blocks_per_col 變數移到實際使用位置(PR #29939),由 Hugging Face 的 Adrien Gallouët 提交。
llama.cpp releasesAI 評分43
llama.cpp 發布 b11678 建置,其中一項改動把 CUDA pinned host buffer 的最大尺寸限制為 4 GB,對應 PR #30449。
llama.cpp releasesAI 評分40
llama.cpp 發布 b11538 建置,修復 CUDA 後端的舍入問題,使 MSVC 下 CPU 與 GPU 的計算結果一致。本次發布包覆蓋 macOS/iOS、Linux、Windows、Android 與 openEuler,其中 CUDA 12/13 預編譯包分別對應 CUDA 12.8 與 13.4 庫,Linux 與 Windows x64 另有 ROCm 10.0、OpenVINO、SYCL、Vulkan 建置,Snapdragon 平台提供 CPU、Adr…