Новинка NVIDIA B300 · серверы 288 ГБ HBM3e — от 4 019 $/мес. за GPU

Посмотреть B300

Документация · NVIDIA

Драйверы NVIDIA, CUDA и Fabric Manager в Ubuntu

Установите драйвер из репозитория NVIDIA, добавьте CUDA toolkit только если компилируете код, и настройте NVSwitch на серверах HGX с 8 GPU. Команды рассчитаны на Ubuntu 22.04 или 24.04 LTS.

Обновлено 9 мин чтения

Проверьте, что уже установлено

Узнайте, установлен ли уже драйвер и откуда он взят:

lspci -d 10de: | grep -Ei '3d controller|vga compatible'   # GPU на шине PCI
nvidia-smi                                  # завершается с ошибкой, если драйвер не загружен
cat /proc/driver/nvidia/version             # версия загруженного модуля ядра
dpkg -l | grep -Ei 'nvidia|cuda' | awk '{print $2, $3}'   # установленные пакеты
mokutil --sb-state                          # включён ли Secure Boot?

В верхней части вывода nvidia-smi показаны версия драйвера и CUDA Version. Это второе число означает лишь то, какой самый новый релиз CUDA способен запустить драйвер, а не то, что соответствующий toolkit установлен в системе.

Если рабочий драйвер уже установлен и подходит для вашего стека, оставьте его как есть. Если вы всё же заменяете его, сначала удалите старые пакеты и устанавливайте новую версию из одного источника: смешивание пакетов Ubuntu, репозитория NVIDIA и установщиков .run — частая причина неработоспособных настроек GPU.

Установите драйвер

Репозиторий CUDA от NVIDIA предоставляет драйвер как для GPU для дата-центров, так и для карт GeForce. Устанавливайте его с открытыми модулями ядра (nvidia-open): на Blackwell (B300, B200, RTX PRO 6000, RTX 5090, RTX 5080) NVIDIA поддерживает только открытые модули, а для Hopper и Ada Lovelace их рекомендует.

sudo apt update
sudo apt install -y linux-headers-$(uname -r)

# зарегистрировать CUDA-репозиторий NVIDIA (x86_64; для серверов Arm64 используется sbsa)
distro=$(. /etc/os-release; echo "ubuntu${VERSION_ID//./}")   # ubuntu2204 или ubuntu2404
wget https://developer.download.nvidia.com/compute/cuda/repos/$distro/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 -V nvidia-driver-pinning-<branch>

sudo apt install -V nvidia-open
sudo reboot

<branch> — это номер ветки драйвера, указанный на странице NVIDIA о закреплении версий. Эта привязка не даёт apt upgrade переключить вас на новую ветку в середине проекта. Начиная с ветки 590, в названиях пакетов Ubuntu номер ветки больше не указывается, поэтому оставаться на одной ветке позволяет именно пакет для закрепления версии. После перезагрузки nvidia-smi должен показать все GPU.

Альтернатива: собственные пакеты Ubuntu

Ubuntu поставляет те же драйверы в виде пакетов с предварительно скомпилированными и подписанными модулями ядра. Выбирайте этот способ, если включён Secure Boot: модуль, собранный локально через DKMS, не подписан ключом, которому доверяет прошивка, а для регистрации такого ключа нужен доступ к консоли загрузки.

sudo ubuntu-drivers list --gpgpu                 # драйверы, подходящие для этих GPU
sudo ubuntu-drivers install --gpgpu              # установить рекомендуемый
sudo apt install nvidia-utils-<branch>-server    # nvidia-smi для этой ветки
sudo reboot

На GPU Blackwell убедитесь, что выбранный драйвер — это вариант -open. Используйте только один источник, никогда оба одновременно. Подробнее: документация Ubuntu Server и руководство NVIDIA по установке драйверов.

Добавьте CUDA toolkit, если компилируете код

Пакеты PyTorch, vLLM и контейнеры NGC несут собственные библиотеки CUDA; хосту нужен лишь достаточно новый для них драйвер. Устанавливайте toolkit, если сами компилируете код CUDA: nvcc, собственные CUDA-кернелы, nccl-tests или Python-пакеты, которые собирают CUDA-расширения.

sudo apt install -V cuda-toolkit                # последний релиз CUDA в репозитории
# или конкретный релиз: sudo apt install -V cuda-toolkit-<major>-<minor>
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
nvcc --version

