Энтузиаст перенес нейросеть NVIDIA DLSS 5 в веб, используя WebGPU
Разработчик под ником MAAN представил экспериментальную реализацию DLSS 5, которая работает непосредственно в окне веб-браузера. Для этого энтузиаст использовал WebGPU - современный графический API, позволяющий выполнять вычисления на GPU без необходимости запускать нативное приложение.
Демо уже доступно для тестирования и размещено на платформе Cloudflare Workers. В качестве демонстрационной сцены используется модель «Ковбой-дедуля», однако пользователи могут самостоятельно загрузить собственные 3D-модели и сравнить исходное изображение с результатом обработки DLSS 5.
DLSS 5 без игрового движка
Официальные средства интеграции DLSS от NVIDIA рассчитаны на работу в нативных приложениях и игровых движках через технологии вроде NGX и Streamline SDK. Поддержка браузерных API, включая WebGPU, в стандартных инструментах компании не заявлена.
MAAN пошёл другим путём и реализовал необходимые вычисления непосредственно в шейдерах WebGPU. По словам разработчика, для проекта использовались веса нейросетевой модели, извлечённые из библиотечного файла объёмом около 147 МБ. При этом JavaScript-часть реализации занимает примерно 1 МБ.
Такой подход позволяет запускать демонстрацию на значительно более широком наборе устройств. В частности, проект работает на компьютерах Apple с чипами Silicon под управлением macOS, несмотря на то, что технология NVIDIA изначально ориентирована на собственную экосистему RTX.
Пока только эксперимент
У браузерной реализации есть серьёзное ограничение - производительность. На видеокарте уровня GeForce RTX 4090 сама сцена остаётся интерактивной, однако обработка отдельного кадра занимает примерно одну-две секунды.
Поэтому использовать такую реализацию DLSS 5 в современных играх пока невозможно. При этом технология может оказаться интересной для менее требовательных к задержке задач: интерактивных 3D-просмотров, архитектурной визуализации, онлайн-каталогов моделей и образовательных проектов.
MAAN также планирует опубликовать исходный код проекта на GitHub. Это позволит другим разработчикам изучить принцип работы реализации и попробовать перенести подобные нейросетевые технологии в браузерные приложения.