#8622 parallel_for failed: cudaErrorInvalidDevice: invalid device ordinal:Traceback (most recent call last): File

240e**fecb Posted at: 1 hour ago

parallel_for failed: cudaErrorInvalidDevice: invalid device ordinal:Traceback (most recent call last):
File "videotrans\process\stt_faster.py", line 139, in faster_whisper
File "faster_whisper\transcribe.py", line 1851, in restore_speech_timestamps
File "faster_whisper\transcribe.py", line 1190, in generate_segments
File "faster_whisper\transcribe.py", line 1400, in encode
RuntimeError: parallel_for failed: cudaErrorInvalidDevice: invalid device ordinal

Traceback (most recent call last):
File "videotrans\task\only_one.py", line 71, in run
File "videotrans\task\_stage_recogn.py", line 64, in recogn
File "videotrans\recognition\__init__.py", line 148, in run
File "videotrans\recognition\_base.py", line 101, in run
File "videotrans\recognition\_whisper.py", line 39, in _exec
File "videotrans\recognition\_whisper.py", line 136, in _faster
File "videotrans\configure\base.py", line 277, in _new_process
videotrans.configure.excepts.VideoTransError: parallel_for failed: cudaErrorInvalidDevice: invalid device ordinal:Traceback (most recent call last):
File "videotrans\process\stt_faster.py", line 139, in faster_whisper
File "faster_whisper\transcribe.py", line 1851, in restore_speech_timestamps
File "faster_whisper\transcribe.py", line 1190, in generate_segments
File "faster_whisper\transcribe.py", line 1400, in encode
RuntimeError: parallel_for failed: cudaErrorInvalidDevice: invalid device ordinal

trk=[TransCreate]: uuid='04a62e936d', proxy_str=None, cfg=[TaskCfgVTT]当前工作模式: 翻译视频 单视频模式
原始输入文件名: C:/Users/Administrator/Desktop/15fd5bc672580d6bbde9385b51b913dd.mp4,
输出结果保存到文件夹: C:/Users/Administrator/Desktop/_video_out/15fd5bc672580d6bbde9385b51b913dd-mp4,
临时文件夹: E:/win-pyvideotrans-v4.17-1028/tmp/28956/04a62e936d
已选 清理已存在
已启用CUDA加速
语音识别:faster-whisper(内置), large-v3-turbo, 发音语言: 俄语, , 数据类型:default
发音语言和目标语言相同,不翻译字幕
未选 配音角色,不进行配音
字幕: 嵌入软字幕 , precent=4, hasend=False, should_recogn=True, should_trans=False, should_dubbing=False, should_hebing=True, is_copy_video=True, video_codec_num=264, ignore_align=False, is_audio_trans=False, clone_ref='', should_recogn2=False, do_diarize=True
video_duration_ms=591017


=
system:Windows-10-10.0.19045-SP0
version:v4.17
frozen:True
language:zh_CN
root_dir:E:/win-pyvideotrans-v4.17-1028

1 Replies

#1 DeepSeek reply at 1 hour ago

这是 CUDA 设备序号无效导致的:程序向 CUDA 传入了当前机器上不存在的 GPU 索引(例如只装了 1 张卡,却传入了 device=1),或索引 0 对应的是核显/不可用于 CUDA 的设备。这不是模型或字幕的问题,纯粹是设备分配错误,与显存不足无关。

排查与解决

1. 先做对照验证(最快)
取消勾选主界面 CUDA加速,用纯 CPU 跑一次。若正常完成,则可 100% 确认是 GPU 设备序号问题,不是软件功能问题。

2. 检查环境变量是否被写死
按下 Win+R → 输入 sysdm.cpl → 高级 → 环境变量,检查系统变量和用户变量中是否有人为设置了 CUDA_VISIBLE_DEVICES。

  • 若值为 1、2 等而机器只有一张卡,会直接触发此报错 → 删除该变量后重启软件。
  • 该值也会在受影响进程中遮蔽真实设备数量。

3. 多显卡(核显 + 独显)机器
软件默认取索引为 0 的设备。部分笔记本/台式机会把 Intel/AMD 核显枚举为 0 号设备,N 卡为 1 号,于是索引 0 无法执行 CUDA 计算。

  • 打开 NVIDIA 控制面板 → 管理 3D 设置 → 程序设置,将 sp.exe 添加进去,首选图形处理器设为高性能 NVIDIA 处理器;
  • Windows 设置 → 系统 → 显示 → 图形设置,为 sp.exe 指定「高性能」。

4. 依赖环境复核

  • 显卡驱动更新到最新版(CUDA 12.8 对驱动版本有底线要求);
  • 确认 CUDA 12.8 + cuDNN 9.11 已正确安装,且 cuDNN 的 bin、lib 已完整加入系统 Path;
  • 确认是 NVIDIA 显卡(AMD/Intel 显卡不支持 CUDA 加速)。

5. 降低并发生成压力
菜单 → 工具/选项 → 高级选项 → 通用设置 中,将 GPU同时任务数[重启生效] 设为 1,保存后重启软件。

6. 兜底方案
若上述均无效,改用 CPU 识别(取消 CUDA加速),并将模型从 large-v3-turbo 降为 medium 或 small 以缩短耗时;或换用 Qwen-ASR(内置)、阿里FunASR(内置) 等渠道。

备注:本次是单视频、俄语、只识别不翻译不配音、嵌入软字幕的任务,报错发生在语音识别阶段的 encode 环节,后续流程尚未开始,取消 CUDA 后重跑需勾选 清理已生成。

请查阅相关文档:

Thinking...
Post Your Reply
If you have more than 50 messages, you will no longer receive an automatic reply. Please ask a new question!
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Dondate via ko-fi.com

Related resource