CUDA/HIP:Flash Attention 调优(gfx1201)由 pwilkin · 拉取请求 #28102 · ggml-org/llama.cpp
摘要
此拉取请求为 llama.cpp 项目中的 CUDA/HIP 引入了 Flash Attention 调优优化,针对 gfx1201 硬件以提升推理性能。
查看缓存全文
缓存时间: 2026/09/11 10:32
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?q=b)
服务器组件(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) /
维护者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%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) /
开发统计(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 的几种方式:
- 访问 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 serve -hf ggml-org/Qwen3.5-0.8B-GGUF
使用 llama cli 进行视觉语言模型(VLM)会话
基于 llama serve 的内置 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 位、2 位、3 位、4 位、5 位、6 位和 8 位整数量化,以加快推理速度并减少内存使用
- 为 NVIDIA GPU 运行 LLM 定制 CUDA 内核(通过 HIP 支持 AMD GPU,通过 MUSA 支持 Moore Threads GPU)
- 支持 Vulkan 和 SYCL 后端
- CPU+GPU 混合推理,可部分加速模型,使其突破总显存容量限制
llama.cpp 项目构建于 ggml(https://github.com/ggml-org/ggml)库之上。
支持的后端
| 后端 | 目标设备 |
|---|---|
| BLAS | 所有设备 |
| BLIS | 所有设备 |
| CANN | 华为昇腾 NPU |
| CUDA | NVIDIA GPU |
| HIP | AMD GPU |
| Hexagon | 骁龙平台 |
| 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++ 的单头文件进程启动方案
公有领域
相似文章
ggml-cuda: hip: 添加缺失的 AMD GCN MMQ 配置 by thelittlefireman · Pull Request #27841 · ggml-org/llama.cpp - RDNA2(MI50, MI60) 的预填充性能改进
此拉取请求为 ggml-cuda 的 HIP 添加缺失的 AMD GCN MMQ 配置,增强了 llama.cpp 推理库中 RDNA2 GPU(如 MI50 和 MI60)的预填充性能。
llama.cpp b9158 刚刚发布了 RDNA3 Flash Attention 修复
llama.cpp b9158 已发布,修复了 RDNA3 GPU 上的 Flash Attention 问题,提升了 AMD 用户的性能。
CUDA: 添加快速 Walsh-Hadamard 变换(作者 am17an)· Pull Request #23615 · ggml-org/llama.cpp
此拉取请求为 llama.cpp(一个流行的开源 LLM 推理引擎)添加了 CUDA 上的快速 Walsh-Hadamard 变换实现。该优化提升了在 NVIDIA GPU 上某些计算操作的性能。
llama: 使用f16掩膜进行FA以节省VRAM(作者 am17an)· 拉取请求 #23764 · ggml-org/llama.cpp
此拉取请求针对llama.cpp推理引擎,实现了使用f16掩膜的Flash Attention以减少VRAM使用。
@Hass_Abdallah11: 我们有两篇新的 Colfax 文章,关于优化 FlashAttention-4,其中包括我(解码)和 Jack Carlisle(反向传播)的工作…
文章详细介绍了 FlashAttention-4 的优化技术,包括用于解码的 S/P 乒乓方法以重叠操作,在 NVIDIA Blackwell GPU 上实现了高达 16% 的性能提升。