AssertionError: Torch is not able to use GPU 原因与解决方法

今天,一位群友在用“Stable Diffusion”的时候,打开提示类似错误如下:

AssertionError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

中文翻译

断定错误:Torch无法使用GPU;将 --skip-torch-cuda-test 添加到 COMMANDLINE_ARGS 变量以禁用此检查。

已退出进程,代码为 1 (0x00000001)

 

原因

通过上面的截图,不太好知道具体的原因。

于是,我向这位群友要来了整个“控制台”的调试代码,如下:

Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
Commit hash: 22bcc7be428c94e9408f589966c2040187245d81
Traceback (most recent call last):
  File "D:\AI 工具 Stable Diffusion\sd-webui-aki-v4\launch.py", line 355, in <module>
    prepare_environment()
  File "D:\AI 工具 Stable Diffusion\sd-webui-aki-v4\launch.py", line 260, in prepare_environment
    run_python("import torch; assert torch.cuda.is_available(), 'Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check'")
  File "D:\AI 工具 Stable Diffusion\sd-webui-aki-v4\launch.py", line 121, in run_python
    return run(f'"{python}" -c "{code}"', desc, errdesc)
  File "D:\AI 工具 Stable Diffusion\sd-webui-aki-v4\launch.py", line 97, in run
    raise RuntimeError(message)
RuntimeError: Error running command.
提示:Python 运行时抛出了一个异常。请检查疑难解答页面。
Command: "D:\AI 工具 Stable Diffusion\sd-webui-aki-v4\py310\python.exe" -c "import torch; assert torch.cuda.is_available(), 'Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check'"
Error code: 1
stdout: <empty>
stderr: D:\AI 工具 Stable Diffusion\sd-webui-aki-v4\py310\lib\site-packages\torch\cuda\__init__.py:107: 
UserWarning: CUDA initialization: The NVIDIA driver on your system is too old (found version 10020). Please update your GPU driver by downloading and installing a new version from the URL: http://www.nvidia.com/Download/index.aspx Alternatively, go to: https://pytorch.org to install a PyTorch version that has been compiled with your version of the CUDA driver. (Triggered internally at ..\c10\cuda\CUDAFunctions.cpp:109.)

  return torch._C._cuda_getDeviceCount() > 0

Traceback (most recent call last):

  File "<string>", line 1, in <module>

AssertionError: Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check
提示:Python 运行时抛出了一个异常。请检查疑难解答页面。

 

黄颜色部分翻译如下:

运行时错误:运行命令时出错。

 

用户警告:CUDA初始化:系统上的NVIDIA驱动程序太旧(找到版本10020)。请通过以下URL下载并安装新版本来更新GPU驱动程序:http://www.nvidia.com/Download/index.aspx

或者,转到:https://pytorch.org 安装已使用CUDA驱动程序版本编译的PyTorch版本。(在..\c10\cuda\CUDAFunctions.cpp:109处内部触发。)

 

断定错误:Torch无法使用GPU;将 --skip-torch-cuda-test 添加到 COMMANDLINE_ARGS 变量以禁用此检查。

 

综上,从而得出一个大概的最终原因:

Torch需要用GPU,也就是显卡。或许是自己的显卡驱动有问题,显卡驱动过老旧、不兼容等等引起的。反正就是有个程序要用GPU,检查没通过就报错,但是说可以禁用此检查,修改变量参数就可以跳过这个检查。

 

解决方法

既然知道了一个具体的原因,那解决起来就容易多了。

 

第一种方法:添加 COMMANDLINE_ARGS 参数 来禁用cuda检查

 

1、打开 webui-user.bat 文件。

 

2、将

COMMANDLINE_ARGS=

修改为类似于

 COMMANDLINE_ARGS= --lowvram --precision full --no-half --skip-torch-cuda-test

注意:

重点是要添加有 --skip-torch-cuda-test 这个参数。

 

3、保存修改之后再次运行 webui-user.bat 就可以解决此问题。

 

第二种方法:更新显卡驱动程序(推荐)

我在这里推荐大家使用这种方法。因为用AI的时候,能用上显卡的CUDA计算是非常有用的。

注意:

有时候直接更新显卡驱动也能解决此问题。

之所以 更新显卡驱动程序  也能解决这个问题,也是群里大量相关群友测试并交流出来的经验。

如下:

  • 昨天把我给整烦了!最后用360更新驱动,更了两遍!才解决 看来出现这种情况 应该是显卡驱动过老导致的 SD现在能用了! 更新显卡驱动确实能解决像我遇到的GPU问题!谢谢群主帮忙。
  • 更新了一下显卡驱动 可以了。
  • 如果官方找不到相应的版本,可以网上去搜索你那个驱动型号再去安装并更新驱动。

 

具体的操作步骤如下:

 

1、通过”设备管理器显示适配器“查看自己的显卡是哪个版本?

以我这为例子,我的显卡是:NVIDIA GeForce GTX 1050 Ti

NVIDIA

 

2、打开英伟达(NVIDIA)官方驱动下载网址:

http://www.nvidia.com/Download/index.aspx

 

3、搜索“NVIDIA GeForce GTX 1050 Ti”对应版本的NVIDIA驱动:

Product Type:GeForce

Product Series:Geforce 10 Series( Notebooks)表示“Geforce 10 系列(笔记本)”

Product:GeForce GTX 1050 Ti

Operating System:Windows 10 64-bit

Download Type:Studio Driver (SD) 这里建议大家不要选择“Game Ready Driver ( GRD )”

Language:Chinese ( Simplified ) 表示中文简体搜索对应版本的NVIDIA驱动

 

4、下载“NVIDIA GeForce GTX 1050 Ti”对应版本的NVIDIA Studio 驱动程序。下载对应版本的NVIDIA Studio 驱动程序

 

5、安装相应版本的驱动即可恢复正常。

 

第三种方法:A卡跑Stable Diffusion

最近发现,有很多人的电脑用AMD显卡来跑Stable Diffusion,结果也会报类似的错误。

 

例如:

今天一位朋友通过“设备管理器”,发现它的显卡是“Radeon RX 570 Series”AMD显卡,结果一直报“AssertionError: Torch is not able to use GPU”错误。用了第1种方法没有用,第2种方法又不适合AMD显卡的电脑。

Radeon RX 570 Series

如果你也是AMD显卡跑Stable Diffusion出了类似的错误,解决方法也非常的简单。

请参考:A卡跑Stable Diffusion教程

 

总结:

如果你遇到同样的问题,还有其它的解决方法请留言评论区或Q上联系我!那样可以帮助更多的朋友们。

付杰
  • ¥ 388.0元
  • 市场价:388.0元
  • ¥ 119.0元
  • 市场价:199.0元
  • ¥ 89.0元
  • 市场价:129.0元
  • ¥ 79.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 头像 JIA 0

    我是台式电脑跟笔记本有什么区别吗?下载网址一样吗?我的跟他这个基本一样情况

    • 付杰 付杰

      @JIA 你要更新显卡驱动的话,网址是一样的,根据你的电脑显卡型号来选择对应的就行了。