WebGPU: మీ బ్రౌజర్లోనే 250,000 కణాలు (Particles)
ఇది 50వ రోజు. ప్రతిరోజూ ఒక కొత్త సాంకేతికతను మొదటి నుండి నిర్మించే నా సిరీస్లో ఇది చివరి రోజు. దీనిని WebGPUతో ముగించాలని నేను అనుకున్నాను.
నేను బ్రౌజర్లోని GPUపై పూర్తిగా 250,000 కణాలను (particles) సిమ్యులేట్ చేశాను.
మీ CPUలో కొన్ని వేగవంతమైన కోర్లు (cores) ఉంటాయి. మీ GPUలో వేల సంఖ్యలో సాధారణ కోర్లు ఉంటాయి. CPU కణాలను ఒక్కొక్కటిగా కదిలిస్తుంది. GPU వేల సంఖ్యలో కణాలను ఒకేసారి కదిలిస్తుంది.
WebGPU అనేది WebGL యొక్క ఆధునిక వెర్షన్. ఇది కంప్యూట్ షేడర్స్ (compute shaders) ద్వారా మీ బ్రౌజర్కు హార్డ్వేర్ యాక్సెస్ను అందిస్తుంది. ఈ షేడర్లు GPU కేవలం గ్రాఫిక్స్ను గీయడమే కాకుండా, గణిత లెక్కలు (math) కూడా చేసేలా అనుమతిస్తాయి.
ఇది ఎలా పనిచేస్తుంది:
• GPUని నిర్వహించడానికి మీరు ఒక డివైజ్ను (device) సృష్టిస్తారు. • పొజిషన్ మరియు వెలాసిటీ వంటి కణాల డేటాను నిల్వ చేయడానికి మీరు ఒక బఫర్ను (buffer) సృష్టిస్తారు. • మీరు డేటాను ఒక్కసారి అప్లోడ్ చేసి, దానిని GPUలోనే ఉంచుతారు. • మీరు ఒక కణం కోసం ఒక కంప్యూట్ షేడర్ను రాస్తారు. • GPU ఆ షేడర్ను ఒకేసారి అన్ని 250,000 కణాలపై రన్ చేస్తుంది.
డేటా GPUలోనే ఉంటుంది. ఇది CPUకి తిరిగి వెళ్లకుండానే కంప్యూట్ దశ నుండి రెండర్ దశకు మారుతుంది. ఈ వేగం వల్ల సిమ్యులేషన్ 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