当前位置: 首页 > news >正文

腾讯云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
python3.7.13python -V
CUDA Driver API418.39nvidia-smi
CUDA Runtime API10.1nvcc -V
cudnn7.6.5cat /usr/local/cuda/include/cudnn.h
torch1.7.1+cu101import torch; print(torch.__version__); print(torch.cuda.is_available())
torchvision0.8.2+cu101import torchvision; print(torchvision.__version__);
torchaudio0.7.2import torchaudio;print(torchaudio.__version__)
cmake3.15.3cmake --version
spconv1.2.1
pcdet
vtk8.1.2
open3d0.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

在这里插入图片描述

相关文章:

  • 软考倒计时58天!高效备考的方法有这些!
  • vue跨域iframe自适应高度
  • Qt扫盲-QAssisant 集成其他qch帮助文档
  • SQLAlchemy使用MetaData对象与模型类操作数据库表
  • MongoDB Atlas维护指南:常见类型、注意事项与窗口设置
  • STM32使用USART发送数据包指令点亮板载LED灯
  • 跟着cherno手搓游戏引擎【25】封装2DRenderer,封装shader传参,自定义Texture
  • PostgreSQL对已有表增加自增序列
  • 论文阅读-CheckFreq:频繁、精细的DNN检查点操作。
  • 【Python从入门到进阶】49、当当网Scrapy项目实战(二)
  • React18源码: Fiber树的初次创建过程图文详解
  • 顶顶通呼叫中心中间件-如何使处于机器人话术中的通话手动转接到坐席分机上讲解(mod_cti基于FreeSWITCH)
  • 反常积分敛散性的比较判别法专题(及常用反常积分)
  • pythond大屏可视化
  • 知识图谱-生物信息学-医学论文(Chip-2022)-BCKG-基于临床指南的中国乳腺癌知识图谱的构建与应用
  • 力扣 每日一题 902. 最大为 N 的数字组合【难度:困难,rating: 1989】(数学 / 数位dp)
  • 奇迹mu服务器安全和优化设置
  • OC 基础 导航栏UITabBarController的使用(源码)
  • 人脸识别项目FFmpeg+OpenCV+虹软SDK
  • ITRS 与 GCRS 之间的坐标转换
  • 【图像重建】基于matlab SIDER算法图像压缩重建【含Matlab源码 2170期】
  • 多线程同步-条件变量
  • JS(第八课)循环语句中常用到的案例
  • 2022软考高项十大领域知识整理(四)-人力资源管理、干系人管理、采购管理
  • 深度学习基础之BatchNorm和LayerNorm
  • 【Spring】面向切面编程详解(AOP)
  • 力扣(LeetCode)75. 颜色分类(C语言)
  • LeetCode算法题整理(200题左右)
  • flowable-ui绘图常见错误
  • 前端最新基础知识
  • 【2022年玄武云科技AI算法岗秋招面试记录】
  • ROBOGUIDE软件:FANUC机器人电弧跟踪功能介绍与示教编程操作