Appearance
项目概览与构建系统 — 概念
项目架构
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)
相关概念
- ggml — 底层张量库
- gguf — 模型文件格式
- backend — 硬件后端抽象
- compute-graph — 计算图概念