𝗪𝗲𝗯𝗚𝗣𝗨: 𝟮𝟱𝟬,𝟬𝟬𝟬 𝗣𝗮𝗿𝘁𝗶𝗰𝗹𝗲𝘀 𝗢𝗻 𝗬𝗼𝘂𝗿 𝗕𝗿𝗼𝘄𝘀𝗲𝗿
এটি ৫০তম দিন। এটি আমার সিরিজের শেষ দিন যেখানে আমি প্রতিদিন শূন্য থেকে একটি নতুন প্রযুক্তি তৈরি করি। আমি WebGPU দিয়ে এটি শেষ করতে চেয়েছিলাম।
আমি ব্রাউজারের ভেতরে সম্পূর্ণভাবে GPU-তে ২৫০,০০০ পার্টিকেল সিমুলেট করেছি।
আপনার CPU-তে কয়েকটি দ্রুত কোর (core) থাকে। আপনার GPU-তে হাজার হাজার সাধারণ কোর থাকে। একটি CPU একটি একটি করে পার্টিকেল মুভ করে। একটি GPU একই সাথে হাজার হাজার পার্টিকেল মুভ করতে পারে।
WebGPU হলো WebGL-এর আধুনিক উত্তরসূরি। এটি compute shader-এর মাধ্যমে আপনার ব্রাউজারকে হার্ডওয়্যারে অ্যাক্সেস দেয়। এই shader-গুলো GPU-কে শুধুমাত্র গ্রাফিক্স আঁকার বদলে গাণিতিক হিসাব করার ক্ষমতা দেয়।
এটি যেভাবে কাজ করে:
• আপনি GPU ম্যানেজ করার জন্য একটি device তৈরি করেন। • আপনি পজিশন এবং ভেলোসিটি (velocity)-র মতো পার্টিকেল ডেটা রাখার জন্য একটি buffer তৈরি করেন। • আপনি একবার ডেটা আপলোড করেন এবং সেটি GPU-তে রেখে দেন। • আপনি একটি পার্টিকেলের জন্য একটি compute shader লেখেন। • GPU সেই shader-টি একসাথে সব ২৫০,০০০ পার্টিকেলের ওপর চালায়।
ডেটাগুলো GPU-তেই থাকে। এটি CPU-তে ফিরে না গিয়ে সরাসরি compute step থেকে render step-এ চলে যায়। এই গতির কারণে সিমুলেশনটি 60fps-এ চলতে পারে।
WebGPU হলো ব্রাউজারের ভেতরে গাণিতিক হিসাব এবং লোকাল মেশিন লার্নিংয়ের নতুন ভিত্তি। এই সিরিজটি শেষ করার জন্য এটি ছিল সঠিক উপায়।
এই যাত্রায় সাথে থাকার জন্য ধন্যবাদ। আপনি প্রতিটি প্রজেক্টের সম্পূর্ণ আর্কাইভ এখানে পেতে পারেন।
Full code: https://github.com/dev48v/webgpu-from-zero
Complete post: https://dev.to/dev48v/webgpu-i-simulated-250000-particles-entirely-on-the-gpu-in-the-browser-2o0f
Optional learning community: https://dev48v.infy.uk/techfromzero.php