[草案 - 开放PR] AVX2:通过 bartowski1182 加速 IQ 模型的大批量提示处理 · 拉取请求 #27402 · ggml-org/llama.cpp
摘要
本草案拉取请求引入了 AVX2 优化,旨在加速 llama.cpp 中 IQ 模型的大批量提示处理。llama.cpp 是一款用于高效 LLM 推理的开源工具。
查看缓存全文
缓存时间: 2026/08/20 12:53
ggml-org/llama.cpp
来源:https://github.com/ggml-org/llama.cpp
llama.cpp
使用 C/C++ 实现的 LLM 推理引擎
许可协议:MIT (https://opensource.org/licenses/MIT)
发布版本 (https://github.com/ggml-org/llama.cpp/releases?q=tag:v0)
每夜构建 (https://github.com/ggml-org/llama.cpp/releases)
服务器组件 (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)
开发宣言 (https://github.com/ggml-org/llama.cpp/discussions/205) / ggml 库 (https://github.com/ggml-org/ggml) / 算子实现 (https://github.com/ggml-org/llama.cpp/blob/master/docs/ops.md) / 维护者 PR (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%3Abartowski1182%20OR%20author%3Ahipudding%20OR%20author%3AServeurpersoCom%20OR%20author%3Apwilkin%20OR%20author%3Areeselevine%20OR%20author%3Angxson%20OR%20author%3Ajeffbolznv%20OR%20author%3A0cc4m%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%3Agaugarg-nv%20OR%20author%3Ataronaeo%20OR%20author%3Aforforever73%20OR%20author%3Alhez%20OR%20author%3Anetrunnereve%20OR%20author%3Afairydreaming)%20sort%3Aupdated-desc) / 编译耗时分析 (https://github.com/ggml-org/llama.cpp-dev/blob/master/README-compile-times.md) / 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 的方式:
- 访问 https://llama.app 并按照指引操作
- 通过 Docker 运行 – 请参阅我们的 Docker 文档
- 从发布页面 (https://github.com/ggml-org/llama.cpp/releases) 下载预编译二进制文件
- 通过克隆本仓库从源码编译 – 请查看 编译指南
安装完成后:
# 从 Hugging Face 直接下载并运行模型
llama-cli -hf ggml-org/Qwen3.5-0.8B-GGUF
# 启动兼容 OpenAI 接口的 API 服务器
llama-server -hf ggml-org/Qwen3.5-0.8B-GGUF
使用 llama-cli 的多模态对话会话
基于 llama-server 的内置 Web 界面
项目简介
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 整数量化,以实现更快推理和降低内存占用
- 定制 CUDA 内核用于在 NVIDIA GPU 上运行 LLM(通过 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 APIR |
| Vulkan | GPU |
| WebGPU | 所有设备 |
| ZenDNN | AMD CPU |
文档
工具
开发相关
- 编译指南
- Docker 运行
- Android 编译
- 多 GPU 使用
- 性能问题排查
- GGML 技巧与窍门 (https://github.com/ggml-org/llama.cpp/wiki/GGML-Tips-&-Tricks)
- XCFramework
- 补全功能
- 模型说明
- 发布流程
参与贡献
- 贡献者可提交 PR
- 根据贡献情况邀请协作者
- 维护者可直接推送至
llama.cpp仓库的分支,并将 PR 合并至master分支 - 非常感谢任何对问题管理、PR 和项目管理的帮助!
- 请阅读 CONTRIBUTING.md 了解更多信息
致谢
- yhirose/cpp-httplib (https://github.com/yhirose/cpp-httplib) – 单头文件 HTTP 服务器,被
llama-server使用 – MIT 许可证 - nothings/stb (https://github.com/nothings/stb) – 单头文件图像格式解码器,被多模态子系统使用 – 公共领域
- nlohmann/json (https://github.com/nlohmann/json) – 单头文件 JSON 库,被多个工具/示例使用 – MIT 许可证
- mackron/miniaudio (https://github.com/mackron/miniaudio) – 单头文件音频格式解码器,被多模态子系统使用 – 公共领域
- sheredom/subprocess.h (https://github.com/sheredom/subprocess.h) – 用于 C 和 C++ 的单头文件进程启动解决方案 – 公共领域
相似文章
B70 推测解码重大改进 - budiony 重构 Intel XMX 矩阵引擎 · 拉取请求 #29864 · ggml-org/llama.cpp
一个针对 llama.cpp 的拉取请求重构了对英特尔 XMX 矩阵引擎的支持,大幅提升了英特尔硬件上的推测解码性能。
SYCL: 从 CUDA 后端移植多列 MMVQ(在 Intel Arc 上获得约 45% 的推测解码加速)by masonmilby · Pull Request #21845 · ggml-org/llama.cpp
一个针对 llama.cpp 的拉取请求,将多列 MMVQ 从 CUDA 移植到 SYCL,在 Intel Arc GPU 上实现了约 45% 的推测解码加速。
提示:使用这个llama.cpp的PR提升Intel ARC上的提示处理速度
一个llama.cpp的PR显著提升了Intel ARC GPU上的提示处理速度,基准测试显示在B580上从245t/s提升到462t/s。目前该改进仅适用于F16 KV量化,计划后续支持其他量化方式。
llamacpp有一个新的PR,声称使用rocm可将提示处理速度提升约15%,同时修复了一个bug,使Q2_K的速度提升了28倍
llama.cpp的一个新PR将ROCm上的提示处理速度提升了约15%,并修复了一个bug,使Q2_K量化速度提升了28倍。
ggml-webgpu: 提升k-quants的预填充速度并重构Q4/Q5/Q8及k-quants的矩阵乘法 by yomaytk · Pull Request #24225 · ggml-org/llama.cpp
提升了k-quants的预填充速度,并重构了llama.cpp WebGPU后端中Q4/Q5/Q8及k-quants的矩阵乘法。