Для каждого релиза CUDA нужен минимальный драйвер; например, CUDA 13.x требует драйвер серии 580 или новее. Заметки о выпуске CUDA содержат это требование для каждой версии.

Режим резидентности

Без резидентного режима драйвер сбрасывает состояние GPU после завершения последнего процесса и заново инициализирует его для следующего, что замедляет запуск каждой короткой задачи. На сервере держите этот режим включённым:

nvidia-smi --query-gpu=index,persistence_mode --format=csv
sudo systemctl enable --now nvidia-persistenced
sudo nvidia-smi -pm 1

NVIDIA рекомендует демон резидентности (nvidia-persistenced) вместо более старой настройки на уровне самого драйвера, а nvidia-smi -pm 1 обращается именно к этому демону, когда он запущен. Если после перезагрузки запрос снова показывает Disabled, выполните systemctl cat nvidia-persistenced: некоторые пакеты запускают демон с флагом --no-persistence-mode. Переопределите это с помощью sudo systemctl edit nvidia-persistenced (пустая строка ExecStart=, затем исходная команда без этого флага) и перезапустите службу.

Серверы HGX: Fabric Manager и NVLink

На платах HGX с 8 GPU (H100, H200, B200, B300) GPU обмениваются данными друг с другом через чипы NVSwitch, которые настраивает NVIDIA Fabric Manager. Без него nvidia-smi всё равно покажет все GPU, но программы CUDA будут завершаться при запуске с ошибкой 802, «system not yet initialized» (cudaErrorSystemNotReady).

Версия Fabric Manager должна точно совпадать с версией драйвера. Устанавливайте его из того же репозитория, держите обе версии на одной ветке и обновляйте их вместе.

cat /proc/driver/nvidia/version                               # версия драйвера
apt-cache search --names-only 'fabricmanager|nvlsm|nvlink5'   # что предлагает ваш репозиторий
  • Репозиторий NVIDIA, ветка 590 и новее (имена пакетов без номера ветки — на нужной ветке вас удерживает пакет для закрепления версии): sudo apt install -V nvidia-fabricmanager
  • Репозиторий NVIDIA, более ранние ветки: sudo apt install -V cuda-drivers-fabricmanager-<branch>
  • Пакеты Ubuntu: sudo apt install nvidia-fabricmanager-<branch> libnvidia-nscq-<branch>

HGX B200 и B300 используют NVSwitch четвёртого поколения и дополнительно требуют NVLink Subnet Manager (nvlsm), libibumad3, infiniband-diags и модуль ядра ib_umad; при использовании пакетов с номером ветки nvlink5-<branch> устанавливает Fabric Manager и NVLSM вместе. Руководство по Fabric Manager перечисляет точные пакеты для каждого поколения.

# только для HGX B200 / B300
sudo apt install -V nvlsm libibumad3 infiniband-diags
sudo modprobe ib_umad
echo ib_umad | sudo tee /etc/modules-load.d/ib_umad.conf

# для любой платы HGX
sudo systemctl enable --now nvidia-fabricmanager
systemctl status nvidia-fabricmanager --no-pager
dpkg -l | grep -i fabricmanager                  # та же версия, что у драйвера?
nvidia-smi -q -i 0 | grep -i -A 2 fabric         # ожидается State: Completed, Status: Success

Проверка NVLink

nvidia-smi topo -m     # на плате HGX каждая пара GPU показывает NV# (NV18 на HGX H100)
nvidia-smi nvlink -s   # статус и скорость каждого соединения
nvidia-smi nvlink -e   # счётчики ошибок по каждому соединению

Значение вроде PIX, PXB, NODE или SYS между двумя GPU на плате HGX означает, что эта пара не использует NVLink. Чтобы измерить пропускную способность, запустите nccl-tests, как описано в разделе Multi-GPU.

MIG: разделение GPU на инстансы

Multi-Instance GPU (MIG) разделяет один GPU на изолированные инстансы, каждый со своей памятью и вычислительными ресурсами — например, чтобы запускать несколько небольших моделей параллельно. В линейке CryptGPU:

