tensor parallelism
Разбиение тензоров модели по нескольким GPU для параллельного вычисления внутри одного слоя.
Что такое tensor parallelism
Tensor parallelism (TP) — стратегия распределённого инференса (и обучения), при которой один слой модели разделяется между несколькими GPU. Каждый GPU хранит свою долю весов и обрабатывает соответствующую часть вычислений. Результаты объединяются через коллективную операцию (AllReduce) после каждого слоя.
При TP=4 каждый из 4 GPU хранит 25% весов каждого слоя. Это позволяет запускать модели, не помещающиеся целиком на одну видеокарту: 70B в BF16 требует ~140 ГБ VRAM — 2 GPU A100 80GB (160 ГБ суммарно) при TP=2.
Как работает в vLLM
# Запуск модели 70B на 2 GPU через tensor parallelism
docker run --gpus all -p 8000:8000 vllm/vllm-openai:latest \
--model meta-llama/Llama-3-70B-Instruct \
--tensor-parallel-size 2
# На 4 GPU
--tensor-parallel-size 4
TP vs pipeline parallelism
| Tensor Parallelism | Pipeline Parallelism | |
|---|---|---|
| Что делится | Веса внутри слоя | Слои между GPU |
| Коммуникация | Частая (каждый слой) | Редкая (между стадиями) |
| Латентность | Ниже | Выше (из-за стадий) |
| Требование к сети | Высокое (NVLink предпочтителен) | Умеренное |
| Применение в инференсе | ✓ Стандарт | Реже |
Для производительности TP крайне желательна высокоскоростная межсоединение — NVLink (600 GB/s) vs PCIe (64 GB/s). На PCIe-системах AllReduce становится узким местом.
Связанные термины
- pipeline parallelism — альтернативная стратегия распределения
- NVLink — быстрая шина, необходимая для эффективного TP
- vLLM — поддерживает TP через
--tensor-parallel-size - VRAM — ресурс, распределяемый при TP
Готовы запустить GPU-задачу?
Запустить GPU-сервер