ubuntu+cuda+pytorch环境搭建

1,016 阅读5分钟

ubuntu+cuda+pytorch环境搭建

操作系统 ubuntu18.04,显卡 Tesla P40

零零散散装过好几次深度学习pytorch环境,每次都要搜一堆资料,借此机会自己整理一份安装教程。

安装建议

首先需要确定安装的pytorch版本,根据pytorch版本来确定安装的cuda toolkit版本,根据cuda toolkit版本确定cudnn版本,根据cuda toolkit版本确定显卡驱动版本。参考博客

PyTorch与CUDA关系

PyTorch官网

PyTorch历史版本

根据官网建议选择安装即可。

CUDA与NVIDIA显卡驱动关系

安装的cuda版本与显卡驱动的版本是有对应关系的,具体可以参考nvidia官网,根据后续需要确定安装的显卡驱动版本,如:

image-20220629174321673.png

CUDA与cuDNN关系

cuDNN官网对比安装的cuda版本,下载正确的cuDNN版本即可。cuDNN主要是进行运算加速,不装其实也可以工作。

显卡驱动安装

一般情况下可以通过在官网下载驱动安装,在ubuntu中也可以用命令进行安装。

命令安装

ubuntu下使用命令安装比较方便,参考博客,我这里使用命令安装。

首先我们需要添加源

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

然后检查可以安装的驱动版本

ubuntu-drivers devices

如我可以选择的驱动:

image.png

选择合适的版本安装即可,如:

sudo apt install nvidia-driver-515

最后,重启Ubuntu系统,输入nvidia-smi查看驱动信息。

官网下载驱动安装

这里由于没有进行实际操作,可以参考其他博客安装。

首先查看显卡型号

lspci | grep -i nvidia

image-20220629195854677.png

可以看到这里我有两块Tesla P40显卡。

根据显卡型号在nvidia官网驱动程序下载中寻找驱动,如:

image.png

image.png

下载后运行安装包安装即可(这里可能还需要一些其他设置)。

CUDA安装

进入cuda toolkit官网选择合适的版本进行安装。

根据系统配置选择合适的版本:

image-20220629201427795.png

根据给定的命令进行下载并安装:

image-20220629201441106.png

运行安装程序以后,会有条款,接受即可,注意安装CUDA的时候不要安装驱动(因为在上一步我们已经安装过了)。

然后修改环境变量:

vim ~/.bashrc

文件最后添加如下配置,需要根据实际的cuda版本及安装位置修改配置:

export PATH=/usr/local/cuda-11.1/bin:/usr/local/cuda-11.1/nsight-compute-2020.2.1:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64:$LD_LIBRARY_PATH

修改完成以后更新环境变量

source ~/.bashrc

验证CUDA安装成功

进入/usr/local/cuda-11.1/samples/1_Utilities/目录,执行:

cd deviceQuery
sudo make
./deviceQuery

出现如下输出,则CUDA安装成功:

image-20220629202202873.png

CUDA版本问题疑惑

关于CUDA Driver Version / Runtime Version不一致的问题,参考

CUDA Driver Version。安装完显卡驱动以后,用nvidia-smi命令就可以看到类似如下的输出:

image-20220629200224395.png

得到的结果意思是,显卡驱动版本为515.48.07,可以支持<=11.7版本的cuda

CUDA Runtime Version是你自己在系统上安装的cuda版本,是你跑深度学习模型或其它程序调用的cuda版本,执行nvcc -V可以查看(前提是你正确安装了cuda并将cuda加入了环境变量),例如我的:

image-20220629194926197.png

则之后安装pytorch时需要实际参考的cuda版本为CUDA Runtime Version。

cuDNN安装

进入cuDNN官网,选择适合的版本。需要选择cuDNN Library for Linux,如我选择如下版本:

image-20220629210249624.png

这里直接点这个链接的话,cuDNN需要注册填写一些资料,才可以下载,并且可能会下载失败。

建议直接右击使用迅雷就可以下载,不需要注册啥的。

2022/12/06更新,目前貌似这个方法不行了,但是注册登陆以后的下载速度还可以,若还是觉得慢,可以试一下阿里云nvidia-cuda开源镜像,比如找到ubuntu20.04目录下有对应的cudacudnndeb安装包。

下载完成后解压:

tar xvf cudnn-11.1-linux-x64-v8.0.5.39.tgz

将解压完的cudnn的头文件与动态库放到已经安装好的cuda对应的文件夹中,如:

# 当前解压完的目录为cuda
sudo cp cuda/include/cudnn* /usr/local/cuda-11.1/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.1/lib64
sudo chmod a+r /usr/local/cuda-11.1/include/cudnn*
sudo chmod a+r /usr/local/cuda-11.1/lib64/libcudnn*

查看cuDNN版本

# 有些教程是查看cudnn.h文件,但是我这边失败,cudnn_version.h可以查看到
cat /usr/local/cuda-11.1/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

不清楚应该输出什么算成功,我这边是这样的:

image-20220629224126325.png

Anaconda安装

python环境我们选择使用Anaconda进行安装,因为可以创建多个虚拟环境比较方便,在官网下载对应版本并安装即可,这里不做详细介绍。

确保激活一个可用的python环境后进行pytorch的安装,如:

conda create -n test python=3.9 # 创建一个虚拟环境
conda activate test # 激活虚拟环境

PyTorch安装

PyTorch官网

PyTorch历史版本

在官网选择合适的版本以后,执行安装命令即可,如:

conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 -c pytorch

关于命令中的-c pytorch,这里应该是指定找pytorch的下载源来下载pytorch。如果给conda换过源,去掉这条命令,可能很快就安装好pytorch,但实际上是不可用的(这里我觉得装的太慢,去掉了这个参数,结果装的是cpu版本的pytorch,只有53m,还得卸了重新装)。

验证是否正确安装,在终端中输入python进入python交互式环境:

import torch
print(torch.__version__)
print(torch.cuda.is_available())

正确输出版本号,并显示True则安装成功:

image.png