#4154 无法正常调用GPU进行加速的问题

156.229* Posted at: 3 hours ago 👁59

问题1:人声分离部分,不调用我的英伟达独立GPU(16gb显存)加速。速度非常慢。
问题2:人声分离后的部分,一开始调用独立GPU进行加速,GPU使用率到40%~50%,然后突然GPU使用率掉到底,软件报错。
报错截图如下:
image
image
报错日志如下:
出错了,可能内存或显存不足 Model:large-v3-turbo GPU0
Traceback (most recent call last):
File "videotrans\configure\_base.py", line 285, in _new_process
File "concurrent\futures\_base.py", line 458, in result
File "concurrent\futures\_base.py", line 403, in __get_result
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

Traceback (most recent call last):
File "videotrans\configure\_base.py", line 285, in _new_process
File "concurrent\futures\_base.py", line 458, in result
File "concurrent\futures\_base.py", line 403, in __get_result
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 44, in run
File "videotrans\task\trans_create.py", line 361, in recogn
File "videotrans\recognition\__init__.py", line 293, in run
File "videotrans\recognition\_base.py", line 143, in run
File "videotrans\recognition\_overall.py", line 33, in _exec
File "videotrans\recognition\_overall.py", line 105, in _faster
File "videotrans\configure\_base.py", line 303, in _new_process
RuntimeError: 出错了,可能内存或显存不足 Model:large-v3-turbo GPU0
Traceback (most recent call last):
File "videotrans\configure\_base.py", line 285, in _new_process
File "concurrent\futures\_base.py", line 458, in result
File "concurrent\futures\_base.py", line 403, in __get_result
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

23 Replies

问题1(人声分离不调用GPU)和问题2(GPU使用率骤降后报错)的根本原因是显存不足。虽然您有16GB显存,但large-v3-turbo模型本身需求较高,且人声分离与语音识别可能并行运行,导致总显存需求超过16GB,从而进程崩溃。

解决方案:

  1. 降低语音识别模型规格:在主界面的“语音识别”下拉菜单中,将模型从 large-v3-turbo 更换为更小的模型,例如 mediumsmalllarge-v3系列模型最低需要约10GB显存,在同时处理其他任务时容易耗尽16GB显存。
  2. 调整高级设置以降低显存占用

    • 点击顶部菜单 工具/选项 -> 高级选项
    • 【语音识别参数】 区域进行以下修改:

      • CUDA数据类型:将 float32 改为 float16int8
      • 识别准确度beam_size:将 5 改为 1
      • 识别准确度best_of:将 5 改为 1
      • 启用上下文感知:确保此项为 false(不勾选)。
  3. 检查并限制并行任务数

    • 【通用设置】 区域,确保 GPU同时任务数[重启生效] 设置为 1(除非单卡显存大于20GB)。修改后需要重启软件生效。
    • 如果同时处理多个视频,可以勾选 批量翻译时强制串行,避免多个任务竞争显存。
  4. 关于人声分离的GPU调用:人声分离功能(如使用UVR等模型)本身可能未针对GPU进行深度优化,或软件默认配置未启用其GPU加速。目前知识库未提供其专用的GPU开启方法。您可以尝试在 【语音识别参数】 区域调整 人声背景分离线程数,增加CPU线程数可能提升分离速度。

如果以上调整后问题依旧,请提供软件根目录下 logs 文件夹中最新日志文件的底部约30行内容,以便进一步分析。

请查阅相关文档:

可是GPU使用率并未到达到60%以上。

GPU使用率未达到60%以上,但依然报显存不足,这通常是因为显存(VRAM)被占满,而非GPU计算核心(CUDA Cores)使用率满载。显存是存储模型和数据的地方,而GPU使用率反映的是计算单元的活跃程度。大型模型(如large-v3-turbo)加载时就会占用大量显存,即使计算不繁忙,显存也可能已耗尽。

解决方案:

  1. 首要措施:更换更小的语音识别模型

    • 在主界面“语音识别”下拉菜单中,立即将模型从 large-v3-turbo 更换为 mediumsmall。这是最直接有效的办法。large-v3-turbo 对显存要求极高,在您16GB显存的显卡上,同时运行人声分离和语音识别极易导致显存溢出。
  2. 验证显存实际占用

    • 在任务开始前,打开Windows任务管理器,切换到“性能”选项卡,选择您的GPU,查看“专用GPU内存”的使用情况。如果接近或达到16GB,则证实是显存问题。
  3. 调整高级设置(针对更换后的小模型进一步优化)

    • 点击 菜单 -> 工具/选项 -> 高级选项
    • 【语音识别参数】 区域,进行如下设置以进一步降低显存需求:

      • CUDA数据类型:选择 int8(显存占用最低,速度最快,精度略有下降)。
      • 识别准确度beam_size:设为 1
      • 识别准确度best_of:设为 1
      • 启用上下文感知:确保为 false(不勾选)。
  4. 检查并行任务限制

    • 【通用设置】 区域,确认 GPU同时任务数[重启生效] 设置为 1。修改后需要重启软件。
  5. 关于人声分离速度

    • 人声分离功能可能主要依赖CPU或未充分调用GPU。您可以在 【语音识别参数】 区域尝试增加 人声背景分离线程数,利用更多CPU核心来加速。

