Files
local-transcriber/docs/gpu.md
Dmitry DementievandClaude Opus 4.6 617181f2dc feat(openvino): добавлена поддержка Intel GPU через OpenVINO
- Зачем:
  - OpenVINO backend хардкодил "CPU", хотя Intel Arc GPU доступен и даёт ~2x ускорение.
- Что:
  - новые device modes: --device openvino-gpu, openvino-cpu; openvino — авто-детект GPU/CPU.
  - detect_device() проверяет Intel GPU через OpenVINO Core API (с fail-safe).
  - OpenVINOBackend передаёт "GPU"/"CPU" в WhisperPipeline вместо хардкода "CPU".
  - подсказка "Совет: --model large-v3" при наличии GPU и модели не large-v3.
  - .gitattributes для нормализации line endings (eol=lf).
  - 150 тестов, включая GPU detection, routing, fallback, CLI device info.
  - README, docs/gpu.md, docs/PRD.md обновлены для Intel GPU.
- Проверка:
  - uv run pytest (150 passed).
  - uv run transcribe --device openvino-gpu file.mp4 на Intel Arc 140T GPU.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:45:27 +03:00

8.8 KiB
Raw Permalink Blame History

Ускорение транскрипции

Режимы --device

  • auto (по умолчанию) — CUDA → OpenVINO GPU → OpenVINO CPU → CPU (первый доступный)
  • cuda — строго NVIDIA GPU, ошибка если недоступен
  • openvino — авто-выбор OpenVINO GPU или CPU
  • openvino-gpu — строго Intel GPU через OpenVINO
  • openvino-cpu — строго CPU через OpenVINO (ускорение 2-4x на x86)
  • cpu — строго CPU (faster-whisper/CTranslate2)

Какой бэкенд на каком оборудовании

Оборудование Рекомендуемый --device Бэкенд Ожидаемая скорость
NVIDIA GPU (6+ GB VRAM) auto / cuda faster-whisper (CTranslate2) 7-19x реалтайм
Intel Arc iGPU / dGPU auto / openvino-gpu OpenVINO GenAI (GPU) TBD
Intel/AMD x86 CPU auto / openvino-cpu OpenVINO GenAI (CPU) 3-6x реалтайм*
Любой CPU (fallback) cpu faster-whisper (CTranslate2) ~1.5x реалтайм
Apple Silicon (macOS) cpu faster-whisper (CTranslate2) ~2x реалтайм

* По результатам тестирования на Intel и AMD CPU. Реальная скорость зависит от CPU и модели.

OpenVINO

OpenVINO ускоряет inference на x86 процессорах (Intel и AMD) через оптимизированные инструкции (AVX2, AVX-512, VNNI, AMX). Ставится автоматически на Linux и Windows (x86_64/AMD64).

  • Модели: предконвертированные из HuggingFace (int8/fp16)
  • Дефолт: medium + int8 (для large-v3 автоматически выбирается fp16)
  • Аудиодекодирование: через PyAV (бандлит FFmpeg), системный ffmpeg не нужен

Доступные OpenVINO модели

Модель int8 fp16
tiny OpenVINO/whisper-tiny-int8-ov
base OpenVINO/whisper-base-fp16-ov
small OpenVINO/whisper-small-int8-ov
medium OpenVINO/whisper-medium-int8-ov
large-v3 OpenVINO/whisper-large-v3-int8-ov OpenVINO/whisper-large-v3-fp16-ov

Результаты тестирования OpenVINO

Реальные записи рабочих созвонов (русский, техтермины: SQL, PostgreSQL, LDAP, DLP и др.).

Скорость (эталонный файл 16 мин, OpenVINO, medium int8):

CPU medium int8 large-v3 fp16 CPU float32 (baseline)
Intel Ultra 7 255H 122с 411с
AMD Ryzen 7 8845H 185с 416с 734с
Intel i7 (WSL2) 171-205с 658с

Ускорение vs CPU float32: 3-6x в зависимости от CPU.

OpenVINO small int8 (Intel i7 WSL2):

Файл small int8 medium int8
16 мин 93с 171с
42 мин 153с (~16x реалтайм) 413с

Качество (сравнение на одном файле, 16 мин, OpenVINO int8/fp16, Intel CPU):

