1.查看Win10下的NVIDIA驱动版本
下面是cuda的官网
https://developer.nvidia.com/cuda-toolkit-archive
下载哪个版本呢
根据上图,可以看到,显卡驱动是 10.0.132所以cuda的版本小于等于这个数值就可以。
前面是下载,后面是doc。点进去,看一下doc
按照他的说法,这个版本的cuda是可以用的。
下载这个cuda
下载好了,按照他说的,双击,然后根据屏幕提示就可以。但是我在安装的过程中报错了。
至此,王越让我放弃,让我考虑装个双系统,我很犹豫,不是很愿意,因为我实在是太累了,心累的不行,不想再折腾这些了。我我稍微百度了一下,这个问题
CUDA安装could not create the file:xxx.dll
有两种解决方法:第一,以管理员的方式运行,后面如果360提示修改权限,那就全部允许就可以了。
第二,关闭360等杀毒软件,不让误报。
我本来以为这些方法都是玩儿呢,没想到试了一下,真的安装好了。
如果你是第一次安装,你就尽量全选
但是不要选择Visual Studio Integration,即使选了也不能成功安装。
这里的路径尽量不要修改,而且,千万要记住,因为后面配置环境变量还是要用的,然后下一步就安装完成了。
输入下面的命令
nvcc -V
返回信息如下图,就表示cuda的安装完成了,就可以安装cudnn了。
只有6G可用
2.安装cuDNN
上面是官网的下载地址,你需要有一个繁琐的注册操作。
因为我的cuda版本是10.0,所以在历史版本里面找一下。
我找到了一个适合10.0的最新版本的cuDNN
点击
找到你的系统,下载就好了
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows
这里还有一个官网的安装指南,可以看一下。
上图是我的Windows的版本,官网给出的安装方法。
在cuda的安装目录Toolkit下面新建一个CUDNN的文件夹,在新建一个你对应的版本号的文件夹。
把之前下载的压缩包解压缩,然后把下图的三个目录
全部拷贝到你新建的目录下
然后把你新建的路径添加到系统的环境变量里面
怎么验证呢?
如下图,到下图的目录下,运行红框里面的exe文件
显示pass就是OK了
在运行下图目录下的exe文件,然后显示pass,就OK了。
3.问题的发现与解决
然后我就开始运行我的代码了,结果发现无论怎么配置GPU还是用不起来,不论怎么折腾都是CPU,我累了,我好累啊,掰手指算算,从我开始折腾给Ubuntu的虚拟机装cuda开始,后来把我之前的Ubuntu系统装的闪烁,无法操作,后来改成centos装cuda,然后发现虚拟机不能用物理机的GPU,然后又把之前的全部推翻,开始在物理机上装cuda和cudnn,到现在一切都装好了,还是不行。从5月17日到6月6日,已经大半个月了。我真的好累,真心俱疲的那种累。
有没有谁来帮帮我,帮我解决一下这个问题。
王越给我说让我试一下
torch.cuda.is_available()
我试了,是false
是pytorch的版本和cuda的版本不匹配。
王越再让我继续尝试,把cuda的版本换成10.1,现在是10.0,我也不知道10.1行不行,会不会出啥问题,尝试吧。
妈的。
我看了一下torch的版本,是cup的版本,其实我之前确实没有仔细看只是按照 yolov5的requirement安装的。
于是我在pytorch的官网上看了一下。
下面是我在历史版本里面找到适合我的。
这时我已经按照torch需要的版本,把cuda换成了10.1,与此同时cudnn的版本也是同时更换了的,方法就还是按照上面说的方法。
当然了,你也可以用 轮子安装。
累,不知道为啥,我用的官网安装的方法,而且还换源了,但是就是各种网络拒绝,我累得想跳楼,不过在我反反复复的尝试之下,终于算是好了。
然后我就赶紧跑去测试我的代码可以用不,然后呢,就出错了。
上面两个图显示的是报错信息,显而易见,报错的原因是因为torch的版本过低,需要升级,说的很明白了。
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
最后装了这个版本的torch。
然后就一切成功了,累,累的无以复加。
ps:在我冷静下来思考的时候,我在想,可能前面的cuda和cudnn的安装版本是没有问题,问题可能仅仅出现在我的torch问题,当然了,仅仅是有可能,我没有劲再去重新尝试了。
哦,我在唠叨一句,我当时同时安装了cuda的10.0和10.1,在环境变量里cuda10.0和cuda10.1以及它们对应的两个版本的cudnn都是存在的,顺序就是后安装的在前,先安装的在后,优先调用后安装的那个。但是我怕引起错误,就把cuda10.0和他对应版本的cudnn都删除了,环境变量也删除了。