引言
实验室服务器是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/
我下载的是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),这个具体网络具体分析吧。