Inference

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-сервер