ggerganov/llama.cpp

Инференс LLM на C/C++

Инференс⭐ 129 006C++последний релиз: v0.4.1
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

llama.cpp — это легковесная библиотека на C/C++ для запуска локальных больших языковых моделей (LLM) с высокой производительностью и минимальными зависимостями.

Зачем нужен

Инструмент позволяет эффективно инференсировать LLM на широком спектре аппаратного обеспечения, включая Apple Silicon, NVIDIA GPU, AMD GPU и даже браузеры (WebGPU). Он полезен для разработчиков, которым нужна быстрая интеграция LLM в приложения без тяжелых фреймворков, а также для оптимизации работы с моделями через квантование.

Что можно реализовать

  • Запуск локальных LLM на ноутбуках или серверах с ограниченным VRAM с помощью квантования (до 1.5-bit).
  • Развертывание OpenAI-совместимого API-сервера для использования моделей в других приложениях.
  • Интеграция LLM в веб-приложения через WebGPU для выполнения инференса прямо в браузере.
  • Использование мультимодальных моделей (текст + изображения) через llama-server.
  • Создание плагинов для IDE (VS Code, Vim) для автодополнения кода (FIM) на основе локальных моделей.

Ключевые возможности

  • Поддержка квантования от 1.5-bit до 8-bit для снижения потребления памяти и ускорения работы.
  • Нативная оптимизация под Apple Silicon (Metal, Accelerate) и современные архитектуры x86 (AVX, AMX) и RISC-V.
  • Гибридный инференс CPU+GPU для работы с моделями, превышающими объем видеопамяти.
  • Прямая загрузка и кэширование моделей из Hugging Face в стандартном формате GGUF.
  • Отсутствие внешних зависимостей: чистый C/C++ код, легкость сборки и интеграции.

👤 Кому подойдёт: разработчики, инженеры ML, системные администраторы, исследователи, работающие с локальным развёртыванием LLM

Релизы

v0.4.1minorbreaking
🕐 6 дн назад · релиз на GitHub ↗

llama.cpp 0.4.1: поддержка новых моделей (Maple 20B, Tencent Hy 4), улучшена работа с JSON и сервером, обновлен ggml.

  • Added: Добавлена поддержка моделей Maple 20B-A1B, Tencent Hy 4 и Spark2.5.
  • Breaking: Удалены устаревшие флаги --mmap, --mlock и --direct-io в пользу --load-mode.
  • Added: Улучшена обработка JSON-схем и разделены парсеры чатов для лучшей структуры.
  • Fixed: Исправлено распределение KV-кэша для DeepSeek2, GLM-MoE и нормализация GDN.
  • Added: Реализован структурированный JSONL-логирование и улучшено управление дочерними процессами сервера.
v0.4.0majorbreaking
🕐 16 дн назад · релиз на GitHub ↗

llama.cpp 0.4.0: поддержка Qwen3.8-Flash-Next, Nemotron-3, ленивое чтение тензоров и оптимизации KV-кэша.

  • Added: Добавлена начальная поддержка архитектур Qwen3.8-Flash-Next (qwen4exp) и NVIDIA Nemotron-3-Puzzle-75B-A9B.
  • Added: Внедрено ленивое чтение тензоров (lazy tensor reading) через флаг --lazy-mode для оптимизации использования памяти.
  • Added: Обновлен ggml до версии 0.23.0 с поддержкой разреженного FlashAttention и RPC-транспорта Apple RDMA.
  • Added: Добавлен трекинг токенов в KV-ячейках, что привело к изменению версий сессий и состояний.
  • Fixed: Исправлена обработка ввода для DeepSeek-V4 и визуальных возможностей Gemma-4.
v0.3.0major
🕐 27 дн назад · релиз на GitHub ↗

