Chapter 5 of 81 min read

Multi-GPU Serving

เทคนิคการ deploy โมเดลขนาดใหญ่เกิน VRAM ของ GPU หนึ่งใบ

Chapter 5: Multi-GPU Serving

เทคนิคการจัดการเมื่อโมเดลมีขนาดใหญ่เกิน VRAM ของ GPU หนึ่งใบ

Tensor Parallelism

แบ่งคำนวณเลเยอร์เดียวกันในหลาย GPU:

Single Layer:
GPU 0: Matrix A (half weights)
GPU 1: Matrix B (half weights)
Result: Combine outputs

Example: Llama-70B on 8x A100 (80GB each)
- Each GPU holds ~8.75B parameters
- All GPUs compute in parallel

Pipeline Parallelism

แบ่งโมเดลตามเลเยอร์ส่งต่อกัน:

GPU 0: Layers 0-10  ->  GPU 1
GPU 1: Layers 11-20 ->  GPU 2
GPU 2: Layers 21-30 ->  GPU 3
...

Implementation with vLLM

python -m vllm.entrypoints.api_server \
    --model meta-llama/Llama-2-70b \
    --tensor-parallel-size 8 \
    --pipeline-parallel-size 1

Comparison

Method Latency Throughput Best For
Tensor Parallel Lower Higher Same-node GPUs
Pipeline Parallel Higher Medium Multi-node setups