Skip to content

项目概览与构建系统 — 概念

项目架构

llama.cpp 采用分层架构设计:

模块划分

目录职责
ggml/GGML 张量库:张量定义、计算图、后端抽象
include/llama.h对外 C API 接口
src/llama 核心实现:模型加载、推理、采样、KV Cache
common/通用工具:参数解析、采样、日志
examples/示例程序
tools/完整工具:cli、server、quantize、imatrix
gguf-py/Python GGUF 读写工具

构建系统

llama.cpp 使用 CMake 构建,关键选项:

bash
# 基础编译
cmake -B build
cmake --build build --config Release

# 启用 CUDA 后端
cmake -B build -DGGML_CUDA=ON

# 启用 Metal 后端 (macOS)
cmake -B build -DGGML_METAL=ON

# 启用 Vulkan 后端
cmake -B build -DGGML_VULKAN=ON

核心 CMake 变量:

  • GGML_CUDA / GGML_METAL / GGML_VULKAN — 后端开关
  • GGML_BLAS — BLAS 加速
  • LLAMA_CURL — 启用 HTTP 下载支持
  • CMAKE_BUILD_TYPE — Release / Debug

C API 设计哲学

include/llama.h 遵循 C 风格 OOP:

  • 不透明指针(llama_model *, llama_context *
  • 创建/销毁配对(llama_model_load / llama_model_free
  • 枚举驱动的配置(llama_context_param

相关概念