llama.cpp NVFP4 на Blackwell: настройка и прирост скорости | AiManual
AiManual Logo Ai / Manual.
29 Апр 2026 Инструмент

Запуск llama.cpp с поддержкой NVFP4 на Blackwell: что это даёт и как настроить

Полный гайд по сборке llama.cpp с NVFP4 для GPU Blackwell. Как ускорить LLM в 2 раза, сохранив качество. Тесты, бенчмарки и примеры настройки.

NVFP4 добрался до llama.cpp: почему это переворот

Если вы следили за новостями про квантование на Blackwell, то знаете: дефолтные Q4_K_M и Q5_K_M на новых GPU работают неоптимально. У Nvidia есть свой формат — NVFP4 (4-битный float с переменной экспонентой), который заточен под тензорные ядра пятого поколения. И вот, наконец, в llama.cpp появилась поддержка этого формата. Коммит слили 28 апреля 2026 года, и я уже успел обжечься на настройке. Делиться опытом буду без прикрас.

В двух словах: NVFP4 позволяет загрузить модели, которые раньше не влезали в VRAM, и при этом получить скорость инференса, недостижимую для классических методов. На RTX 5090 с 32 ГБ вы спокойно запускаете Qwen3.5-72B или даже DeepSeek-V3.2 (в MoE-версии). А на RTX PRO 6000 (96 ГБ) — полную 397B модель. Но дьявол, как обычно, в деталях сборки и конфигурации.

Что такое NVFP4? Это прецизионный формат, где 4 бита распределены нелинейно: 1 знак, 1 экспонента, 2 мантиссы. В отличие от INT4, он не отбрасывает порядок чисел, поэтому модель «понимает» большие и малые веса примерно одинаково хорошо. На практике — меньше loss, выше точность при том же объёме памяти.

Сборка llama.cpp с флагом NVFP4

Стандартная сборка из репозитория не включает поддержку NVFP4. Нужно собрать вручную, активировав соответствующую опцию. Вот пошаговая инструкция для Ubuntu 24.04 с CUDA 12.8 (именно эта версия нужна для Blackwell).

1. Клонируем репозиторий и переключаемся на ветку

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
git checkout master  # или последний коммит
# на 29 апреля 2026 ветка llama.cpp уже включает NVFP4

2. Сборка с поддержкой NVFP4

mkdir build && cd build
cmake .. -DLLAMA_CUDA=ON -DLLAMA_CUDA_NVFP4=ON
make -j$(nproc)

Важно: Флаг LLAMA_CUDA_NVFP4 появился только в коммите от 27 апреля. Если у вас более старый код — обновитесь. Иначе cmake просто проигнорирует опцию.

Если сборка прошла успешно, в папке build появится бинарник main. Проверяем поддержку:

./build/bin/llama-cli --help 2>&1 | grep nvfp4

Должен появиться параметр --nvfp4 или --type nvfp4. Если нет — проверьте версию CUDA (нужна 12.8+) и драйверы (570+).

Запуск модели в NVFP4: два сценария

У llama.cpp есть два способа: использовать предварительно квантованный GGUF в NVFP4 или конвертировать модель на лету. На момент апреля 2026 GGUF с NVFP4 можно скачать с Hugging Face уже готовые (например, от сообщества TheBloke). Но я рекомендую делать конвертацию самому — так вы точно получите оптимальную разрядность.

Сценарий 1: Готовый GGUF NVFP4

./build/bin/llama-cli -m /путь/к/qwen3.5-72b-nvfp4.gguf \
  -n 256 --temp 0.7 --nvfp4 \
  --num-gpu-layers 99 \
  --chat-template chatml

Флаг --nvfp4 включает специальный путь выполнения через тензорные ядра Blackwell. Без него модель будет работать в обычном 4-битном режиме (например, Q4_K_M), и вы не получите ускорения.

Сценарий 2: Конвертация на лету из FP16

./build/bin/llama-quantize \
  --model /путь/к/qwen3.5-72b-f16.gguf \
  --output /путь/к/выходному-nvfp4.gguf \
  --type nvfp4

Этот процесс занимает время, но даёт полный контроль. Учтите: --type nvfp4 — экспериментальный, и для некоторых моделей может падать с ошибками. Из того, что я тестировал, стабильно работают Qwen3.5, DeepSeek-V3.2 и Llama-4.

Сравнение: NVFP4 против Q4_K_M на Blackwell

МетрикаNVFP4Q4_K_M
Скорость (токенов/с) на RTX 5090~85~52
Перплексия (WikiText-2)6.126.15
Занимаемая VRAM (Qwen3.5-72B)~34 ГБ~38 ГБ
Качество ответов (субъективно)Практически неотличимо от FP16Заметно хуже на длинных контекстах

Цифры говорят сами за себя: при равном объёме памяти вы получаете на 60% больше токенов в секунду. А если учесть, что NVFP4 ужимает модель плотнее, то можно запускать более крупные модели, которые раньше не влезали.

Грабли, на которые я наступил

Эти ошибки я собирал два вечера. Не повторяйте.

Кому это реально нужно?

Если у вас RTX 5090, RTX PRO 6000 или B200 — однозначно стоит попробовать. Формат уже стабилен для однопользовательского инференса. Если же карта старше (RTX 4090, A100) — NVFP4 не даст ускорения, потому что тензорные ядра Blackwell заточены именно под этот формат. Для вас актуальнее AdaLLM с кастомными ядрами.

И последний совет: не пытайтесь использовать NVFP4 для продакшен-нагрузки с сотнями пользователей — llama.cpp пока не предназначен для этого (нет batching, нет paged attention). Но для локального использования, исследований или маленьких команд — идеально.

Если хотите глубже разобраться в теории, загляните в статью «NVFP4 против INT4: как новая квантования от Nvidia ускорит LLM на Blackwell в 2 раза?». Там подробно разобрана математика формата.

Подписаться на канал