WebGPU'ya genel bakış

François Beaufort
François Beaufort

WebGPU, aynı grafikler için JavaScript iş yükünün önemli ölçüde azaltılması ve makine öğrenimi model çıkarımlarında üç kattan fazla iyileştirme gibi önemli avantajlar sunan bir web grafik API'sidir. Bu, esnek GPU programlama ve WebGL'nin sağlamadığı gelişmiş özelliklere erişim sayesinde mümkündür.

Web platformu göz önünde bulundurularak tasarlanan API, doğal bir JavaScript API'si, promises ile entegrasyon, video içe aktarma desteği ve net hata mesajları içeren mükemmel bir geliştirici deneyimi sunar.

WebGPU, W3C'nin "Web için GPU" Topluluk Grubu tarafından ortaklaşa yürütülen bir çalışmanın sonucudur. Bu çalışmada Mozilla, Apple, Intel ve Microsoft gibi büyük şirketlerin katkıları yer alır.

Tarayıcı desteği

WebGPU'nun bu ilk sürümü, Chrome 113'te, Vulkan desteğine sahip ChromeOS cihazlarda, Direct3D 12 desteğine sahip Windows cihazlarda ve macOS'te kullanıma sunuldu. Linux, Android ve mevcut platformlar için genişletilmiş destek yakında kullanıma sunulacaktır.

WebGPU, Chrome'daki ilk uygulamaya ek olarak Firefox ve Safari için de geliştirilmektedir.

Kitaplık desteği

Yaygın olarak kullanılan birçok WebGL kitaplığında WebGPU desteğinin uygulanmasına başlandı veya bu işlem tamamlandı. Bu, WebGPU'yu kullanmak için yalnızca tek bir satır değişikliği yapmanız gerekebileceği anlamına gelir.

  • Babylon.js, WebGPU'yu tam olarak destekler.
  • PlayCanvas, ilk WebGPU desteğini duyurdu.
  • TensorFlow.js, çoğu operatörün WebGPU için optimize edilmiş sürümlerini destekler.
  • Three.js WebGPU desteği üzerinde çalışılıyor. Örneklere göz atın.

Hem Chromium için Dawn kitaplığı hem de Firefox için wgpu kitaplığı bağımsız paket olarak kullanılabilir. İşletim sistemi GPU API'lerini soyutlayan mükemmel taşınabilirlik ve ergonomik katmanlar sunarlar. Bu kitaplıkları yerel uygulamalarda kullanmak, Emscripten ve Rust web-sys aracılığıyla WASM'e geçişi kolaylaştırır.

Kaynaklar

WebGPU önemli bir teknolojidir. Daha fazla bilgi edinmek için aşağıdaki kaynaklara göz atmanızı öneririz: