高级 15 分钟llama.cpp
使用CUDA编译llama.cpp:构建指南(分步) pas
Ollama 和 LM Studio 封装了 llama.cpp,但通常落后 1 或 2 个版本,并采用较保守的参数设置。自行编译 llama.cpp,可以在较新的 RTX 显卡上提升 20% 至 40% 的速度,并使用刚刚推出的功能。本指南涵盖 Windows、Linux 和 CUDA 编译。
#为何自行编译
- 抢先体验新功能
- 新的量化方式(IQ4_NL、Q2_K_S)、新模型(Mamba、DeepSeek)、实验性选项标志。
- 性能最优
- 针对您特定 CPU(AVX-512、AMX)和 CUDA 架构(RTX 40 为 sm_89,RTX 50 为 sm_90)进行优化构建。
- 底层工具
- llama-bench用于基准测试,llama-cli用于脚本操作,llama-server用于提供无UI且无依赖的API端点。
i
哪些人适合自行编译?
如果您是开发者、对性能感兴趣,或正在处理未被 Ollama 支持的 Mamba/Jamba 模型:是的。否则,Ollama 在无需编译的情况下可完成 95% 的工作。
#先决条件
- CUDA Toolkit 12.x
- 可在 developer.nvidia.com 下载。请注意与驱动程序区分——工具包包含 nvcc 编译器
- CMake 3.21+
- 在 Linux 上运行 apt install cmake,在 Windows 上通过 chocolatey 安装。
- C++ 编译器
- Linux 上使用 gcc 11 或更高版本,Windows 上使用 MSVC 2022 Build Tools。
- Git
- 用于克隆和更新。
#1. 克隆仓库
#2. 使用 CUDA 编译
编译时间根据您的 CPU 不同,通常为 3 到 10 分钟。二进制文件将保存在 build/bin/(Linux)或 build/bin/Release/(Windows)目录下。
本地 AI 套件
只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
→
针对您的 GPU 优化的构建
添加 -DCMAKE_CUDA_ARCHITECTURES=89 以仅针对RTX 40(或90以针对RTX 50)进行编译。二进制文件更小,构建速度更快。
#3. 测试
#4. 优化标志
- -ngl N
- 加载到GPU上的层数。若VRAM足够,设置为99(或更高)以加载全部层。
- -fa
- Flash Attention。速度提升 20–30%,上下文占用的显存减少。如果您的 GPU 采用 Ampere 或更新架构(RTX 30xx 及后续系列),请始终启用。
- -c N
- 上下文长度。不要设置超过实际需要的值:KV缓存会占用VRAM。
- -b N / -ub N
- 批大小和微批大小。默认值为 512/512。设为 1024/512 可加快提示词处理。
- --no-mmap
- 禁用 mmap。如果在某些 SSD 上初次加载较慢,可以尝试此选项。
#5. 保持更新
llama.cpp 每天发布多个提交。每周执行一次 git pull 是良好的更新节奏。若出现回归问题,请使用 git checkout 切换到特定标签(例如:b4400)。
#故障排除
- nvcc not found
- CUDA Toolkit 未添加到 PATH 中。在 Linux 系统中:export PATH=/usr/local/cuda/bin:$PATH
- CUDA 版本不匹配
- NVIDIA 驱动版本比 Toolkit 旧。请更新驱动,确保其版本不低于所用 Toolkit 要求的最低版本。
- cuBLAS链接错误
- LD_LIBRARY_PATH 配置错误。请添加 /usr/local/cuda/lib64。
- MSVC编译失败
- 请打开“x64 Native Tools Command Prompt for VS 2022”,不要使用 PowerShell。否则,某些 CMake 工具会找不到 cl.exe。
这份指南对您有帮助吗?
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。
目录
分享