GPUMIG
H100, H200, B200, B300Да, до 7 инстансов на GPU
RTX PRO 6000 BlackwellДа, до 4 инстансов на GPU
L40S, RTX 5090, RTX 4090, RTX 5080Нет
AMD Instinct MI355XНет; AMD использует собственное разделение вычислительных ресурсов (см. ROCm на MI355X)
sudo nvidia-smi -i 0 -mig 1                  # режим MIG на GPU 0 (сначала остановите его задачи)
nvidia-smi mig -i 0 -lgip                    # профили инстансов этого GPU, с их ID
sudo nvidia-smi mig -i 0 -cgi <id>,<id> -C   # создать GPU-инстансы и их вычислительные инстансы
nvidia-smi -L                                # устройства MIG и их UUID

sudo nvidia-smi mig -i 0 -dci && sudo nvidia-smi mig -i 0 -dgi   # удалить инстансы
sudo nvidia-smi -i 0 -mig 0                  # вернуться к одному целому GPU

Чтобы направить процесс на конкретный инстанс, используйте CUDA_VISIBLE_DEVICES=MIG-<uuid>. На Hopper и Blackwell режим MIG и его инстансы не сохраняются после перезагрузки; создавайте их заново при загрузке — например, с помощью mig-parted от NVIDIA. Руководство пользователя MIG перечисляет все профили.

Частые ошибки и их устранение

«NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver»

Модуль ядра не загружен. Обычные причины — новое ядро без соответствующих заголовочных файлов, из-за чего DKMS не смог собрать модуль, либо Secure Boot, отклоняющий неподписанный модуль.

lsmod | grep nvidia
dkms status
sudo dmesg | grep -iE 'nvidia|nvrm' | tail -n 20
mokutil --sb-state
sudo apt install -y linux-headers-$(uname -r) && sudo dkms autoinstall && sudo reboot

«Failed to initialize NVML: Driver/library version mismatch»

Пакеты драйвера были обновлены, а старый модуль ядра остался загруженным. Перезагрузите систему. Чтобы избежать этого во время работы, закрепите ветку драйвера и обновляйте её только между задачами.

«CUDA driver version is insufficient for CUDA runtime version»

Программа или контейнер собраны для более нового релиза CUDA, чем поддерживает ваш драйвер (сравните с CUDA Version, которую показывает nvidia-smi). Обновите драйвер либо используйте сборку для более старого релиза CUDA.

Ошибка 802 на сервере HGX

Fabric Manager не запущен, завершился с ошибкой при старте либо его версия не совпадает с версией драйвера. Проверьте systemctl status nvidia-fabricmanager и sudo journalctl -u nvidia-fabricmanager.

Ошибки Xid

Драйвер записывает сбои GPU в журнал ядра в виде строк NVRM: Xid:

sudo dmesg -T | grep -i xid
XidЗначениеЧто делать
13, 31Исключение графического движка; сбой доступа к странице памяти GPUОбычно ошибка приложения, например обращение за пределы выделенной области памяти. Перезапустите и отладьте приложение.
43GPU остановил обработкуЧасто следует за другим сбоем; посмотрите строки Xid непосредственно перед этой.
48, 94, 95Ошибка ECC-памяти: двухбитовая, локализованная, нелокализованная94: перезапустите приложение. 48 и 95: перезагрузите сервер.
63, 64Событие переназначения строки памяти; ошибка переназначения63 — информационное сообщение. 64: перезагрузите сервер и проверьте снова.
74Ошибка NVLinkПроверьте nvidia-smi nvlink -s и -e; перезагрузите сервер, если соединения остаются недоступны.
79GPU «отвалился» от шиныПерезагрузите сервер.
119, 120Таймаут или ошибка прошивки GSPПерезагрузите сервер; если повторится — обновите драйвер.

Если Xid аппаратного типа (48, 64, 74, 79 или 95) повторяется после перезагрузки, выполните sudo nvidia-bug-report.sh и отправьте строки Xid через форму обратной связи. Каталог Xid от NVIDIA объясняет каждый код.

Нужна помощь с этим руководством?

Расскажите нам о своём GPU, командах, которые вы выполнили, и результате, который получили, через форму обратной связи.

Личный кабинет

Войти в CryptGPU

Ваши заказы, счета и серверы в одном месте.

Новичок в CryptGPU?

Аккаунты создаются при оформлении заказа: выберите сервер и программное обеспечение, затем создайте аккаунт на шаге Аккаунт первого заказа.

Запустить сервер