每一次安装NIVIDIA驱动或CUDA Tookit时,都要经过一番折腾,才能够安装成功,这里把过程记录一下,以便以后可以参考。
本次安装遇到的最大问题是:pytorch所能支持的最高cuda版本为11.8,而安装后的cuda为最新12.2版本,pytorch没法识别cuda。
导致这一问题的主要原因在于两点:
- 安装的NIVIDIA驱动版本过高,导致CUDA Tookit版本也过高,无法降级
- 使用网络方式安装CUDA Tookit,安装之后得到的是最新版的CUDA Tookit,不是我想要的11.8版本
接下来是安装过程:
删除已安装的NIVIDIA驱动或CUDA Tookit
1
2
3
4
5
6sudo rm /etc/apt/sources.list.d/cuda*
sudo apt-get --purge remove "*cublas*" "cuda*" "nsight*"
sudo apt-get --purge remove "*nvidia*"
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /usr/local/cuda*查看ubuntu系统版本和驱动器型号,并下载对应驱动安装
1
2
3
4cat /etc/os-release # 查看系统版本
lspci | grep VGA # 查看显卡型号查看好版本之后,在这里下载对应的驱动程序并安装。
本次安装,服务器的版本为Ubuntu 22.04.2 LTS,显卡型号为GeForce RTX 3090.
查看驱动安装结果
驱动程序安装好之后,使用”nividia smi”命令查看安装结果,这里如果显示错误信息,重启系统就好了。
需要注意的是,这里出来的cuda的版本号不能大于pytorch所能支持的最大cuda版本号。
比如这次安装的时候,pytorch所能支持的最大cuda版本号为11.8,而我安装后,这里显示的版本号是12.2,最终导致无论如何pytorch都不能识别cuda。原因就是因为这里安装的驱动太新,nividia设置成了最新的cuda toolkit,后面安装cuda toolkit软件包的时候不能降级,导致pytorch没法识别。
在本次安装过程中,最终成功安装的驱动器版本为510,安装成功之后查询到的cuda版本为11.04, 由于最新的pytorch支持的cuda版本为11.8,所以后面我们还需要安装11.8版本的cuda toolkit,才能让pytorch使用cuda。
安装cuda toolkit
在这里找到对应版本的cuda toolkit,点进去之后,选择操作系统、操作系统版本等信息,下载类型选择第三个,安装包下载好之后,根据提示安装就好了。
完成之后,再用”nividia smi”查询cuda信息,这次版本应该就是pytorch支持的了。
这里有个疑问,貌似以本次包方式,安装cuda toolkit的时候可以勾选安装nividia驱动程序,也就是说可以省去前面安装驱动这一步。
这里遇到的大坑是,下载类型一定要选择第三个”runfile(local)”,之前好几次选择第二个”deb(network)”,安装完,一查询cuda信息,得到的都是12.2的版本, 但是pytorch不支持12.2的cuda,所以没法用。
本次安装过程中,下载的是11.8版本的cuda toolkit,下载和安装脚本如下
1
2
3
4
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run安装对应版本的pytorch
在这里找到对应的pytorch版本,然后安装就好了。
最后,查看cuda是否能够被pytorch识别
1
2import torch
print(torch.cuda.is_available())如果显示为ture,则表示安装成功。