CenterPoint 部署攻略一(环境适配篇)(docker conda构建 tensorrt pytorch mmengine mmcv安装)

简述:

本系列文章涉及三部分:环境搭建、onnx模型转换、TRT模型转换;

一、环境搭建:

因为最终要在orin上转换TRT,所以要先在本地搭建类似 orin 的环境(主要是cuda,tensorrt);

环境的构建采取的是 docker+conda 的模式(docker隔离性和可移植性较好,conda便于管理软件包,不要觉得麻烦,当复习工具使用了!);

Orin配置:

cuda-11.4.315

tensorrt-8.5.2.2

本机信息:

NVIDIA RTXA2000 GA106

二、细节

1. tensorrt torch cuda 对应关系:


tensorrt 版本对应的 torch 和 cuda:Release Notes :: NVIDIA Deep Learning TensorRT Documentation 

CUDA Toolkit版本及可用PyTorch对应关系:【最新】CUDA Toolkit版本及可用PyTorch对应关系(参考官网)_cuda12.2对应的pytorch_将月藏进诗尾的博客-CSDN博客

PyTorch中torch、torchvision、torchaudio版本对应关系:PyTorch中torch、torchvision、torchaudio版本对应关系_torch2.0.1对应的torchvision_Liekkas Kono的博客-CSDN博客

2. docker 以及 conda 的构建:

2.1 cuda from Dockerfile

cuda cudnn 在 docker hub:  https://hub.docker.com/r/nvidia/cuda上下载对应Dockerfile:

sudo docker pull nvidia/cuda:11.4.3-cudnn8-devel-ubuntu20.04

比如我为了搭建和orin相同的cuda环境,就选11.4.3-cudnn8-devel-ubuntu20.04,注意要安装devel 版本!

2.2 构建容器

然后是熟悉的 docker run 操作(替换自己的映射路径和镜像id):

sudo docker run -it --name xxx --shm-size 64g --gpus all -v xxx:/xxx -v xxx:/xxx Image_ID
sudo docker exec -it xxx /bin/bash

2.3 构建虚拟环境

然后是熟悉的 conda create 操作(就安装3.8.10,不要改):

conda create -n centerpoint_orin python=3.8.10
conda activate centerpoint_orin

2.4 安装tensorrt

从官网 Log in | NVIDIA Developer下载 tensorrt-8.5.2.2(GA是稳定版,英伟达系列的 updateX 就代表版本号后面加上一个.X),在conda环境中手动安装TRT:【TensorRT系列】1.TensorRT安装教程 - 知乎

2.5 备份

好了至此已经搭建了等同 orin 的 cuda tensorrt(以及你自定义安装的一系列xxx),如果对接下来的操作不放心,可以将此容器备份成镜像便于反复调试:

sudo docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]

3. pytorch 家族以及 mmcv 家族的安装:

至此已经得到了”母环境“(建议备份!建议备份!建议备份!),接下来要进行大乱斗安装:

3.1 torch家族安装:

根据上文贴出来的对应关系,安装你想要的系列(nvidia 的 cuda11.x 向下兼容,即11.4完全可以安装11.3系列对应的torch):

conda install pytorch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 cudatoolkit==11.3.1 -c pytorch

注:上述安装pytorch的命令中-c的意义是指定从torch官方的渠道进行下载,而不使用默认渠道。

或者 你想要 pip 安装(确保在上一步已经更新):

pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 cudatoolkit==11.3.1

在这里扯一下conda install 和 pip install 的关系,为什么 pip list 里没有的包也能运行? conda list 里的东西又是怎么被调用的? pip和conda可以混用吗? - 知乎

好了扯回来!如果使用 conda 安装 pytorch 后 import 找不到 torch 怎么办(/path/to/torch替换成自己的路径,如果不知道自己 torch 安装在哪,重新运行一遍你刚才的安装命令,会提示 xxx is already exists in /xxx/path):

vim ~/.bashrc

export PYTHONPATH=/path/to/torch:$PYTHONPATH

source ~/.bashrc

3.2 安装mmengine mmcv:

pip install mmcv-full

(实践中我先没有指定版本)若上述命令无效:

用mim安装:

pip install -U openmim
mim install mmcv-full

实在安不下来手动安装 .whl 吧(cuxxx torchx.x.x记得更换!): https://download.openmmlab.com/mmcv/dist/cu111/torch1.8.0/index.html

4. 运行时的报错案例及解决

然后运行你的小脚本,出现什么报错解决什么(环境层面),如:

ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory:

apt-get update
apt-get install libglib2.0-0

The following packages have unmet dependencies: libglib2.0-dev : Depends: libpcre3-dev (>= 1:8.31) but it is not going to be installed Depends: zlib1g-dev but it is not going to be installed E: Unable to correct problems, you have held broken packages.

apt-get install libpcre3-dev=1:8.31 zlib1g-dev

总之一句话,缺什么安什么,安装完记得看最后一行有没有warning,按照他提供的最小安装版本条件安装!

若出现下面的大坑,误慌,先 pip uninstall mmcv,再根据 安装 MMCV — mmcv 2.0.1 文档 输入你的配置得到安装命令;

ImportError: /root/miniconda3/envs/centerpoint_radarduck/lib/python3.8/site-packages/mmcv/_ext.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationESs

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值