WebGPU: 250,000 частинок у вашому браузері
Це 50-й день. Це останній день моєї серії, у якій я щодня створюю нову технологію з нуля. Я хотів завершити серію за допомогою WebGPU.
Я симулював 250 000 частинок повністю на GPU всередині браузера.
Ваш CPU має кілька швидких ядер. Ваш GPU має тисячі простих ядер. CPU переміщує частинки по одній. GPU переміщує тисячі одночасно.
WebGPU — це сучасний наступник WebGL. Він надає вашому браузеру доступ до апаратного забезпечення через compute shaders. Ці шейдери дозволяють GPU виконувати математичні обчислення, а не лише малювати графіку.
Як це працює:
• Ви створюєте device для керування GPU. • Ви створюєте buffer для зберігання даних про частинки, таких як позиція та швидкість. • Ви завантажуєте дані один раз і зберігаєте їх на GPU. • Ви пишете compute shader для однієї частинки. • GPU запускає цей шейдер для всіх 250 000 частинок одночасно.
Дані залишаються на GPU. Вони переходять від етапу обчислень (compute step) до етапу рендерингу (render step), не повертаючись до CPU. Така швидкість дозволяє симуляції працювати при 60 fps.
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