Как запустить ML-модели на любом железе без CUDA: опыт PostSlate с Vulkan
Команда видеоредактора PostSlate показала, как ncnn с Vulkan-бэкендом решает проблему кросс-платформенного inference на клиентских устройствах. Вместо CUDA (только NVIDIA) они получили 10-кратное ускорение распознавания лиц на любых GPU — от Intel интегрированных до Apple Silicon — без установки дополнительных рантаймов.
Если вы делаете приложение с ML-фичами для конечных пользователей (не датасаентистов), вопрос «как это запустить на любом железе» встанет в первый же день. Этот кейс показывает рабочее решение, которое уже в проде.
Что произошло
Команда PostSlate (видеоредактор) поделилась опытом запуска ML-моделей на устройствах пользователей с разным железом. Задача: детекция лиц и эмбеддинги работают локально, но GPU у всех разные — NVIDIA, AMD, Intel интегрированные, Apple Silicon.
CUDA отпала сразу: привязка к одному вендору. Решение — ncnn с Vulkan-бэкендом. На RTX 4070 в fp16:
- ArcFace R50 (эмбеддинги лиц): с 30 мс на ONNX CPU до 3 мс на ncnn Vulkan
- SCRFD (детекция): с 25 мс до 2,5 мс
- Размер модели: со 174 МБ (ONNX fp32) до 87 МБ (ncnn fp16)
Главное не скорость, а универсальность: драйверы Vulkan уже есть на всех машинах. Пользователю не нужно ничего доустанавливать, никаких вендор-специфичных рантаймов. Одна сборка работает везде.
Полные цифры и детали — в их блоге на getpostslate.com/blog/faster-local-inference.
Автор: Никита Громов · Источник: reddit.com
Разработчикам. ncnn + Vulkan дают кросс-платформенный inference без привязки к CUDA. Один бэкенд для всех GPU, драйверы уже на месте, fp16 из коробки. Хороший вариант для desktop-приложений с ML на борту — не нужно тащить TensorRT или DirectML отдельно.
Бизнесу. Локальный inference без зависимости от облака и вендора GPU = меньше поддержки, быстрее время до релиза. Для B2C-продуктов (редакторы, камеры, утилиты) это снижает барьер входа и издержки на онбординг пользователей.
Инвесторам. Растущий спрос на edge AI в потребительских приложениях. Решения вроде ncnn/Vulkan снижают технический долг стартапов и ускоряют time-to-market для AI-фич в desktop- и мобильных продуктах.
- Форкнуть ncnn и упаковать в SDK для desktop-приложений с AI — редакторы фото/видео, дизайн-инструменты, утилиты для стримеров
- SaaS для конвертации ONNX/PyTorch моделей в оптимизированные ncnn-бинарники с гарантией работы на всех GPU
- Консалтинг для indie-разработчиков и малых студий: интеграция локального inference в существующие desktop-продукты без vendor lock-in
- Обёртка над ncnn для Electron/Tauri-приложений с готовыми биндингами на JS/Rust и примерами для распространённых задач (детекция, классификация, генерация)
- Marketplace пре-конвертированных популярных моделей (YOLO, CLIP, Whisper) для ncnn с бенчмарками на разном железе
- ncnn — нишевой фреймворк от Tencent, документация и комьюнити заметно меньше чем у ONNX Runtime или TensorFlow Lite. Риск проблем с поддержкой
- Vulkan универсален, но реализации драйверов у вендоров разные — возможны баги на старых/экзотических GPU, особенно Intel и AMD мобильных
- Для серверного inference это не подходит — там CUDA и специализированное железо всё равно быстрее и стабильнее
- Хайп вокруг edge AI часто переоценивает долю задач, где локальный inference действительно нужен и выгоднее облака
Это классический инженерный кейс из траншей продакшена. Команда решала конкретную боль: как детектить лица в видеоредакторе, если у одного юзера MacBook, у другого игровой комп с RTX, у третьего офисный ноут с Intel UHD. CUDA отпадает сразу, ONNX Runtime на CPU медленный, DirectML только Windows. ncnn с Vulkan — компромисс, который работает везде и даёт приемлемую скорость.
Реальная ценность не в абсолютных цифрах (на серверах всё равно быстрее), а в том, что это снимает головную боль с дистрибуцией. Пользователь скачал приложение — оно сразу работает, никаких «установите CUDA 11.8 и cuDNN 8.6». Для B2C это критично. Если делаете что-то похожее (утилиты с AI, редакторы, камеры) — присмотритесь, это не хайп, это рабочий стек.
Комментарии