llama.cpp 0.3.0: поддержка dots3-note, MTP для GLM-4.5-Air, тензорный сплит для DeepSeek 4 и обновление ggml.

  • Added: Добавлена модель dots3-note с новым типом KV-кэша DSA-ISWA.
  • Added: Включена поддержка MTP для модели GLM-4.5-Air.
  • Added: Для DeepSeek 4 добавлен режим тензорного сплита через флаг -sm tensor.
  • Fixed: Исправлен откат (rollback) при работе с несколькими последовательностями в DeepSeek 4.
  • Added: Обновлён ggml до v0.22.0 с улучшенным сплитом тензоров и параллельной компиляцией Metal.
v0.2.0major
🕐 1 мес назад · релиз на GitHub ↗

Релиз llama.cpp v0.2.0: поддержка Granite, MoE, улучшена работа с Vulkan, Metal, OpenCL и серверной частью.

  • Added: Добавлена поддержка моделей GraniteSWAForCausalLM и GraniteMoeSWAForCausalLM.
  • Added: Включена поддержка SME2 F32 GEMV для kleidiai и улучшена работа с MoE-экспертами.
  • Added: Сервер: добавлена опция dedup-cache-models, приватность эндпоинтов и доступ к /metrics во время сна.
  • Added: mtmd: добавлен аргумент --mmproj-device и функция mtmd_bitmap_set_mergeable.
  • Fixed: Исправлены ошибки в OpenCL для Adreno, синхронизация в ggml-cpu и работа с KV-кэшем в Metal/Vulkan.
b10545patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена критическая ошибка в Metal-ядре matmul, вызывавшая неопределённое поведение и NaN при несовместимом с 32 размере K.

  • Fixed: Исправлено неопределённое поведение и появление NaN в Metal-ядре matmul при размере K, не кратном 32.
  • Fixed: Внедрено динамическое ограничение K extent для корректной обработки хвостовых блоков в tensor API.
  • Added: Добавлены тесты для проверки пути вычислений с K, не кратным 32.
  • Доступны бинарные сборки для macOS, Linux, Windows, Android и openEuler.
b10509minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка ggml_rope_set_offset для CPU, Metal, CUDA и Vulkan, улучшена работа с позиционными кодировками.

  • Added: Реализована поддержка ggml_rope_set_offset для CPU, Metal, CUDA и Vulkan.
  • Added: Добавлены тесты для бэкендов операций и закрыты другие бэкенды.
  • Fixed: Исправлена работа с флагом supports_op для CUDA и форматирование WebGPU.
  • Fixed: Удалена оптимизация inplace в поддержке Vulkan.
b10502minor
🕐 1 мес назад · релиз на GitHub ↗

Выпуск b10502: добавлена криптографическая аттестация артефактов, обновлены сборки для Windows (CUDA 13, ROCm 7.14) и Linux (OpenVINO 2026.3, SYCL).

  • Added: Добавлена криптографическая аттестация (attestation) для подписанных релизных артефактов.
  • Added: Обновлены сборки для Windows: добавлена поддержка CUDA 13.3 и CUDA 13.4 (preview), а также ROCm 7.14.
  • Added: Добавлены новые сборки для Linux: OpenVINO 2026.3, а также SYCL с поддержкой FP32 и FP16.
  • Fixed: Отключена сборка macOS Apple Silicon с KleidiAI.
  • Fixed: Отключены сборки Ubuntu и Windows для ROCm 7.14 (Linux) и openEuler.
b10472patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена ошибка с определением доступной памяти на AMD APU, из-за которой возникали проблемы на системах с малым разделом.

  • Fixed: Исправлено некорректное определение доступной памяти (UMA override) для сборок HIP, что устраняло проблемы на системах с малым carveout.
  • Добавлены новые бинарные сборки для Windows (CUDA 13/13.4, ROCm 7.14, OpenVINO, SYCL) и Linux (OpenVINO, SYCL).
  • Отключены сборки macOS Apple Silicon с KleidiAI и Ubuntu x64 (ROCm 7.14) из-за проблем в CI.
b10456minor
🕐 1 мес назад · релиз на GitHub ↗

