Налаштування GPU-кластера для навчання моделей (NVIDIA, A100, H100)

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Налаштування GPU-кластера для навчання моделей (NVIDIA, A100, H100)
Складний
~5 днів
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Налаштування GPU-кластера для навчання моделей (NVIDIA A100, H100)

Правильно налаштований GPU-кластер – це не просто набір серверів із відеокартами. Це узгоджена система: мережа з мінімальною latency між вузлами, правильно налаштовані драйвери та CUDA, оптимізоване сховище для датасетів, оркестратор для управління завданнями навчання та моніторинг утилізації дорогого заліза.

Вибір обладнання

NVIDIA A100 (40GB / 80GB SXM) - основний workhorse для навчання великих моделей. SXM-версія з NVLink забезпечує 600 GB/s GPU-to-GPU bandwidth всередині сервера, що критично для tensor parallelism.

NVIDIA H100 (80GB SXM5) - наступне покоління. FP8 training, 3.35TB/s HBM3 bandwidth, 900 GB/s NVLink 4.0. Приблизно в 2-3x швидше за A100 для transformer-навчання.

Interconnect: InfiniBand HDR/NDR (200-400 Gbps) між вузлами - обов'язковий для ефективного multi-node training. Ethernet 100 GbE - допустимо, але зі значним зниженням scaling efficiency.

Storage: Parallel file system (GPFS, Lustre, WekaFS) або NVMe over Fabrics. Випадковий вузький IO сховища — найчастіша причина GPU underutilization.

Встановлення драйверів та CUDA

# Ubuntu 22.04
# 1. NVIDIA driver
apt install linux-headers-$(uname -r)
apt install nvidia-driver-535  # или последний production driver

# 2. CUDA Toolkit (лучше через runfile, не apt)
wget https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run
sh cuda_12.3.0_545.23.06_linux.run --silent --toolkit

# 3. cuDNN
tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda12-archive.tar.xz
cp cuda/include/cudnn*.h /usr/local/cuda/include
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
ldconfig

# 4. Проверка
nvidia-smi
nvcc --version
python -c "import torch; print(torch.cuda.device_count())"

Налаштування NCCL та тестування interconnect

# Установка NCCL
apt install libnccl2 libnccl-dev

# Тест bandwidth между GPU внутри узла
git clone https://github.com/NVIDIA/nccl-tests
cd nccl-tests && make
./build/all_reduce_perf -b 1G -e 4G -f 2 -g 8

# Ожидаемые результаты на 8x A100 SXM с NVLink:
# 1GB: ~280 GB/s (algbw)
# 4GB: ~300 GB/s (algbw)

Оркестрація з Kubernetes + NVIDIA GPU Operator

GPU Operator автоматизує встановлення драйверів, container toolkit, device plugin:

# Установка через Helm
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia
helm install gpu-operator nvidia/gpu-operator \
  --namespace gpu-operator \
  --create-namespace \
  --set driver.enabled=true \
  --set toolkit.enabled=true

MIG (Multi-Instance GPU) для A100/H100 — розбивка одного GPU на ізольовані інстанси для ефективного використання при small batch інференсі:

nvidia-smi mig -lgip  # Список профилей
nvidia-smi mig -cgi 9,9,9,9,9,9,9  # 7x MIG 1g.10gb на A100 80GB

Налаштування планувальника завдань

Slurm — стандарт HPC, добре підходить для batch-навчання:

# sbatch job для обучения
#!/bin/bash
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=8
#SBATCH --gres=gpu:8
#SBATCH --partition=a100
#SBATCH --time=48:00:00

srun python train.py \
  --nproc_per_node=8 \
  --nnodes=4

Volcano — Kubernetes-scheduler для ML workloads з підтримкою gang scheduling (усі GPU-поди запускаються одночасно або жоден):

Моніторинг GPU-кластера

# DCGM Exporter для Prometheus
helm install dcgm-exporter nvidia/dcgm-exporter

# Ключевые метрики:
# DCGM_FI_DEV_GPU_UTIL — утилизация GPU (целевой показатель > 85%)
# DCGM_FI_DEV_MEM_COPY_UTIL — PCIe bandwidth utilization
# DCGM_FI_DEV_NVLINK_BANDWIDTH_TOTAL — NVLink throughput
# DCGM_FI_DEV_POWER_USAGE — потребляемая мощность
# DCGM_FI_DEV_SM_CLOCK — текущая частота

Типовий результат налаштування

На 4-вузловому кластері 8x A100 (32 GPU сумарно) при правильному налаштуванні InfiniBand і NCCL досягається scaling efficiency 85-90% для LLM навчання: навчання, яке на 4 GPU займає 40 годин, на 32 GPU займає ~5.5-6 годин, а не.