WebGPU: ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ 250,000 ಕಣಗಳು (Particles)
ಇಂದು 50ನೇ ದಿನ. ಪ್ರತಿದಿನ ಹೊಸ ತಂತ್ರಜ್ಞಾನವನ್ನು ಮೊದಲಿನಿಂದ ನಿರ್ಮಿಸುವ ನನ್ನ ಸರಣಿಯ ಇದು ಕೊನೆಯ ದಿನ.
ಈ ಸರಣಿಯನ್ನು ಮುಕ್ತಾಯಗೊಳಿಸಲು ನಾನು WebGPU ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿಕೊಂಡಿದ್ದೇನೆ. WebGPU ನಿಮ್ಮ ಬ್ರೌಸರ್ನ ಒಳಗೇ ಸಂಪೂರ್ಣವಾಗಿ ನಿಮ್ಮ GPU ಮೇಲೆ 250,000 ಕಣಗಳನ್ನು (particles) ಸಿಮ್ಯುಲೇಟ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ.
ನಿಮ್ಮ CPU ಕೆಲವು ವೇಗದ ಕೋರ್ಗಳನ್ನು (cores) ಹೊಂದಿದೆ. ನಿಮ್ಮ GPU ಸಾವಿರಾರು ಸರಳ ಕೋರ್ಗಳನ್ನು ಹೊಂದಿದೆ. 250,000 ಕಣಗಳನ್ನು ಚಲಾಯಿಸಲು, CPU ಅವುಗಳ ಮೇಲೆ ಒಂದೊಂದಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದರೆ GPU ಸಾವಿರಾರು ಕಣಗಳನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಮಾಡುತ್ತದೆ.
WebGPU ಎಂಬುದು WebGL ನ ಆಧುನಿಕ ಉತ್ತರಾಧಿಕಾರಿ. ಇದು ನಿಮ್ಮ ಹಾರ್ಡ್ವೇರ್ ಮೇಲೆ ಸಾಮಾನ್ಯ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಚಲಾಯಿಸಲು compute shaders ಅನ್ನು ಬಳಸುತ್ತದೆ.
ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:
- ನೀವು GPU ಅನ್ನು ನಿರ್ವಹಿಸಲು ಒಂದು ಸಾಧನವನ್ನು (device) ರಚಿಸುತ್ತೀರಿ.
- ಸ್ಥಾನ (position) ಮತ್ತು ವೇಗದಂತಹ (velocity) ಕಣಗಳ ಡೇಟಾವನ್ನು ಹಿಡಿದಿಡಲು ನೀವು ಬಫರ್ ಅನ್ನು ರಚಿಸುತ್ತೀರಿ.
- ನೀವು ಡೇಟಾವನ್ನು ಒಮ್ಮೆ GPU ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡುತ್ತೀರಿ.
- ಚಲನೆಯನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ಒಂದು compute shader ಅನ್ನು ಬರೆಯುತ್ತೀರಿ.
Compute shader ಪ್ರತಿ ಕಣಕ್ಕೂ ಏಕಕಾಲದಲ್ಲಿ ಒಂದೇ ತರ್ಕವನ್ನು (logic) ಚಲಾಯಿಸುತ್ತದೆ. ಡೇಟಾ GPU ಮೇಲೆಯೇ ಇರುತ್ತದೆ. ಅದು ಹಾರ್ಡ್ವೇರ್ ಅನ್ನು ಬಿಡದೆ ಕಂಪ್ಯೂಟ್ ಹಂತದಿಂದ ರೆಂಡರ್ ಹಂತಕ್ಕೆ ಚಲಿಸುತ್ತದೆ. ಈ ವೇಗವು ಸಿಮ್ಯುಲೇಶನ್ ಅನ್ನು 60fps ನಲ್ಲಿ ಚಲಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
WebGPU ಎಂಬುದು ಬ್ರೌಸರ್ನ ಒಳಗಿನ machine learning ಮತ್ತು ಭಾರೀ ಕಂಪ್ಯೂಟೇಶನ್ಗಳಿಗೆ ಅಡಿಪಾಯವಾಗಲಿದೆ. ಇದು web development ನ ಭವಿಷ್ಯಕ್ಕಾಗಿ ಒಂದು ಪ್ರಮುಖ ಸಾಧನವಾಗಿದೆ.
ಈ ಸರಣಿಯನ್ನು ಅನುಸರಿಸಿದ್ದಕ್ಕಾಗಿ ಧನ್ಯವಾದಗಳು. ಪ್ರತಿಯೊಂದು ಪ್ರಾಜೆಕ್ಟ್ನ ಸಂಪೂರ್ಣ ಆರ್ಕೈವ್ ಅನ್ನು ನೀವು ಇಲ್ಲಿ ಕಾಣಬಹುದು.
ಪೂರ್ಣ ಕೋಡ್: https://github.com/dev48v/webgpu-from-zero
ಸಂಪೂರ್ಣ ಪೋಸ್ಟ್: https://dev.to/dev48v/webgpu-i-simulated-250000-particles-entirely-on-the-gpu-in-the-browser-2o0f