引言

实验室服务器是Ubuntu18.04(16.04和20.04),刚刚显卡升级到RTX3090
记录一下装机过程,每一个过程的小部分也可能单独用到
所以罗列一些用到的网站链接,省的一个一个去找了。

一、升级gcc

在NVIDIA官网,查询不同版本Ubuntu对应的gcc版本
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

查看自己Ubuntu的版本:

cat /etc/lsb-release

查看gcc版本:

gcc -v

下面是我的一个示例 ,由原先的5.4升级到9.1.0

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

注意上面的最后两条语句,我的虽然是要升级到9.1.0,但是只有sudo apt-get install gcc-9,才能执行,如果执行sudo apt-get install gcc-9.1.0是不行的,g++依是如此。

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++
3.查看gcc/g++版本号
gcc -v

二、安装python3.8:

示例:linux下升级python3.5至python3.8

0.注意

重装ubuntu的系统,装python3.8之前需要安装以下环境,否则使用pip3会有错误
(Caused by SSLError(“Can’t connect to HTTPS URL because the SSL module is not available.”)

sudo apt-get update
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libxpm-dev libxext-dev 
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev
1.下载python3.8压缩包

先建立下载文件夹:

mkdir /usr/download

在下载文件夹下进行下载:

cd /usr/download
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz

解压文件夹:

tar -xvf Python-3.8.1.tgz
2.安装python3:

新建安装路径:

mkdir /usr/local/python38

在解压的文件夹下编译:

cd  /usr/download/Python-3.8.1
./configure --prefix=/usr/local/python38 --with-ssl

安装命令:

make
make install
3.创建新版本的软链接:

我这里不仅把python3和pip3指向python3.8,也把python和pip指向python3.8了
(弃用了python2和python2的pip对python和pip的连接)

备份旧版本:

mv /usr/bin/python3 /usr/bin/python3_bak
mv /usr/bin/pip3 /usr/bin/pip3_bak
mv /usr/bin/python /usr/bin/python_bak
mv /usr/bin/pip /usr/bin/pip_bak

创建新的软链接:

ln -s /usr/local/python38/bin/python3 /usr/bin/python3
ln -s /usr/local/python38/bin/pip3.8 /usr/bin/pip3
ln -s /usr/local/python38/bin/python3 /usr/bin/python
ln -s /usr/local/python38/bin/pip3.8 /usr/bin/pip
4.检查python3版本:
python3 -V
5.可能会出现的问题

pip3不能使用,出现错误
subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status

解决方法:删除一个文件

sudo rm /usr/bin/lsb_release

三、安装nvidia驱动

1.获取驱动文件

驱动获取网站:https://www.nvidia.cn/geforce/drivers/

python没有显卡_python

python没有显卡_pytorch_02

我下载的是NVIDIA-Linux-x86_64-455.38.run
上传文件到服务器,给文件权限,变成可执行文件

sudo a+x NVIDIA-Linux-x86_64-455.38.run
sudo ./NVIDIA-Linux-x86_64-455.38.run

四、安装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-smi就能看到你的3090了

五、安装cudnn

1.下载cudnn

官网下载:https://developer.nvidia.com/rdp/cudnn-archive

选择cuDNN v7.0.0 library for liunx
(需要注册才能进行下载)

下载完毕后,上传cudnn-9.1-linux-x64-v7.tgz 压缩包到服务器

解压cudnn-9.1-linux-x64-v7.tgz

sudo tar -xzvf cudnn-9.1-linux-x64-v7.tgz
2.复制cuDNN内容到cuda相关文件夹内

解压后的文件夹名称为cuda,复制文件

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn*  /usr/local/cuda/lib64

变成可执行文件

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

六、安装pytorch 和torchvision

下边命令直接安装,也可以点击官网进行选择

sudo pip3 install torch===1.7.1+cu110 torchvision===0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

七、总结

到此处,所有的的安装就完成。简单的网络可以直接跑了。

由于当时我要用faster-rcnn网络,还需要对faster-rcnn重新编译环境,比如我更新了lib文件夹中的pycocotools文件夹、soft_nms文件夹和AlignPool文件夹中的编译生成文件(比如,删除.c文件,.so文件,build文件,以及更新了setup_linux.py中的算力 -arch=sm_86),这个具体网络具体分析吧。