small int8 medium int8 large-v3 fp16
Время (16 мин) 93с 171с 416с
Время (42 мин) 153с 413с
Ключевые слова искажения ("бокап", "рецензия") единичные ляпы корректно
Пунктуация слабая базовая хорошая
Галлюцинации нет нет нет

Рекомендации по выбору модели

  • small — для быстрого сканирования большого объёма видео по маске (*.mp4). Ошибки в отдельных словах; для обработки ИИ (МОМ, конспект) рискованно — "рецензия" вместо "лицензия" может исказить смысл.
  • medium — для повседневного использования и обработки ИИ. Ключевые термины верные, единичные ляпы не влияют на смысл конспекта. Оптимальный баланс скорости и качества.
  • large-v3 — для важных записей, где нужна дословная точность. Лучшая пунктуация и связность. На OpenVINO (416с) быстрее, чем medium на чистом CPU (734с) — лучшее качество при выше скорости.

Настройка по платформам

Linux / WSL2 (x86_64)

Библиотека cuBLAS ставится автоматически (зависимость nvidia-cublas-cu12 подтягивается при установке). Дополнительных шагов не требуется.

На ARM (aarch64) cuBLAS через pip недоступен — нужен системный CUDA toolkit.

Windows

Нужен системный CUDA 12 (ctranslate2 4.7 не совместим с CUDA 11 и 13):

winget install -e --id Nvidia.CUDA --version 12.9   # требует запуска от имени администратора

После установки перезапустите терминал.

Совместимость GPU

GPU VRAM medium float16 large-v3 float16 Рекомендация
RTX 3060 6 GB medium float16 (дефолт)
RTX 4050 6 GB medium float16
Quadro M3000M 4 GB ⚠️ tight medium float16 или int8

Ожидаемая скорость

Замеры на RTX 3060 Laptop (6 GB) и Intel CPU (WSL2):

Конфигурация 16 мин файл 42 мин файл Отн. скорость
GPU + medium float16 ~35с ~133с ~19x реалтайм
GPU + large-v3 float16 ~90с ~350с ~7x реалтайм
OpenVINO + small int8 93с 153с ~10-16x реалтайм
OpenVINO + medium int8 171-205с 413с ~4-6x реалтайм
OpenVINO + large-v3 fp16 416с ~2.3x реалтайм
CPU + medium float32 658с (11 мин) ~26 мин ~1.5x реалтайм
CPU + large-v3 int8 839с (14 мин) ~37 мин ~1:1 реалтайм

Результаты тестирования качества

Тесты проведены на реальных записях рабочих созвонов (русский язык, технические термины: SQL, PostgreSQL, Greenplum, Airflow, ClickHouse, Docker, CDR, GTP, MAP).

Конфигурация Качество (длинная запись, 42 мин) Проблемы
large-v3 int8 GPU Плохо Галлюцинации (фразы ×25), потеря контента
large-v3 float16 GPU Отлично
medium float16 GPU Хорошо Редкие мелкие ляпы в терминах
medium float32 CPU Хорошо Сопоставимо с large-v3 int8, без галлюцинаций
large-v3 int8 CPU Хорошо Без галлюцинаций (на коротких файлах)

Ключевые выводы

  1. Указание языка (--language ru) критично — auto-detect может ошибиться и выдать мусор
  2. float16/float32 стабильнее int8 — особенно на записях >20 минут
  3. medium + float16 на GPU — лучший баланс скорости и качества для повседневного использования
  4. large-v3 + float16 на GPU — для максимального качества важных записей

Troubleshooting

CUDA не обнаружен

Убедитесь, что nvidia-smi возвращает информацию о GPU. Драйвер NVIDIA предоставляет libcuda.so.1, без которого CUDA не работает — его нельзя поставить через pip.

Windows: ошибка при загрузке модели на GPU

GPU на Windows требует CUDA 12 (ctranslate2 4.7 не совместим с CUDA 11 и 13). Установите:

winget install -e --id Nvidia.CUDA --version 12.9   # требует запуска от имени администратора

После установки перезапустите терминал.

ARM (aarch64)

cuBLAS через pip недоступен на ARM — нужен системный CUDA toolkit.