WebGPU: तुमच्या ब्राउझरवर २५०,००० Particles
आज ५० वा दिवस आहे. माझ्या या मालिकेचा हा शेवटचा दिवस आहे, जिथे मी दररोज शून्यापासून एक नवीन तंत्रज्ञान तयार करतो. मला ही मालिका WebGPU ने संपवायची होती.
मी ब्राउझरमधील GPU वर पूर्णपणे २५०,००० Particles चे सिम्युलेशन केले.
तुमच्या CPU मध्ये काही वेगवान कोअर्स (cores) असतात. तुमच्या GPU मध्ये हजारो साधे कोअर्स असतात. CPU एका वेळी एक कण हलवतो, तर GPU एकाच वेळी हजारो कण हलवू शकतो.
WebGPU हा WebGL चा आधुनिक उत्तराधिकारी आहे. हे compute shaders च्या माध्यमातून तुमच्या ब्राउझरला हार्डवेअरचा वापर करण्याची परवानगी देते. हे shaders केवळ ग्राफिक्स काढण्यासाठीच नाही, तर GPU ला गणिती प्रक्रिया करण्यासाठी देखील सक्षम करतात.
हे कसे कार्य करते:
• तुम्ही GPU व्यवस्थापित करण्यासाठी एक device तयार करता. • तुम्ही position आणि velocity सारखा particle डेटा साठवण्यासाठी एक buffer तयार करता. • तुम्ही डेटा एकदाच अपलोड करता आणि तो GPU वरच ठेवता. • तुम्ही एका particle साठी compute shader लिहिता. • GPU तो shader एकाच वेळी सर्व २५०,००० particles वर चालवतो.
डेटा GPU वरच राहतो. तो CPU कडे परत न जाता थेट compute टप्प्याकडून render टप्प्याकडे जातो. या वेगामुळे सिम्युलेशन ६०fps वर चालू शकते.
WebGPU हे ब्राउझरमधील गणित आणि स्थानिक मशीन लर्निंगसाठी (local machine learning) एक नवीन पाया आहे. ही मालिका संपवण्यासाठी हा एक योग्य मार्ग होता.
या प्रवासात सोबत राहिल्याबद्दल धन्यवाद. तुम्ही प्रत्येक प्रोजेक्टचे संपूर्ण आर्काइव्ह येथे पाहू शकता.
पूर्ण कोड: https://github.com/dev48v/webgpu-from-zero
संपूर्ण पोस्ट: https://dev.to/dev48v/webgpu-i-simulated-250000-particles-entirely-on-the-gpu-in-the-browser-2o0f
ऐच्छिक लर्निंग कम्युनिटी: https://dev48v.infy.uk/techfromzero.php