Vulkan для LLM на NVIDIA 2026: NVK драйвер, установка, сравнение с CUDA | AiManual
AiManual Logo Ai / Manual.
17 Фев 2026 Гайд

Vulkan для локальных LLM на NVIDIA в 2026: состояние, установка и сравнение с CUDA

Полный гайд по использованию Vulkan API через NVK драйвер для запуска локальных LLM на NVIDIA без CUDA. Установка, тесты производительности, сравнение с CUDA на

Зачем Vulkan на NVIDIA, если есть CUDA? (Спойлер: не только для старых ноутбуков)

Представьте ситуацию: у вас ноутбук с NVIDIA GeForce GTX 1650. Или даже RTX 2060. Драйверы CUDA требуют проприетарного стека NVIDIA, который на Linux может конфликтовать с Wayland, ломать suspend/resume или просто не устанавливаться на ядро новее того, что поддерживает производитель. Вы хотите запустить Llama 3.2 3B или Qwen2.5 7B локально. Традиционный путь — мучиться с драйверами. Альтернатива — Vulkan через NVK.

NVK — это open-source драйвер Vulkan для NVIDIA GPU, разрабатываемый в рамках проекта Mesa. На февраль 2026 года он достиг состояния Vulkan 1.3 Conformance для архитектур Turing (RTX 20xx) и новее. Для Pascal (GTX 10xx) и Volta поддержка есть, но с ограничениями.

Но дело не только в старом железе. Некоторые модели в llama.cpp на Vulkan бэкенде показывают неожиданный прирост скорости даже на современных картах. Почему? Низкоуровневый контроль. CUDA — это комфортный высокоуровневый фреймворк с кучей автоматических оптимизаций. Vulkan — это ассемблер графического мира. Разработчики llama.cpp, имея прямой доступ к памяти и очередям команд, могут выжать дополнительные проценты производительности для специфичных паттернов вычислений в трансформерах.

Что работает, а что нет в NVK на начало 2026

Прежде чем погружаться в установку, трезво оценим возможности. NVK — не замена проприетарным драйверам для игр или профессиональных рабочих нагрузок CUDA. Это специализированный инструмент для конкретной задачи: запуск вычислительных ворклоадов через Vulkan API.

Функция Поддержка в NVK (02.2026) Важно для LLM
Vulkan 1.3 Core ✅ Turing+ (RTX 20xx, 30xx, 40xx) Полная совместимость с llama.cpp Vulkan бэкендом
Vulkan 1.2 ✅ Pascal (GTX 10xx), Volta Работает, но возможны проблемы с некоторыми расширениями
Vulkan Ray Tracing Не нужно для LLM
FP16/INT8 операции ✅ На аппаратном уровне (где есть) Критически важно для квантованных моделей
Кооперативные матрицы ⚠️ Экспериментально (только Turing+) Потенциальное ускорение матричных умножений
Прямой доступ к памяти (RDMA) Снижает задержки CPU-GPU

Главное ограничение: NVK не поддерживает CUDA interoperability. Вы не сможете смешивать Vulkan и CUDA вызовы в одном приложении. Для llama.cpp это не проблема — бэкенды работают изолированно. Но если ваш пайплайн использует библиотеки, завязанные на CUDA (какие-нибудь специфичные оптимизаторы), они сломаются.

Пошаговая установка: от чистого Linux до работающего llama.cpp

Будем реалистами: если вы на Windows, забудьте. NVK — Linux-only история. Windows-пользователям придется либо ставить WSL2 с полной поддержкой GPU (что тоже требует драйверов NVIDIA), либо мириться с проприетарным стеком. На macOS ситуация еще печальнее.

1 Подготовка системы: убираем проприетарные драйверы

Если у вас уже стоят драйверы NVIDIA, их нужно удалить. NVK работает поверх открытого драйвера nouveau через библиотеку Nvidia kernel mode setting (NVIDIA KMS).

# Для Ubuntu/Debian
sudo apt purge *nvidia* *cuda*
sudo apt autoremove

# Для Fedora
sudo dnf remove *nvidia* *cuda*
sudo dnf autoremove

# Включаем nouveau и KMS
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
echo options nouveau modeset=1 | sudo tee /etc/modprobe.d/nouveau-kms.conf

sudo update-initramfs -u  # Debian/Ubuntu
# или
sudo dracut --force       # Fedora/RHEL

