LinuxRuLinux без лишней теории
NVIDIA и CUDA

Установка CUDA в Ubuntu и Debian: драйвер NVIDIA, CUDA Toolkit, cuDNN и проверка GPU

Редакция LinuxRu7 мин чтенияИнструкции

Чтобы установить CUDA в Ubuntu 26.04 или Debian 13, поставьте драйвер NVIDIA ветки 580 и новее, подключите репозиторий NVIDIA пакетом cuda-keyring и выполните apt install cuda-toolkit, затем добавьте /usr/local/cuda/bin в PATH. Если нужен только PyTorch или Ollama, toolkit не требуется: им хватает драйвера.

Установка CUDA в Ubuntu и Debian: драйвер NVIDIA, CUDA Toolkit, cuDNN и проверка GPU
Фото: Hyins, Public domain, Wikimedia Commons
Содержание
  1. Что нужно
  2. Версии
  3. Проверка
  4. Драйвер
  5. Toolkit в Ubuntu
  6. Debian и Fedora
  7. nvcc not found
  8. cuDNN
  9. PyTorch с GPU
  10. Ошибки и откат
  11. Частые вопросы

Драйвер, CUDA Toolkit и cuDNN: что из этого вам нужно

Под словом "CUDA" прячутся три разные вещи, и половина проблем возникает из-за того, что их путают:

  • Драйвер NVIDIA - модуль ядра и библиотека libcuda. Он нужен всегда. Команда nvidia-smi из его комплекта.
  • CUDA Toolkit - компилятор nvcc, заголовки и библиотеки для сборки программ. Нужен, если вы компилируете код: llama.cpp, whisper.cpp, расширения PyTorch, свои программы на CUDA.
  • cuDNN - библиотека для нейросетей поверх CUDA. Нужна отдельным фреймворкам и сборкам из исходников.

Главное, что стоит знать заранее: PyTorch из pip, Ollama, LM Studio и большинство готовых программ приносят свои библиотеки CUDA с собой. Им достаточно свежего драйвера, toolkit ставить не надо. Если ваша цель - просто запустить нейросеть, хватит раздела про драйвер и раздела про PyTorch.

Ещё одна частая путаница: строка "CUDA Version" в шапке nvidia-smi показывает максимальную версию, которую поддерживает драйвер, а не установленный toolkit. Версию toolkit показывает nvcc --version, и она может быть ниже.

Актуальные версии и репозитории на октябрь 2026

Текущая ветка - CUDA 13.4 (вышло обновление Update 1), документация NVIDIA описывает драйвер ветки 615. CUDA 13 требует драйвер не ниже 580 и больше не собирает код для архитектур Maxwell, Pascal и Volta, то есть для GTX 900, GTX 1000 и Titan V. Владельцам таких карт нужна ветка CUDA 12.x.

СистемаПроверена NVIDIAЯдро и GCC в проверкеКаталог репозитория NVIDIAПакет из своего репозитория
Ubuntu 26.04 LTS26.04.17.0, GCC 15.2ubuntu2604есть, версия отстаёт
Ubuntu 24.04 LTS24.04.46.17, GCC 14.3ubuntu2404nvidia-cuda-toolkit, ветка 12.x
Debian 1313.66.12, GCC 14.2debian13nvidia-cuda-toolkit в non-free, ветка 12.x
Fedora 44446.19, GCC 16fedora44нет, драйвер обычно из RPM Fusion

Пакеты из репозитория дистрибутива проще в обслуживании, но версия там старше. Репозиторий NVIDIA даёт свежий toolkit и позволяет держать несколько версий рядом. Узнать, что доступно именно у вас, можно командой:

apt policy cuda-toolkit nvidia-cuda-toolkit

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

lspci | grep -i nvidia
uname -r
gcc --version
mokutil --sb-state

Первая команда должна показать карту. Если включён Secure Boot, модуль ядра NVIDIA придётся подписать ключом MOK, иначе драйвер не загрузится. Как это сделать, описано в статье о драйверах и Secure Boot. Для сборки модулей нужны заголовки текущего ядра:

# Ubuntu
sudo apt install linux-headers-$(uname -r)
# Debian
sudo apt install linux-headers-amd64

