RPC:新增 `-sm tensor` —— 作者 am17an · Pull Request #26610 · ggml-org/llama.cpp
摘要
llama.cpp 的 PR #26610 由 am17an 提交,为 RPC 后端新增 `-sm tensor`(tensor split)选项,使张量可在多设备 RPC 服务器间分配。
查看缓存全文
缓存时间: 2026/10/06 17:43
ggml-org/llama.cpp
Source: https://github.com/ggml-org/llama.cpp
llama.cpp
用 C/C++ 实现的 llama LLM 推理
License: MIT (https://opensource.org/licenses/MIT)
Release (https://github.com/ggml-org/llama.cpp/releases?q=tag:v0) | Nightly (https://github.com/ggml-org/llama.cpp/releases?q=b) | Server (https://github.com/ggml-org/llama.cpp/actions/workflows/server.yml) | Docker (https://github.com/ggml-org/llama.cpp/actions/workflows/docker.yml) | Winget (https://github.com/ggml-org/llama.cpp/actions/workflows/winget.yml) | ggml (https://github.com/ggml-org/ggml) / ops (https://github.com/ggml-org/llama.cpp/blob/master/docs/ops.md) / maintainer PRs (https://github.com/ggml-org/llama.cpp/issues?q=is%3Apr%20is%3Aopen%20draft%3AFalse%20(author%3Argerganov%20OR%20author%3AKitaitiMakoto%20OR%20author%3Adanbev%20OR%20author%3Aaldehir%20OR%20author%3Amax-krasnyansky%20OR%20author%3ACISC%20OR%20author%3Aggerganov%20OR%20author%3Aam17an%20OR%20author%3Ajhen0409%20OR%20author%3Abartowski1182%20OR%20author%3Anikwen%20OR%20author%3Ahipudding%20OR%20author%3Aravi9%20OR%20author%3AServeurpersoCom%20OR%20author%3Apwilkin%20OR%20author%3Areeselevine%20OR%20author%3Angxson%20OR%20author%3Ajeffbolznv%20OR%20author%3Amarty1885%20OR%20author%3A0cc4m%20OR%20author%3ATitaniumtown%20OR%20author%3Aangt%20OR%20author%3AIMbackK%20OR%20author%3Aarthw%20OR%20author%3AJohannesGaessler%20OR%20author%3AORippler%20OR%20author%3Aruixiang63%20OR%20author%3Axctan%20OR%20author%3Aallozaur%20OR%20author%3Ayomaytk%20OR%20author%3Aaendk%20OR%20author%3Awine99%20OR%20author%3Agaugarg-nv%20OR%20author%3Ataronaeo%20OR%20author%3Aforforever73%20OR%20author%3Alhez%20OR%20author%3Anetrunnereve%20OR%20author%3Afairydreaming)%20sort%3Aupdated-desc) / dev stats (https://github.com/ggml-org/llama.cpp-dev) / lib llama API (https://github.com/ggml-org/llama.cpp/issues/9289) / llama-server REST API (https://github.com/ggml-org/llama.cpp/issues/9291)
快速开始
几种在你的机器上安装 llama.cpp 的方式:
# curl
curl -LsSf https://llama.app/install.sh | sh
# powershell
irm https://llama.app/install.ps1 | iex
- 访问 https://llama.app 并按照说明操作
- 使用 Docker 运行——参见我们的 Docker 文档
- 从 releases 页面下载预编译二进制文件 (https://github.com/ggml-org/llama.cpp/releases)
- 克隆本仓库从源码构建——参见我们的构建指南
安装完成后:
# 直接从 Hugging Face 下载并运行模型
llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF
# 启动 OpenAI 兼容的 API 服务器
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF
使用 llama cli 进行 VLM 会话
内置的 Web UI 可直接对接 llama serve
简介
llama.cpp 的主要目标是:以最小的配置,在从本地到云端的各类硬件上,实现最先进性能的 LLM(以及 VLM)推理。
- 纯 C/C++ 实现,无任何依赖
- Apple silicon 是一等公民——通过 ARM NEON、Accelerate 和 Metal 框架进行优化
- 支持 x86 架构的 AVX、AVX2、AVX512 和 AMX
- 支持 RISC-V 架构的 RVV、ZVFH、ZFH、ZICBOP 和 ZIHINTPAUSE
- 支持 1.5-bit、2-bit、3-bit、4-bit、5-bit、6-bit 和 8-bit 整数量化,以加速推理并减少内存占用
- 为 NVIDIA GPU 提供自定义 CUDA kernel(通过 HIP 支持 AMD GPU,通过 MUSA 支持 Moore Threads GPU)
- 支持 Vulkan 和 SYCL 后端
- 支持 CPU+GPU 混合推理,可部分加速超过显存总容量的模型
llama.cpp 项目构建在 ggml (https://github.com/ggml-org/ggml) 库之上。
支持的后端
| 后端 | 目标设备 |
|---|---|
| BLAS | 所有设备 |
| BLIS | 所有设备 |
| CANN | Ascend NPU |
| CUDA | Nvidia GPU |
| HIP | AMD GPU |
| Hexagon | Snapdragon |
| IBM zDNN | IBM Z & LinuxONE |
| MUSA | Moore Threads GPU |
| Metal | Apple Silicon |
| OpenCL | Adreno GPU |
| OpenVINO [进行中] | Intel CPU、GPU 和 NPU |
| RPC (https://github.com/ggml-org/llama.cpp/tree/master/tools/rpc) | 所有设备 |
| SYCL | Intel GPU |
| VirtGPU | VirtGPU API |
| Vulkan | GPU |
| WebGPU | 所有设备 |
| ZenDNN | AMD CPU |
文档
工具
开发
- 如何构建
- 在 Docker 上运行
- 在 Android 上构建
- 多 GPU 使用
- 性能问题排查
- GGML 技巧与窍门 (https://github.com/ggml-org/llama.cpp/wiki/GGML-Tips-&-Tricks)
- XCFramework
- 补全(Completions)
- 模型
- 发布流程
贡献
- 贡献者可以提交 PR
- 根据贡献情况邀请协作者(Collaborator)
- 维护者可以推送
llama.cpp仓库中的分支,并将 PR 合并到master分支 - 任何关于 issues、PR 和项目管理的帮助都非常受欢迎!
- 请阅读 CONTRIBUTING.md 了解更多信息
致谢
- yhirose/cpp-httplib (https://github.com/yhirose/cpp-httplib)
- 单头文件 HTTP 服务器,
llama-server使用 - MIT 许可证
- 单头文件 HTTP 服务器,
- nothings/stb (https://github.com/nothings/stb)
- 单头文件图像格式解码器,多模态子系统使用
- 公共领域(Public domain)
- nlohmann/json (https://github.com/nlohmann/json)
- 单头文件 JSON 库,各类工具/示例使用
- MIT 许可证
- mackron/miniaudio (https://github.com/mackron/miniaudio)
- 单头文件音频格式解码器,多模态子系统使用
- 公共领域(Public domain)
- sheredom/subprocess.h (https://github.com/sheredom/subprocess.h)
- 面向 C 和 C++ 的单头文件进程启动方案
- 公共领域(Public domain)
相似文章
vulkan: 使TP可行 · Pull Request #25051 · ggml-org/llama.cpp
此拉取请求使得在使用Vulkan后端时,llama.cpp中的张量并行(TP)变得可行,从而能够在多个GPU上进行分布式推理。
通用:由 ggerganov 添加 --spec-draft-n-ubatch · 拉取请求 #30459 · ggml-org/llama.cpp
ggerganov 在 llama.cpp 仓库提交了 PR #30459,为 common 新增 --spec-draft-n-ubatch 选项,用于调整推测解码的草稿微批次大小。
llama.cpp b9966 针对 sm-tensor
llama.cpp b9966 引入了一个针对 -sm tensor 模式的修复,该修复缓存了正则表达式模式,消除了解码线程中每个张量每个标记的 29 次重新编译,从而显著减少了 CPU 开销。
@ggerganov:强调 llama.cpp 在多GPU和张量并行支持方面的最新进展 过去几个月来,llama.cpp 取得了多项…
llama.cpp 维护者与 NVIDIA 工程师合作,显著提升了 ggml 中的多GPU性能,实现了硬件无关的张量并行,并在 RTX 系统上获得了显著的性能提升。
llama + spec: 由 am17an 提交的 MTP 支持 · Pull Request #22673 · ggml-org/llama.cpp
拉取请求为 llama.cpp 添加多令牌预测(MTP)支持,启用推测解码以加速推理。