Ubantu系统安装Pytorch以及相应的CUDA
一、安装显卡驱动
安装显卡驱动可以参考https://blog.csdn.net/NCU_Wang/article/details/123611502?spm=1001.2014.3001.5501
1、检查系统推荐显卡驱动版本
sudo ubuntu-drivers devices
结果显示:
建议使用推荐(recommended)的版本
2、添加源
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
3、在系统的软件和更新进行安装
选择软件与更新
选择刚刚推荐的版本(不用选server的),然后点击应用更改。其中可能要设置一个密码。
4、重启输入密码
reboot
重启过后出现
选第二个Enroll MOK,输入之前设置的密码。
(我这里键盘无法操作,查找资料发现没有关闭secure boot,可以参考链接)
5、查看安装版本
nvidia-smi
这样就安装完驱动了,红色部分说明最高能安装CUDA版本。
二、安装CUDA
这里可以根据pytorch官网上对应的版本来安装CUDA的版本,也可以先安装CUDA再选择pytorch的版本。
在pytorch官网上只有对应几个cuda版本的下载,其实它是向下兼容。比如说我的CUDA版本是12.2的,那下载cuda11.8或者cuda12.1的都能使用。
这里我选择先看pytorch版本再安装cuda的版本。
我选择的是CUDA11.8的pytorch,所以选择安装cuda11.8。
1、下载
选择对应的选项
下面红色圈起来的就是官方给的下载指令。
下载资源包
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run |
2、安装
sudo sh cuda_11.8.0_520.61.05_linux.run
选择Continue
这里输入accept继续
这里因为已经安装好驱动了,键盘移动的第一项Driver,按下enter,取消安装这个。最后选择按install后回车就开始安装,等待安装完成。
3、环境配置
sudo gedit ~/.bashrc
在文本最后添加
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME
最后验证cuda安装是否成功
source ~/.bashrc
nvcc -V
三、安装CUDNN
因为我的cuda是11.8,所以选择for CUDA 11.x版本的
点击下载tar压缩包
然后右键提取解压,解压完成后会有个文件夹,把它重命名为cuda
然后,使用下面两条指令复制cuda
文件夹下的文件到/usr/local/cuda-11.8/lib64/
和/usr/local/cuda-11.8/include/
中。(记得在下载的目录输入指令)
sudo cp cuda/lib/* /usr/local/cuda-11.8/lib64/
sudo cp cuda/include/* /usr/local/cuda-11.8/include/
拷贝完成后,我们可以使用如下的命令查看cuDNN的信息:
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
这样就安装完成了
四、安装Pytorch
这里需要安装anaconda,安装可以参考link
在终端输入
conda create -n pytorch_study python=3.8
-n 后面的是创建环境的命名,可以自由选择。后面python=3.8,是安装环境的python版本。(如果下载速度慢,可以更换anaconda的源)
输入y,等待安装
安装完成后,进入刚刚配置的环境。
conda activate pytorch_study
然后在官网上选择对应的版本的pytorch
然后将指令复制,可以把后面的-c pytorch和-c nvidia删掉,这样下载比较快,如果删掉后无法下载,就把它加上。
等待安装完成即可。安装完成后输入python
导入torch库,并回车
import torch
然后执行下面的命令
print(torch.cuda.is_available())
如果返回是Ture的话说明你的pytorch是可以正常调用GPU去进行计算的,如果返回False,说明上面的配置有问题。