EN

l2hyunwoo/webgpu-inference: Kotlin GPU-рантайм для Android на WebGPU

Опубликовано: 2026-09-26 · Автор: AI Release · @ai_release1
l2hyunwoo/webgpu-inference: Kotlin GPU-рантайм для Android на WebGPU

⚡ Главное за 5 секунд - Суть: Появился экспериментальный Kotlin-рантайм l2hyunwoo/webgpu-inference для GPU-инференса на Android, построенный на AndroidX WebGPU. Он поддерживает статические FP32-модели, пользовательские WGSL-ядра, переиспользуемые сессии и явные бюджеты GPU-буферов. - Доступность: Код опубликован на GitHub, но библиотека не выпущена в Maven Central и не предназначена для продакшена — требуется сборка из исходников. - Главное ограничение: API могут меняться, стабильность и совместимость не подтверждены; нет FP16, динамических форм и прямой загрузки ONNX/TFLite/GGUF. ### 🔍 Что обнаружено Репозиторий l2hyunwoo/webgpu-inference содержит компактный GPU-инференс-рантайм для Android, написанный на Kotlin и использующий AndroidX WebGPU 1.0.0-alpha05. Набор возможностей включает статические FP32-тензоры, создание моделей в Kotlin или через экспортированный граф (в последнем случае — один вход и один выход), несколько именованных входов/выходов в Kotlin, регистрацию кастомных WGSL-ядер, переиспользование сессий и промежуточных буферов, а также контроль максимального размера GPU-буфера (в примере — 256 МБ). Демо-приложение WebGPU Denoise Lab выполняет тайловое шумоподавление фотографий с помощью NAFNet: пользователь выбирает JPEG/PNG, запускает обработку, сравнивает результат слайдером и сохраняет PNG. Демо работает с 25% рабочим циклом инференса. В измерении на SM-S948N при 100 инференсах NAFNet FP32 с разрешением 256×256 медианное время составило 266,0 мс, p95 — 506,2 мс, а инициализация заняла 2,29 с. Использовался debug-APK, патченная WebGPU alpha05; все 100 результатов прошли проверку по PyTorch-эталону. В измерение входят загрузка входных данных, кодирование команд, выполнение на GPU и чтение результата, но не входят декодирование фото, тайлинг, паузы и экспорт PNG — это не полное время обработки изображения. Также подчёркивается, что это данные одного устройства и сессии, а не сравнение с другими рантаймами. ### 💡 Почему это важно Проект даёт Android-разработчикам рабочий пример интеграции WebGPU для локального инференса нейросетей. Вместо привязки к специфическим библиотекам или системным API, предлагается единый Kotlin-интерфейс: определение модели, загрузка весов, настройка параметров сессии и выполнение с результатами в FloatArray. Это упрощает эксперименты с GPU-вычислениями в мобильных приложениях и обеспечивает бенчмарк для оценки производительности (медиана 266 мс на 256×256 NAFNet в отладочной сборке). Наличие пользовательских WGSL-ядер и контроля над буферами даёт гибкость для оптимизации. ### 🧩 Контекст Репозиторий создан для экспериментов, поэтому библиотека не публикуется во внешние репозитории, а предобученные веса не включены — их нужно готовить отдельно. Код библиотеки распространяется под MIT, но к источникам моделей и весам применяются отдельные условия. Текущая версия не поддерживает FP16 и динамические формы тензоров, не предоставляет публичных API для GPU-resident данных и не загружает напрямую ONNX, TFLite или GGUF. Демо обрабатывает фотографии тайлами, что в случае NAFNet может отличаться от цельного инференса из-за глобального пулинга, а RAW/HDR-изображения не поддерживаются. Сборка требует JDK 21, Android SDK 37, Python 3.12+, CMake, Ninja и Android NDK 28.2.13676358; демо-приложение работает на Android 8.0+ с совместимым GPU.

🔗 Читать на github.com

🤖 Кратко для ИИ
androidgpuwebgpukotlin
📖
Читать гайд по теме
Читать →
← ПредыдущаяКомпактная семантика проекта для кодового агента: 4 файла вместо ConfluenceСледующая →Microsoft выводит Windows Deployment Services из Windows Server

Источник: github.com · пост в Telegram