总结:请优先执行第1步,更换为 medium 模型。如果问题解决,则确认是 large-v3-turbo 模型显存需求过高所致。如果更换模型后仍报错,请提供调整后的新日志。

请查阅相关文档:

人声分离仅在CPU上运行,不使用GPU。分离模型是 onnx 类型,难以在同个打包中加入 cpu和gpu支持,因此仅使用CPU进行人声背景分离

image
专用GPU为GPU 1,但是报错信息中,是GPU 0的显存不够,可能是程序问题吧

根据开发者回复,人声分离功能仅在CPU上运行,不使用GPU。因此,问题1(人声分离不调用GPU)是正常现象。

问题2(GPU使用率骤降后报错)的根本原因已明确:软件错误地尝试在显存不足的 GPU 0 上运行语音识别任务,而您的独立显卡是 GPU 1。这导致 large-v3-turbo 模型加载失败,进程崩溃。

解决方案:

  1. 首要措施:更换语音识别模型
    在主界面的“语音识别”下拉菜单中,将模型从 large-v3-turbo 更换为更小的模型,例如 medium。large-v3-turbo 模型显存需求过高,是导致报错的直接原因。
  2. 关键步骤:指定使用正确的GPU(GPU 1)
    此问题在 v3.99 版本中已优化。请确保您使用的是 v3.99 或更高版本。该版本会在有多个可用显卡时,默认选择可用显存最大的那块(即您的 GPU 1)。

    • 检查版本:启动软件后,查看主界面标题栏或关于窗口确认版本号。
    • 升级软件:如果版本低于 v3.99,请前往官网下载最新完整包覆盖安装。
  3. 辅助优化(更换模型后执行)
    点击 菜单 -> 工具/选项 -> 高级选项,在 【语音识别参数】 区域进行如下设置,以进一步降低显存占用和提升稳定性:

    • CUDA数据类型:改为 int8
    • 识别准确度beam_size:设为 1
    • 识别准确度best_of:设为 1
    • 启用上下文感知:确保为 false(不勾选)。

执行顺序:请先执行第1步(更换模型)和第2步(确认/升级到v3.99)。这应能解决大部分问题。如果仍有异常,再执行第3步进行微调。

请查阅相关文档:

并非如此,GPU 0 是指识别出来的可用CUDA的GPU总数的第一个,AMD GPU不可用于CUDA,不会被识别出来。

可先尝试使用 base 或 tiny 模型试试

打开 logs下日志文件,搜索 可用显存为 ,查看识别出来的可用显存为多少

从win-pyvideotrans-v3.99-417,升级成了win-pyvideotrans-v3.99-418。我在测试下试试

根据开发者回复,GPU 0 指的是软件识别出的第一块可用于CUDA的NVIDIA显卡。您需要检查日志,确认软件识别到的这块显卡的可用显存是否足够。同时,建议先使用更小的模型进行测试。操作步骤:检查日志确认显存情况:打开软件根目录下的 logs 文件夹,找到最新的日志文件(例如类似 2025-02-18.log 的文件)。用记事本打开,搜索关键词 “可用显存为”。查看软件启动时识别到的GPU及其可用显存是多少。如果识别到的显存远小于您GPU 1的实际16GB,则说明软件可能错误地识别了集成显卡或其他低显存设备作为首选。更换语音识别模型进行测试:在主界面的“语音识别”下拉菜单中,将模型从 large-v3-turbo 更换为 base 或 tiny 模型。这是最直接的测试方法,可以排除因模型过大导致的显存不足。如果使用 base 或 tiny 模型后问题解决,则证明是 large-v3-turbo 模型对显存要求过高。如果更换小模型后仍然报错,请提供 logs 文件夹中最新日志文件的底部约30行内容(特别是包含“可用显存为”的部分),以便进一步分析。请查阅相关文档:总是提示显存不足faster-whisper(本地)语音识别渠道

菜单--工具/选项--高级选项--语音识别参数--whisper模型预分割音频? 选中,将能降低显存消耗

问下,是否有选项可以关闭让人工确认修改的弹窗?

