高级 15 分钟llama.cpp

使用CUDA编译llama.cpp:构建指南(分步) pas

Ollama 和 LM Studio 封装了 llama.cpp,但通常落后 1 或 2 个版本,并采用较保守的参数设置。自行编译 llama.cpp,可以在较新的 RTX 显卡上提升 20% 至 40% 的速度,并使用刚刚推出的功能。本指南涵盖 Windows、Linux 和 CUDA 编译。

作者: Mohamed Meguedmi·更新于 2026-03-05·已在 Windows、macOS 和 Linux 上测试

#为何自行编译

抢先体验新功能
新的量化方式(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. 克隆仓库

终端
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

#2. 使用 CUDA 编译

Linux / macOS
cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j $(nproc)
Windows (PowerShell)
cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j

编译时间根据您的 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. 测试

下载GGUF模型
# Via Hugging Face CLI
pip install huggingface_hub
huggingface-cli download \
  TheBloke/Mistral-7B-Instruct-v0.2-GGUF \
  mistral-7b-instruct-v0.2.Q4_K_M.gguf \
  --local-dir ./models
推理
./build/bin/llama-cli \
  -m ./models/mistral-7b-instruct-v0.2.Q4_K_M.gguf \
  -p "Explique ce qu'est un LLM en 3 phrases." \
  -n 256 \
  -ngl 99  # nombre de couches sur GPU
兼容OpenAI的HTTP服务器
./build/bin/llama-server \
  -m ./models/mistral-7b-instruct-v0.2.Q4_K_M.gguf \
  --port 8080 \
  -ngl 99 \
  -c 8192

#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. 保持更新

Update
cd llama.cpp
git pull
cmake --build build --config Release -j

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。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。