Ringkasan WebGPU

François Beaufort
François Beaufort

WebGPU adalah API grafis web yang menawarkan manfaat yang signifikan, seperti workload JavaScript yang jauh lebih rendah untuk grafis yang sama dan peningkatan inferensi model machine learning lebih dari tiga kali lipat. Hal ini dimungkinkan karena pemrograman GPU yang fleksibel dan akses ke kemampuan lanjutan yang tidak disediakan oleh WebGL.

API ini dirancang dengan mempertimbangkan platform web, yang menampilkan JavaScript API idiomatis, integrasi dengan promise, dukungan untuk mengimpor video, dan pengalaman developer yang rapi dengan pesan error yang jelas.

WebGPU adalah hasil dari upaya kolaboratif oleh Grup Komunitas "GPU for the Web" W3C, yang mencakup kontribusi dari perusahaan besar seperti Mozilla, Apple, Intel, dan Microsoft.

Dukungan browser

Rilis awal WebGPU ini tersedia di Chrome 113, di perangkat ChromeOS dengan dukungan Vulkan, perangkat Windows dengan dukungan Direct3D 12, dan macOS. Dukungan Linux, Android, dan dukungan yang diperluas untuk platform yang ada akan segera hadir.

WebGPU masih dalam proses untuk Firefox dan Safari, selain implementasi awal di Chrome.

Dukungan library

Banyak library WebGL yang digunakan secara luas sudah dalam proses menerapkan dukungan WebGPU atau telah melakukannya. Artinya, menggunakan WebGPU mungkin hanya memerlukan perubahan satu baris.

  • Babylon.js memiliki dukungan WebGPU penuh.
  • PlayCanvas mengumumkan dukungan WebGPU awal.
  • TensorFlow.js mendukung versi sebagian besar operator yang dioptimalkan untuk WebGPU.
  • Dukungan WebGPU Three.js sedang dalam proses, lihat contoh.

Library Dawn untuk Chromium dan library wgpu untuk Firefox tersedia sebagai paket mandiri. API ini menawarkan portabilitas dan lapisan ergonomis yang membuat abstraksi API GPU sistem operasi. Menggunakan library ini dalam aplikasi native akan memudahkan porting ke WASM melalui Emscripten dan Rust web-sys.

Resource

WebGPU adalah teknologi yang signifikan, dan sebaiknya baca referensi berikut untuk mempelajari lebih lanjut: