文章目录
- 1 研究背景
- 2 问题解决
- 2.1 问题一,这两个版本分别是怎么得到的?
- 2.2 问题二,Windows下安装CUDA Tookit 是必须的吗?
- 2.3 问题三,驱动版本必须大于等于运行时版本吗?
- 2.4 问题四,只运行pip install torch可以吗?
- 3 总结
1 研究背景
我们都知道,想要更快的运行深度学习代码,往往需要pytorch框架,pytorch框架会用到GPU相关的资源
这时候如果我们运行如下的代码
import torch
print(torch.cuda.is_available())
如果输出是True说明是可以用GPU的,如果是False则是不可以用的
那么现在有一个问题,为什么出现False不可以用的情况.
网上给出的答案往往是
Cuda的版本和torch不匹配
cuda是什么,cuda是一个计算设备架构,torch是基于cuda实现的
可是问题来了,查阅网上资料可以知道,cuda的版本有好几个,究竟是哪一个版本不匹配
第一个版本 网上叫做Driver Version驱动版本,在终端输入nvidia-smi 会输出一个cuda版本
第二个版本 网上叫做运行时版本,在终端输入 nvcc -V,会输出一个版本
我们通过实验证明这两个版本其实都不重要,重要的是安装torch指令时的内容
我们一点一点来说明
2 问题解决
2.1 问题一,这两个版本分别是怎么得到的?
对于驱动版本,是我们在安装显卡驱动后,会顺带生成的
而对于运行时版本,是我们在安装CUDA Tookit之后,会生成的
2.2 问题二,Windows下安装CUDA Tookit 是必须的吗?
我的第一个问题是,如果我们干脆不安装CUDA Tookit,也就是根本无法获得这个运行时API,torch可以用GPU跑深度学习代码吗?
实验证明是可以的
我们把CUDA Tookit删除,之后运行上面的测试代码,输出是True
说明不安装CUDA Tookit,torch可以用GPU跑深度学习代码
2.3 问题三,驱动版本必须大于等于运行时版本吗?
网上说驱动版本必须大于等于运行时版本
但我们做实验后,发现这个也不是必须的
我们测试了
运行时版本是12.3 驱动版本是12.1 的情况,依然可以正常使用API
2.4 问题四,只运行pip install torch可以吗?
只运行pip install torch是不可以的
会发现安装的torch是198MB左右的,大概率用不了GPU
我们发现官网的指令后面往往跟着一个cu118什么的,如下图所示
我们发现这个才是最后torch能运用GPU的关键
其实
我们测试结果是驱动版本在12.3的情况下 可以向下兼容12.1 和11.8 cuda pytorch安装命令
什么意思?
也就是说我允许了下面两条指令
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
会发现11.8版本的cuda和12.1版本的cuda都可以正常运行GPU
而且在安装的时候,往往安装大小在1GB左右
3 总结
实验证明
在pip指令后面的 cu118才是关键。
这次实验探索由我和学弟一起完成,感谢学弟@Fridemn!Fridemn-CSDN博客
做实验尝试做到很晚
但是我们目前只能说有一些感性的认识,总结了一些经验
但是对于CUDA的理解还是有很多不到位的地方,需要后面不断的实践补充