01WHAT IT SOLVES
这个项目解决什么问题?
llama.cpp 是基于 ggml 的 C/C++ 大语言模型与视觉语言模型推理实现,重点不是提供完整训练平台,而是以较少依赖完成模型运行、后端调度与量化。开发者可使用命令行工具、lib llama API 或带 REST API 与内置网页界面的 llama-server,并按硬件切换 CPU、CUDA、HIP、Metal、Vulkan、SYCL 等后端,也可在显存不足时组合 CPU 与 GPU。它在同类方案中更接近可嵌入、可本地部署的底层推理运行层,适合希望在应用、终端或服务中直接控制模型执行路径的开发者。
02CORE CAPABILITIES
核心能力
低依赖推理实现
采用纯 C/C++ 实现并构建在 ggml 之上,降低基础运行环境的依赖复杂度
多类硬件后端
支持 CUDA、HIP、Metal、Vulkan、SYCL、OpenCL、OpenVINO、CPU 与多种 NPU 等后端
灵活整数量化
支持 1.5 位至 8 位整数量化,用于降低内存占用和加快推理
CPU 与 GPU 混合推理
显存不足以容纳完整模型时,可通过 CPU 与 GPU 协同加速部分计算
命令行与服务接口
提供 CLI、lib llama API、REST API、llama-server 内置网页界面及语法约束能力
03适合谁
- 需要在本地设备运行大语言模型或视觉语言模型的开发者
- 负责模型服务、边缘部署与推理集成的工程团队
- 需要适配 CPU、GPU、NPU 等不同计算后端的平台开发者
04典型使用场景
- 在个人电脑或边缘设备上本地运行语言模型
- 为应用集成可嵌入的模型推理能力
- 搭建兼容 OpenAI 风格接口的本地模型服务
- 根据硬件条件选择计算后端和量化格式
05为什么值得关注
- 同一项目覆盖 CPU、主流 GPU 与多类 NPU,硬件适配范围较广
- 从源码构建、Docker、预编译产物和后端工具形成较完整的部署路径
- CUDA、SYCL、Vulkan 等后端持续针对数据布局和小批量场景优化
- 同时提供底层库、命令行工具和带网页界面的服务,适合不同接入层次
06采用前要注意
- 使用不同后端通常需要编译和配置,GPU 环境还涉及对应工具链
- 各后端成熟度并不完全一致,README 将 OpenVINO 标记为进行中
- 实际速度与内存表现取决于模型、量化方式、硬件和批处理配置,需要自行验证
07RELEASE INTELLIGENCE
近期版本变化
llama.cpp b12292:中文解读生成中
正在根据官方 Release 说明生成中文变化摘要,请暂时以来源页面为准。
llama.cpp b12291:中文解读生成中
正在根据官方 Release 说明生成中文变化摘要,请暂时以来源页面为准。
llama.cpp b12290:调整 Vulkan 故障缓冲区分配
本次更新为 Vulkan 设备故障处理分配厂商二进制缓冲区,并移除一个冗余的 vector 头文件。它主要影响 Vulkan 后端维护和故障排查路径,普通用户未必需要立即升级,但相关开发者值得检查该改动。
- 为 Vulkan 设备故障场景分配厂商二进制缓冲区
- 清理冗余的 vector 头文件引用
llama.cpp b12289:测试改用公开 ggml API
测试代码改为仅使用公开的 ggml API,降低对内部实现接口的依赖。该变化主要影响 ggml 贡献者与测试维护者;正在提交补丁或关注公开接口边界的开发者值得关注。
- 测试统一转向公开 ggml API
- 减少测试对非公开内部接口的依赖
llama.cpp b12287:小批量启用 BF16 MMVF
CUDA 后端在矩阵行数较少且批处理较小时改用 MMVF,以减少 SM 闲置;实现会根据矩阵行数、批量、长度和 SM 数量选择 MMVF 或 MMF。该变化主要影响使用 NVIDIA GPU 处理 BF16 小型矩阵的开发者,值得关注特定工作负载的变化。
- 为少行 BF16 矩阵引入按行执行的 MMVF 路径
- 按行数、批量和设备 SM 数量选择 MMVF 或 MMF
- 增加多个矩阵尺寸与批大小组合的评测用例
llama.cpp b12284:CUDA 引入 OCP FP8 支持
CUDA 后端加入初始版 OCP FP8 支持,使用 FP8 intrinsic,并在 GEMV 场景采用 W8A16;同时补充 FP8 转换、复制、缓存和回退路径修复。该版本仍标记为 WIP,主要影响使用 NVIDIA FP8 硬件和 CUDA 的开发者,需要关注其当前适用范围。
- 增加基于 intrinsic 的 OCP FP8 CUDA 实现
- GEMV 场景采用 W8A16 数据路径
- 修复 FP8 转换、跨步复制、缓存与回退路径问题
- 支持 Hopper 及其他带宽受限 SKU 的 FP8 路径
llama.cpp b12283:修正 SYCL Clamp 跨步视图处理
SYCL 后端的 Clamp 操作改用通用一元算子辅助函数,可正确处理非连续或跨步视图,并删除不再使用的旧内核与启动配置。该修复影响使用 SYCL 且依赖跨步张量 Clamp 运算的开发者,相关场景值得升级验证。
- Clamp 改用支持跨步视图的一元算子路径
- 删除旧 Clamp 内核模板及启动器
- 清理不再使用的 SYCL CLAMP 块大小预设
llama.cpp b12282:修复 Muse Spark 忽略 JSON Schema
该版本修复 Muse Spark 会忽略 response_format 中 json_schema 的问题,使聊天流程能够按指定 JSON Schema 处理响应格式。直接影响使用 Muse Spark 并依赖结构化输出的开发者;若应用依赖 schema 约束,应在升级后验证相关输出流程。
- 修复 Muse Spark 未应用 response_format json_schema 的问题
- 改善聊天场景中的结构化响应格式约束
- 依赖 JSON Schema 的相关应用需要回归验证
llama.cpp b12277:修正 mtmd 格式并统一命名
该版本修正 mtmd 的字符串格式问题,并将相关命名统一为 mtmd_format。影响直接使用 mtmd 接口或维护多模态子系统的开发者;虽然变化集中在接口层,但调用方需留意名称调整带来的兼容性影响。
- 修正 mtmd 字符串格式处理
- 将相关接口命名统一为 mtmd_format
- mtmd 接口调用方需关注名称变化
llama.cpp b12274:加入 FP8 KV Cache 支持
该版本加入 FP8 KV Cache,并增加缩放 FP8 KV Cache 测试,修复缩放映射、反量化与 RoPE shift 前处理等问题,同时允许 BF16 scale。影响关注推理内存占用和 KV Cache 精度控制的开发者;部分多 GPU 与回退路径仍有明确限制,相关用户应关注测试覆盖和硬件条件。
- 新增 FP8 KV Cache 与缩放 KV Cache 测试
- 修复 scale 映射、FP8 反量化和 RoPE shift 前处理
- 支持 BF16 scale,并将端到端测试迁至架构测试
- 禁用 FP8 场景下的部分 kv-ffload 与多 GPU 测试组合