Memilih strategi optimasi AI untuk perangkat keras Anda

Memilih strategi optimasi yang tepat dimulai dengan mencocokkan arsitektur perangkat keras Anda dengan hambatan kinerja utama Anda. Setiap platform menerapkan batas fisik yang ketat pada throughput komputasi, bandwidth memori, dan kapasitas.
1. Trade-Off Arsitektur Perangkat Keras Target
Platform perangkat keras yang berbeda menyelesaikan perpindahan dan perkalian tensor dengan cara yang pada dasarnya berbeda.
| Kelas Perangkat Keras | Arsitektur Memori | Mesin Komputasi | Ekosistem Perangkat Lunak & Kernel | Kekuatan Utama & Batas Keras |
|---|---|---|---|---|
| GPU NVIDIA Pusat Data (H100, B200, R100) | HBM3e / HBM4 diskrit (80 GB–288 GB, 3,35–19,2 TB/s) + SRAM on-chip yang cepat. | Tensor Core (FP16, BF16, FP8, NVFP4) + unit salin asinkron TMA. | CUDA, cuDNN, Triton, TensorRT-LLM, vLLM, NCCL. | FLOPS mentah dan penskalaan multi-GPU tertinggi; mahal dan dibatasi oleh batas PCIe/NVLink. |
| GPU NVIDIA Konsumen (RTX 4090 / 5090) | GDDR6X / GDDR7 diskrit (24 GB–32 GB, ~1,0–1,8 TB/s). | Tensor Core (FP16, FP8, FP4) dengan kemampuan FP64/NVLink yang lebih rendah. | CUDA, PyTorch, Triton, llama.cpp, ExLlamaV2. | Rasio harga terhadap kinerja lokal yang tak tertandingi; sangat terhambat oleh batas VRAM 24–32 GB dan ketiadaan NVLink. |
| Apple Silicon (M3/M4 Max & Ultra) | Unified Memory (LPDDR5) yang dibagi di CPU/GPU/NPU (hingga 192–512 GB, ~400–800 GB/s). | Inti GPU + unit Simdgroup Matrix + Apple Neural Engine (ANE). | Metal (MSL), MLX, PyTorch MPS, llama.cpp. | Kapasitas RAM besar untuk memuat model masif secara lokal; bandwidth memori yang sedang membatasi kecepatan prefill prompt. |
| SoC Seluler (Snapdragon 8 Elite, Apple A18/A19) | RAM bersama LPDDR5X berdaya rendah (8 GB–16 GB, ~50–85 GB/s). | GPU seluler (Adreno/Apple) + NPU INT4/INT8 khusus (Hexagon/ANE). | Vulkan, Metal, ExecuTorch, LiteRT, MLC-LLM. | Daya sangat rendah (3–8 W); thermal throttling ketat dan batas memori aplikasi OS yang sempit sebesar 3–6 GB. |
2. Mengatasi Hambatan Spesifik & Tujuan Rekayasa
Setelah Anda mengidentifikasi perangkat keras target, setiap hambatan kinerja masuk ke salah satu dari tiga kategori rekayasa—masing-masing memerlukan panduan teknis yang berbeda.
Tujuan A: Memaksimalkan Kecepatan Pelatihan (Throughput & Penskalaan)
Pelatihan didominasi oleh penyimpanan aktivasi/gradien dan menjaga Tensor Core tetap terisi data di beberapa langkah.
- Hilangkan Overhead Python & Memori: Aktifkan torch.compile(mode="max-autotune") dan presisi campuran BF16/FP8 agar Tensor Core berjalan dengan kecepatan penuh sambil memangkas memori aktivasi hingga separuh.
- Tumpang Tindihkan Komunikasi dengan Komputasi: Di beberapa GPU, gunakan PyTorch FSDP2 atau ZeRO-3 dengan akumulasi gradien agar transfer All-Gather dan Reduce-Scatter terjadi secara asinkron di balik perkalian matriks.
- Activation Checkpointing: Jika ukuran batch besar memicu error Out-Of-Memory (OOM), buang aktivasi layer perantara selama forward pass dan hitung ulang selama backpropagation—menukar ~25% komputasi tambahan dengan ruang gerak ukuran batch yang besar.
Tujuan B: Meminimalkan Latensi Inferensi (TTFT & Token/Detik)
Inferensi terbagi menjadi Prefill (penyerapan prompt yang terbatas komputasi) dan Decode (pembuatan token yang terbatas bandwidth memori).
- Pangkas Time-To-First-Token (TTFT): Gunakan FlashAttention-2/3 dan Prefix Caching (memakai ulang blok KV cache untuk system prompt bersama) agar prompt panjang menjenuhkan Tensor Core tanpa perhitungan yang berulang.
- Percepat Pembuatan Token (TPOT): Kuantisasi bobot ke FP8 atau INT4 (AWQ/Marlin) untuk mengecilkan pembacaan HBM sebesar 2×–4×, aktifkan CUDA Graphs untuk menghilangkan jeda peluncuran kernel CPU, dan tambahkan Speculative Decoding (EAGLE/Medusa) untuk memverifikasi 3–5 token per forward pass.
- Hilangkan Interferensi Batch: Di lingkungan produksi multi-pengguna, gunakan PagedAttention dengan continuous batching—atau pisahkan Prefill dan Decode ke kolam GPU yang berbeda—agar prompt berat tidak pernah menghambat aliran token yang sedang aktif.
Tujuan C: Mengecilkan Jejak Memori (Memuat Model pada Perangkat Terbatas)
Ketika model melebihi VRAM yang tersedia atau RAM seluler, kompresi agresif dan eksekusi zero-copy menjadi keharusan.
- Kompresi Bobot Sub-Byte: Gunakan kuantisasi 4-bit (Q4_K_M atau AWQ) untuk mengecilkan model 70B dari 140 GB menjadi ~40 GB, atau model 8B dari 16 GB menjadi ~4,9 GB.
- Kompres KV Cache: Percakapan panjang sering memakai lebih banyak RAM daripada bobot model itu sendiri. Terapkan kuantisasi KV Cache FP8/INT4, Sliding Window Attention, atau arsitektur dengan Multi-Head Latent Attention (MLA) untuk memangkas memori konteks sebesar 50%–90%.
- Zero-Copy Streaming (mmap): Pada laptop dan ponsel dengan Unified Memory, petakan memori berkas model terkuantisasi langsung dari penyimpanan NVMe/UFS agar OS memuat bobot sesuai permintaan tanpa menggandakan penggunaan RAM saat startup.