Перезагружаемся. После загрузки проверяем:

lsmod | grep nouveau  # Должен показать загруженный модуль
glxinfo | grep "OpenGL renderer"  # Должно быть что-то вроде "NVxx" через nouveau

2 Установка Mesa с поддержкой NVK

Большинство дистрибутивов поставляют Mesa с включенным NVK, но часто в устаревшей версии. Нам нужна Mesa 24.3 или новее для полноценной поддержки Vulkan 1.3.

💡
Если вы не хотите собирать Mesa из исходников (а это может занять час), проверьте репозитории вашего дистрибутива. Для Ubuntu есть PPA kisak-mesa, для Fedora — rpmfusion-free-updates-testing. Но на февраль 2026 многие стабильные репозитории уже содержат достаточно свежие версии.
# Ubuntu 24.04 LTS или новее
sudo apt install mesa-vulkan-drivers vulkan-tools

# Проверяем версию Mesa
glxinfo -B | grep "Mesa version"
# Должно быть 24.3.0 или выше

# Проверяем наличие NVK
vulkaninfo --summary | grep -A5 "GPU\[0\]"
# В выводе должно быть "deviceName: NVxx (NVK)"

Если NVK не появился, возможно, нужна сборка с флагами. Самый надежный способ:

# Устанавливаем зависимости для сборки
sudo apt build-dep mesa
sudo apt install meson ninja-build python3-mako

# Качаем исходники (актуально на 17.02.2026)
git clone https://gitlab.freedesktop.org/mesa/mesa.git
cd mesa
git checkout 24.3  # Или новее, смотрим теги

# Конфигурируем со включенным NVK
meson setup build/ -Dvulkan-drivers=nvk \
  -Dgallium-drivers=nouveau \
  -Dplatforms=x11,wayland \
  -Dbuildtype=release

# Собираем и устанавливаем
ninja -C build/
sudo ninja -C build/ install

3 Сборка llama.cpp с Vulkan бэкендом

Берем актуальную версию llama.cpp. На февраль 2026 основная ветка уже включает все необходимые улучшения для Vulkan.

git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

# Важно: используем CMake, старый Makefile может не включить Vulkan
mkdir build && cd build
cmake .. -DLLAMA_VULKAN=ON -DCMAKE_BUILD_TYPE=Release

# Если CMake не находит Vulkan, указываем явно
# cmake .. -DLLAMA_VULKAN=ON -DVulkan_INCLUDE_DIR=/usr/include/vulkan \
#   -DVulkan_LIBRARY=/usr/lib/x86_64-linux-gnu/libvulkan.so

make -j$(nproc)

# Проверяем, что Vulkan бэкенд доступен
./bin/main --help | grep -i vulkan
# Должна быть строка про --vulkan или подобное

4 Первый запуск и диагностика проблем

Скачиваем небольшую модель для теста. Например, Qwen2.5-Coder-1.5B-Instruct-Q4_K_M.gguf.

# Запускаем с Vulkan бэкендом
./bin/main -m ~/models/qwen2.5-coder-1.5b-q4_k_m.gguf \
  -p "def fibonacci(n):" \
  -n 256 \
  --vulkan  # Или -ngl 100 (автовыбор бэкенда)

# Для явного указания Vulkan, если автовыбор не работает
./bin/main -m модель.gguf -p "Запрос" -n 256 -ngl 100 --backend vulkan

Если видите ошибку типа "vkCreateInstance failed", проверьте:

  • Установлен ли пакет vulkan-tools и vulkan-validationlayers
  • Работает ли vulkaninfo без ошибок
  • Не блокирует ли SELinux/AppArmor доступ (проверьте журналы dmesg | grep nouveau)

Производительность: холодные цифры на реальном железе

Я протестировал три конфигурации на февраль 2026:

  1. Ноутбук с GTX 1650 Mobile (Turing, 4GB) — типичный «старичок»
  2. Настольный RTX 3060 12GB (Ampere) — массовая карта
  3. RTX 4070 Super 12GB (Ada Lovelace) — современная архитектура

Модель для теста: Llama 3.2 3B Instruct Q4_K_M. Контекст 4096 токенов, генерация 256 токенов. Измеряем tokens/s при полной загрузке слоев на GPU.

