10 poin oleh GN⁺ 2025-03-24 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2025-03-24
Komentar Hacker News
  • "Saya percaya ada dua faktor utama yang menghalangi hal ini"

    • Kecenderungan untuk membungkus opini agar terlihat ilmiah
    • Pengalaman bekerja pada prosesor Cell membutuhkan banyak mikromanajemen
    • Sistem modern dirancang dengan mempertimbangkan perlindungan memori, isolasi, dan stabilitas
    • Menulis kode di Amiga akan memunculkan apresiasi baru
  • Model pemrograman pada 2025 tidak efisien

    • Harus mengompilasi source/bytecode shader saat runtime
    • Sulit memanipulasi struktur data antara CPU dan GPU pada sistem NUMA/discrete
    • Perlu sinkronisasi akses data antara pekerjaan CPU-GPU dan antartugas GPU
    • Harus menangani API yang membingungkan akibat perangkat keras yang tidak terstandarisasi
    • Perlu menangani kombinasi dari berbagai konfigurasi
  • Pengalaman bekerja di perusahaan yang "menaruh ratusan CPU kecil dalam satu chip"

    • Model pemrogramannya terlalu aneh sehingga akan gagal
    • Generasi berikutnya kemungkinan adalah GPU dengan fitur tambahan, bukan arsitektur baru
  • GPU 10~100 kali lebih kuat daripada CPU

    • Banyak pekerjaan tidak membutuhkan performa sebesar itu
    • GUI sudah responsif terhadap input pengguna selama lebih dari 20 tahun
    • Pemrograman GPU perlu disederhanakan
  • Opini tentang membangun superkomputer dengan M4 Mac mini

    • Reverse engineering set instruksi Apple M3 Ultra GPU dan Neural Engine
    • Dapat melakukan lebih dari 50 triliun operasi per detik
  • Masalah komputer paralel

    • Banyak orang harus mengadopsi perangkat tersebut untuk tujuan pengembangan
    • Mem-porting kode dari CPU ke GPU adalah pekerjaan besar
    • AMD dan perusahaan lain mengeksplorasi gagasan mendekatkan GPU ke CPU
  • Tidak jelas mengapa renderer 2D membutuhkan GPU

    • Renderer 3D memang membutuhkan bantuan
    • Vulkan berada pada level di bawah renderer
    • Ada titik gesekan dalam desain renderer di Rust 3D
  • Banyak penyebutan tentang Larabee, tetapi tidak ada tentang Xeon Phis

    • Desain CPU sedang terpecah ke arah optimasi performa single-core dan efisiensi daya
    • Jika jumlah E-core semakin banyak, algoritme yang memanfaatkan paralelisme bisa menang
  • Pengorbanan yang memungkinkan throughput tinggi pada GPU

    • Ada sistem memori terpadu di Apple Silicon
    • API pemrograman GPU memperlakukannya seolah-olah memorinya tidak terpadu