写在前面

自己参考其他博客安装的,非随意复制而来,过程无误、无省略,2021年3月19日安装的目前最新的环境,对之后的最新版无需求的,可直接复制命令安装,有需求的需要对应版本几个东西是否已经兼容

0. 背景阅读

一开始我只是想要安装pytorch,并不了解cuda, cudnn 和 anaconda 之间的关系。

cuda和cudnn之间的关系:CUDA与cuDNN,cuda是螺丝刀,cudnn是扳手,这两个工具在GPU加速运算中都是需要的,安装cuda并不会附带cudnn,两个需要分别安装。
anaconda 是一个python的发行版,包括了python和很多常见的软件库, 和一个包管理器conda。常见的科学计算类的库都包含在里面了,使得安装比常规python安装要容易。主要是!装了anaconda就不需要单独装python了。因为Anaconda就是用来管理我们不同版本的python环境的。[2]

1. 安装显卡驱动

sudo nvidia-smi

显示如下则说明安装成功:

2. gcc升级

Ubuntu18.04默认是7.5.0版本的gcc,查看gcc版本:

gcc --version

英伟达官网看最新的CUDA11支持的gcc版本,2021年3月18日支持到9.x版本的gcc。

2.1 安装gcc和g++

sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update 
sudo apt-get install gcc-9
sudo apt-get install g++-9

2.2 进入/usr/bin/把gcc/g++文件夹删除或备份,建立链接到gcc-5.4/g+±5.4

cd /usr/bin 
sudo rm gcc 
sudo ln -s gcc-9 gcc 
sudo rm g++ 
sudo ln -s g++-9 g++

2.3 查看gcc版本号

gcc -v

3. 安装anaconda3

3.1 下载

3.2 安装

bash Anaconda3-2020.02-Linux-x86_64.sh

3.3 修改终端默认的python版本

sudo gedit ~/.bashrc

在.bashrc文件末尾写上

export PATH="/home/xupp/anaconda3/bin:$PATH"

执行刚修改后的 .bashrc文档:

source ~/.bashrc

查看conda版本:

conda --version

该句命令报错,找不到一个东西,那我就下载呗,结果conda不能用,总是调用到系统自带的python2,Anaconda3是使用python3的。

3.3.1 解决python2和python3冲突问题

查看python环境变量:

echo $PYTHONPATH

该句子应该是空出来的,但是显示/usr/local/lib/python2.7/dist-packages

清空PYTHONPATH:

unset PYTHONPATH

打开anaconda图形界面:

anaconda-navigator

  • 弹出图形界面,问题解决!

3.3.2 conda环境初始化

conda init bash

  • 重新打开一个新终端就显示base了。

3.3.3 自由进出base环境

激活base环境:

conda activate base

退出base环境:

conda deactivate

设置打开新终端时,默认关闭base环境:

conda config --set auto_activate_base false

3.3.4 python2的路径清空后又再次出现

考虑到ubuntu系统和ros都用到python2,还是每次用到Anaconda时,执行一次:

unset PYTHONPATH

3.3.5 终端内自由切换python2.7、python3.6、python3.8

在.bashrc文件中添加:

# distinguish anaconda python with system built python
alias python="/home/zth/anaconda3/bin/python3.8"
alias python3="/usr/bin/python3.6"
alias python2="/usr/bin/python2.7"

source一下:

source ~/.bashrc

4. 安装CUDA10.2

目前最新的是CUDA11,但是Pytorch官网写的对于11.1的支持如下:

不是很easy,所以选择CUDA 10.2吧。

4.1 下载 CUDA 10.2

CUDA官网地址:网址

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

  • 安装组件的选择,取消勾选Nvidia Driver:
  • 4.2 配置CUDA 环境变量

  • 编辑 .bashrc文件
  • sudo gedit ~/.bashrc
  • 在文件末尾添加:
  • export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    export CUDA_HOME=/usr/local/cuda
  • source一下:
  • source ~/.bashrc
  • 检查cuda是否安装成功:
  • nvcc -V
  • 5. 安装 cuDNN

    5.1 下载cuDNN

  • 官网下载地址:https://developer.nvidia.com/rdp/cudnn-archive
    我下载的是目前最新的 Download cuDNN v8.1.0 (January 26th, 2021), for CUDA 11.0,11.1 and 11.2 的linux版本。

5.2 解压缩

进入下载文件夹解压:

tar xzvf cudnn-11.2-linux-x64-v8.1.0.77.tgz

5.3 复制cuDNN内容到cuda相关文件夹内

看到网上有的是复制到cuda文件夹,有的是复制到cuda-11.1文件夹,我发现我的电脑里同时有这两个文件夹,而且内容一样,文件建立时间也完全一样,可能是同时安装的,这里我暂时不清楚原因。

  • 复制命令:
  • sudo cp cuda/include/cudnn.h  /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.h  /usr/local/cuda-11.1/lib64/libcudnn*

6. 安装pytorch

6.1 官网命令安装

Pytorch官网选择对应的系统和cuda版本,复制Run this Command中的cuda install命令,进入终端,

conda activate # 激活conda环境

unset PYTHONPATH # 清空python2路径

输入从官网复制的命令

  • 我用conda装pytorch装了很久,结果失败了,不知道原因,终端输出了一大堆乱七八糟的东西,遂改用pip安装成功,两种方式好像并不影响使用GPU加速运算。

6.2 检查是否安装GPU版成功

以下命令可以正确输出:

nvidia-smi

nvcc -V

进入python3.8验证(这里我给我的anaconda自带的python3.8命名为python,命名见前面3.3.5小节的叙述):

python

输入代码:

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

如果输出的结果为false,则表示pytorch无法使用GPU资源进行运算,需要自寻方法解决。
如果输出的结果为true,则表示pytorch build for GPU搭建成功。

参考博客

[1] ubuntu18.04安装显卡RTX3090(python3.8+nvidia Drive455.38+cuda11.1+cudnn7+pytorch1.7+torchvision0.8)
[2] Ubuntu18.04 安装 Anaconda3
[3] 在Ubuntu18.04上搭建Pytorch深度学习环境
[4] anaconda或python3 会自动调用系统python2.7下面的库