Получили доступ к 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
--gpus all— доступ ко всем GPU--gpus '"device=0,1"'— только конкретные GPU--shm-size=16g— разделяемая память (важно для DataLoader)--ipc=host— IPC для многопроцессного даталоадинга--network=host— для распределённого обучения-v /path:/workspace— монтирование директории с данными--name train— имя контейнера для удобства
Типичные проблемы
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