Стандарт WebGPU 1.0 зарелизился в Chrome
Новая версия Chrome будет включать поддержку нового стандарта WebGPU 1.0 по-умолчанию. Полноценная поддержка в браузерах Safari и FireFox все еще в статусе developer preview и включается специальной опцией, но все равно это огромный шаг для графических и общих вычислений на клиенте в вебе. Для пользователей, это изменение как правило должно означать лучшее использование ресурсов GPU в графических программах запускаемых в браузере, а также появление программ которые могут использовать мощности GPU не только для графики. Для таких областей применения как например симуляция физики, обработка фотографий или генерация голоса прямо в браузере пользователя без пересылки данных на сервер. Пример Stable Diffusion модели работающей в браузере с помощью WebGPU.
Для разработчиков новый стандарт позволит писать не только программы для графических вычислений, но общих для вычислений (gpgpu), как например с помощью CUDA или ROCM. Это можно использовать например в решения задач искусственного интеллекта и других областях. Хотя на практике, нативные API от вендоров видеокарт будут конечно же впереди и по производительности и доступу к разным новым возможностям.
WebGPU это продвигаемый вендорами браузеров и W3C новый интерфейс для вычислений на графических ускорителях похожий на Metal, Vulkan и DirectX 12 который приходит на замену WebGL. Изначально стандарт назывался WebMetal и был похож на интерфейс Apple. Khronos которая разработала такие стандарты как OpenGL, Vulkan, WebGL и другие не имеет отношения к разработке WebGPU.
С точки зрения дизайна, главные отличия от интерфейсов предыдущих поколений таких как WebGL, OpenGL и DirectX 11 – явное управление ресурсами, графические и вычислительные пайплайны и ориентация на много-поточность. Новая версия Chrome делает доступной взаимодействие с интерфейсом внутри клиентских приложений использующих JavaScript или WebAssembly. Для нативных приложений написанных на языках C++ и Rust также есть официальные реализации WebGPU – dawn и wgpu используемые в браузерах. Под капотом, браузер транслирует все вызовы WebGPU в доступный API операционный системы API - Vulkan, Metal или DX12.
Помимо собственно самого стандарта для вычислений на GPU, новый стандарт так же включает в себя новый с нуля разработанный язык шейдеров – WGSL который приходит на замену GLSL. Для трансляции шейдеров из других языков типа HLSL, MSL, GLSL и SPIR-V есть несколько решений: shaderc, tint, naga.
Неплохой обзор современных GPU APIs можно помотреть в этом видео от инженера Google:
Ну YouTube уже доступно несколько обучающих курсов по WebGPU
Наконец-то, джва год ждал
Пилю свой проект на wgpu, наконец-то будет с кем обсудить. Раньше на меня смотрели на сумасшедшего когда я тут свои шейдеры на WGSL постил.
Оно того стоит?
:) тут ответит каждый для себя
Для большинства думаю хватит поддержки WebGPU в одном из крупных движков. Это все таки очень низкоуровневая штука.
Я на нем недавно писал освещение для своего проекта, мне понравилось. https://www.youtube.com/watch?v=REZvGsNMOlo&ab_channel=VladimirZaytsev
Да не, я твои посты видел. Я в целом про трудо- и время- затраты при написании на таком уровне.
Если вас не вставляет Vulkan, то WebGPU вам тоже не зайдет, у него такая же кривая изучения. Так что это больше конечно для авторов библиотек.
Или вам нужно что-то посчитать в compute шейдере которых в WebGL просто нет.
Ну либо вы супер про и любите все писать сами с нуля как Jonathan Blow или вот Кейси https://www.youtube.com/watch?v=Ge3aKEmZcqY&ab_channel=MollyRocket
Jonathan Blow, конечно, тот ещё задрот. В хорошем смысле)
Если интересно, перевод старого сообщения от инженера NVIDIA про мотивацию в новых графических APIs. https://docs.google.com/document/d/1qbjxLAj7v-fM4N-oujlSp41CiuTFbmf1dhZquRNijtQ/edit
Идеальный мир это где каждое поколение карт - свой апи и когда Джонатан Блоу тебе присылает свою игру со своей ОС под твое железо на USB thumbstick (потому что он еще не закончил писать свой сетевой стек).
Тот есть теперь оно будет жрать не только всю память, что найдет на компе, а ещё и на видеокарте, постоянно чето там майнить и рендерить в фоне на гпу? Зоебис! Нраица!
Оно и щас так делает
Playcanvas уже заявили поддержку, что не может не радовать.
https://blog.playcanvas.com/initial-webgpu-support-lands-in-playcanvas-engine-1-62/
Можно как то по проще - что я могу теперь делать?
Можешь программировать почти как c Vulkan, только в браузере.
ясно - ничего...
Задай вопрос более конкретно)
Они не понимают, из какого аниме эти картинки в посте, не обращай внимания.
"Можешь программировать...
вопросов больше не имею
Для всего уже сделали библиотеки
Надеюсь, исполнение спецификации опенсорс-то хоть?
В интернете полно форков с рейтрейсингом. Например этот https://www.youtube.com/watch?v=Z7Nf5UYppuc&ab_channel=xima
Да, кончено. Статье есть ссылки на код от мозилы и гугл. Вот тут модули вебкит: https://github.com/WebKit/WebKit/commits/main/Source/WebCore/Modules/WebGPU
wc3
К логопеду
Окей. А как твой синдром называется?
Лол. Нет.
Это отдельный рынок. И не опенсорсный
Ты о чем? Думаю тут много рынков. Для игр рапира например опенсорсная и шустрая (лучше bullet или что там в юнити) https://rapier.rs/demos2d/index.html, создатели Horizon тоже заопенсорсили свою физику https://github.com/jrouwe/JoltPhysics
Это не симуляция физики, а её упрощеное подобие.
Физические симуляторы - это ansys, comsol, mumax, lumerical и прочие пакеты.
Не нужно так дословно все воспринимать) В контексте гейдева это и есть симуляция физики.
Ну окей. Я, просто, лет 10 работаю с физическими симуляторамии и ловлю лулзы от таких заявлений.
Хотя, стоит отметить, что во времена gtx800-1000, Ansys работал с Nvidia над адаптацией алгоритмов под ширпотребные ГПУ. Потом правда забили. И поделили окончательно рынки.
Я так понимаю все упирается в память? Из того что вижу, в какой нибудь A6000 Ada все те же самые фичи как и в 4090, но в два раза больше памяти и есть возможность поставить 4 штуки в один системник.
Дело не только в памяти, но и в самих алгоритмах. Их много и они специфичны. Quadro - карты не для расчётов, они позиционируются как серверные ГПУ для реализации множества виртуальных машин.
Для расчётов - Тесла. Но у неё архитектура другая и это по сути не видеокарта, а сопроцессор с дохулионом ядер.
Из тех решателей которые были на слуху - в ГПУ реализована только гидродинамика и механика в ansys.
Та же электродинамика и волновая оптика в ГПУ реализации не имеет. Вообще.
Бладборн 2 выйдет в Хроме, получается?
Комментарий недоступен
на гпу разве все еще кто-то майнит?