【CUDA driver initialization failed, you might not have a CUDA gpu】pytorch 解决方案

文章目录

  • 问题描述
  • 问题原因
  • 解决方案
  • 参考

问题描述

在coding的时候我们经常在指定device的时候用这么一句代码:

device = 'cuda' if torch.cuda.is_available() else 'cpu'

但是有时候我们会发现device确实是放在了cpu上面,所以为了明确出错的原因,我们在shell里先import了torch,再执行torch.cuda.is_available(),发现在返回False结果之前给出了错误原因,其中部分内容就是我们在标题中写的。

问题原因

这种情况一般来说有两种原因

  1. gpu的计算能力过差
    pytorch慢慢已经不支持cc(compute capability)小于3的gpu了,所以可以先查看一下自己的gpu的cc大小。但总的来说,这种情况出现的几率不大。
  2. cuda版本不兼容
    这种情况通常是因为conda的虚拟环境中install的cudatoolkit版本高于gpu本身的cuda版本。在linux平台下,我们通过nvidia-smi命令查看gpu驱动的cuda版本,看是否低于我们在环境中安装的cudatoolkit版本。

解决方案

  1. 如果是因为平台gpu的cc过低导致的,那只能破费购进新卡或者降低torch版本了
  2. 一种方式是我们更新平台gpu的cuda版本,如果你是这台服务器的root用户,非常建议通过这种方式将gpu的驱动更新到最新版本。但如果你只是这台服务器的普通用户,我们则需要降我们的pytorch版本以满足需求的cudatoolkit版本小于等于平台gpu驱动。当然,如果版本降得很夸张,非常建议跟管理员去扯扯皮hhh

参考

https://forums.developer.nvidia.com/t/k1000m-cuda-driver-initialization-failed-you-might-not-have-a-cuda-gpu/226120

你可能感兴趣的:(pytorch,pytorch,深度学习,人工智能)