WebGPU: 250 000 частиц в вашем браузере
Это 50-й день. Это заключительный день моего цикла, в котором я каждый день создаю новую технологию с нуля. Я хотел завершить его с WebGPU.
Я симулировал 250 000 частиц полностью на GPU внутри браузера.
У вашего CPU есть несколько быстрых ядер. У вашего GPU — тысячи простых ядер. CPU перемещает частицы по одной. GPU перемещает тысячи частиц одновременно.
WebGPU — это современный преемник WebGL. Он дает вашему браузеру доступ к аппаратному обеспечению через вычислительные шейдеры (compute shaders). Эти шейдеры позволяют GPU выполнять математические вычисления, а не только отрисовывать графику.
Как это работает:
• Вы создаете устройство (device) для управления GPU. • Вы создаете буфер для хранения данных о частицах, таких как позиция и скорость. • Вы загружаете данные один раз и оставляете их на GPU. • Вы пишете вычислительный шейдер для одной частицы. • GPU запускает этот шейдер для всех 250 000 частиц одновременно.
Данные остаются на GPU. Они переходят от этапа вычислений к этапу рендеринга, не возвращаясь к 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