Шаг 1. Драйвер NVIDIA

В Ubuntu самый надёжный путь - утилита ubuntu-drivers. Она выберет ветку, проверенную Canonical, и сама поставит открытые модули ядра для карт Turing и новее:

sudo ubuntu-drivers list
sudo ubuntu-drivers install
sudo reboot

Альтернатива - драйвер из репозитория NVIDIA (подключение репозитория описано в следующем разделе). Пакет nvidia-open ставит открытые модули ядра, cuda-drivers - проприетарные, которые нужны только для карт до Turing:

sudo apt install nvidia-open

В Debian 13 драйвер из собственного репозитория требует компонентов contrib, non-free и non-free-firmware в /etc/apt/sources.list.d/debian.sources. Ветка там зафиксирована на момент выхода релиза и может не дотягивать до 580, которая нужна CUDA 13. Для свежего toolkit в Debian проще брать драйвер nvidia-open из репозитория NVIDIA. Подробно все варианты разобраны в статье про установку драйвера NVIDIA.

После перезагрузки проверьте результат:

nvidia-smi

Должна появиться таблица с моделью карты, версией драйвера и строкой CUDA Version.

Шаг 2. CUDA Toolkit в Ubuntu 26.04 и 24.04

Подключите репозиторий NVIDIA через пакет cuda-keyring. Для Ubuntu 24.04 замените в адресе ubuntu2604 на ubuntu2404:

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit

Пакет cuda-toolkit ставит последнюю версию и будет обновлять её дальше. Чтобы зафиксировать конкретную ветку, используйте пакет с номером, например cuda-toolkit-13-4. Несколько версий живут рядом в /usr/local/cuda-13.4, /usr/local/cuda-12.9 и так далее, а ссылка /usr/local/cuda указывает на выбранную.

Метапакет cuda-toolkit не трогает драйвер. Не ставьте вместо него метапакет cuda, если драйвер уже установлен через ubuntu-drivers: он потянет драйвер из репозитория NVIDIA, и две разные сборки начнут конфликтовать.

Если нужен вариант без стороннего репозитория, поставьте toolkit из архива Ubuntu. Версия будет старше, а nvcc окажется прямо в /usr/bin:

sudo apt install nvidia-cuda-toolkit

Смешивать оба варианта не стоит: два разных nvcc в системе - надёжный способ получить непонятные ошибки сборки.

CUDA Toolkit в Debian 13 и Fedora 44

В Debian 13 сначала включите contrib, затем подключите репозиторий NVIDIA:

sudo add-apt-repository contrib
wget https://developer.download.nvidia.com/compute/cuda/repos/debian13/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
sudo apt install cuda-toolkit
sudo reboot

Если команды add-apt-repository нет, допишите contrib в строку Components файла /etc/apt/sources.list.d/debian.sources вручную. В Fedora 44 репозиторий подключается через dnf:

sudo dnf config-manager addrepo --from-repofile=https://developer.download.nvidia.com/compute/cuda/repos/fedora44/x86_64/cuda-fedora44.repo
sudo dnf install cuda-toolkit

В Fedora драйвер обычно стоит из RPM Fusion (akmod-nvidia). Тогда из репозитория NVIDIA берите только toolkit, иначе пакеты драйверов из двух источников подерутся. Обратите внимание на компилятор: если nvcc ругается на неподдерживаемую версию GCC, проверьте таблицу совместимости в руководстве по установке CUDA.

Ошибка nvcc not found и настройка PATH

Toolkit из репозитория NVIDIA ставится в /usr/local/cuda-13.4, и эта папка не попадает в PATH сама. Поэтому сразу после установки nvcc --version отвечает "command not found", а Ubuntu ещё и советует поставить nvidia-cuda-toolkit. Этот совет не выполняйте, иначе получите второй, старый nvcc. Добавьте путь в ~/.bashrc:

echo 'export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}' >> ~/.bashrc
source ~/.bashrc
nvcc --version

Для всех пользователей тот же export кладут в файл /etc/profile.d/cuda.sh. При установке из deb-пакетов пути к библиотекам прописываются автоматически, а LD_LIBRARY_PATH нужен только после установки runfile-установщиком. Подробнее о переменных окружения в статье про PATH.