Исправлена оптимизация SYCL-ядер для квантованных копий, что дало кратный рост пропускной способности на Intel Arc.

  • Fixed: Исправлен подсчёт потоков и блоков в SYCL-ядрах для квантованных копий, что снизило перегрузку и недозагрузку ресурсов.
  • Added: Значительно увеличена пропускная способность пути q4_0 -> f32 на GPU Intel Arc 70 (с 20.21 до 158.19 ГБ/с).
  • Добавлены бинарные сборки для macOS (arm64, x64), iOS, Linux (CPU, Vulkan, OpenVINO, SYCL), Windows (CPU, CUDA 12/13, Vulkan, OpenVINO, SYCL, ROCm) и Android.
  • Deprecated: Отключены сборки для macOS Apple Silicon с KleidiAI, Ubuntu x64 с ROCm 7.14 и openEuler.
b10453minor
🕐 1 мес назад · релиз на GitHub ↗

Выпуск b10453: оптимизация ggml_concat, добавлена поддержка CUDA 13 и ROCm 7.14, обновлены сборки для macOS, Linux и Windows.

  • Fixed: Удалены некоторые реализации ggml_concat для оптимизации модели.
  • Added: Добавлены бинарные сборки с поддержкой CUDA 13.3 и экспериментальной CUDA 13.4 (arm64).
  • Added: Добавлены сборки с поддержкой ROCm 7.14 для Windows.
  • Added: Обновлены сборки для macOS, Linux (включая OpenVINO 2026.2.1 и SYCL) и Android.
  • Deprecated: Отключены сборки macOS (KleidiAI), Linux (ROCm) и openEuler.
b10451patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена проверка границ данных LoRA-тензоров для предотвращения выхода за пределы файла.

  • Fixed: Добавлена проверка корректности границ данных LoRA-тензоров при чтении из файла.
b10437minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка моделей MiniMax-Text-01 и MiniMax-M1, включая конвертацию, шаблоны чата и оптимизации.

  • Added: Добавлена поддержка моделей MiniMax-Text-01 и MiniMax-M1 (включая конвертацию и Jinja-шаблоны чата).
  • Added: Реализована оптимизация вычислений тензоров затухания с использованием позиций токенов и общих функций.
  • Fixed: Исправлена проблема с семплированием токенов путем подавления токенов с нулевыми эмбеддингами.
  • Fixed: Отключены тесты архитектуры MINIMAX_01 для бэкенда WebGPU из-за нестабильной работы.
b10434minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка параметра reasoning_effort для шаблонов чата и сервера, улучшена интеграция с API ответов.

  • Added: Добавлена поддержка параметра reasoning_effort в шаблоны чата и параметры генерации.
  • Added: Реализована передача и обработка reasoning_effort через сервер и API ответов.
  • Fixed: Исправлено чтение параметра reasoning_effort из тела запроса на сервере.
  • Added: Обновлены бинарные сборки для macOS, Linux, Windows, Android и iOS.
b10426minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз llama.cpp b10426: принудительный однопоточный режим для WASI, новые сборки для Windows (CUDA 13/ROCm) и Linux (OpenVINO/SYCL).

  • Fixed: Исправлена работа на WASI: теперь принудительно используется однопоточный режим.
  • Added: Добавлены сборки для Windows с поддержкой CUDA 13.3 и экспериментальной CUDA 13.4 для ARM64.
  • Added: Появились новые бинарники для Linux: OpenVINO 2026.2.1, а также SYCL с поддержкой FP32 и FP16.
  • Added: Обновлены сборки для macOS (Apple Silicon и Intel), iOS и Android.
  • Deprecated: Отключены сборки для macOS с KleidiAI, Linux ROCm 7.14 и openEuler.
