本篇博客安装的版本信息汇总如下表
名称 | 版本 | 查看命令 |
---|---|---|
服务器 | 腾讯云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官网上去查看
使用nvidia-smi
查询驱动版本。
例如如下图,我的driver版本是418.39, 可安装的cuda toolkit 的最高版本是10.1
注:驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。
更多匹配组合可以到cudnn官网上去查看(一会也会在这个网站上下载cudnn)
更多匹配组合可以到pytorch官网上查看
如下图所示,v1.7.1
表示的是pytorch版本号。
然后复制红框中的代码(对应的是cuda10.1),粘贴到终端下载。其中上面一个是cpu版本,下面一个是gpu版本(带有cu标志)
更多匹配组合可以到tensorflow官网上查看
我选择腾讯云目前的主流机型GPU计算机型GN7,其中搭载一颗Tesla T4 GPU。
为啥要买服务器? 因为我的电脑是windows系统,然后我也懒得去装双系统。其次vm上运行的ubuntu虚拟机不能装navida驱动!
此处一定要注意选择是GPU型的服务器!! (博主第一次没有看清楚,买的CPU版本的云服务器,安装了半天的显卡驱动装不上,浪费了好长时间呜呜)
GPU型的服务器分为计算型和渲染型。其中渲染型主要用于3d图像渲染。计算型多适用于一般的深度学习计算等。
具体的型号选择如下表
腾讯云官网教程
强烈推荐这个方法!! ( 本人因为忘记选择自动安装,被迫又手动安装了一遍wuwu,详见方法2.2)
su
dpkg -l | grep -i dkms
若返回结果为空,则表明未安装 dkms,执行以下命令进行安装。
apt-get install dkms
这个版本选择也是个坑,,这个型号要和自己购买的云服务器上的型号对应
如有填写个人信息的页面可选择直接跳过,当出现以下页面时,右键单击 AGREE&DOWNLOAD 并选择菜单中的复制链接地址。如下图所示:
使用 wget 命令,粘贴上一步 中复制的链接地址,下载安装包。
wget https://us.download.nvidia.com/tesla/418.226.00/NVIDIA-Linux-x86_64-418.226.00.run
chmod +x NVIDIA-Linux-x86_64-418.226.00.run
dpkg -l | grep -i gcc
dpkg -l | grep -i linux-headers
返回结果如下,则表示已安装 gcc 和 kernel-devel。
若返回结果为空,则表明未安装,执行以下命令进行安装。
sudo apt-get install gcc linux-kernel-headers
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms -s
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
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
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
在安装了多个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
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*
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
$ 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
conda create -n openpcdet python=3.7
conda activate openpcdet
注:安装的是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
如果方法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
如果不安装tensorflow,则无法使用tensorboard、tensorboardX这些可视化工具
我这里选择的是和cuda10.1相匹配的 tensorflow-gpu==2.2.0
pip install tensorflow-gpu==2.2.0
pip install + 如下的文件名
numpy
numba
tensorboard
tensorboardX
easydict
pyyaml
scikit-image
tqdm
SharedArray
vtk==8.1.2
mayavi==4.7.3
PyQt5
先从百度网盘上下载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-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
报错如下:
/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()
报错如下:
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
git clone https://ghproxy.com/https://github.com/open-mmlab/OpenPCDet.git
cd OpenPCDet
python setup.py develop
python
import pcdet
conda install -c open3d-admin open3d==0.9.0
pip install open3d-python
python
import open3d