ggml

2026-02-24

ai

一切节省,归根到底都归结为时间的节省。——马克思

ggml:为机器学习打造高效张量库

在机器学习领域迅速进步的今天,对底层计算库的需求正变得越来越复杂。ggml 出现,为开发者带来了一款极致高效、依赖最小化的张量库。通过其灵活的设计和强大的性能支持,ggml 无疑是当前机器��习生态中一颗新星。


什么是 ggml?

ggml 是一个专为机器学习设计的开源张量库,它提供了高效的张量操作、硬件兼容性和自动化优化功能。作为一个低层次且跨平台的实现,ggml 强调高性能和极小的内存占用,同时摒弃了对第三方依赖的需求,为开发者提供了极大的灵活性。重点是,它还支持量化及多种优化器,让用户能够以更低成本完成训练和推理任务。

当前 ggml 的开发与应用也贯通在更加具体的项目中,比如 llama.cppwhisper.cpp,两者均利用 ggml 提供底层功能支撑。


核心功能

ggml 的功能强大且多样,可以满足从学术研究到工业化应用的多种需求:

  • 低层次的跨平台实现,确保代码库性能和可移植性。
  • 整数量化支持,显著降低存储和计算资源需求。
  • 广泛硬件支持,包括 CPU、GPU,以及其它加速器。
  • 自动微分,服务于深度学习算法的梯度优化。
  • 提供 ADAML-BFGS 等优化器。
  • 零运行时内存分配,让性能表现达到极致。
  • 无第三方依赖,使其更轻量化、更容易部署。

项目构建和运行

初次构建 ggml 十分简单,以下是运行示例所需的几步:

克隆并初始化项目

1
2
3
4
5
6
7
8
9
10
11
12
git clone https://github.com/ggml-org/ggml
cd ggml

# 安装 Python 依赖
python3.10 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# 构建示例
mkdir build && cd build
cmake ..
cmake --build . --config Release -j 8

🧠 示例:运行 GPT 推理

以下是一个使用 ggml 运行 GPT-2 模型推理的简单示例:

1
2
3
4
5
# 下载 GPT-2 small 117M 模型所需数据
../examples/gpt-2/download-ggml-model.sh 117M

# 开始推理, 参数包括模型位置和输入提示
./bin/gpt-2-backend -m models/gpt-2-117M/ggml-model.bin -p "举个例子"

以上命令会启动 GPT-2 的推理引擎并生成上下文相关的文本输出。更多示例代码位于 examples 目录。


高级功能集成

ggml 引入了对不同硬件架构的支持和特性优化,允许开发者根据目标平台选择合适的配置:

使用 CUDA 优化

在支持 CUDA 加速的系统上运行,实现 GPU 的强大提升:

1
cmake -DGGML_CUDA=ON -DCMAKE_CUDA_COMPILER=/usr/local/cuda-12.1/bin/nvcc ..

使用 hipBLAS(为 AMD 架构提供支持)

1
cmake -DCMAKE_C_COMPILER="$(hipconfig -l)/clang" -DCMAKE_CXX_COMPILER="$(hipconfig -l)/clang++" -DGGML_HIP=ON ..

使用 SYCL(为 Intel 架构提供支持)

支持多平台的 SYCL 编程模式:

1
2
3
4
5
6
7
# Linux
source /opt/intel/oneapi/setvars.sh
cmake -G "Ninja" -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_SYCL=ON ..

# Windows
"C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
cmake -G "Ninja" -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=icx -DGGML_SYCL=ON ..

针对移动端的编译 (Android)

通过配置 NDK(安卓原生开发工具包),开发者可以轻松为 Android 系统编译 ggml:

1
2
3
4
5
6
cmake .. \
-DCMAKE_SYSTEM_NAME=Android \
-DCMAKE_SYSTEM_VERSION=33 \
-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a \
-DCMAKE_ANDROID_NDK=$NDK_ROOT_PATH \
-DCMAKE_ANDROID_STL_TYPE=c++_shared

安装部署完成后,即可将二进制文件和模型快速上传到安卓设备:

1
2
3
4
5
6
7
8
# 创建目录
adb shell 'mkdir /data/local/tmp/bin'
adb shell 'mkdir /data/local/tmp/models'

# 推送构建的可执行文件及库
adb push bin/* /data/local/tmp/bin/
adb push src/libggml.so /data/local/tmp/
adb push 模型文件

上述步骤可以实现 ggml 在 Android 移动设备上的高效运行支持。


总结

无论是构建深度学习工作流,还是面向低资源环境的优化需求,ggml 都代表着一个灵活而高效的解决方案。它提供了简洁的 API 和跨平台兼容性,让开发者能够深入定制,同时保持高性能和小内存占用。

立刻访问 ggml 官方项目地址 探索其更多可能性,为您的机器学习项目引入全新的计算体验!