{"id":4094,"url":"\/distributions\/4094\/click?bit=1&hash=9d794bcd6120e613dd479f448eb38d23f5bf2998d46cacb8cc7673cfb9db5949","title":"\u0417\u0430\u0447\u0435\u043c \u0410\u043b\u044c\u0444\u0430-\u0411\u0430\u043d\u043a\u0443 \u043c\u0438\u0448\u043a\u0430-\u0431\u0443\u043d\u0442\u0430\u0440\u044c, \u043a\u043e\u0442\u0438\u043a \u0414\u0437\u044b\u043d\u044c \u0438 \u0447\u0451\u0440\u043d\u0430\u044f \u0443\u0442\u043e\u0447\u043a\u0430?","buttonText":"","imageUuid":""}

Стандарт WebGPU 1.0 зарелизился в Chrome

Новая версия Chrome будет включать поддержку нового стандарта WebGPU 1.0 по-умолчанию. Полноценная поддержка в браузерах Safari и FireFox все еще в статусе developer preview и включается специальной опцией, но все равно это огромный шаг для графических и общих вычислений на клиенте в вебе. Для пользователей, это изменение как правило должно означать лучшее использование ресурсов GPU в графических программах запускаемых в браузере, а также появление программ которые могут использовать мощности GPU не только для графики. Для таких областей применения как например симуляция физики, обработка фотографий или генерация голоса прямо в браузере пользователя без пересылки данных на сервер. Пример Stable Diffusion модели работающей в браузере с помощью WebGPU.

Пример симуляции частиц в браузере.

Для разработчиков новый стандарт позволит писать не только программы для графических вычислений, но общих для вычислений (gpgpu), как например с помощью CUDA или ROCM. Это можно использовать например в решения задач искусственного интеллекта и других областях. Хотя на практике, нативные API от вендоров видеокарт будут конечно же впереди и по производительности и доступу к разным новым возможностям.

Сайт с примерами WebGPU для разработчиков.

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

0
33 комментария
Написать комментарий...
Алексей Ступников

Наконец-то, джва год ждал

Ответить
Развернуть ветку
xyzw
Автор

Пилю свой проект на wgpu, наконец-то будет с кем обсудить. Раньше на меня смотрели на сумасшедшего когда я тут свои шейдеры на WGSL постил.

Ответить
Развернуть ветку
Lies of Andrei Apanasik

Оно того стоит?

Ответить
Развернуть ветку
xyzw
Автор

:) тут ответит каждый для себя

Для большинства думаю хватит поддержки WebGPU в одном из крупных движков. Это все таки очень низкоуровневая штука.

Я на нем недавно писал освещение для своего проекта, мне понравилось. https://www.youtube.com/watch?v=REZvGsNMOlo&ab_channel=VladimirZaytsev

Ответить
Развернуть ветку
Lies of Andrei Apanasik

Да не, я твои посты видел. Я в целом про трудо- и время- затраты при написании на таком уровне.

Ответить
Развернуть ветку
xyzw
Автор

Если вас не вставляет Vulkan, то WebGPU вам тоже не зайдет, у него такая же кривая изучения. Так что это больше конечно для авторов библиотек.

Или вам нужно что-то посчитать в compute шейдере которых в WebGL просто нет.

Ну либо вы супер про и любите все писать сами с нуля как Jonathan Blow или вот Кейси https://www.youtube.com/watch?v=Ge3aKEmZcqY&ab_channel=MollyRocket

Ответить
Развернуть ветку
Lies of Andrei Apanasik

Jonathan Blow, конечно, тот ещё задрот. В хорошем смысле)

Ответить
Развернуть ветку
xyzw
Автор

Если интересно, перевод старого сообщения от инженера NVIDIA про мотивацию в новых графических APIs. https://docs.google.com/document/d/1qbjxLAj7v-fM4N-oujlSp41CiuTFbmf1dhZquRNijtQ/edit

Ответить
Развернуть ветку
xyzw
Автор

Идеальный мир это где каждое поколение карт - свой апи и когда Джонатан Блоу тебе присылает свою игру со своей ОС под твое железо на USB thumbstick (потому что он еще не закончил писать свой сетевой стек).

Ответить
Развернуть ветку
Diesel

