Что это?
ggml — простая библиотека тензоров на C/C++ для запуска моделей машинного обучения с минимальной настройкой, без внешних зависимостей и с поддержкой бэкендов для CPU, GPU, NPU и браузера. Это основной движок, на котором работают проекты вроде llama.cpp.
Это готовое приложение или библиотека, на которую я буду опираться?
Это низкоуровневая библиотека тензоров на C/C++, а не приложение: её подключают к своему проекту или используют через инструменты вроде llama.cpp, которые встраивают её внутрь.
Как его собрать?
ggml собирают из исходников; в репозитории есть минимальный, полностью прокомментированный пример перемножения матриц в examples/simple, с которого можно начать.
Нужны ли для работы внешние библиотеки?
Нет — ggml написан на чистом C/C++ и не требует никаких внешних зависимостей.
Можно ли предлагать изменения прямо в этот репозиторий?
Можно, но изменения в основную библиотеку ggml (включая систему сборки CMake) ожидаются через репозиторий llama.cpp: там их увидит больше людей, их лучше тестируют и рецензируют.
На каком железе и платформах он работает?
ggml работает на процессорах x86, ARM, RISC-V, LoongArch, PowerPC и s390x, а также в WebAssembly; бэкенды поддерживают CPU, GPU, NPU и даже работу внутри браузера.
Какие форматы квантования поддерживает ggml?
Поддерживается целочисленное квантование 2–8 бит, а также более новые форматы микроскейлинга MXFP4 и NVFP4, благодаря которым модели занимают гораздо меньше памяти.
Выделяет ли ggml память во время работы?
Нет — он спроектирован так, чтобы не выделять память во время работы, что делает инференс предсказуемым и быстрым.
Что такое GGUF и где изучить внутреннее устройство?
GGUF — формат файлов моделей в ggml; в документации также есть обзор «Introduction to ggml» и руководство «GGML tips & tricks» по работе с библиотекой.
Почему ggml часто упоминают вместе с llama.cpp?
llama.cpp построен на ggml как на своём тензорном бэкенде, а мейнтейнеры ggml направляют предложения по основной библиотеке обратно в репозиторий llama.cpp для рецензирования.
What are similar projects?
cpu-performance-engineering, llama.cpp, BitNet, simdjson, DeepGEMM, tilelang, FlashMLA, DeepGEMM-Ascend
Which topics is it in?
tensor, risc-v, simd, cpu, x86, arm, webassembly, low-level, llm-inference, gpu-acceleration, quantization, wasm