一、前言
相信很多小伙伴在按照网上的教程安装cuda和Pytorch跑深度学习的时候,有的成功安装,有的没有成功安装。面对GPU、GPU Driver、CUDA、Pytorch之间的关系总是搞不清楚,这篇文章带你彻底搞清楚它们之间的关系和安装流程。
二、环境配置
1、确认主机是否有独立显卡(GPU)
(1)方法一:
找到设备管理器 --->显示适配器 --->显卡类型 。我的显卡是NVDIA GeForce RTX2060 ,AMD Radeon(TM) Graphics是核显,如果只有核显,显然是使用不了GPU加速的。

(2)方法二:
找到任务管理器 -->GPU 0 或者GPU 1,确保至少有两个显卡。

2、在控制台执行nvidia-smi确认显卡信息
只要经过第一步检测,确保拥有独立显卡,那么这么nvidia-smi这个命令很大可能是能执行成功的。
(1)命令未执行成功
如果命令未执行成功,只能说明你独立显卡没有安装驱动,那你必须到nvidia官网找到对应你显卡型号和主机环境的驱动进行安装。 注意:notebook表示的是笔记本系列。

(2)命令执行成功
如果命令执行成功,接下来,我解释一下两个参数。

Driver Version: GPU驱动版本号
CUDA Version:GPU驱动版本可以支持的最大CUDA driver api的版本号。
接下来,请看图
我们常说的CUDA被分成了两部分,第一部分是CUDA Driver API ,对应上图中的CUDA user-mode driver(libcuda.so) 。第二部分是CUDA Runtime API (我们经常说的CUDA就是这一部分),对应上图中的CUDA Toolkit(runtime,libs,tools)。
而这张图中的CUDA Version 就是你安装驱动时,也安装了CUDA Driver API 的版本,因为NVIDIA默认安装的都是当前最新的,所以也意味着这也是GPU驱动版本可以支持的最大CUDA driver api的版本号。如果不确定,可以去查询一下CUDA官网的对应关系。
那么我们常说的,要进行GPU加速,安装的CUDA Toolkit 就是CUDA Runtime API ,安装了CUDA Toolkit 后,我们就可以使用nvcc等命令了。
那么我们常说的,要安装GPU版本的Pytorch是什么呢?
我们使用Pytorch官网推荐的命令安装GPU版本的Pytorch有四五个G 大,那么我们不禁要问:难道只仅仅Python代码就能达到这么大?其实安装GPU版本的Pytorch的时候,是顺带下载了一个CUDA Runtime API。
就像这个命令
其实就是安装了一个12.1 版本的CUDA Runtime API 。没错,跟我们安装的CUDA Toolkit 是一个性质的,只不过是没有配置一些像nvcc 这样命令行工具。
总结:其实我们没必要安装CUDA Toolkit。
而CUDA Driver API 是向后兼容CUDA Runtime API 的,这就可以解释我们的CUDA Driver API 版本是12.2 ,但是我们Pytorch下载的是12.1 的CUDA Runtime API ,我们仍然可以使用GPU加速。事实上,你安装11.8的也是没问题的,但最好对应。

3、安装与CUDA Version版本相同或者略微低一点的Compute Platform的Pytorch


三、检测是否配置成功

四、总结
1、相关网站
2、GPU、GPU Driver、CUDA Driver API、CUDA Runtime CUDA之间的关系: (1)GPU是显卡,是硬件。
(2)GPU Driver是GPU驱动,只有安装了GPU驱动才可以使用显卡。
(3)安装GPU驱动时,实际上是安装了两个东西:实际的GPU驱动和CUDA Driver API。 (4)CUDA包括两部分:CUDA Driver API和CUDA Runtime API。
(5)CUDA Toolkit安装的就是CUDA Runtime API,跟下载GPU版本的Pytorch里附带的是一个东西。
(6)没必要安装CUDA Toolkit。
(7)CUDA Driver API向下兼容CUDA Runtime API,但最好保持版本对应。
注意:显卡与显卡驱动是对应的,如果不对应,那显卡也是用不了的。不过一般来说带独显的新电脑出厂的时候实际上是安装了对应的显卡驱动。(关于可以不安装CUDA Toolkit这件事,我使用新买的带 NVIDIA GeForce RTX 4060显卡的机械革命笔记本试过,确实没问题。)