Главная/Блог/Гайд/Сборка llama.cpp: CUDA, Metal, ROCm,…
Гайд4 мин чтения · 21 сентября 2026 г.

Сборка llama.cpp: CUDA, Metal, ROCm, Vulkan — гайд

Как собрать llama.cpp под NVIDIA, AMD, Apple и Intel. Разбор флагов CMake, ускорителей и выбора железа для инференса LLM в 2024 году.

Сборка llama.cpp: CUDA, Metal, ROCm, Vulkan — гайд

Проект llama.cpp — это не просто библиотека, а экосистема, позволяющая запускать большие языковые модели (LLM) на практически любом современном оборудовании. От серверных GPU NVIDIA до встраиваемых процессоров Intel и мобильных чипов Apple. Ключ к производительности лежит в правильной сборке бинарных файлов с учетом архитектуры вашего железа. Ниже — практическое руководство по настройке бэкендов.

01Базовая сборка и CPU-оптимизации

Для начала работы необходимо склонировать репозиторий и создать директорию сборки. Базовая команда для Linux/macOS выглядит так:

terminalbash
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release

Для ускорения компиляции на многоядерных системах используйте флаг -j (например, -j 8) или генератор Ninja. Если вы планируете часто пересобирать проект, установите ccache — это значительно сократит время повторных билдов.

Для Windows с MSVC или Clang требуется Visual Studio 2022. Важно отметить поддержку Windows on ARM (arm64). Для сборки под WoA (Windows on ARM) используйте:

terminalbash
cmake --preset arm64-windows-llvm-release -D GGML_OPENMP_FETCH=ON
cmake --build build-arm64-windows-llvm-release

Флаг GGML_OPENMP_FETCH=ON автоматически загрузит рантайм LLVM OpenMP, что критично для корректной работы на ARM64. Также для HTTPS/TLS функций потребуется установить библиотеки OpenSSL (libssl-dev для Debian/Ubuntu).

⚠️
Важно. При сборке для Windows на ARM убедитесь, что вы используете ARM64 Native Tools Command Prompt для VS 2022. Обычная командная строка x64 не подойдет для кросс-компиляции или нативной сборки под ARM.

02Ускорение CPU: BLAS и Intel oneMKL

Использование BLAS (Basic Linear Algebra Subprograms) улучшает производительность при обработке промптов (prompt processing) с размером батча более 32. На генерацию токенов это влияет меньше, но ускоряет начальную загрузку контекста.

OpenBLAS

Кроссплатформенное решение. Включается флагом:

terminalbash
cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
cmake --build build --config Release

Intel oneMKL

Для процессоров Intel (поддержка AVX-VNNI) рекомендуется использовать oneAPI. Обратите внимание: эта конфигурация не поддерживает Intel GPU. Для работы с графическими ускорителями Intel нужен бэкенд SYCL.

terminalbash
source /opt/intel/oneapi/setvars.sh
cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Intel10_64lp -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DGGML_NATIVE=ON
cmake --build build --config Release

03GPU-бэкенды: NVIDIA, AMD, Apple, Intel

NVIDIA CUDA

Стандарт де-факто для инференса LLM. Требуется установленный CUDA Toolkit. Для пользователей Fedora Silverblue/Kinoite (Atomic Desktops) рекомендуется использовать контейнер Toolbox, так как нативные пакеты CUDA там часто отсутствуют или устарели.

Apple Metal

На macOS Metal включен по умолчанию. Он позволяет использовать GPU Mac (M1/M2/M3) для вычислений. Если вы хотите принудительно отключить GPU и работать только на CPU, используйте аргумент командной строки --n-gpu-layers 0 при запуске.

AMD ROCm (HIP)

Для видеокарт AMD Radeon (серии RX 6000/7000 и профессиональных Instinct) используется бэкенд HIP. Сборка требует наличия ROCm toolkit. Производительность на AMD часто уступает NVIDIA на аналогичном объеме VRAM из-за оптимизаций в CUDA, но для бюджетных сборок это viable option.

Intel GPU (SYCL)

llama.cpp поддерживает Intel Arc, Flex и Max серии через SYCL. Это отдельный бэкенд, требующий установки Intel oneAPI Base Toolkit. Синтаксис сборки отличается от стандартного CMake и описывается в документации backend/SYCL.md.

💡
Совет. Если у вас видеокарта NVIDIA, всегда собирайте с поддержкой CUDA. Это дает максимальную совместимость с форматами GGUF и лучшую производительность на токены/с. Для AMD проверяйте версию ROCm — старые версии (5.x) могут не поддерживать новейшие модели.

04Другие ускорители: Vulkan, OpenVINO, KleidiAI

  • Vulkan: Универсальный бэкенд, работающий на NVIDIA, AMD, Intel и даже мобильных GPU. Хорошая альтернатива, если нативные драйверы недоступны.
  • OpenVINO: Для процессоров и iGPU Intel. Позволяет эффективно использовать NPU и встроенную графику.
  • Arm® KleidiAI™: Оптимизации для процессоров ARM (включая Apple Silicon и Android), повышающие эффективность вычислений с плавающей запятой.

05Какое железо кому подойдёт

Бюджет/Роль Рекомендуемое железо Бэкенд сборки Особенности
Локальный энтузиаст (до 50 тыс. ₽) RTX 3060 12GB / RTX 4060 Ti 16GB CUDA 12-16GB VRAM позволяют запускать модели 7B-13B в 4-bit. RTX 3060 — лучший входной билет.
Mac User (Pro/Max) M2/M3 Max (64GB+ Unified Memory) Metal Unified Memory позволяет загружать модели 30B-70B. Медленнее NVIDIA, но вместительнее.
AMD энтузиаст Radeon RX 7900 XTX (24GB) HIP/ROCm 24GB VRAM за разумные деньги. Требуется настройка окружения ROCm.
Сервер/Enterprise NVIDIA H100 / A100 CUDA + Tensor Cores Максимальная пропускная способность. Необходимы для мульти-tenant инференса.
Edge/Intel Intel Core Ultra (NPU) OpenVINO / SYCL Энергоэффективность. Подходит для легких моделей (1B-3B) на устройствах без дискретной GPU.

В России купить новые NVIDIA H100/A100 сложно из-за санкций, но можно арендовать в облаках (Yandex Cloud, Selectel). Для локальных сборок RTX 30-й и 40-й серии доступны через параллельный импорт. Apple Mac Studio M2/M3 Ultra остаются одним из самых стабильных решений для работы с большими моделями благодаря огромному объему единой памяти.

⚠️
Важно. Объем VRAM — критический параметр. Модель 7B в 4-bit занимает ~5-6 GB, 13B — ~8-10 GB, 70B — ~40 GB. Убедитесь, что ваша видеокарта имеет запас VRAM для контекстного окна (kv cache), иначе вы получите ошибку OOM (Out Of Memory).

Источник: источник (тест/офиц. документация) ↗