Langkah selanjutnya untuk WebGPU

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

Dipublikasikan: 21 November 2024

Spesifikasi WebGPU selalu berkembang, dengan perusahaan besar seperti Google, Mozilla, Apple, Intel, dan Microsoft bertemu setiap minggu untuk membahas pengembangannya. Pertemuan grup kerja GPU untuk Web terbaru memberikan gambaran tentang tujuan dan fitur utama yang direncanakan untuk iterasi WebGPU berikutnya. Postingan blog ini membahas beberapa poin penting dari pertemuan tersebut.

Mencapai status rekomendasi kandidat

Fokus utama rapat ini adalah untuk membahas progres Puncak 0 dan menyelesaikan masalah yang perlu ditangani sebelum mencapai status rekomendasi kandidat untuk W3C. Ini adalah langkah berikutnya dalam proses standardisasi, dan dilengkapi dengan jaminan stabilitas dan perlindungan kekayaan intelektual yang lebih kuat.

Ada kesepakatan umum di antara peserta rapat bahwa masalah tersebut tidak menjadi penghalang dan bahwa masalah ini dapat diselesaikan secara tepat waktu, sehingga membuka jalan bagi rekomendasi kandidat WebGPU W3C.

Memprioritaskan fitur baru

Peserta rapat juga memprioritaskan fitur baru. Mereka memulai dengan daftar permintaan fitur yang disusun dari masukan dari developer, pelaksana, dan pemangku kepentingan.

Papan tulis dengan daftar istilah yang ditulis tangan yang terkait dengan API grafis komputer, termasuk 'Bindless', 'Subgroups', 'MDI', 'Push Constants', 'UMA', 'Subgroup Matrix', dan lainnya.

Setelah diskusi, fitur WebGPU utama berikut untuk AI diidentifikasi:

  • Subgrup dan matriks subgrup: Memungkinkan aplikasi menggunakan komunikasi lokal yang cepat di antara thread GPU, dan memanfaatkan hardware perkalian matriks berukuran tetap di samping core shader. Lihat proposal subgrup.

  • Buffer texels: Memberikan cara yang lebih efisien untuk menyimpan dan mengakses jenis data kecil, seperti nilai 16-bit atau 8-bit, dengan cara yang portabel. Hal ini penting untuk beberapa algoritma pemrosesan gambar ML. Lihat slide buffering texel.

  • Pemetaan buffering UMA: Meningkatkan performa upload data dengan mengurangi atau menghilangkan overhead penyalinan dan sinkronisasi. Lihat masalah spesifikasi 2388.

Fitur WebGPU berikut juga sedang dipertimbangkan dan diprioritaskan untuk membuka jenis algoritma rendering baru:

  • Bindless: Proposal fitur yang sangat dinantikan ini adalah prasyarat untuk sebagian besar algoritma rendering mutakhir karena memerlukan informasi seluruh tampilan. Bindless memungkinkan shader menggunakan resource dalam jumlah tidak terbatas, termasuk tekstur, jika dibandingkan dengan batas yang relatif ketat saat ini.

  • Multi-draw indirect: Memungkinkan komputasi sebelumnya di GPU membuat beberapa gambar, bukan hanya satu dengan drawIndirect sebelumnya. Ini adalah kemampuan penting untuk rendering yang didukung GPU seperti untuk pemusnahan objek GPU. Lihat pull request 2315.

  • Atomik 64-bit: Baik dalam buffering maupun tekstur, hal ini diperlukan untuk melakukan "rasterisasi software" di GPU, dengan menggabungkan pengujian kedalaman dan penulisan payload 32-bit dalam satu operasi atomicMax. Lihat masalah 4329.

Untuk meningkatkan kemampuan dan integrasi WebGPU dengan platform web yang lebih luas, fitur WebGPU berikut telah dibahas:

  • Mode kompatibilitas: Mode ini bertujuan untuk memungkinkan WebGPU berjalan di berbagai perangkat, termasuk perangkat yang hanya mendukung OpenGL ES 3.1. Lihat proposal mode kompatibilitas.

  • WebXR: Memungkinkan modul Lapisan WebXR yang ada untuk berinteraksi dengan WebGPU dengan menyediakan swapchain WebGPU untuk setiap jenis lapisan. Lihat slide Integrasi WebGPU/WebXR.

  • Canvas2D: Menciptakan interoperabilitas yang lebih baik antara Canvas 2D dan WebGPU, yang mengatasi masalah performa dan ergonomi. Proposal Transfer WebGPU ini akan memungkinkan akses ke teks dan gambar jalur di WebGPU, serta dapat menerapkan rendering WebGPU ke Canvas 2D.

Pertemuan ini juga menampilkan presentasi dan diskusi tentang upaya untuk meningkatkan alat dan library WGSL. Salah satu inisiatif yang penting adalah pengembangan WESL (WGSL Extended Shading Language) yang bertujuan untuk menyediakan kumpulan ekstensi yang didorong oleh komunitas ke WGSL.

Anda dapat menemukan informasi selengkapnya di catatan rapat mentah.

Pikiran

Pertemuan ini menyoroti pentingnya kolaborasi antara grup kerja WebGPU, developer, dan komunitas grafis yang lebih luas dalam membentuk masa depan WebGPU. Kelompok kerja ini secara aktif mencari masukan tentang fitur yang diusulkan dan berkomitmen untuk bekerja sama dengan developer guna memastikan WebGPU memenuhi kebutuhan mereka.

Evolusi WebGPU berikutnya menjanjikan langkah maju yang signifikan, membuka kemungkinan baru untuk grafis web dan memberdayakan developer untuk menciptakan pengalaman web yang lebih imersif dan menarik untuk AI.