Тот есть теперь оно будет жрать не только всю память, что найдет на компе, а ещё и на видеокарте, постоянно чето там майнить и рендерить в фоне на гпу? Зоебис! Нраица!

Ответить
Развернуть ветку
Жора Носов

Оно и щас так делает

Ответить
Развернуть ветку
Mike Kozlov

Playcanvas уже заявили поддержку, что не может не радовать.
https://blog.playcanvas.com/initial-webgpu-support-lands-in-playcanvas-engine-1-62/

Ответить
Развернуть ветку
Аргентум С

Можно как то по проще - что я могу теперь делать?

Ответить
Развернуть ветку
xyzw
Автор

Можешь программировать почти как c Vulkan, только в браузере.

Ответить
Развернуть ветку
Аргентум С

ясно - ничего...

Ответить
Развернуть ветку
xyzw
Автор

Задай вопрос более конкретно)

Ответить
Развернуть ветку
Mike Kozlov

Они не понимают, из какого аниме эти картинки в посте, не обращай внимания.

Ответить
Развернуть ветку
Аргентум С

"Можешь программировать...

вопросов больше не имею

Ответить
Развернуть ветку
Hickey House

Для всего уже сделали библиотеки
Надеюсь, исполнение спецификации опенсорс-то хоть?

Ответить
Развернуть ветку
xyzw
Автор

В интернете полно форков с рейтрейсингом. Например этот https://www.youtube.com/watch?v=Z7Nf5UYppuc&ab_channel=xima

Ответить
Развернуть ветку
xyzw
Автор

Да, кончено. Статье есть ссылки на код от мозилы и гугл. Вот тут модули вебкит: https://github.com/WebKit/WebKit/commits/main/Source/WebCore/Modules/WebGPU

Ответить
Развернуть ветку
Верхненовокутлумбетьевский тип
задачь
wc3

К логопеду

Ответить
Развернуть ветку
xyzw
Автор

Окей. А как твой синдром называется?

Ответить
Развернуть ветку
Мих Мих.
Например симуляция физики

Лол. Нет.
Это отдельный рынок. И не опенсорсный

Ответить
Развернуть ветку
xyzw
Автор

Ты о чем? Думаю тут много рынков. Для игр рапира например опенсорсная и шустрая (лучше bullet или что там в юнити) https://rapier.rs/demos2d/index.html, создатели Horizon тоже заопенсорсили свою физику https://github.com/jrouwe/JoltPhysics

Ответить
Развернуть ветку
Мих Мих.

Это не симуляция физики, а её упрощеное подобие.
Физические симуляторы - это ansys, comsol, mumax, lumerical и прочие пакеты.

Ответить
Развернуть ветку
xyzw
Автор

Не нужно так дословно все воспринимать) В контексте гейдева это и есть симуляция физики.

Ответить
Развернуть ветку
Мих Мих.

Ну окей. Я, просто, лет 10 работаю с физическими симуляторамии и ловлю лулзы от таких заявлений.
Хотя, стоит отметить, что во времена gtx800-1000, Ansys работал с Nvidia над адаптацией алгоритмов под ширпотребные ГПУ. Потом правда забили. И поделили окончательно рынки.

Ответить
Развернуть ветку
xyzw
Автор

Я так понимаю все упирается в память? Из того что вижу, в какой нибудь A6000 Ada все те же самые фичи как и в 4090, но в два раза больше памяти и есть возможность поставить 4 штуки в один системник.

Ответить
Развернуть ветку
Мих Мих.

Дело не только в памяти, но и в самих алгоритмах. Их много и они специфичны. Quadro - карты не для расчётов, они позиционируются как серверные ГПУ для реализации множества виртуальных машин.
Для расчётов - Тесла. Но у неё архитектура другая и это по сути не видеокарта, а сопроцессор с дохулионом ядер.
Из тех решателей которые были на слуху - в ГПУ реализована только гидродинамика и механика в ansys.
Та же электродинамика и волновая оптика в ГПУ реализации не имеет. Вообще.

Ответить
Развернуть ветку
Анор Лондо

Бладборн 2 выйдет в Хроме, получается?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
xyzw
Автор

на гпу разве все еще кто-то майнит?

Ответить
Развернуть ветку
26 комментариев
Раскрывать всегда
null