Настройка Multi-GPU

Запускайте крупные модели ИИ на нескольких GPU на Clore.ai

Запускайте крупные модели ИИ на нескольких GPU на CLORE.AI.

circle-check

Когда требуется несколько GPU?

Размер модели
Вариант с одним GPU
Вариант с несколькими GPU

≤13B

RTX 3090 (Q4)

Не требуется

30B

RTX 4090 (Q4)

2x RTX 3090

70B

A100 40GB (Q4)

2x RTX 4090

70B FP16

-

2x A100 80GB

100B+

-

4x A100 80GB

405B

-

8x A100 80GB


Понятия мульти-GPU

Тензорный параллелизм (TP)

Разделение слоёв модели между GPU. Лучшее для инференса.

GPU 0: Слои 1–20
GPU 1: Слои 21–40

Плюсы: Низкая задержка, простая настройка Минусы: Требуется высокоскоростное соединение

Конвейерный параллелизм (PP)

Обработка разных батчей на разных GPU.

Плюсы: Более высокая пропускная способность Минусы: Более высокая задержка, более сложная настройка

Данные параллелизм (DP)

Одна и та же модель на нескольких GPU, разные данные.

Плюсы: Простое, линейное масштабирование Минусы: Каждому GPU нужна полная модель


Настройка LLM для нескольких GPU

vLLM (рекомендуется)

2 GPU:

4 GPU:

8 GPU (для 405B):

Ollama и мульти-GPU

Ollama автоматически использует несколько GPU, если они доступны:

Ограничить конкретными GPU:

Text Generation Inference (TGI)

llama.cpp


Генерация изображений на нескольких GPU

ComfyUI

ComfyUI может разгружать разные модели на разные GPU:

Запустить VAE на отдельном GPU:

Stable Diffusion WebUI

Включить мульти-GPU в webui-user.sh:

FLUX и мульти-GPU


Обучение на нескольких GPU

PyTorch Distributed

Запуск:

DeepSpeed

Запуск:

Accelerate (HuggingFace)

Настроить:

Kohya Training (LoRA)


Выбор GPU

Проверить доступные GPU

Выбрать конкретные GPU

Переменная окружения:

В Python:


Оптимизация производительности

Соединение
Пропускная способность
Лучше всего для

NVLink

600 GB/s

Тензорный параллелизм

PCIe 4.0

32 GB/s

Параллелизм данных

PCIe 5.0

64 GB/s

Смешанные рабочие нагрузки

Проверить статус NVLink:

Оптимальная конфигурация

GPU
Размер TP
Размер PP
Примечания

2

2

1

Простой тензорный параллелизм

4

4

1

Требует NVLink

4

2

2

Дружелюбно к PCIe

8

8

1

Полный тензорный параллелизм

8

4

2

Смешанный параллелизм

Балансировка памяти

Равномерное разделение (по умолчанию):

Пользовательское разделение (неравные GPU):


Устранение неполадок

"Ошибка NCCL"

"Недостаточно памяти на GPU X"

"Медленная работа на нескольких GPU"

  1. Проверить подключение NVLink

  2. Уменьшить размер тензорного параллелизма

  3. Использовать конвейерный параллелизм вместо этого

  4. Проверить узкое место в CPU

"GPU не обнаружены"


Оптимизация затрат

Когда стоит использовать несколько GPU

Сценарий
Один GPU
Мульти-GPU
Победитель

70B для редкого использования

A100 80GB ($0.25/ч)

2x RTX 4090 ($0.20/ч)

Мульти

70B в продакшене

A100 40GB ($0.17/ч)

2x A100 40GB ($0.34/ч)

Один (Q4)

Обучение 7B

RTX 4090 ($0.10/ч)

2x RTX 4090 ($0.20/ч)

Зависит от времени

Экономичные конфигурации

Случай использования
Конфигурация
~Стоимость/ч

70B инференс

2x RTX 3090

$0.12

70B быстрый инференс

2x A100 40GB

$0.34

70B FP16

2x A100 80GB

$0.50

Обучение 13B

2x RTX 4090

$0.20


Примеры конфигураций

70B чат-сервер

DeepSeek-V3 (671B)

Пайплайн: изображение + LLM


Дальнейшие шаги

Последнее обновление

Это было полезно?