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

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

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

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

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

Начнем с фундамента. Для получения исходного кода и базовой сборки под процессор (CPU) достаточно выполнить стандартные команды. Этот вариант подходит для тестирования или если у вас нет совместимого GPU.
terminalbash
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release
Для ускорения компиляции используйте флаг -j или генератор Ninja. Если вы планируете часто пересобирать проект, установите ccache — это сэкономит время при повторных билдах. Для Windows (x64/ARM64) с MSVC или Clang требуется Visual Studio 2022. Важно отметить поддержку Windows on ARM (WoA): для сборки под эту архитектуру используется пресет arm64-windows-llvm-release с флагом -D GGML_OPENMP_FETCH=ON, который автоматически подтягивает рантайм OpenMP.
⚠️
Важно. Если вам нужны функции HTTPS/TLS (например, для работы с удаленными API), убедитесь, что в системе установлены библиотеки OpenSSL. Без них проект соберется, но сетевые функции будут отключены.

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

Обычная сборка CPU медленна при обработке длинных контекстов (prompt processing). Включение поддержки BLAS (Basic Linear Algebra Subprograms) значительно ускоряет этот этап. Генерация токенов при этом не ускоряется. Варианты ускорителей:
  • OpenBLAS (Linux): cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS
  • Intel oneMKL (Intel CPU): Требует установки oneAPI. Компиляторы icx/icpx.
    cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=Intel10_64lp -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx
  • AMD AOCL-BLAS: Для процессоров AMD EPYC/Threadripper. Требует настройки переменных окружения.

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

Самая интересная часть — использование графических ускорителей. llama.cpp поддерживает множество архитектур через разные флаги.

NVIDIA CUDA

Стандарт де-факто для инференса. Необходим установленный CUDA Toolkit. Сборка включает поддержку вычислений на GPU NVIDIA. Для пользователей Fedora Silverblue/Kinoite рекомендуется использовать контейнеры Toolbox, так как нативных пакетов CUDA там нет.

Apple Metal

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

AMD ROCm (HIP)

Для видеокарт AMD Radeon (серии RX 6000/7000 и профессиональных Instinct) используется бэкенд HIP. Он позволяет использовать вычислительную мощность AMD-карт аналогично CUDA на NVIDIA. Требует установки драйверов ROCm и соответствующих библиотек.Intel SYCL Поддержка GPU Intel (серии Max, Flex, Arc, а также встроенных iGPU). SYCL — это высокоуровневая модель программирования, абстрагирующая работу с разными ускорителями. Для сборки требуется среда Intel oneAPI. Важно: сборка через oneAPI компиляторы поддерживает инструкции AVX-VNNI для CPU, но для работы именно с GPU Intel нужен отдельный бэкенд SYCL.

Vulkan

Кроссплатформенный графический API. Позволяет запускать llama.cpp на широком спектре GPU, включая старые карты NVIDIA, AMD и даже некоторые мобильные решения, где нет нативной поддержки CUDA или ROCm. Хороший fallback-вариант, если другие бэкенды не работают.
💡
Совет. Если вы выбираете железо для покупки в РФ, обратите внимание на доступность. NVIDIA H100/A100 практически недоступны легально и стоят космических денег. Для домашнего/малого бизнеса оптимальны RTX 3090/4090 (24GB VRAM) или б/у RTX 3090. Для AMD-карт важно проверять совместимость драйверов ROCm с вашей версией Linux, так как поддержка RX 6000/7000 серии может требовать дополнительных настроек.

04Другие специфичные бэкенды

  • MUSA: Альтернативная реализация CUDA для GPU Moore Threads. Актуально для российского рынка, где есть поставки чипов MTT S2000/S3000.
  • OpenVINO: Для оптимизации работы на Intel CPU и iGPU через экосистему Intel.
  • Arm® KleidiAI™: Оптимизации для процессоров ARM (включая Apple Silicon и серверные Ampere).
  • CANN: Для процессоров Huawei Ascend. Важно для корпоративного сектора в Китае и частично в РФ.

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

Выбор платформы зависит от бюджета и задач:
  1. Бюджетный старт: ПК на базе AMD Ryzen с хорошей интегрированной графикой или б/у NVIDIA GTX 1080/1660. Используйте CPU-сборку или Vulkan. Ограничение — скорость и объем VRAM.
  2. Оптимальный баланс: NVIDIA RTX 3090/4090 (24GB VRAM). Это «золотой стандарт» для локального запуска моделей до 70B параметров (в квантованном виде). CUDA обеспечивает максимальну

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