Проверьте, что компилятор действительно собирает и запускает код на видеокарте:

cat > hello.cu <<'EOF'
#include <cstdio>
__global__ void k() { printf("GPU thread %d\n", threadIdx.x); }
int main() { k<<<1, 4>>>(); cudaDeviceSynchronize(); return 0; }
EOF
nvcc hello.cu -o hello
./hello

Четыре строки "GPU thread" означают, что драйвер, toolkit и карта работают вместе.

Шаг 3. cuDNN

cuDNN ставится из того же репозитория NVIDIA. Пакет выбирается под основную версию CUDA:

# для CUDA 13
sudo apt install cudnn9-cuda-13
# для CUDA 12
sudo apt install cudnn9-cuda-12
dpkg -l | grep cudnn

Для PyTorch из pip отдельный cuDNN не нужен: он приезжает пакетом nvidia-cudnn внутри виртуального окружения. Системный cuDNN нужен для сборки из исходников и некоторых программ на C++.

PyTorch с поддержкой видеокарты

Ставьте PyTorch в виртуальное окружение. Колёса cu130 собраны с CUDA 13.0 и работают с любым драйвером ветки 580 и новее:

python3 -m venv ~/torch-env
source ~/torch-env/bin/activate
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130
python -c "import torch; print(torch.__version__, torch.version.cuda, torch.cuda.is_available(), torch.cuda.get_device_name(0))"

Последняя строка должна вывести True и название карты. Для GTX 900 и GTX 1000 используйте индекс cu126: в сборках под CUDA 13 этих архитектур нет. Если нужна видеокарта внутри контейнеров, поставьте nvidia-container-toolkit, а сам Docker по инструкции об установке Docker.

Если torch.cuda.is_available() возвращает False, сначала посмотрите nvidia-smi. Не работает он - проблема в драйвере, и переустановка toolkit или PyTorch не поможет. Работает - почти всегда виноват PyTorch без CUDA, поставленный без --index-url или из другого окружения.

Типичные ошибки, удаление и откат

  • NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Модуль не загрузился. Проверьте dkms status, заголовки ядра и Secure Boot.
  • Failed to initialize NVML: Driver/library version mismatch. Драйвер обновился, а в памяти старый модуль. Перезагрузитесь.
  • unsupported GNU version при сборке. GCC новее, чем поддерживает ваш toolkit. Поставьте совместимый компилятор и передайте его nvcc ключом -ccbin.
  • После обновления системы сломалось. Зафиксируйте версии: sudo apt-mark hold cuda-toolkit-13-4 nvidia-open.

Полное удаление toolkit и cuDNN из репозитория NVIDIA:

sudo apt purge "cuda-*" "cudnn9-*" "libcudnn9*"
sudo apt autoremove
sudo rm /etc/apt/sources.list.d/cuda*.list

Драйвер этими командами не удаляется, и это правильно: без него не будет графики. Если нужно вернуть драйвер из репозитория Ubuntu, удалите nvidia-open и снова выполните sudo ubuntu-drivers install.

Частые вопросы

Нужен ли CUDA Toolkit для PyTorch?

Нет. PyTorch из pip содержит свои библиотеки CUDA и cuDNN. Нужен только драйвер NVIDIA подходящей версии, для колёс cu130 это ветка 580 и новее.

Какую версию CUDA ставить в 2026 году?

Для карт Turing и новее берите текущую CUDA 13.x из репозитория NVIDIA. Для GTX 900 и GTX 1000 оставайтесь на 12.x, в CUDA 13 их поддержку убрали.

Почему nvidia-smi и nvcc показывают разные версии CUDA?

nvidia-smi показывает максимальную версию, которую поддерживает драйвер, а nvcc - версию установленного toolkit. Так и должно быть, если toolkit не новее драйвера.

Можно ли держать несколько версий CUDA?

Да. Из репозитория NVIDIA версии ставятся в отдельные папки /usr/local/cuda-X.Y, а нужная выбирается через PATH или ссылку /usr/local/cuda.

Как проверить, что CUDA установлена?

Выполните nvidia-smi для драйвера, nvcc --version для toolkit и соберите тестовую программу hello.cu. Для PyTorch проверьте torch.cuda.is_available().

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.