【环境】
-
Microsoft Azure服务器
-
Ubuntu 18.04.5 LTS (GNU/Linux 5.4.0-1040-azure x86_64)
-
cuda_11.1.0_455.23.05_linux.run
-
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,则卸载完成