Tensor Parallelism (TP): Megatron-LM Style
I3 — Distributed Serving & Parallelism Strategies
Membagi Matriks Layer ke Beberapa GPU Secara Simultan
Tensor Parallelism (TP) membagi operasi perkalian matriks dalam satu layer Transformer yang sama ke beberapa GPU yang bekerja berdampingan.
Input X ────┬────> [GPU 0: Bobot W1_left] ────> Y1 ────┐
│ ├──> [All-Reduce Sum] ──> Output Y
└────> [GPU 1: Bobot W1_right] ────> Y2 ────┘
1. Column-Parallel vs Row-Parallel
- Column-Parallel (Lapisan Pertama MLP / Proyeksi QKV): Matriks bobot dipecah vertikal. Input disalin ke semua GPU, masing-masing GPU menghasilkan sebagian kolom output.
- Row-Parallel (Lapisan Kedua MLP / Proyeksi Output Atensi): Matriks bobot dipecah horizontal. Masing-masing GPU mengalikan parsial baris, lalu hasilnya dijumlahkan menggunakan komunikasi All-Reduce.
2. Syarat Mutlak Interconnect: NVLink
Komunikasi All-Reduce terjadi 2 kali pada setiap Transformer block. Jika model memiliki 80 layer, ada 160 kali sinkronisasi All-Reduce untuk menghasilkan 1 token!
- Oleh karena itu, Tensor Parallelism hanya efektif jika GPU terhubung via NVLink berkecapatan tinggi (600–900 GB/s) di dalam 1 node fisik yang sama.
- Menjalankan TP lewat kabel PCIe standar (64 GB/s) atau jaringan Ethernet antar-server akan melumpuhkan performa karena bottleneck latensi komunikasi!
I3