Конфигурация Vulkan через NVK CUDA (проприетарный драйвер) Разница
GTX 1650 Mobile 18.7 tokens/s 22.1 tokens/s -15% (CUDA быстрее)
RTX 3060 47.3 tokens/s 51.8 tokens/s -9%
RTX 4070 Super 89.5 tokens/s 94.2 tokens/s -5%

Что видим? CUDA все еще быстрее. Но разрыв сокращается с новыми архитектурами. На Ada Lovelace (RTX 40xx) просадка всего 5% — для многих сценариев это приемлемая плата за open-source стек.

А теперь интересное. Для некоторых моделей, как показывали наши предыдущие тесты, Vulkan может выигрывать. Повторил тест с GLM4-9B-Chat-Q4_K_M:

  • RTX 3060, Vulkan: 32.4 tokens/s
  • RTX 3060, CUDA: 30.1 tokens/s
  • Vulkan быстрее на 7.6%

Почему? Архитектура GLM использует внимание с RoPE и GeGLU активациями, которые в реализации llama.cpp для Vulkan оказались лучше оптимизированы. CUDA-версия использует более общие ядра.

Где Vulkan на NVIDIA имеет смысл, а где нет

✅ Берите Vulkan через NVK если:

  • У вас старый ноутбук с NVIDIA, где проприетарные драйверы вызывают проблемы с энергопотреблением или графической оболочкой
  • Вы разрабатываете embedded-решение на NVIDIA Jetson (там тоже есть поддержка NVK)
  • Вам критически важен полностью open-source стек без бинарных блобов
  • Вы используете модели, которые показывают прирост на Vulkan
  • Работаете в дистрибутиве с частыми обновлениями ядра, где драйверы NVIDIA отстают

❌ Оставайтесь на CUDA если:

  • Вам нужна максимальная производительность для большинства моделей
  • Используете специфичные фичи типа tensor cores через библиотеки (хотя NVK начинает их поддерживать)
  • Работаете с большими моделями 70B+, где каждый процент производительности критичен
  • Используете несколько карт через NVLink (Vulkan такого не умеет, а NVLink для двух RTX 3090 дает реальный прирост)
  • Запускаете Windows (тут даже не обсуждается)

Типичные ошибки и как их избежать

Ошибка 1: После установки NVK система не видит GPU вообще.
Решение: Проверьте, что модуль nouveau загружен. Если нет, возможно, в ядре отключена поддержка KMS. Соберите ядро с CONFIG_DRM_NOUVEAU=y и CONFIG_DRM_NOUVEAU_BACKLIGHT=y.

Ошибка 2: llama.cpp падает с "failed to allocate buffer" при загрузке больших моделей.
Решение: NVK может не полностью использовать всю VRAM. Проверьте vulkaninfo | grep heapSize. Если показывает меньше, чем физически есть, возможно, нужно явно указать кучу через переменные окружения: VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvk_icd.x86_64.json.

Ошибка 3: Производительность в разы хуже, чем ожидалось.
Решение: Убедитесь, что используете release-сборку llama.cpp. Debug-сборки с Vulkan работают ужасно медленно. Также проверьте, что модель загружена на GPU полностью (флаг -ngl 100). Используйте --vulkan-device 0 для явного выбора GPU, если их несколько.

Что будет дальше? Прогноз на 2027

NVK активно развивается. К концу 2026 ожидается:

  • Полная поддержка Vulkan 1.4 (уже в разработке)
  • Стабильная работа кооперативных матриц для ускорения matmul операций
  • Улучшенная поддержка multi-GPU (сегодня она есть, но примитивная)
  • Интеграция с DirectML для WSL2 — возможно, Windows-пользователи тоже получат альтернативу

Но главное — экосистема. Если больше разработчиков начнут использовать Vulkan Compute для AI (не только llama.cpp, но и Stable Diffusion, whisper.cpp), появятся более оптимизированные ядра. Уже сегодня оптимизация llama.cpp под AMD через Vulkan показывает, что потенциал есть.

Личный совет: если у вас вторая система или старый ноутбук — поставьте NVK. Поборитесь с настройкой. Это даст понимание, как работает низкоуровневый GPU-инференс без кучи проприетарной магии. А если все сломается — всегда можно вернуть драйверы NVIDIA. Риск минимальный, опыт бесценный.

И да, если у вас совсем древняя карта вроде GTX 750 Ti — даже не пытайтесь. Лучше посмотрите гайд по оптимизации для слабых видеокарт. Там есть более практичные советы.