b10415minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз llama.cpp b10415: автоопределение типа модели mtp для черновиков, новые сборки с поддержкой CUDA 13 и OpenVINO 2026.2.

  • Added: Добавлена автоматическая детекция типа модели mtp для черновиков (#27005).
  • Added: Добавлены бинарные сборки для Windows с поддержкой CUDA 13.3 и CUDA 13.4 (preview для arm64).
  • Added: Выпущены сборки с OpenVINO версии 2026.2.1 для Linux и Windows.
  • Added: Добавлены сборки с SYCL (FP32 и FP16) для Linux и SYCL для Windows.
  • Fixed: Отключены сборки macOS Apple Silicon с KleidiAI и Ubuntu x64 с ROCm 7.14.
b10405patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена неточность вычислений с плавающей запятой в HIP-сборках для архитектуры RDNA3.5.

  • Fixed: Убран флаг -funsafe-math-optimizations в HIP-сборках, чтобы обеспечить соответствие стандарту IEEE и исправить расхождения в greedy argmax на GPU RDNA3.5.
  • Added: Добавлена предварительная поддержка Windows arm64 с CUDA 13.4.
  • Added: Добавлена поддержка Windows x64 с ROCm 7.14.
  • Added: Обновлены сборки с OpenVINO (версия 2026.2.1) для Linux и Windows.
  • Отключены сборки macOS Apple Silicon с KleidiAI и Ubuntu x64 с ROCm 7.14.
b10375patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлено строгое разделение функций в чате для моделей Qwen, улучшена стабильность парсинга.

  • Fixed: Улучшено строгое разделение bare-функций для моделей Qwen, что исправляет ошибки парсинга в чате.
b10369minorbreaking
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка Pocket-TTS в MTMD с оптимизацией производительности на CUDA и CPU.

  • Added: Добавлена поддержка Pocket-TTS в MTMD с оптимизацией через GEMM + col2im.
  • Added: В mmproj добавлены новые параметры: frames_after_eos, pad_short_text и model_variant.
  • Breaking: Существующие файлы mmproj необходимо переконвертировать для поддержки новых ключей.
  • Added: Производительность генерации на CUDA ускорена на 80%, на CPU — на 50%.
  • Fixed: Исправлены проблемы безопасности и улучшена чистота кода (lint, комментарии).
b10361patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена ошибка инициализации модели EXAONE 4.5 и загрузчика метаданных в llama.cpp.

  • Fixed: Исправлена ошибка, из-за которой для модели EXAONE 4.5 не активировалось скользящее окно (SWA) из-за неверного порядка чтения гиперпараметров.
  • Fixed: Устранена ошибка в загрузчике моделей, приводившая к краху при создании модели только из метаданных для архитектур с тензорами TENSOR_SKIP.
  • Fixed: Добавлены тесты для проверки порядка инициализации гиперпараметров модели EXAONE 4.5.
  • Added: Выпущены бинарные сборки для macOS, Linux, Windows, Android и iOS, включая поддержку CUDA 13 и ROCm 7.14.
b10357minor
🕐 1 мес назад · релиз на GitHub ↗

Релиз b10357: оптимизация OpenCL для FA, поддержка CUDA 13/ROCm 7.14, OpenVINO 2026.2.1 и новые сборки для Windows/Android.

  • Added: Оптимизация OpenCL: транспонирование K-тайла в локальной памяти для ядер предварительного заполнения FlashAttention.
  • Added: Добавлена поддержка CUDA 13.3 для Windows x64 и предварительная версия CUDA 13.4 для Windows ARM64.
  • Added: Обновлены бэкенды: ROCm 7.14, OpenVINO 2026.2.1 и SYCL (FP32/FP16) для Linux и Windows.
  • Added: Выпущены новые сборки для Android (ARM64 CPU) и iOS XCFramework.
  • Deprecated: Сборки macOS Apple Silicon с KleidiAI и openEuler временно отключены.
b10344minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлена поддержка MTP для модели Nemotron Nano; обновлены бинарные файлы для macOS, Linux, Windows, Android и UI.

  • Added: Добавлена поддержка MTP для модели Nemotron Nano и новые флаги mtp_flags.
  • Added: Выпущены бинарные сборки для macOS (arm64, x64), iOS, Linux, Windows и Android.
  • Added: Добавлена поддержка CUDA 13.3 и ROCm 7.2 для Windows и Linux.
  • Added: Обновлены сборки с OpenVINO (версия 2026.2.1) и SYCL (FP32/FP16).
  • Сборки для macOS Apple Silicon с KleidiAI и openEuler временно отключены.
b10333patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлено отсутствие поддержки квантования Q5_0 в бэкенде SpaceMiT для CPU.

  • Fixed: В бэкенде SpaceMiT для CPU устранено отсутствие диспетчеризации для квантования Q5_0.
b10331patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлено определение рабочей директории в серверном режиме для изолированных инструментов.

  • Fixed: Исправлено возвращение рабочей директории в get_info: теперь сервер корректно запрашивает путь у изолированного окружения, а не использует каталог процесса.
  • Added: Добавлены бинарные сборки для новых архитектур и бэкендов: Ubuntu s390x, Windows CUDA 13.3, Windows HIP, а также обновлены версии OpenVINO и SYCL.
  • Added: Выпущены обновления UI и iOS XCFramework, а также сборки для Android arm64 и macOS Intel.
b10330minor
🕐 1 мес назад · релиз на GitHub ↗

В llama.cpp b10330 добавлена оптимизация CUDA (fused rms_norm + mul + rope) и обновлены бинарники для Windows, Linux и macOS.

  • Added: Добавлена слиянная операция CUDA: rms_norm + mul + rope (+ view + set_rows) для ускорения вычислений.
  • Added: Добавлены тесты для случая с broadcast weight в модуле rms_norm_mul_rope.
  • Added: Внедрены проверки диапазонов памяти перед выполнением слияния rms_norm rope и set_rows в CUDA.
  • Added: Обновлены бинарные сборки для Windows (CUDA 12/13, OpenCL Adreno), Linux (ROCm 7.2, OpenVINO 2026.2.1, SYCL) и macOS.
  • Deprecated: Сборки для macOS Apple Silicon с KleidiAI и openEuler отключены в данном релизе.
b10327patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена ошибка в количестве потоков и блоков в ядрах копирования для квантованных данных в CUDA.

  • Fixed: Исправлено количество потоков и блоков в запусках ядер копирования для квантованных данных в CUDA.
  • Added: Добавлен тестовый случай для проверки копирования с неравномерным размером блока.
b10321patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена критическая ошибка в вычислениях NORM/RMS_NORM для Metal, влияющая на точность моделей с нестандартными размерностями.

  • Fixed: Исправлен баг в Metal-бэкенде: корректно обработаны частичные SIMD-группы в операциях NORM и RMS_NORM, ранее приводившие к неверным значениям среднего и дисперсии.
  • Fixed: Оптимизировано распределение потоков для предотвращения потери данных при редукции, что вернуло 100% успешных тестов для нормализации на M3 Pro.
  • Added: Добавлены тестовые кейсы для специфичных размерностей (33, 132, 260), охватывающие как скалярный, так и векторизованный пути вычислений.
  • Выпущены бинарные сборки для macOS (arm64/x64), iOS, Linux (CPU/Vulkan/ROCm/OpenVINO/SYCL), Windows (CPU/CUDA 12/13/Vulkan) и Android.
b10299patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена ошибка компиляции Metal для macOS/iOS, связанная с инициализацией матричных массивов в ядре.

  • Fixed: Исправлена ошибка компиляции MSL в kernel_lightning_indexer: заменён тип массива threadgroup half4x4 на POD-массив half с приведением типов.
  • Added: Добавлены бинарные сборки для Windows с поддержкой CUDA 13.3 и ROCm 7.2.
  • Added: Выпущены сборки для Linux (Ubuntu) с поддержкой OpenVINO 2026.2.1 и SYCL (FP32/FP16).
  • Added: Доступны новые бинарные файлы для macOS (arm64/x64), iOS, Android и Windows (CPU/Vulkan/OpenCL).
b10297patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена ошибка с пустым ответом в эндпоинте /cors-proxy сервера llama.cpp.

  • Fixed: Исправлен баг, из-за которого сервер возвращал пустой ответ на запросы к /cors-proxy.