GPU
Arsitektur GPU (Graphics Processing Unit) adalah desain dan organisasi komponen perangkat keras yang memungkinkan GPU menangani pemrosesan data paralel secara efisien, terutama untuk tugas grafis, komputasi intensif, dan pembelajaran mesin. Berikut adalah penjelasan rinci tentang arsitektur GPU secara umum, dengan fokus pada komponen utama dan cara kerjanya:
1. Gambaran Umum Arsitektur GPU
GPU dirancang untuk menangani banyak tugas secara paralel, berbeda dengan CPU yang lebih dioptimalkan untuk pemrosesan sekuensial. Arsitektur GPU biasanya terdiri dari ribuan inti pemrosesan (core) kecil yang bekerja secara bersamaan untuk menangani operasi matematis sederhana dalam jumlah besar. Arsitektur ini sangat cocok untuk tugas seperti rendering grafis 3D, simulasi fisika, dan pelatihan model AI.
GPU modern, seperti yang dikembangkan oleh NVIDIA (misalnya, arsitektur Ampere, Ada Lovelace) atau AMD (misalnya, RDNA), memiliki elemen-elemen utama berikut:
2. Komponen Utama Arsitektur GPU
a. Streaming Multiprocessors (SM) / Compute Units
- Fungsi: Ini adalah unit pemrosesan utama dalam GPU. Setiap SM berisi banyak inti pemrosesan (biasanya disebut CUDA cores pada NVIDIA atau Stream Processors pada AMD), unit pengambilan instruksi, scheduler, dan register.
- Paralelisme: SM menjalankan ratusan atau ribuan thread secara paralel. Thread dikelompokkan dalam *warps* (NVIDIA) atau *wavefronts* (AMD), di mana setiap kelompok menjalankan instruksi yang sama pada data yang berbeda (SIMD: Single Instruction, Multiple Data).
- Contoh: Dalam arsitektur NVIDIA Ampere, setiap SM dapat memiliki hingga 128 CUDA cores, sedangkan pada AMD RDNA 3, Compute Units memiliki Stream Processors yang serupa.
b. Inti Pemrosesan (Cores)
- CUDA Cores (NVIDIA) / Stream Processors (AMD): Ini adalah unit komputasi dasar dalam SM. Masing-masing inti menangani operasi aritmatika sederhana seperti penjumlahan, perkalian, atau operasi floating-point.
- Kuantitas: GPU modern memiliki ribuan inti (misalnya, NVIDIA RTX 4090 memiliki lebih dari 16.000 CUDA cores), memungkinkan pemrosesan paralel masif.
- Spesialisasi: Beberapa inti dioptimalkan untuk operasi tertentu, seperti operasi floating-point (FP32, FP16) atau integer.
c. Memori GPU
GPU memiliki hierarki memori yang dirancang untuk kecepatan dan efisiensi:
- Global Memory (VRAM): Memori utama GPU (biasanya GDDR6 atau HBM) yang menyimpan data tekstur, frame buffer, dan data komputasi. Kapasitasnya bervariasi, misalnya 8 GB hingga 24 GB pada GPU konsumen.
- Shared Memory / Cache: Memori cepat di dalam SM yang digunakan untuk berbagi data antar thread dalam satu blok. Ini jauh lebih cepat daripada global memory.
- Registers: Memori kecil dan sangat cepat di setiap inti untuk menyimpan data sementara selama pemrosesan.
- L1/L2 Cache: Cache tingkat pertama (L1) ada di setiap SM, sedangkan cache L2 dibagi di seluruh GPU untuk menyimpan data yang sering diakses.
d. Memory Controller
- Mengelola aliran data antara GPU dan VRAM. Lebar bus memori (misalnya, 256-bit atau 384-bit) dan kecepatan memori (misalnya, 21 Gbps pada GDDR6X) menentukan bandwidth memori, yang sangat penting untuk performa.
- Contoh: GPU high-end seperti NVIDIA RTX 4090 memiliki bandwidth hingga 1 TB/s berkat memori GDDR6X dan bus lebar.
e. Unit Khusus
- Tensor Cores (NVIDIA): Dirancang untuk mempercepat operasi matriks, terutama untuk pembelajaran mesin dan AI (misalnya, operasi FP16 atau INT8). Tensor Cores sangat penting untuk teknologi seperti DLSS (Deep Learning Super Sampling).
- Ray Tracing Cores (NVIDIA) / Ray Accelerators (AMD): Unit khusus untuk mempercepat perhitungan ray tracing, yang digunakan untuk rendering grafis realistis dengan simulasi cahaya dan bayangan.
- Texture Units: Menangani pemrosesan tekstur seperti filtering dan mapping, penting untuk rendering grafis.
- Raster Operation Units (ROPs): Mengelola tahap akhir rendering, seperti menggabungkan piksel ke dalam frame buffer.
f. Interkoneksi dan Scheduler
- Thread Scheduler: Mengatur eksekusi ribuan thread di SM. Scheduler memastikan bahwa thread dijalankan secara efisien tanpa konflik.
- Interconnect Fabric: Menghubungkan SM, memori, dan unit lain untuk transfer data cepat di dalam chip.
3. Alur Kerja Arsitektur GPU
- Input Data: Data (misalnya, geometri 3D, tekstur, atau data pelatihan AI) dikirim dari CPU ke GPU melalui antarmuka seperti PCIe.
- Pemrosesan Paralel: Data dibagi menjadi ribuan tugas kecil dan didistribusikan ke SM. Setiap SM memproses tugas secara paralel menggunakan inti-intinya.
- Manajemen Memori: Data diambil dari VRAM atau cache, diproses, dan disimpan kembali. Shared memory dan cache mengurangi latensi.
- Output: Hasil pemrosesan (misalnya, frame yang dirender atau hasil komputasi) dikirim kembali ke CPU atau ditampilkan ke layar.
4. Perbandingan dengan CPU
- CPU: Memiliki sedikit inti (4-16 pada CPU modern) yang dioptimalkan untuk tugas sekuensial dan kompleks dengan latensi rendah.
- GPU: Memiliki ribuan inti kecil yang dioptimalkan untuk tugas paralel sederhana dengan throughput tinggi.
- Kegunaan: GPU unggul dalam tugas seperti rendering grafis, simulasi fisika, dan pelatihan AI, sedangkan CPU lebih baik untuk tugas seperti manajemen sistem atau logika aplikasi.
5. Contoh Arsitektur Modern
- NVIDIA Ampere (2020): Digunakan pada seri RTX 30, memiliki Tensor Cores generasi ketiga, Ray Tracing Cores generasi kedua, dan peningkatan efisiensi daya.
- NVIDIA Ada Lovelace (2022): Digunakan pada seri RTX 40, menawarkan lebih banyak CUDA cores, Tensor Cores generasi keempat, dan DLSS 3 untuk rendering berbasis AI.
- AMD RDNA 3 (2022): Digunakan pada seri RX 7000, fokus pada efisiensi daya, Ray Accelerators, dan arsitektur chiplet untuk skalabilitas.
6. Tantangan dan Pertimbangan Desain
- Konsumsi Daya: GPU modern membutuhkan daya besar (misalnya, 300-450W untuk GPU high-end), sehingga efisiensi energi menjadi fokus utama.
- Panas: Pemrosesan paralel menghasilkan panas yang signifikan, memerlukan solusi pendingin canggih seperti pendingin cair atau kipas besar.
- Latensi vs Throughput: GPU mengorbankan latensi untuk throughput tinggi, sehingga kurang cocok untuk tugas yang membutuhkan respons cepat tanpa paralelisme.