AISpot

llama.cpp 新增 NCCL 多節點張量並行支援

llama.cpp releases版本更新地端推論開源

llama.cpp 建置 b12079 為多節點張量並行加入 NCCL 支援:CUDA 後端實現了一套跨程序的集合通訊後端介面,並在 RPC server 可用時啟用。

該版本把跨程序集合通訊抽象成通用後端介面,並在 CUDA 上用 NCCL 實現,還針對 DGX Spark 調整 maxCTAs;這對通過 RPC 在多機多卡上執行大模型的 llama.cpp 使用者是實際的能力擴充套件。

原標題:b12079
閱讀原文

評分78 / 66(平均 72,門檻 60)
狀態精選

全文翻譯

為多節點張量並行新增 nccl 支援( #28967 ) 為跨執行在獨立程序中的 rank 的集合通訊新增後端介面,在 CUDA 後端中使用 NCCL 實現它,並在可用時在 RPC 伺服器中使用它。 刪除 ggml_backend_comm_allreduce_rank_t,並複用 ggml_backend_comm_allreduce_tensor 作為每個 rank 的通訊器 複用 ggml_backend_cuda_comm_allreduce_nccl 作為每個 rank 的通訊器。刪除輔助函式 backend_comm_proc_address 將 ggml_backend_comm_get_unique_id_t 和 ggml_backend_comm_init_rank_t 更改為更通用的多程序後端通訊器介面 在 ggml_backend_cuda_comm_init_rank 中為 dgx spark 將 ncclConfig_t 中的 maxCTAs 設定為 8 網站: https://llama.app 證明: https://github.com/ggml-org/llama.cpp/attestations/63316073 macOS/iOS: - macOS Apple Silicon (arm64) - macOS Apple Silicon (arm64, KleidiAI 已啟用) 已停用 - 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 庫 - Ubuntu x64 (CUDA 13) - CUDA 13.4 庫 - Ubuntu arm64 (CUDA 13) - CUDA 13.4 庫 - Ubuntu x64 (ROCm 10.0) - Ubuntu x64 (OpenVINO) - Ubuntu x64 (SYCL FP32) - Ubuntu x64 (SYCL FP16) - Linux arm64 (Snapdragon:CPU、Adreno GPU、Hexagon NPU) - 設定指南 Android: - Android arm64 (CPU) - Android arm64 (Snapdragon:CPU、Adreno GPU、Hexagon NPU) - 設定指南 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: - 已停用 - openEuler x86 (310p) - openEuler x86 (910b, ACL Graph) - openEuler aarch64 (310p) - openEuler aarch64 (910b, ACL Graph) UI: - UI

由 AI 翻譯,以原文為準。

原文
Add nccl support for multi-node tensor parallelism ( #28967 ) Add a backend interface for collectives across ranks running in separate processes, implement it in the CUDA backend using NCCL, and use it in the RPC server when available. Drop ggml_backend_comm_allreduce_rank_t and reuse ggml_backend_comm_allreduce_tensor for per-rank communicators reuse ggml_backend_cuda_comm_allreduce_nccl for per-rank communicators. Remove the helper function backend_comm_proc_address Change ggml_backend_comm_get_unique_id_t and ggml_backend_comm_init_rank_t to more generic multi-process backend communicator interfaces set maxCTAs in ncclConfig_t to 8 for dgx spark in ggml_backend_cuda_comm_init_rank Website: https://llama.app Attestations: https://github.com/ggml-org/llama.cpp/attestations/63316073 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 評分36

llama.cpp b11835:SYCL 將 device 傳入 mul_mat_uses_onednn

llama.cpp 發布 b11835 建置版本,主要變更是 SYCL 後端把 device 傳入 mul_mat_uses_onednn(#31014)。該版本同步提供 macOS Apple Silicon、Linux/Windows 的 CPU、Vulkan、CUDA 12/13、ROCm 10.0、OpenVINO、SYCL 等預編譯包,並包含 Android arm64 與 Snapdragon 的 CPU/Adreno GPU/Hexagon NPU 建置。

llama.cpp releasesAI 評分45

llama.cpp 新增 ggml 批次張量複製 API,並支援 CUDA

llama.cpp 建置 b12002 為 ggml 加入通用批次張量複製 API,並把 llama 的 context io 改為按批次執行裝置張量複製。新 API 已獲 CUDA 後端支援,會按緩衝區型別分組排程,同時移除了舊的非同步 tensor_n 介面並補上空緩衝區鉤子,還修復了二維批次張量的識別問題。測試方面,test-backend-tensor 經過重構,用 mock 緩衝區型別驗證鉤子呼叫、逐張量回退,以及 cpy_tensor_n 的全有全無語義。

llama.cpp releasesAI 評分40

llama.cpp b11693 修復 SYCL 後端 mul_mat 記憶體錯誤

llama.cpp 發布建置 b11693,核心改動是修復 SYCL 後端在 mul_mat、split buffer 和 host pool 中的記憶體錯誤(PR #29889)。該版本同時更新了預編譯產物清單,覆蓋 macOS/iOS、Linux、Windows、Android,包含 CUDA 12/13、Vulkan、ROCm 10.0、OpenVINO 以及 SYCL FP32/FP16 等後端。