# Как проверить версию CUDA и драйвера NVIDIA в Ubuntu

> Проверьте версии драйвера NVIDIA и CUDA в nvidia-smi и nvcc, узнайте, как они должны соотноситься, и добавьте CUDA Toolkit в Ubuntu 24.04 без смены драйвера.

Источник: https://fullgpu.com/ru/docs/nvidia-drivers-cuda  
Обновлено: 2026-10-22  
Издатель: FullGPU (https://fullgpu.com/)

Чтобы проверить версию драйвера NVIDIA и CUDA на GPU-сервере, нужны две команды, потому что они отвечают на разные вопросы: `nvidia-smi` сообщает версию драйвера, а `nvcc` — версию CUDA Toolkit, с которым вы компилируете код. На этой странице объясняется, что показывает каждая из них и как должны соотноситься их версии, как установить ещё один CUDA Toolkit рядом с имеющимся в Ubuntu 24.04 или 22.04 и как исправить ошибки, с которыми вы, скорее всего, столкнётесь.

## Версии драйвера и CUDA в выводе nvidia-smi

```
nvidia-smi
nvidia-smi --query-gpu=index,name,driver_version,memory.total --format=csv
cat /proc/driver/nvidia/version
```

В заголовке вывода `nvidia-smi` указаны три версии:

- **NVIDIA-SMI** — версия самой утилиты; обычно она совпадает с версией драйвера.
- **Driver Version** — версия установленного драйвера.
- **CUDA Version** — самая новая версия CUDA, которую поддерживает этот драйвер. Это не значит, что CUDA Toolkit этой версии установлен.

`/proc/driver/nvidia/version` показывает модуль ядра, который загружен на самом деле. Если его версия отличается от версии установленных пакетов драйвера, например после обновления, значит, сервер ждёт перезагрузки.

## Проверка CUDA Toolkit с помощью nvcc

```
nvcc --version
ls -d /usr/local/cuda*
```

Версию CUDA Toolkit показывает строка «Cuda compilation tools, release X.Y». `/usr/local/cuda` указывает на CUDA Toolkit по умолчанию, а другие версии находятся в `/usr/local/cuda-X.Y`. Если команда `nvcc` не найдена, добавьте CUDA Toolkit в окружение (чтобы настройка сохранилась, допишите эти строки в `~/.bashrc`):

```
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
```

Фреймворки часто не используют этот CUDA Toolkit. Wheel-пакеты PyTorch и большинство контейнеров содержат собственные библиотеки CUDA, и им нужен лишь достаточно новый драйвер, как показано в [руководстве по PyTorch и vLLM](https://fullgpu.com/ru/docs/pytorch-vllm). Проверить, что видит PyTorch, можно так:

```
python3 -c "import torch; print(torch.__version__, torch.version.cuda,
  torch.cuda.is_available())"
```

## Как сочетаются версии драйвера и CUDA Toolkit

- **Драйвер должен быть не старее кода.** Значение CUDA Version в выводе nvidia-smi должно быть не ниже версии CUDA, на которую рассчитаны ваш CUDA Toolkit, wheel-пакет или контейнер. Старые версии CUDA Toolkit работают на новых драйверах.
- **У совместимости минорных версий есть пределы.** В рамках одной мажорной версии, например 12.x, NVIDIA позволяет многим приложениям, собранным с более новой минорной версией, работать на более старом драйвере той же мажорной версии, но такие функции, как JIT-компиляция PTX, могут не работать. Прежде чем на это полагаться, проверьте.
- **Архитектура GPU задаёт минимальную версию.** GPU на архитектуре Hopper (H100, H200) работают с CUDA 12 и новее. Для GPU на архитектуре Blackwell (B200, RTX PRO 6000, RTX 5090) нужны CUDA 12.8 или новее и сборки фреймворков с поддержкой Blackwell; минимальную версию для B300 уточните в примечаниях к выпуску NVIDIA.

Простое правило: оставьте установленный драйвер и выбирайте версии CUDA Toolkit, wheel-пакеты и теги контейнеров, у которых версия CUDA не выше значения CUDA Version в nvidia-smi.

## Установка другой версии CUDA Toolkit в Ubuntu 24.04

Дополнительный CUDA Toolkit можно установить из apt-репозитория NVIDIA рядом с уже имеющимся, не заменяя драйвер. Если в `/etc/apt/sources.list.d/` уже есть запись о репозитории CUDA, пропустите шаг 1.

1. Добавьте ключ репозитория NVIDIA. В Ubuntu 22.04 замените `ubuntu2404` на `ubuntu2204`: `repo=https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64 wget $repo/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update`
2. Посмотрите, какие версии CUDA Toolkit доступны: `apt-cache search --names-only '^cuda-toolkit-[0-9]+-[0-9]+$'`
3. Установите пакет, содержащий только CUDA Toolkit нужной версии, например 12.8: `sudo apt install -y cuda-toolkit-12-8` Всегда используйте `cuda-toolkit-X-Y`. Пакеты `cuda`, `cuda-X-Y` и `cuda-drivers` устанавливают ещё и драйвер.
4. Выберите эту версию в своей командной оболочке и проверьте: `export PATH=/usr/local/cuda-12.8/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} nvcc --version` Должно отобразиться «release 12.8». Если CUDA Toolkit установлены из пакетов NVIDIA, команда `sudo update-alternatives --config cuda` меняет версию по умолчанию, на которую указывает `/usr/local/cuda`.

Когда репозиторий NVIDIA подключён, последующий `apt upgrade` может предложить более новые пакеты драйвера. Прежде чем подтверждать обновление, просмотрите список пакетов или зафиксируйте драйвер, как описано в [руководстве по образам ОС](https://fullgpu.com/ru/docs/os-images). Если другая версия CUDA нужна только одному проекту, часто проще использовать контейнер: см. [руководство по Docker-контейнерам с GPU](https://fullgpu.com/ru/docs/docker-containers).

## Включение persistence mode

Persistence mode сохраняет драйвер инициализированным, даже когда GPU не использует ни один процесс, поэтому задачи запускаются без ожидания загрузки драйвера. Проверьте текущее состояние, затем включите режим:

```
nvidia-smi --query-gpu=index,persistence_mode --format=csv
sudo nvidia-smi -pm 1
```

Для каждого GPU должно отображаться «Enabled». После перезагрузки настройка не сохраняется. Если после перезапуска режим выключен, включайте его при загрузке через crontab пользователя root: выполните `sudo crontab -e` и добавьте строку `@reboot /usr/bin/nvidia-smi -pm 1`.

## Устранение типичных ошибок

### NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver

Модуль ядра не загружен — часто после обновления ядра, для которого модуль не был собран. Соберите сведения:

```
uname -r
lsmod | grep nvidia
dkms status
sudo dmesg | grep -i -E 'nvidia|nvrm'
```

Если `dkms status` показывает модуль NVIDIA для других ядер, но не для того, которое выводит `uname -r`, установите соответствующие заголовочные файлы ядра, пересоберите модуль и перезагрузите сервер:

```
sudo apt install -y linux-headers-$(uname -r)
sudo dkms autoinstall
sudo reboot
```

Если `dkms` не установлен, драйвер использует заранее собранные модули: создайте в личном кабинете [тикет в поддержку](https://fullgpu.com/ru/help/getting-support) и приложите вывод команд выше.

### Failed to initialize NVML: Driver/library version mismatch

Пакеты драйвера обновились, пока был загружен старый модуль. Выполните `sudo reboot`. После перезагрузки nvidia-smi и `/proc/driver/nvidia/version` должны показывать одну и ту же версию. Фиксация пакетов драйвера предотвращает эту ошибку.

### CUDA error 802, system not yet initialized

На 8-GPU-серверах HGX, прежде чем CUDA сможет использовать фабрику NVSwitch, должен быть запущен NVIDIA Fabric Manager точно той же версии, что и драйвер. Проверьте `systemctl status nvidia-fabricmanager`, перезапустите службу командой `sudo systemctl restart nvidia-fabricmanager`, а если она не запускается, создайте тикет в личном кабинете.

### CUDA driver version is insufficient for CUDA runtime version

Программа, wheel-пакет или контейнер собраны под более новую версию CUDA, чем поддерживает драйвер. Используйте сборку под более старую версию CUDA или создайте в личном кабинете тикет об обновлении драйвера. Об аппаратных ошибках (сообщения Xid в `dmesg`) читайте в [руководстве по мониторингу GPU](https://fullgpu.com/ru/docs/gpu-monitoring).

## Часто задаваемые вопросы

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

nvidia-smi показывает самую новую версию CUDA, которую поддерживает драйвер, а nvcc — версию CUDA Toolkit, с которым вы компилируете код. Если CUDA Toolkit старее, чем CUDA Version драйвера, это нормально и всё работает.

### Нужен ли CUDA Toolkit, чтобы запускать PyTorch?

Нет. Wheel-пакеты PyTorch и большинство контейнеров содержат собственные библиотеки CUDA, и им нужен лишь достаточно свежий драйвер. CUDA Toolkit понадобится, если вы сами компилируете код на CUDA.

### Можно ли самостоятельно обновить драйвер NVIDIA?

Да, у вас полный root-доступ. Запланируйте перезагрузку, на 8-GPU-серверах HGX держите Fabric Manager той же версии, что и драйвер, а если нужен совет, сначала создайте тикет в личном кабинете.

## Связанные страницы

- [Образ Ubuntu для GPU с предустановленной CUDA](https://fullgpu.com/ru/docs/os-images): Состав нашего образа Ubuntu для GPU с предустановленной CUDA, проверка версий драйвера и CUDA Toolkit, выбор 22.04 или 24.04 и надёжная фиксация драйвера.
- [Контейнеры Docker с GPU и NVIDIA Container Toolkit](https://fullgpu.com/ru/docs/docker-containers): Руководство по GPU в Docker с NVIDIA Container Toolkit: --gpus, выбор устройств, резервирование GPU в Compose, разделяемая память для PyTorch и контейнеры ROCm.
- [Инференс LLM на vLLM](https://fullgpu.com/ru/docs/pytorch-vllm): Инференс LLM с vLLM на вашем GPU-сервере: настройте Python через uv, установите PyTorch и vLLM, проверьте OpenAI-совместимый API и запустите его как службу.
- [Глоссарий по GPU и инфраструктуре для ИИ](https://fullgpu.com/ru/glossary): Глоссарий GPU и ИИ-инфраструктуры: понятные определения без привязки к производителям — от HBM3e и NVLink до FSDP, KV-кэша и FP8. Найдите нужный термин.
