𝗪𝗲𝗯𝗚𝗣𝗨: آپ کے براؤزر پر 𝟮𝟱𝟬,𝟬𝟬𝟬 ذرات
یہ 50واں دن ہے۔ یہ میری اس سیریز کا آخری دن ہے جہاں میں ہر روز ایک نئی ٹیکنالوجی بالکل شروع سے بناتا ہوں۔ میں اس کا اختتام WebGPU کے ساتھ کرنا چاہتا تھا۔
میں نے براؤزر کے اندر مکمل طور پر GPU پر 250,000 ذرات (particles) کی سیمولیشن کی۔
آپ کے CPU میں چند تیز رفتار کورز (cores) ہوتے ہیں۔ آپ کے GPU میں ہزاروں سادہ کورز ہوتے ہیں۔ ایک CPU ذرات کو ایک ایک کر کے حرکت دیتا ہے۔ ایک GPU ہزاروں ذرات کو ایک ہی وقت میں حرکت دیتا ہے۔
WebGPU، WebGL کا جدید جانشین ہے۔ یہ compute shaders کے ذریعے آپ کے براؤزر کو ہارڈ ویئر تک رسائی فراہم کرتا ہے۔ یہ shaders GPU کو صرف گرافکس بنانے کے بجائے ریاضیاتی حساب کتاب (math) کرنے کی اجازت دیتے ہیں۔
یہ کیسے کام کرتا ہے:
• آپ GPU کو مینیج کرنے کے لیے ایک device بناتے ہیں۔ • آپ پوزیشن اور ویلوسٹی جیسے ذرات کے ڈیٹا کو محفوظ کرنے کے لیے ایک buffer بناتے ہیں۔ • آپ ڈیٹا کو ایک بار اپ لوڈ کرتے ہیں اور اسے GPU پر ہی رکھتے ہیں۔ • آپ ایک ذرے کے لیے ایک compute shader لکھتے ہیں۔ • GPU اس shader کو ایک ہی وقت میں تمام 250,000 ذرات پر چلا دیتا ہے۔
ڈیٹا GPU پر ہی رہتا ہے۔ یہ CPU پر واپس آئے بغیر compute مرحلے سے render مرحلے تک منتقل ہو جاتا ہے۔ یہی رفتار سیمولیشن کو 60fps پر چلنے کے قابل بناتی ہے۔
WebGPU براؤزر کے اندر ریاضیاتی حساب کتاب اور لوکل مشین لرننگ کے لیے ایک نئی بنیاد ہے۔ اس سیریز کو ختم کرنے کا یہ بالکل صحیح طریقہ تھا۔
اس سفر میں میرے ساتھ رہنے کا شکریہ۔ آپ ہر پروجیکٹ کا مکمل آرکائیو یہاں دیکھ سکتے ہیں۔
مکمل کوڈ: 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