是的,有选项可以关闭人工确认修改的弹窗。该功能称为“单视频交互模式”,在您只处理单个视频时,会在识别后、翻译后、配音后分别弹出编辑窗口。要关闭它,请按以下步骤操作:操作步骤:在软件主界面,确保您只选择了一个视频文件进行处理。在主界面左上角,找到并取消勾选 单视频交互模式 选项。取消勾选后,在处理单个视频时,软件将不再弹出中间编辑窗口,直接按流程自动完成。关于显存优化的补充建议:同时,您可以按照开发者回复的建议,进一步优化显存使用:点击 菜单 -> 工具/选项 -> 高级选项。在 【语音识别参数】 区域,找到并勾选 Whisper预分割音频? 选项。此选项可以降低显存消耗。结合之前建议,将模型更换为 base 或 tiny 进行测试。请查阅相关文档:单视频交互模式高级设置各个选项说明

1:没有找到“单视频交互模式”。
2:3-turbo以上模型,测试报错,报错日志放最后了。
3:medium模型测试,视频中文配音但是显示的是英文字幕,两者不同步。
4:报错日志:
Traceback (most recent call last):
File "videotrans\process\stt_fun.py", line 461, in faster_whisper
File "faster_whisper\transcribe.py", line 1851, in restore_speech_timestamps
File "faster_whisper\transcribe.py", line 1279, in generate_segments
File "faster_whisper\transcribe.py", line 1590, in add_word_timestamps
File "faster_whisper\transcribe.py", line 1709, in find_alignment
RuntimeError: cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED

Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 44, in run
File "videotrans\task\trans_create.py", line 361, in recogn
File "videotrans\recognition\__init__.py", line 293, in run
File "videotrans\recognition\_base.py", line 143, in run
File "videotrans\recognition\_overall.py", line 33, in _exec
File "videotrans\recognition\_overall.py", line 105, in _faster
File "videotrans\configure\_base.py", line 289, in _new_process
RuntimeError: Traceback (most recent call last):
File "videotrans\process\stt_fun.py", line 461, in faster_whisper
File "faster_whisper\transcribe.py", line 1851, in restore_speech_timestamps
File "faster_whisper\transcribe.py", line 1279, in generate_segments
File "faster_whisper\transcribe.py", line 1590, in add_word_timestamps
File "faster_whisper\transcribe.py", line 1709, in find_alignment
RuntimeError: cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED

针对您提出的四个问题,逐一解答如下:

  1. 关于“单视频交互模式”位置
    该选项仅在您只选择了一个视频文件时,才会出现在主界面的左上角(“选择音频或视频”按钮附近)。如果您选择了多个文件或勾选了“文件夹”选项,该选项不会显示。请确保只选中一个视频文件后再查看。
  2. 关于 large-v3-turbo 及以上模型报错 CUBLAS_STATUS_NOT_SUPPORTED
    这是特定于 NVIDIA 50 系列显卡(如 RTX 5090, 5080) 的已知兼容性问题。由于软件内置的 CUDA 库版本与50系显卡的新架构不完全兼容,导致 cuBLAS 库调用失败。
    解决方案

    • 首选方案:暂时避免使用 large-v3-turbo、large-v3 等大型模型。按照开发者建议,使用 basetiny 模型进行测试和工作。
    • 备用方案:如果必须使用大型模型,可以尝试在 高级选项 -> 语音识别参数 中,将 CUDA数据类型float32float16 改为 int8int8 量化模式可能绕过有问题的计算路径。
  3. 关于 medium 模型测试时,中文视频生成英文字幕且不同步
    这通常是由于 “发音语言”选择错误 导致的。
    解决方案

    • 在主界面的 “发音语言” 下拉菜单中,确保正确选择了 “中文”“汉语”,而不是“auto”或“英语”。
    • 字幕与配音不同步是翻译中的常见现象。请确保在“同步对齐”行,根据您的需求勾选 “配音加速”“视频慢速”“二次识别” 选项来强制对齐。
  4. 关于报错日志 CUBLAS_STATUS_NOT_SUPPORTED 的补充说明
    此错误明确指向了50系显卡的兼容性问题。请优先执行上述第2点的解决方案。

总结操作顺序

  1. 确保 “发音语言” 选择正确(中文)。
  2. 将语音识别模型更换为 basetiny
  3. 高级选项 -> 语音识别参数 中,勾选 Whisper预分割音频? 以降低显存消耗。
  4. 根据对齐需求,在主界面勾选 “二次识别”“配音加速” 等选项。

如果更换为 base/tiny 模型后问题依旧,请提供软件根目录下 logs 文件夹中最新日志文件的底部约30行内容。

请查阅相关文档:

已经修改为 int8,依然报错。

Traceback (most recent call last):
File "videotrans\process\stt_fun.py", line 418, in faster_whisper
File "faster_whisper\transcribe.py", line 586, in _batched_segments_generator
File "faster_whisper\transcribe.py", line 120, in forward
File "faster_whisper\transcribe.py", line 222, in generate_segment_batched
RuntimeError: cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED

