𝗪𝗲𝗯𝗚𝗣𝗨: 𝟮𝟱𝟬,𝟬𝟬𝟬 𝗣𝗮𝗿𝘁𝗶𝗰𝗹𝗲𝘀 𝗢𝗻 𝗬𝗼𝘂𝗿 𝗕𝗿𝗼𝘄𝘀𝗲𝗿
இன்று 50-வது நாள். ஒவ்வொரு நாளும் புதிதாக ஒரு தொழில்நுட்பத்தை உருவாக்குவது குறித்த எனது தொடரின் இறுதி நாள் இதுவாகும்.
இந்தத் தொடரை நிறைவு செய்ய நான் WebGPU-வைத் தேர்ந்தெடுத்தேன். WebGPU மூலம் உங்கள் உலாவியின் (browser) உள்ளேயே, முழுமையாக உங்கள் GPU-வில் 250,000 துகள்களை (particles) உருவகப்படுத்த (simulate) முடியும்.
உங்கள் CPU-வில் சில வேகமான கோர்கள் (cores) உள்ளன. ஆனால் உங்கள் GPU-வில் ஆயிரக்கணக்கான எளிய கோர்கள் உள்ளன. 250,000 துகள்களை நகர்த்த, ஒரு CPU அவற்றை ஒவ்வொன்றாகச் செய்யும். ஆனால் ஒரு GPU ஆயிரக்கணக்கானவற்றை ஒரே நேரத்தில் செய்யும்.
WebGPU என்பது WebGL-ன் நவீனத் தொடர்ச்சியாகும். இது உங்கள் வன்பொருளில் (hardware) பொதுவான நிரல்களை இயக்க compute shaders-களைப் பயன்படுத்துகிறது.
இது எவ்வாறு செயல்படுகிறது:
- GPU-வை நிர்வகிக்க நீங்கள் ஒரு device-ஐ உருவாக்குகிறீர்கள்.
- நிலை (position) மற்றும் திசைவேகம் (velocity) போன்ற துகள் தரவுகளைச் சேமிக்க நீங்கள் ஒரு buffer-ஐ உருவாக்குகிறீர்கள்.
- தரவை ஒருமுறை GPU-விற்குப் பதிவேற்றுகிறீர்கள்.
- இயக்கத்தைக் கையாள ஒரு compute shader-ஐ எழுதுகிறீர்கள்.
Compute shader ஒவ்வொரு துகளுக்கும் ஒரே நேரத்தில் ஒரே மாதிரியான தர்க்கத்தை (logic) இயக்குகிறது. தரவு GPU-விலேயே தங்கியிருக்கும். அது வன்பொருளை விட்டு வெளியேறாமல், compute நிலையிலிருந்து render நிலைக்குச் செல்கிறது. இந்த வேகம் உருவகப்படுத்துதலை (simulation) 60fps வேகத்தில் இயக்க அனுமதிக்கிறது.
உலாவியில் இயங்கும் இயந்திரக் கற்றல் (machine learning) மற்றும் கனமான கணக்கீடுகளுக்கு (heavy computation) WebGPU அடிப்படையாக அமையும். இது இணைய மேம்பாட்டின் (web development) எதிர்காலத்திற்கு ஒரு முக்கியமான கருவியாகும்.
இந்தத் தொடரைப் பின்தொடர்ந்தமைக்கு நன்றி. ஒவ்வொரு திட்டத்தின் முழுமையான ஆவணத்தையும் (archive) இங்கே காணலாம்.
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