使用 Stable Diffusion 本地版时遇到显卡驱动过旧的问题

发布时间 2023-10-03 18:11:49作者: JerryWang_汪子熙

我本地安装了一个 Stable Diffusion,使用它生成图片时,遇到了如下错误消息:

BC:\WINDOWS\syst
venv "C:\app\stable-diffusion-webui-master\venv\Scripts\Python.exe"
Python 3.10.8 (tags/v3.10.8:aaaf517, Oct 11 2022, 16:50:30) [MSc v.1933 64 bit (AMD64)]Commit hash:
Traceback (most recent call last):
File "C:\app\stable-diffusion-webui-master\launch.py", line 355, in prepare_environment()
File "C:\app\stable-diffusion-webui-master\launch.py", line 260, in prepare_environmentl
run_pythonC"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 "C:\app\stable-diffusion-webui-master\launch.py", line 121, in run_pythonreturn run(f'"{python}" -c "{code}"', desc, errdesc)
File "C:\app\stable-diffusion-webui-master\launch.py", line 97, in run
raise RuntimeError(message)
RuntimeError: Error running command.
Command: "C:\app\stable-diffusion-webui-master\venv\Scripts\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

stderr: C:\app\stable-diffusion-webui-master\venv\lib\site-packages\torch\cuda_init_ py:88: UserWarning: CUDA initialization: The NVIDIA driver on your systen 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.)
stdout:
return torch._c._cuda_getDeviceCount() > Θ
Traceback (most recent call last):
File "", line 1, in
AssertionError: Torch is not able to use GPU; add --skip-torch-cuda-test to CoMMANDLINE_ARGS variable to disable this checkl

Press any key to continue . . .

从官网下载最新的显卡驱动:

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

文件名如下:

我笔记本电脑的显卡是 NVIDIA Quadro RTX 4000

旧的驱动日期是 2020年5月11日:

驱动更新后,日期变成了 2023年9月12日

显卡驱动更新完毕后,错误消失:

关于这个错误的更多详细信息:

Stable Diffusion是一个用于生成高质量图像的深度学习模型,通常需要GPU来加速训练和推理。当出现Torch不能使用GPU的错误时,通常涉及到一些常见的问题和解决方案。在本文中,我将详细介绍可能导致这个问题的原因,并提供一些可能的解决方法。

错误消息:"Torch is not able to use GPU" 表明PyTorch(通常简称为Torch)无法使用GPU设备进行计算。这可能是由多种原因引起的,下面我会逐一讨论这些原因以及相应的解决方法。

  1. 没有安装GPU版本的PyTorch

    • 检查你的PyTorch是否是GPU版本。你可以通过运行以下代码来验证:

      import torch
      print(torch.cuda.is_available())
      
    • 如果结果为False,那么你可能安装了CPU版本的PyTorch。你需要卸载CPU版本,然后安装GPU版本。你可以使用以下命令来安装GPU版本的PyTorch(假设你使用pip):

      pip uninstall torch
      pip install torch -f https://download.pytorch.org/whl/cuXXX/torch_stable.html
      

      这里的cuXXX应替换为你的GPU驱动程序版本,例如cu111cu102等。你可以通过运行nvcc --version来确定你的GPU驱动版本。

  2. 没有正确安装GPU驱动程序

    • 确保你的GPU驱动程序已正确安装并且与你的CUDA版本兼容。通常,PyTorch需要与CUDA版本兼容的GPU驱动程序才能正常工作。

    • 检查CUDA的安装情况,确保与你的GPU驱动程序版本匹配。

  3. CUDA不可用或不正确安装

    • 确保CUDA(Compute Unified Device Architecture)已正确安装并设置。CUDA是用于GPU计算的重要组件,PyTorch依赖于它进行GPU加速。

    • 检查CUDA是否正确安装,可以通过查看NVIDIA官方网站或使用命令nvidia-smi来验证。

  4. 没有正确配置CUDA路径

    • 确保CUDA的路径正确配置。你需要将CUDA的安装路径添加到你的环境变量中。在Linux中,可以通过编辑.bashrc.zshrc文件来实现,添加如下内容:

      export PATH=/usr/local/cuda-X.Y/bin:$PATH
      export LD_LIBRARY_PATH=/usr/local/cuda-X.Y/lib64:$LD_LIBRARY_PATH
      

      其中,X.Y应该替换为你的CUDA版本号。

  5. 没有正确安装cuDNN

    • cuDNN(CUDA Deep Neural Network library)是用于深度学习模型的加速库,也是PyTorch的依赖项之一。确保cuDNN正确安装,并且与你的CUDA版本兼容。

    • 你可以在NVIDIA的官方网站上找到适用于你的CUDA版本的cuDNN版本,并按照它们的安装指南进行安装。

  6. GPU驱动程序或硬件问题

    • 如果以上步骤都已经检查并且没有解决问题,那么问题可能与GPU驱动程序或硬件本身有关。可能需要更新GPU驱动程序或者检查GPU是否正常工作。

    • 尝试在其他GPU上运行你的代码,以确定是否是硬件问题。

  7. 其他可能的问题

    • 检查你的系统资源是否足够,包括GPU内存是否足够,以及是否有其他进程正在占用GPU。

    • 确保你的PyTorch和相关库(例如Torchvision)是最新版本,以避免已知的问题。

    • 检查你的代码中是否有与GPU相关的错误配置,例如将张量放到CPU上而不是GPU等。

总结起来,当遇到"Torch is not able to use GPU"错误时,首先需要检查你的PyTorch是否是GPU版本,并确保正确安装了CUDA、cuDNN以及相关的GPU驱动程序。如果所有这些步骤都已经尝试过了,还是无法解决问题,那么可能需要深入调查硬件或其他系统相关的问题。

最后,要注意的是,不同的系统配置和环境可能会导致不同的错误,因此解决问题可能需要根据具体情况进行定制。希望这些解决方法能够帮助你诊断并解决Stable Diffusion在本地运行时的GPU错误问题。如果你能提供更多关于你的系统配置和错误消息的信息,那么我将能够提供更具体的帮助。