WebGPU: Tarayıcınızda 250.000 Parçacık
Bu, 50. gün. Her gün sıfırdan yeni bir teknoloji inşa ettiğim serimin son günü. Seriyi WebGPU ile bitirmek istedim.
Tarayıcı içinde, 250.000 parçacığı tamamen GPU üzerinde simüle ettim.
CPU'nuz birkaç hızlı çekirdeğe sahiptir. GPU'nuz ise binlerce basit çekirdeğe sahiptir. Bir CPU parçacıkları tek tek hareket ettirir. Bir GPU ise binlercesini aynı anda hareket ettirir.
WebGPU, WebGL'in modern halefidir. Tarayıcınıza compute shader'lar aracılığıyla donanıma erişim sağlar. Bu shader'lar, GPU'nun sadece grafik çizmesini değil, matematiksel işlemler yapmasını da sağlar.
Nasıl çalışır:
• GPU'yu yönetmek için bir device oluşturursunuz. • Konum ve hız gibi parçacık verilerini tutmak için bir buffer oluşturursunuz. • Veriyi bir kez yüklersiniz ve GPU üzerinde tutarsınız. • Tek bir parçacık için bir compute shader yazarsınız. • GPU, bu shader'ı 250.000 parçacığın tamamında aynı anda çalıştırır.
Veri GPU üzerinde kalır. CPU'ya geri dönmeden, compute adımından render adımına geçer. Bu hız, simülasyonun 60fps hızında çalışmasını sağlar.
WebGPU, tarayıcı içi matematik ve yerel makine öğrenimi için yeni temeldir. Bu seriyi bitirmek için doğru yol buydu.
Bu yolculuğu takip ettiğiniz için teşekkürler. Her projenin tam arşivini burada bulabilirsiniz.
Tam kod: https://github.com/dev48v/webgpu-from-zero
Tam yazı: https://dev.to/dev48v/webgpu-i-simulated-250000-particles-entirely-on-the-gpu-in-the-browser-2o0f
İsteğe bağlı öğrenme topluluğu: https://dev48v.infy.uk/techfromzero.php