Что будет дальше с WebGPU

Франсуа Бофор
François Beaufort

Опубликовано: 21 ноября 2024 г.

Спецификация WebGPU постоянно развивается, и крупные компании, такие как Google, Mozilla, Apple, Intel и Microsoft, еженедельно встречаются, чтобы обсудить ее развитие. Последняя встреча рабочей группы по GPU для Web позволила взглянуть на основные цели и функции, запланированные на следующую итерацию WebGPU. В этом сообщении блога рассматриваются некоторые ключевые выводы встречи.

Достижение статуса рекомендации кандидата

Основное внимание на встрече было посвящено обсуждению хода выполнения этапа 0 и завершению решения вопросов, которые необходимо решить, прежде чем он сможет получить статус кандидата на рекомендацию для W3C. Это следующий шаг в процессе стандартизации, который дает более серьезные гарантии стабильности и защиты интеллектуальной собственности.

Среди участников встречи было общее мнение, что они не являются блокировщиками и что эти проблемы могут быть решены своевременно, что открывает путь для рекомендации кандидата W3C для WebGPU.

Приоритизация новых функций

Участники встречи также определили приоритетность новых функций. Они начали со списка запросов на функции, составленного на основе отзывов разработчиков, разработчиков и заинтересованных сторон.

Доска с рукописным списком терминов, связанных с API компьютерной графики, включая «Биндлесс», «Подгруппы», «MDI», «Push Constants», «UMA», «Матрица подгрупп» и другие.

После обсуждения были определены следующие ключевые функции WebGPU для ИИ:

  • Подгруппы и матрицы подгрупп . Позвольте приложению использовать быструю локальную связь между потоками графического процессора и использовать преимущества оборудования умножения матриц фиксированного размера рядом с шейдерными ядрами. См. предложение подгрупп .

  • Буферы текселей : обеспечивают более эффективный способ переносимого хранения и доступа к небольшим типам данных, например 16-битным или 8-битным значениям. Это важно для некоторых алгоритмов обработки изображений ML. См . слайды с буфером текселей .

  • Отображение буфера UMA : повышение производительности загрузки данных за счет сокращения или устранения накладных расходов на копирование и синхронизацию. См . спецификацию 2388 .

Также на рассмотрении и определении приоритетов находятся следующие функции WebGPU, позволяющие разблокировать новые виды алгоритмов рендеринга:

  • Bindless : эта долгожданная функция является обязательным условием для большинства передовых алгоритмов рендеринга, поскольку им нужна информация всей сцены. Bindless позволяет шейдерам использовать неограниченное количество ресурсов, включая текстуры, по сравнению с относительно строгими ограничениями, действующими в настоящее время.

  • Косвенная множественная отрисовка : позволяет предыдущим вычислениям на графическом процессоре создавать несколько отрисовок вместо одной с помощью drawIndirect ранее. Это важная возможность для рендеринга с использованием графического процессора, например, для отсеивания объектов с помощью графического процессора. См. запрос на включение 2315 .

  • 64-битная атомика : либо в буферах, либо в текстурах, она необходима для выполнения «программной растеризации» на графическом процессоре путем объединения теста глубины и записи 32-битной полезной нагрузки в одну atomicMax . См . выпуск 4329 .

Для расширения возможностей WebGPU и интеграции с более широкой веб-платформой были обсуждены следующие функции WebGPU:

  • Режим совместимости : этот режим позволяет WebGPU работать на более широком спектре устройств, включая те, которые поддерживают только OpenGL ES 3.1. См. предложение режима совместимости .

  • WebXR : позволяет существующему модулю слоев WebXR взаимодействовать с WebGPU, предоставляя цепочки подкачки WebGPU для каждого типа слоя. См . слайды «Интеграция WebGPU/WebXR» .

  • Canvas2D : Обеспечивает лучшую совместимость между Canvas 2D и WebGPU, решая проблемы с производительностью и эргономикой. Это предложение по передаче WebGPU позволит иметь доступ к рисованию текста и путей в WebGPU, а также применять рендеринг WebGPU к Canvas 2D.

На встрече также были представлены презентации и обсуждения усилий по улучшению инструментов и библиотек WGSL. Одной из примечательных инициатив является разработка WESL (WGSL Extended Shading Language), целью которой является предоставление набора расширений для WGSL, управляемого сообществом.

Дополнительную информацию можно найти в необработанных заметках о встрече .

Мысли

Эта встреча подчеркнула важность сотрудничества между рабочей группой WebGPU, разработчиками и более широким графическим сообществом в формировании будущего WebGPU. Рабочая группа активно ищет отзывы о предлагаемых функциях и стремится работать с разработчиками, чтобы гарантировать, что WebGPU отвечает их потребностям.

Следующие этапы развития WebGPU обещают стать значительным шагом вперед, открыв новые возможности для веб-графики и предоставив разработчикам возможность создавать еще более захватывающие и увлекательные веб-интерфейсы для ИИ.