Traceback (most recent call last):
File "videotrans\task\_only_one.py", line 44, in run
File "videotrans\task\trans_create.py", line 361, in recogn
File "videotrans\recognition\__init__.py", line 293, in run
File "videotrans\recognition\_base.py", line 143, in run
File "videotrans\recognition\_overall.py", line 33, in _exec
File "videotrans\recognition\_overall.py", line 105, in _faster
File "videotrans\configure\_base.py", line 289, in _new_process
RuntimeError: Traceback (most recent call last):
File "videotrans\process\stt_fun.py", line 418, in faster_whisper
File "faster_whisper\transcribe.py", line 586, in _batched_segments_generator
File "faster_whisper\transcribe.py", line 120, in forward
File "faster_whisper\transcribe.py", line 222, in generate_segment_batched
RuntimeError: cuBLAS failed with status CUBLAS_STATUS_NOT_SUPPORTED

此错误 CUBLAS_STATUS_NOT_SUPPORTED 是 NVIDIA 50 系列显卡(如 RTX 5090, 5080)与软件当前内置的 CUDA 库版本不兼容导致的特定问题。即使将 CUDA数据类型 改为 int8,在某些计算环节(如 _batched_segments_generator)仍会触发此错误。解决方案:由于这是底层库的兼容性问题,在软件更新修复之前,最直接有效的解决方法是 完全避免使用GPU加速进行语音识别,改为使用CPU运行。操作步骤:在主界面的右上角,取消勾选 CUDA加速 选项。这将强制软件使用CPU进行语音识别。请注意,这会导致识别速度显著变慢,但可以绕过显卡兼容性问题。同时,为了尽可能提升CPU模式下的速度并确保成功:将语音识别模型更换为更小的型号,例如 basetiny。在 高级选项 -> 语音识别参数 中,确保已勾选 Whisper预分割音频? 以降低内存占用。如果必须使用GPU且模型不能更换(如 large-v3),目前没有完美的解决方案。您可以关注软件后续版本更新,看是否会针对50系显卡进行适配。请查阅相关文档:CUBLAS_STATUS_NOT_SUPPORTED faster-whisper 在50系显卡上加速遇到错误的解决办法faster-whisper(本地)语音识别渠道

不要使用int8,改为 float16

如果是从地狱 3.97版本升级到3.99的,请重新下载 3.99完整包覆盖

image
youtu.com/-hzScOMHG60 看视频

根据开发者回复,请执行以下操作来解决 CUBLAS_STATUS_NOT_SUPPORTED 错误:首要步骤:重新下载并覆盖安装 v3.99 完整包。如果您是从 v3.97 或更早版本升级到 v3.99 的,可能存在文件不完整或冲突。请前往官网下载 v3.99 完整包,解压后覆盖到您现有的软件目录中。关键设置调整:在 高级选项 -> 语音识别参数 中,将 CUDA数据类型 从 int8 改回 float16。int8 模式在50系显卡上可能不稳定,float16 是推荐的平衡选择。同时,请确保已勾选 Whisper预分割音频? 以降低显存消耗。模型选择:暂时避免使用 large-v3-turbo 等大型模型。作为测试,请先使用 base 或 tiny 模型,确认GPU加速能否正常工作。如果 base/tiny 模型在 float16 模式下工作正常,再尝试逐步换回更大的模型。关于您提到的视频链接 youtu.com/-hzScOMHG60,这看起来是一个YouTube视频地址。知识库中没有与此特定视频相关的信息。如果您需要了解该视频中演示的特定功能或问题,请描述视频内容或直接提出相关问题。操作顺序总结:重新下载 v3.99 完整包并覆盖安装。将 CUDA数据类型 设置为 float16。使用 base 或 tiny 模型进行测试。请查阅相关文档:免费下载pyVideoTrans视频翻译软件CUBLAS_STATUS_NOT_SUPPORTED faster-whisper 在50系显卡上加速遇到错误的解决办法高级设置各个选项说明

www.youtube.com/watch?v=-hzScOMHG60 看录屏

该视频链接指向一个YouTube录屏。由于知识库中没有关于此特定视频内容的记录,我无法提供基于该视频的分析。如果您在视频中看到了与 pyVideoTrans 相关的特定操作、问题或现象,请直接描述您遇到的具体问题或疑问,我将根据知识库为您解答。例如,您可以描述:视频中演示了哪个功能?您想实现类似效果但遇到了什么困难?视频中出现了什么报错信息?您遇到了相同的问题吗?请提供具体描述,以便我为您提供准确的解决方案。

在识别完成时,任务管理器左侧GPU图例上有个峰顶,这里可能显存爆了。

试试 菜单--工具/选项--高级选项--语音识别参数--whisper预先分割,将这个选项选中再试试

Post Your Reply
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.

Related resource