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

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

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

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

llama.cpp — это не просто библиотека, а фундаментальный инструмент для локального запуска больших языковых моделей. Его главная сила — в гибкости: один и тот же код можно собрать под любую архитектуру, от игровых видеокарт до серверных ускорителей. Однако «из коробки» работа не всегда оптимальна. Чтобы получить максимальную скорость токенов в секунду и корректно уместить модель в память, нужно понимать, как правильно собрать проект под ваше железо.

01Базовая сборка и CPU-бэкенд

Начнем с самого простого — сборки под процессор. Это работает везде, но скорость генерации будет низкой. Для компиляции используется CMake. Если у вас Linux или macOS, базовый набор команд выглядит так:

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: Если вы используете MSVC или Clang, убедитесь, что у вас установлен Visual Studio 2022 с компонентами «Desktop development with C++» и CMake Tools. Для Windows on ARM (WoA) сборка требует специфических пресетов:

terminalbash
cmake --preset arm64-windows-llvm-release -D GGML_OPENMP=OFF
cmake --build build-arm64-windows-llvm-release

Для ускорения обработки промптов (не генерации!) можно подключить BLAS-библиотеки. Например, OpenBLAS для Linux:

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

02NVIDIA CUDA: Золотой стандарт

Для видеокарт NVIDIA флаг -DGGML_CUDA=ON является обязательным. Это обеспечивает нативную поддержку GPU и максимальную производительность.

terminalbash
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

По умолчанию llama.cpp компилируется под архитектуру вашей текущей видеокарты. Если вы хотите создать универсальный бинарник, который будет работать на любых GPU NVIDIA (с небольшим оверхедом на JIT-компиляцию), отключите нативную оптимизацию:

terminalbash
cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=OFF

Если nvcc не определяет вашу карту, могут возникнуть предупреждения. В таком случае потребуется ручная настройка вычислительных способностей (Compute Capability).

⚠️
Важно. Для пользователей некоторых дистрибутивов Linux нативная установка CUDA может быть затруднена. В этом случае рекомендуется использовать контейнеры или специализированные инструкции по сборке внутри контейнера, так как хост-система не поддерживает пакеты CUDA напрямую.

03Apple Metal: Единая память

На macOS Metal включен по умолчанию. Это критически важно для чипов M-серии, так как они используют единую архитектуру памяти. Видеопамяти здесь нет в привычном понимании — есть общий пул RAM, доступный и CPU, и GPU.

Чтобы явно отключить использование GPU при запуске, используйте флаг --n-gpu-layers 0. Если вы хотите принудительно отключить Metal на этапе сборки (например, для отладки), используйте -DGGML_METAL=OFF.

💡
Совет. На Mac с M-серией объем VRAM равен общему объему оперативной памяти. Это позволяет запускать огромные модели, которые физически не влезут в видеокарты NVIDIA даже с большим объемом VRAM, если у вас Mac с большим объемом RAM.

04AMD ROCm и Intel SYCL

Для видеокарт AMD Radeon используется бэкенд HIP (ROCm). Для видеокарт Intel (Arc, Data Center Max/Flex) — SYCL. Сборка под SYCL требует установки oneAPI или использования Docker-образа Intel:

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

Обратите внимание: Intel oneMKL BLAS не поддерживает Intel GPU. Для работы с графикой Intel необходимо использовать SYCL-бэкенд, а не BLAS.

05Другие ускорители: Vulkan, OpenVINO, CANN

llama.cpp поддерживает множество других бэкендов:

  • Vulkan: Универсальный бэкенд, работающий на AMD, NVIDIA и Intel. Хорошая альтернатива, если нативные драйверы не установлены.
  • OpenVINO: Оптимизация для Intel CPU и iGPU. Позволяет эффективно использовать векторные процессоры.
  • CANN: Для ускорителей Huawei Ascend.
  • Arm KleidiAI: Оптимизация для ARM-процессоров (включая Android).

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

Выбор платформы зависит от бюджета и задач:

  1. Бюджетный энтузиаст: Собирайте с -DGGML_CUDA=ON. Небольшой объем VRAM хватит для моделей среднего размера. Это самый стабильный вариант с лучшей документацией.
  2. Apple Mac: Metal включен по умолчанию. Главное преимущество — объем памяти. Если вам нужно запустить большую модель, Mac с большим объемом памяти часто выигрывает у серверных GPU из-за цены и доступности RAM.
  3. AMD Radeon: Требует установки ROCm. На Linux работает лучше, чем на Windows. Если нет желания возиться с драйверами, используйте Vulkan-бэкенд.
  4. Серверный инференс: NVIDIA остаются королями скорости, но их сложно арендовать в РФ. Альтернатива — аренда облачных инстансов, где CUDA-бэкенд обеспечивает наилучшую цену/про

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