Azure服务器Linux下配置cuda11.1 + cudnn + anaconda + pytorch

  • Post author:
  • Post category:linux


【环境】

  1. Microsoft Azure服务器

  2. Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1040-azure x86_64)

  3. cuda_11.1.0_455.23.05_linux.run

  4. cudnn-11.1-linux-x64-v8.0.5.39

1. 创建虚拟机

2. 设置ssh免密登陆

(前两步详细步骤参考另一篇文章

Azure配置虚拟机并设置ssh免密登陆

3. 安装cuda

3. 安装cuda

3.1 安装前先进行gpu检查,通过命令nvidia-smi

右上角可以看到CUDA Version: 11.2表示最高支持的cuda版本为11.2

再去英伟达(NVIDIA)官网下载

cuda安装包

,最新的11.3版本不适配,此处点击【Archive of Previous CUDA Releases】选择11.1版本

根据虚拟机信息(2.6中ssh登入虚拟机时出现的欢迎信息)选择对应的Platform信息

分别执行如下两行命令分别,第一行表示通过wget方式将cudaxxx.run文件下载下来,第二行表示安装该run文件

wget https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run
 
sudo sh cuda_11.1.0_455.23.05_linux.run

安装过程中,出现如下界面,输入accept后回车

回车后到下一界面,取消选择第一项Driver,其他几项默认勾选,然后选择Install后回车

利用vim命令打开.bashrc文件

 # 打开.bashrc文件
 vim ~/.bashrc

添加如下信息(按i进入编辑模式,添加完之后按esc退出编辑模式,并按:wq保存并退出)

 # 添加如下信息
 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64
 export PATH=$PATH:/usr/local/cuda-11.1/bin
 export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-11.1

利用如下命令使配置生效

 source ~/.bashrc

通过如下命令检查是否安装成功

 nvcc --version

如果出现以下文字,则说明安装成功了

4. 安装cudnn

下载

cudnn

安装文件,cudnn由于需要登录才能下载所以不能采用wget方式,首次需要先注册NVIDIA账号,选择对应cuda版本的cudnn下载文件

在终端本地用户下将下载到本地的cudnn文件上传到虚拟机,等待显示100%上传完成

 # 上传本地文件到虚拟机,格式: scp 源路径 目标主机名:目标路径   (~/表示用户根目录)
 scp /Users/yili/Downloads/cudnn-11.1-linux-x64-v8.0.5.39.tgz stp-demo:~/

此处的根目录为/home/azureuser_demo

将该文件拷贝(或移动)至/mnt/downloads目录下(也可以其他目录,我选择此处由于/mnt剩余空间比较大)

 # 移动到/mnt/downloads下
 mv cudnn-11.1-linux-x64-v8.0.5.39.tgz /mnt/downloads/

在/mnt/downloads目录下解压cudnn文件,得到如下文件

 # 解压cudnn文件
 tar -zxvf cudnn-11.1-linux-x64-v8.0.5.39.tgz

在当前目录下,执行如下命令(如果不是root用户则需要先获取root权限)

 sudo cp cuda/include/cudnn*.h /usr/local/cuda/include
 sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
 sudo chmod a+r /usr/local/cuda/include/cudnn*.h
 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

输入如下命令检查cudnn版本

 cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

如果出现如下信息,则说明cudnn安装成功

5. 安装Anaconda


Anaconda官网

下载anaconda安装包,可以采用下载到本地再上传或者采用wget方式,此处采用wget方式,下载链接右击选择【复制链接地址】

 # 下载anaconda安装包
 wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh

用bash命令安装anaconda

 bash Anaconda3-2021.05-Linux-x86_64.sh

一路回车 + 输入yes,等待安装完成

配置环境变量

(有的教程没提这一步,但是我试验时候anaconda安装并未自动配置环境变量,需要手动)

打开.bashrc文件,添加如下环境变量配置信息

 # 打开.bashrc
 vim ~/.bashrc
 ​
 # 进入编辑模式添加如下信息并保存,此处azureuser_demo为本机用户名
 export PATH=$PATH:/home/azureuser_demo/anaconda3/bin

输入如下命令使得配置生效,否则会提示找不到conda命令

 source ~/.bashrc

输入如下命令检查安装是否成功

 conda --version

如果出现如下信息,则说明安装成功

6. 安装pytorch

创建pytorch虚拟环境,python版本为3.8,输入y等待安装完成

 conda create -n pytorch python=3.8

查看当前conda环境中的所有虚拟环境,可以看到新创建的pytorch环境

 conda env list

激活pytorch虚拟环境(如下两种方法皆可)

 # 方法1
 source activate pytorch
 ​
 # 方法2
 conda activate pytorch

如果想要退出当前的pytorch环境(会回到base环境)

 conda deactivate

(P.S.有的教程到这一步后会让更改镜像的源,改成清华或者中科大的源,目的为了加快下载速度,我用默认源在安装过程中速度还比较快,就没有更改,使用了默认的源

另外,我试过用清华源,但是下下来的却是cpu版本,据说是清华源没有gpu版本,不太清楚具体原因,总之后来用官方默认源成功安装了)


pytorch官网

下载pytorch,根据自己的机器配置选择相应的安装命令

复制如下命令,执行pytorch安装,等待安装完成

 conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia

在pytorch环境下,输入指令python或者ipython,如果输入ipython提示Command ‘ipython’ not found则需要安装一下

 conda install ipython

然后再输入以下指令查看torch是否能启动GPU

 import torch
 ​
 torch.cuda.is_available()

返回True则说明已经成功安装,False则返回检查

安装过程中遇到的问题:

1)激活pytorch虚拟环境时使用conda activate pytorch报如下错误:

CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’.

To initialize your shell, run

$ conda init

解决方法:

 # 激活anaconda环境
 source activate
 ​
 # 退出anaconda环境用 source deactivate

激活后在命令行前面会出现:(base) [root@xxx] #

2) torch.cuda.is_available()返回False

网上查了各种教程,大多是关于驱动安装不正确,但是我每一步安装都对了,版本号也对应上了,还是会出现torch.cuda.is_available()返回False的情况,后来参考了如下帖子中的解决方法


完美解决torch.cuda.is_available()一直返回False的玄学方法

3) 安装cuda时,sudo sh cuda_11.1.0_455.23.05_linux.run报错提示

 Extraction failed.
 Ensure there is enough space in /tmp and that the installation package is not corrupt
 Signal caught, cleaning up

解决方法

在存储空间剩余比较大的磁盘下,新建一个tmp文件夹,然后再将安装时tmp指向该处

 # 在/mnt下新建一个tmp文件夹
 cd /mnt
 mkdir tmp
 ​
 # 安装cuda时末尾加上--tmpdir=/mnt/tmp用于指向新创建的tmp文件夹
 sudo sh cuda_11.1.0_455.23.05_linux.run --tmpdir=/mnt/tmp

4) 卸载cuda

如果安装错了想要卸载cuda,按照如下步骤

 # 进入cuda的安装目录
 cd /usr/local/cuda-11.2/bin
 # 执行卸载cuda
 sudo ./cuda-uninstaller

直到出现Successfully uninstalled,则卸载完成



版权声明:本文为u012589022原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。