fix(transcriber): распознавание cublas/cudnn ошибок и уточнение версии CUDA
- Зачем: - cublas64_12.dll not found не распознавалась как CUDA-ошибка, fallback на CPU не срабатывал - Что: - _is_cuda_error теперь матчит cublas и cudnn в дополнение к cuda и out of memory - README: добавлен шаг GPU-ускорения в установку, зафиксирована CUDA 12 (ctranslate2 4.7) - Проверка: - uv run pytest (97 passed) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -30,7 +30,14 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
|
|||||||
uv tool install git+https://github.com/dementev-dev/local-transcriber
|
uv tool install git+https://github.com/dementev-dev/local-transcriber
|
||||||
```
|
```
|
||||||
|
|
||||||
**3. Готово:**
|
**3. (Опционально) GPU-ускорение:**
|
||||||
|
|
||||||
|
Если есть NVIDIA GPU — транскрипция будет в 5–10× быстрее. Требуется **CUDA 12** (ctranslate2 4.7 не совместим с CUDA 11 и 13).
|
||||||
|
|
||||||
|
- **Windows**: `winget install -e --id Nvidia.CUDA --version 12.9` (от администратора), перезапустить терминал
|
||||||
|
- **Linux / WSL2**: работает из коробки (нужен только драйвер: `nvidia-smi`)
|
||||||
|
|
||||||
|
**4. Готово:**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
transcribe meeting.mp4
|
transcribe meeting.mp4
|
||||||
@@ -103,7 +110,7 @@ transcribe *.mp4 --force
|
|||||||
| | Linux / WSL2 | macOS | Windows |
|
| | Linux / WSL2 | macOS | Windows |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| CPU | ✅ | ✅ | ✅ |
|
| CPU | ✅ | ✅ | ✅ |
|
||||||
| GPU (NVIDIA) | ✅ авто | — | ✅ (нужен CUDA toolkit) |
|
| GPU (NVIDIA) | ✅ авто | — | ✅ (нужен CUDA 12) |
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Linux / WSL2</summary>
|
<summary>Linux / WSL2</summary>
|
||||||
@@ -126,9 +133,9 @@ transcribe *.mp4 --force
|
|||||||
<summary>Windows</summary>
|
<summary>Windows</summary>
|
||||||
|
|
||||||
- CPU работает из коробки
|
- CPU работает из коробки
|
||||||
- Для GPU нужен CUDA toolkit:
|
- Для GPU нужен **CUDA 12** (ctranslate2 4.7 не совместим с CUDA 11 и 13):
|
||||||
```
|
```
|
||||||
winget install -e --id Nvidia.CUDA
|
winget install -e --id Nvidia.CUDA --version 12.9
|
||||||
```
|
```
|
||||||
> `winget install` требует запуска от имени администратора (elevated terminal).
|
> `winget install` требует запуска от имени администратора (elevated terminal).
|
||||||
> `uv tool install` работает без админа (ставит в пользовательскую директорию).
|
> `uv tool install` работает без админа (ставит в пользовательскую директорию).
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ def _create_model(model_name: str, device: str, compute_type: str):
|
|||||||
|
|
||||||
def _is_cuda_error(exc: BaseException) -> bool:
|
def _is_cuda_error(exc: BaseException) -> bool:
|
||||||
msg = str(exc).lower()
|
msg = str(exc).lower()
|
||||||
return "cuda" in msg or "out of memory" in msg
|
return any(k in msg for k in ("cuda", "cublas", "cudnn", "out of memory"))
|
||||||
|
|
||||||
|
|
||||||
def _is_missing_socksio_error(exc: BaseException) -> bool:
|
def _is_missing_socksio_error(exc: BaseException) -> bool:
|
||||||
|
|||||||
Reference in New Issue
Block a user