Bottleneck Utama: Memory Bandwidth vs Compute FLOPS
I0 — Fondasi Hardware & Komputasi GPU untuk LLM
Mengapa LLM Decoding Terbatas oleh Bandwidth Memori?
Banyak engineer mengira bahwa performa inferensi LLM hanya ditentukan oleh seberapa besar TFLOPS (Trillion Floating-point Operations per Second) dari chip GPU. Ini adalah kesalahpahaman fatal di dunia produksi.
1. Dua Fase Inferensi LLM: Prefill vs Decode
Fase 1: Prefill (Prompt Processing) --> Compute-Bound (Matrix-Matrix GEMM)
Fase 2: Decode (Token Generation) --> Memory-Bandwidth Bound (Matrix-Vector GEMV)
- Fase Prefill (Memproses Input Prompt):
- Seluruh token prompt dihitung secara bersamaan ( token token).
- Menghasilkan operasi perkalian matriks besar (GEMM: General Matrix Multiply).
- GPU compute core terutilisasi 100% Compute-Bound.
- Fase Decode (Menghasilkan Token Satu per Satu):
- Menghasilkan 1 token baru per langkah secara autoregresif.
- Untuk setiap 1 token yang dihasilkan, GPU wajib membaca seluruh bobot model puluhan Gigabyte dari VRAM ke chip compute!
- Menghasilkan operasi matriks-vektor (GEMV: General Matrix-Vector).
- Chip komputasi super cepat hanya bekerja beberapa microsecond lalu menganggur menunggu aliran data dari VRAM Memory-Bandwidth Bound.
2. Arithmetic Intensity & The Roofline Model
- Jika Arithmetic Intensity rendah (seperti pada decoding LLM): Kecepatan dibatasi oleh Memory Bandwidth (GB/s atau TB/s).
- Jika Arithmetic Intensity tinggi (seperti pada training atau prefill): Kecepatan dibatasi oleh Peak Compute (TFLOPS).
Kasus Nyata di Lapangan
Inilah mengapa perangkat monster yang memiliki chip komputasi buas tetapi memory bandwidth sempit (misalnya DGX generasi tertentu dengan bandwidth 273 GB/s) sering menuai kritik saat digunakan untuk serving model besar. Sebaliknya, GPU H100 dengan HBM3 3.35 TB/s mampu melesat cepat karena pipa transfer memorinya 12x lebih lebar!
3. Fenomena Concurrency: 1 User vs 8 User
Mengapa server inferensi sering kali dapat melayani concurrency 4–8 pengguna dengan kecepatan token per detik (tok/s) per pengguna yang hampir tidak berkurang?
- Karena saat melayani 1 user, chip komputasi GPU sebagian besar waktu dalam kondisi menganggur (idle) menunggu bobot dibaca dari VRAM.
- Ketika 4–8 request digabungkan dalam satu batch, bobot model yang dibaca dari VRAM dapat digunakan untuk menghitung 8 token sekaligus, sehingga kapasitas komputasi GPU yang sebelumnya menganggur terutilisasi optimal tanpa menambah beban transfer bobot model!
I0