腾讯云Ubuntu18.04配置深度学习环境
文章目录
- 版本说明
- 版本信息汇总
- 版本制约关系
- CUDA驱动及CUDA Toolkit最高对应版本
- cuda 和cudnn 的版本匹配
- CUDA Toolkit和PyTorch对应版本
- 一. 服务器购买和配置
- 二、安装显卡驱动
- 2.1 自动安装方式
- 2.2 手动安装方式
- 2.3 debug记录
- 三、安装cuda
- 3.1 安装cuda
- 3.2 配置cuda相关的环境变量
- 3.3 不同cuda版本间的切换
- 四、安装cudnn
- 五、安装Anaconda
- 六. 安装pytorch
- 6.1 创建虚拟环境
- 6.2 安装pytorch
- 6.3 安装下载其他第三方库
- 6.2 安装cmake-3.15.3
- 七、安装spconv
- 7.1 安装sponv
- 7.2 debug记录
- 八、安装OpenPCDet
- 九、安装open3d
版本说明
版本信息汇总
本篇博客安装的版本信息汇总如下表
名称 | 版本 | 查看命令 |
---|---|---|
服务器 | 腾讯云GPU计算型GN7, 8核32G | |
Ubuntu18.04 | ||
python | 3.7.13 | python -V |
CUDA Driver API | 418.39 | nvidia-smi |
CUDA Runtime API | 10.1 | nvcc -V |
cudnn | 7.6.5 | cat /usr/local/cuda/include/cudnn.h |
torch | 1.7.1+cu101 | import torch; print(torch.__version__); print(torch.cuda.is_available()) |
torchvision | 0.8.2+cu101 | import torchvision; print(torchvision.__version__); |
torchaudio | 0.7.2 | import torchaudio;print(torchaudio.__version__) |
cmake | 3.15.3 | cmake --version |
spconv | 1.2.1 | |
pcdet | ||
vtk | 8.1.2 | |
open3d | 0.9.0 |
版本制约关系
CUDA驱动及CUDA Toolkit最高对应版本
更多匹配组合可以到cuda官网上去查看
使用nvidia-smi
查询驱动版本。
例如如下图,我的driver版本是418.39, 可安装的cuda toolkit 的最高版本是10.1
注:驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。
cuda 和cudnn 的版本匹配
更多匹配组合可以到cudnn官网上去查看(一会也会在这个网站上下载cudnn)
CUDA Toolkit和PyTorch对应版本
更多匹配组合可以到pytorch官网上查看
如下图所示,v1.7.1
表示的是pytorch版本号。
然后复制红框中的代码(对应的是cuda10.1),粘贴到终端下载。其中上面一个是cpu版本,下面一个是gpu版本(带有cu标志)
一. 服务器购买和配置
我选择腾讯云目前的主流机型GPU计算机型GN7,其中搭载一颗Tesla T4 GPU。
为啥要买服务器? 因为我的电脑是windows系统,然后我也懒得去装双系统。其次vm上运行的ubuntu虚拟机不能装navida驱动!
此处一定要注意选择是GPU型的服务器!! (博主第一次没有看清楚,买的CPU版本的云服务器,安装了半天的显卡驱动装不上,浪费了好长时间呜呜)
GPU型的服务器分为计算型和渲染型。其中渲染型主要用于3d图像渲染。计算型多适用于一般的深度学习计算等。
具体的型号选择如下表
二、安装显卡驱动
腾讯云官网教程
2.1 自动安装方式
强烈推荐这个方法!! ( 本人因为忘记选择自动安装,被迫又手动安装了一遍wuwu,详见方法2.2)
2.2 手动安装方式
- 执行以下命令,并输入 root 用户密码,切换至 root 用户。
su
- 执行以下命令,查看当前系统中是否已安装 dkms。
dpkg -l | grep -i dkms
返回结果如下图,则表示已安装 dkms。
若返回结果为空,则表明未安装 dkms,执行以下命令进行安装。
apt-get install dkms
- 前往 Official Drivers 页面,按需选择 GRID 驱动类型。
这个版本选择也是个坑,,这个型号要和自己购买的云服务器上的型号对应
-
查找结果如下,然后点击download
-
如有填写个人信息的页面可选择直接跳过,当出现以下页面时,右键单击 AGREE&DOWNLOAD 并选择菜单中的复制链接地址。如下图所示:
-
使用 wget 命令,粘贴上一步 中复制的链接地址,下载安装包。
wget https://us.download.nvidia.com/tesla/418.226.00/NVIDIA-Linux-x86_64-418.226.00.run
- 执行以下命令,修改安装包权限。请将命令中的 xxx 替换为您实际的驱动版本号。
chmod +x NVIDIA-Linux-x86_64-418.226.00.run
- 由于 NVIDIA 动的安装需要依赖 gcc 和 linux-kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 gcc 和 kernel-devel 包。
dpkg -l | grep -i gcc
dpkg -l | grep -i linux-headers
返回结果如下,则表示已安装 gcc 和 kernel-devel。
若返回结果为空,则表明未安装,执行以下命令进行安装。
sudo apt-get install gcc linux-kernel-headers
- 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxx 替换为您实际的驱动版本号。
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms -s
- 安装完成后,执行以下命令进行验证。
nvidia-smi
如返回信息类似下图中的 GPU 信息,则说明驱动安装成功。
从上图中可以看出,当前设备独显驱动版本为:418.39
2.3 debug记录
Linux安装NVIDIA驱动报错An NVIDIA kernel module ‘nvidia-drm‘ appears to already be loaded in your kernel…
- 解决方案:卸载旧版本,再安装新版本,以消除冲突
# 卸载旧版本
sudo nvidia-uninstall
# 重启
reboot
# 安装新版
sudo sh NVIDIA......
# 查看
nvidia-smi
三、安装cuda
3.1 安装cuda
- 选择合适的cuda版本
根据前两步的查询结果安装对应版本的CUDA。独显驱动版本为:435.21,根据下表可以看出我们需要安装10.2.89以下版本的CUDA,这里我选择安装了10.1版本的CUDA
下图的完整链接
- 下载安装包
官网下载地址
在CUDA安装包所在的文件夹下打开终端,执行如下命令进行安装:
chmod +x ./cuda_10.1.105_418.39_linux.run
sudo ./cuda_10.1.105_418.39_linux.run
注意这个文件名,前面的cuda_10.1.105代表cuda的版本,后面的418.39代表的对应的NVIDIA驱动的版本
安装过程中在建立软链接时需要注意一下,如果你是第一次安装cuda,那么毫无疑问输入y(yes),但是如果你是安装额外版本的cuda,是否选择y(yes)就要看你的具体需求而定,简言之,就是如果你希望启用当前安装的cuda版本,就选y,如果你只是想安装这个版本,而暂时还不想启用该版本时,就选n
3.2 配置cuda相关的环境变量
- 添加环境变量
vim ~/.bashrc #修改配置文件(如果你用的是zsh,则需要修改 ~/.zshrc文件)
#在文件结尾处添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
- 保存文件并退出,然后在终端输入以下命令刷新环境变量:
source ~/.bashrc
- 在终端输入以下命令,如果显示下图中的结果,则说明CUDA安装成功
nvcc -V
3.3 不同cuda版本间的切换
在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本,如下图所示
这里,cuda-10.1和cuda-11.2就是我们安装的两个cuda版本了,而cuda是一个软链接,它指向我们指定的cuda版本
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda
四、安装cudnn
-
下载cudnn
官方下载链接
-
解压
tar zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
-
下载完成后解压并进入该文件夹下,执行如下命令,进行相关文件的复制:
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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
- 打开终端,输入以下命令,查看CUDNN是否安装成功:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
依次输出7、6、5,即为CUDNN7.6.5版本。
五、安装Anaconda
- 先安装一些必备的库
$ sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
- 然后从官网里面下载Anaconda的安装脚本
$ wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
- 然后给脚本赋予执行权限
$ chmod +x Anaconda3-2020.11-Linux-x86_64.sh
然后运行安装脚本即可
$ ./Anaconda3-2020.11-Linux-x86_64.sh
这里不建议使用root权限安装,如果你自己使用的用户就不是root账户的话
这里如果出现找不到conda命令的情况可能需要手动修改shell的环境配置
$ sudo vim ~/.bashrc
然后就修改为类似这样的实际安装路径
export PATH="/home/ubuntu/anaconda3/bin:$PATH"
然后刷新重新运行
$ source ~/.bashrc
六. 安装pytorch
6.1 创建虚拟环境
- 创建虚拟环境openpcdet
conda create -n openpcdet python=3.7
- 进入该虚拟环境
conda activate openpcdet
6.2 安装pytorch
- 方法1:运行官网命令
注:安装的是gpu版本,安装之后可以测试一下,torch是否能调用cuda。
安装命令,建议去官网复制粘贴,不容易出现cuda和torch版本不匹配的问题。
如下图,从官网上复制对应版本的命令,然后复制到终端运行。
pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
- 方法2
如果方法1比较慢的话,可以先从官网上下载轮子
官网下载地址
具体选择如下:
cu表示gpu版本的;
101表示cuda的版本是10.1;
torch-1.7.1表示torch的版本号;
cp37表示对应的python版本是3.7
linux表示安装在linux系统上。
然后把下载好的文件通过xftp软件传输到服务器上。
切换路径到这两个whl文件所在的文件夹下,然后再pip install 文件名
pip install torch-1.7.1+cu101-cp37-cp37m-linux_x86_64.whl
pip install torchvision-0.8.2+cu101-cp37-cp37m-linux_x86_64.whl
pip install torchaudio-0.7.2-cp37-cp37m-linux_x86_64.whl
6.3 安装下载其他第三方库
pip install + 如下的文件名
numpy
numba
tensorboardX
easydict
pyyaml
scikit-image
tqdm
SharedArray
vtk==8.1.2
mayavi==4.7.3
PyQt5
6.2 安装cmake-3.15.3
先从百度网盘上下载cmake压缩包,然后上传到服务器上
cmake百度网盘下载链接:
链接:https://pan.baidu.com/s/1d4IuDzmnIWeu8Mz9pUXx5A
提取码:9unt
–来自百度网盘超级会员V4的分享
tar -xvzf cmake-3.15.3.tar.gz
cd cmake-3.15.3
./bootstrap #执行引导文件
#该命令执行需要一定时间,请耐心等待。成功执行结束之后,末尾提示:CMake has #bootstrapped. Now run make.
make
sudo make install
cmake --version
cd ..
rm -rf cmake-3.15.3 #清理安装源代码
pip install cmake==3.15.3
七、安装spconv
7.1 安装sponv
- 安装spconv
从百度网盘上下载spconv-1.2.1,并上传到云服务器上。
spconv-1.2.1 百度网盘下载链接
链接:https://pan.baidu.com/s/1ERxzmrvinvo53Y__Wba4hg
提取码:j3o5
–来自百度网盘超级会员V4的分享
unzip spconv-1.2.1.zip
cd spconv-1.2.1
python setup.py bdist_wheel
cd dist
pip install spconv-1.2.1-cp37-cp37m-linux_x86_64.whl
验证是否安装成功
python
import spconv
7.2 debug记录
- debug1
报错如下:
/usr/include/c++/7/bits/basic_string.tcc:1067:16: error: cannot call member function
‘void std::basic_string<_CharT, _Traits, _Alloc>::_Rep::_M_set_sharable() [with _CharT = char16_t; _Traits = std::char_traits<char16_t>; _Alloc = std::allocator<char16_t>]’
without object
__p->_M_set_sharable();
解决办法:将/usr/include/c++/7/bits/basic_string.tcc:1067:16
中
sudo gedit /usr/include/c++/7/bits/basic_string.tcc
将__p->_M_set_sharable()
改为 (*__p)._M_set_sharable()
- debug2
报错如下:
OSError: /home/ubuntu/anaconda3/envs/openpcdet/lib/python3.7/site-packages/spconv/libspconv.so:
undefined symbol: _ZN6caffe28TypeMeta21_typeMetaDataInstanceIdEEPKNS_6detail12TypeMetaDataEv
检查自己的pytorch版本是否安装的正确。
如果不正确,需要卸载之前的版本,安装新的pytorch版本。
然后需要重新安装spconv, 运行如下命令
pip install spconv-1.2.1-cp37-cp37m-linux_x86_64.whl --force-reinstall
八、安装OpenPCDet
- 安装OpenPCDet
git clone https://ghproxy.com/https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
python setup.py develop
- 验证pcdet是否安装成功
python
import pcdet
九、安装open3d
- 安装open3d
conda install -c open3d-admin open3d==0.9.0
pip install open3d-python
- 验证是否安装成功
python
import open3d