Получили доступ к GPU-серверу — что дальше? В этой инструкции разберём установку драйверов NVIDIA, CUDA toolkit, NVIDIA Container Toolkit и запуск первого контейнера с PyTorch. Подходит для Ubuntu 22.04/24.04.

Шаг 1. Проверка оборудования

Сначала убедимся, что GPU виден системе:

lspci | grep -i nvidia
# Должны увидеть строки вроде:
# 00:10.0 3D controller: NVIDIA Corporation GH100 [H100 80GB HBM3]

Проверим, нет ли уже установленных драйверов:

nvidia-smi
# Если команда не найдена — драйверы не установлены

Шаг 2. Установка драйверов NVIDIA

# Обновляем пакеты
sudo apt update && sudo apt upgrade -y

# Устанавливаем драйвер (рекомендуемая версия для H100)
sudo apt install -y nvidia-driver-535

# Перезагружаемся
sudo reboot

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

nvidia-smi
# Должна появиться таблица с GPU, версией драйвера и CUDA

В выводе вы увидите версию CUDA, но это не установленный CUDA toolkit — это версия, совместимая с драйвером. Toolkit нужно ставить отдельно.

Шаг 3. Установка CUDA Toolkit

Для большинства ML-задач достаточно CUDA 12.1 или 12.4:

# Скачиваем и устанавливаем CUDA 12.4
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
sudo apt update
sudo apt install -y cuda-toolkit-12-4

# Добавляем в PATH
echo 'export PATH=/usr/local/cuda-12.4/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

# Проверяем
nvcc --version

Шаг 4. Установка Docker

# Устанавливаем Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# Перелогиниваемся для применения группы
exit  # и зайдите снова

Шаг 5. Установка NVIDIA Container Toolkit

# Добавляем репозиторий
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

sudo apt update
sudo apt install -y nvidia-container-toolkit

# Настраиваем Docker
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Шаг 6. Проверка GPU в Docker

# Запускаем тестовый контейнер
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi

# Должны увидеть вывод nvidia-smi внутри контейнера

Шаг 7. Запуск PyTorch с GPU

# Запускаем контейнер с PyTorch 2.4 + CUDA 12.4
docker run --rm --gpus all -it \
  --shm-size=16g \
  -v /home/user/workspace:/workspace \
  pytorch/pytorch:2.4.0-cuda12.4-cudnn9-devel \
  bash

Внутри контейнера проверяем:

python -c "import torch; print(torch.cuda.device_count()); print(torch.cuda.get_device_name(0)); print(torch.cuda.is_available())"

# Вывод:
# 8
# NVIDIA H100 80GB HBM3
# True

Шаг 8. Запуск обучения (пример)

# Внутри контейнера
pip install transformers datasets accelerate

python -c "
import torch
from transformers import AutoModelForCausalLM

model = AutoModelForCausalLM.from_pretrained(
    'meta-llama/Llama-3.1-8B',
    torch_dtype=torch.bfloat16,
    device_map='auto'
)
print(f'GPU memory: {torch.cuda.memory_allocated() / 1e9:.1f} GB')
print(f'Model loaded on {model.device}')
"

Полезные флаги Docker для ML

Типичные проблемы

CUDA out of memory

Уменьшите batch size, включите gradient checkpointing, используйте FSDP или DeepSpeed ZeRO.

nvidia-smi работает, но Docker не видит GPU

Проверьте: sudo nvidia-ctk runtime configure --runtime=docker и sudo systemctl restart docker.

Версия CUDA не совпадает

Драйвер NVIDIA поддерживает все версии CUDA ниже своей. Проверьте совместимость: nvidia-smi показывает максимальную поддерживаемую версию CUDA.

Нужна помощь с настройкой? Наши инженеры помогают с установкой ПО при аренде сервера. Тел: +7 499 350-51-54, email: support@tenzor.cloud