- GPU 10–100 kali lebih kuat daripada CPU, tetapi kesulitan menangani beban kerja dinamis dan kekurangan alat pemrograman paralel, sehingga belum mampu memanfaatkan performanya secara penuh pada tugas umum
- Di masa lalu ada desain komputer paralel seperti Connection Machine, Cell, dan Larrabee, tetapi gagal karena kompleksitas model pemrograman dan alasan lainnya
- GPU modern sulit dioptimalkan karena masalah manajemen memori dan model eksekusi yang rumit, sehingga dibutuhkan struktur pengiriman data yang efisien berbasis antrean
- Akselerator AI dan kumpulan core paralel adalah arsitektur baru yang berpotensi mengatasi keterbatasan GPU
- Perkembangan komputer paralel masih belum selesai, dan dibutuhkan model eksekusi yang sederhana dan efisien serta perbaikan pada alat pemrograman
Performa GPU yang Kuat dan Keterbatasannya
- GPU sekitar 10–100 kali lebih kuat daripada CPU (tergantung jenis tugasnya)
- Performa ini dimanfaatkan dengan baik dalam rendering grafis real-time dan machine learning
- Namun, performa GPU belum dimanfaatkan secara memadai untuk tugas umum
Penyebab Keterbatasan GPU
- Model eksekusi yang lemah
- GPU kuat untuk data besar yang dapat diprediksi (misalnya perkalian matriks padat), tetapi performanya turun pada beban kerja dinamis
- Bahasa dan alat yang kurang memadai
- Pemrograman komputer paralel itu sendiri sangat sulit
Meningkatnya Kompleksitas
- GPU terbaru mengalami peningkatan kompleksitas yang cepat
- Fitur baru seperti mesh shaders dan work graphs telah diperkenalkan, tetapi beberapa tugas dasar masih belum didukung
Masalah Efisiensi Memori GPU yang Rumit
- Penulis sedang mengembangkan renderer grafis vektor 2D tingkat lanjut bernama Vello
- CPU mengunggah deskripsi scene (format SVG) → compute shader memprosesnya lalu menghasilkan gambar
- Masalah: sulitnya manajemen memori
- Sulit memprediksi ukuran buffer untuk menyimpan hasil perantara
- Jika buffer melampaui kapasitas, operasi baca dari GPU ke CPU menyebabkan penurunan performa
Solusi yang Diusulkan
- Memperbaiki agar hasil dikirim melalui queue di dalam GPU
- Model yang diusulkan dalam makalah GRAMPS tahun 2009
- Pendekatan serupa juga dicoba dalam proyek Brook
Desain Komputer Paralel di Masa Lalu
-
Connection Machine (1985)
- Komputer paralel dengan 64k prosesor yang terhubung lewat jaringan hypercube
- Masing-masing prosesor berperforma rendah, tetapi memungkinkan kerja paralel skala besar
- Memberi kontribusi besar pada riset algoritma paralel
-
Cell (2006, PS3)
- Komputer paralel yang disertakan dalam PS3 (sekitar 87,4 juta unit dikirim)
- 8 core paralel dapat menjalankan komputasi secara independen
- Penyebab kegagalan: kompleksitas model pemrograman
-
Larrabee (2008)
- Dikembangkan sebagai komputer paralel berbasis x86
- Alasan kegagalan: konsumsi daya dan kurangnya dukungan perangkat lunak
- Kemudian berlanjut menjadi Xeon Phi dan instruksi AVX-512
Beban Kerja yang Berubah
- Bahkan dalam game, porsi beban komputasi terus meningkat
- Dalam kasus Starfield, sekitar 50% dari total waktu kerja adalah komputasi
- Renderer Nanite juga menangani rasterisasi segitiga kecil sebagai komputasi
Arah Perkembangan ke Depan
-
1. Perluasan kumpulan core (kebangkitan Cell)
- CPU kelas atas modern mencakup lebih dari 100 miliar transistor
- Memungkinkan pembuatan chip dengan ratusan hingga ribuan core RISC sederhana berdaya rendah
- Akselerator AI sudah mengadopsi arsitektur serupa
-
2. Menjalankan perintah Vulkan di GPU
- Mendukung agar perintah Vulkan dapat dijalankan langsung di GPU
- Saat ini sudah diimplementasikan secara terbatas dalam beberapa ekstensi Vulkan
-
3. Work Graph
- Program disusun dari node (kernel) dan edge (queue)
- Dijalankan secara paralel, tetapi memiliki keterbatasan berikut
- Operasi join sulit dilakukan
- Urutan elemen tidak dijamin
- Elemen berukuran variabel tidak didukung
-
4. Evolusi menuju peleburan dengan CPU
- Desain CPU berperforma tinggi mungkin akan dioptimalkan untuk pemrosesan paralel
- Performa komputasi paralel dan pemrosesan SIMD (single instruction, multiple data) sedang ditingkatkan
-
5. Perangkat keras mungkin sebenarnya sudah siap
- Beberapa GPU menyertakan prosesor perintah yang dapat menjalankan kode pengguna
- Jika prosesor perintah dibuka sepenuhnya, ada kemungkinan performa meningkat
Masalah Kompleksitas
- Arsitektur GPU terlalu kompleks
- Komputer paralel + perangkat keras khusus + struktur pemrosesan perintah bercampur menjadi satu
- Ada masalah kompatibilitas dengan berbagai API dan driver
- Sebaliknya, CPU terus meningkatkan performa dengan dasar set instruksi yang sederhana
Kesimpulan
- Perkembangan komputer paralel masih belum selesai
- Agar GPU dapat dioptimalkan untuk tugas umum selain grafis dan AI, berikut ini diperlukan
- Model eksekusi yang sederhana
- Kemudahan pemrograman
- Konsumsi daya yang rendah
- Dalam pekerjaan pada renderer 2D canggih seperti Vello, performa komputer paralel akan bisa dimanfaatkan sepenuhnya
- Diperlukan arsitektur komputer paralel baru untuk mengatasi keterbatasan performa GPU
1 komentar
Komentar Hacker News
"Saya percaya ada dua faktor utama yang menghalangi hal ini"
Model pemrograman pada 2025 tidak efisien
Pengalaman bekerja di perusahaan yang "menaruh ratusan CPU kecil dalam satu chip"
GPU 10~100 kali lebih kuat daripada CPU
Opini tentang membangun superkomputer dengan M4 Mac mini
Masalah komputer paralel
Tidak jelas mengapa renderer 2D membutuhkan GPU
Banyak penyebutan tentang Larabee, tetapi tidak ada tentang Xeon Phis
Pengorbanan yang memungkinkan throughput tinggi pada GPU