记录CUDA、cudnn与pytorch一些需要注意的点

学习pytorch的时候,在网上看到很多cuda和cudnn的介绍。
自己之前只在自己的电脑上运行过几句有关pytorch的简单程序,现在希望利用实验室Windows服务器来进行pytorch的学习。(实验室Linux服务器还不太熟,Windows相对来说熟悉一些,自己本科学的linux命令也记不太清晰了,有时间捡一下,听找工作的师兄说Linux的学习还是非常重要的!,而且大部分人也都是用Linux的服务器)

首先是在看cuda的一篇博文的时候,注意到:
CUDA程序构架分为两部分:Host和Device。一般而言,Host指的是CPU,Device指的是GPU。在CUDA程序构架中,主程序还是由CPU来执行,而当遇到数据并行处理的部分,CUDA 就会将程序编译成GPU能执行的程序,并传送到GPU。这就是为什么会有.to(device),一般常见于model或者是tensor数据。我在刚开始接触DL的时候以为是在GPU上运行整个程序,在看程序的时候还好奇为什么别的代码不变,就是model什么的放入GPU。

其次是,一直以来也不太理解到底什么是CUDA,什么是cudnn。CUDA是NVIDIA推出的用于自家GPU的并行计算框架,这句话就经常看到了,一些对CUDA进行解释的博文都会提到。我理解的话,应该就是一个学霸,将在CPU(同学们)上需要加速的代码(需要解决的难题)搬到GPU(老师)上进行一系列的活动后再拿回CPU(在老师那得到答案然后赶紧回来较我们这群学渣),是这样一个东西。而cudnn是GPU加速库,那我就理解它是给老师提供的更深厚的学识吧,帮助更好地解答学生们的难题。(不知道自己这样理解对不对,如果不对请指正)

第三个是CUDA与CUDAToolKit的区别:CUDA Toolkit 可以安装开发 CUDA 程序所需的工具。也就是toolkit是一个帮助工具!

第四个是确保cuda和pytorch版本一致,自古版本问题最难,从tf开始python2,python3等都困扰过我。
至于版本问题我觉得如果没有前情的,那就按照别人的教程一步一步走就可以了,然后从实践中理解(?)版本。我看了一下torch版本,我之前有一个0.4.x的,但是现在肯定不行了,我就在github上找了一个情感分析的程序。
他开头就有import torch还有torchtext 以及

print('GPU:', torch.cuda.is_available())

果然我运行的时候发现系统卸载了我的torch给我重新安装了1.8.x版本的。但是cuda这里返回了false。百度教程发现是cuda和torch版本不匹配,同时也看到别人都推荐用下面的命令查cuda版本,因为可能会有不同的版本,什么driver版本,runtime版本之类的。

nvcc --version

release 10.1, V10.1.243版本号10.1
去pytorch官网查找之前的版本,找10.1对应的torch版本,然后我安装了一个1.7.0的torch,还把自己anaconda5.3的版本给降级了…
降级了以后发现import torch都会报错:OSError:找不到指定的程序,看参考资料发现硕士torch版本高了,然后我就去官网翻最低版本还能对应cuda10.1的pytorch版本。
记录CUDA、cudnn与pytorch一些需要注意的点_第1张图片

安装很顺利,然后:
在这里插入图片描述

体会到了快乐!
其实我感觉我应该把anaconda升级一下,感觉我现有的5.3就挺好。但是和这篇就无关了!
版本还是好难,以后应该还是会拥有一些关于切换cuda版本,以及创建不同版本的虚环境的能力,但是现在就先利用已经完成的去联系pytorch吧!以后遇到问题再解决,果然问题导向YYDS!

参考资料:
CUDA——“从入门到放弃”
CUDA基础理解
GPU,CUDA,cuDNN的理解
Windows如何查看自己的CUDA版本
Pytorch安装报错OSError

你可能感兴趣的:(记录CUDA、cudnn与pytorch一些需要注意的点)