目录
1. wsl2+ubuntu18环境配置
1.1 在windows上安装wsl2
1.2将 WSL2 设置为默认版本
1.3 ubuntu18安装
2. 在wsl2上使用docker镜像
2.1 安装docker
2.2 使用nvidia官方docker
3. 安装依赖
3.2 安装cmake3.16.0
4. 编译安装TensorRt
4.1 下载和配置TensorRT SDK 7.2
4.2 安装TensorRT
4.3 测试TensorRT实用库编译安装正确
0. 系统及环境版本
OS:window11
cuda:10.2
cudnn:8.1
按win + X,选择 Windows终端(管理员),输入下面代码:
# 开启 Linux 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 开启虚拟机平台
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
更新必须在管理员模式下进行。
# 更新 wsl
wsl --update
## 将 wsl 版本设置为 wsl2
wsl --set-default-version 2
备忘一下常用的wsl命令 :
# 查看 wsl
wsl -l
wsl --list
# 查看 wsl 运行版本或模式
wsl -l -v
# 设置发行版为使用 wsl 2
wsl --set-version 2
# 选择要注销的版本
wsl --unregister
打开 Microsoft Store,搜索想要安装的 Linux 发行版本,点击安装就行。比如,我选择的发行版本是Ubuntu18.04
直接打开Ubuntu18系统:
直接使用指令安装
curl -sSL https://get.daocloud.io/docker | sh
启动docker服务
sudo service docker start
直接pull下来就行,docker里相关依赖已经安装好了,不需要自己安装,可以省不少时间。
docker pull nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04
创建docker容器:
docker run --name my_container --gpus all --rm -ti --ipc=host pytorch/pytorch:latest
这样一个名为my_container的容器就创建好了。
apt update && apt install -y wget aptitude vim make git tcl-dev tk-dev software-properties-common libsqlite3-dev libopenblas-dev zlib1g-dev libffi-dev libssl-dev libncurses-dev libbz2-dev libxml2-dev libxslt1-dev libgdbm-dev libreadline-dev liblzma-dev libibverbs-dev libboost-all-dev libgflags-dev libgoogle-glog-dev libopencv-dev zip
3.1 安装python3.8(也可以源码编译安装,自己百度一下就行)
apt update
apt install python3.8
创建python3.8虚拟环境
# 安装virtualenv
pip install virtualenv
# 创建虚拟环境
virtualenv -p /usr/local/python3.8/bin/python3.8 ~/.env/python3.8
# 激活虚拟环境
source ~/.env/python3.8/bin/activate
编译时依赖高版本cmake,所以我们下载源码编译一下:
获取Cmake软件包。
wget https://cmake.org/files/v3.16/cmake-3.16.0.tar.gz --no-check-certificate
解压并进入软件包目录。
tar -xf cmake-3.16.0.tar.gz
cd cmake-3.16.0/
执行配置、编译和安装命令。
./configure --prefix=/usr/local/cmake
make && make install
设置软连接。
ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
执行如下命令验证是否安装成功。
cmake --version
如显示“cmake version 3.16.0”则表示安装成功。
wget https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.2.3/tars/TensorRT-7.2.3.4.Ubuntu-18.04.x86_64-gnu.cuda-11.0.cudnn8.1.tar.gz
tar -xvzf TensorRT-7.2.3.4.Ubuntu-18.04.x86_64-gnu.cuda-11.0.cudnn8.1.tar.gz
把解压好的文件放在/usr/local下:
mv TensorRT-7.2.3 /usr/local
ln -s /usr/local/TensorRT-7.2.3 /usr/local/TensorRT
export LD_LIBRARY_PATH=/usr/local/TensorRT/lib:$LD_LIBRARY_PATH
# 创建存放源代码的目录
mkdir -p ~/repos
# 进入目录
cd ~/repos
# 把源代码放到目录~/repos下
git clone -b release/7.2 https://github.com/nvidia/TensorRT TensorRT
cd TensorRT
git submodule update --init --recursive
# 创建用于编译的目录
mkdir build
# 进入编译目录
cd build
# 生成Makefile
cmake .. -DTRT_LIB_DIR=$TRT_RELEASE/lib -DTRT_OUT_DIR=`pwd`/out -DCUDA_VERSION=10.2
# 开始多线程编译
# 编译完成后,生成的文件都在~/repos/TensorRT/build/out中
make -j$(nproc)
# 将生成的库文件复制到$TRT_RELEASE/lib目录下
# 将生成的可执行文件复制到$TRT_RELEASE/bin目录下
make install
# 编译成功后根据python的版本安装TensorRT的python扩展
pip install /usr/local/TensorRT/python/tensorrt-7.2.3.4-cp38-none-linux_x86_64.whl
通过运行生成的 sample_mnist 文件就可以测试TensorRT是否正确的编译安装了。但是运行前需要先下载mnist数据。完成的操作如下:
# 进入下载mnist数据脚本所在的目录
cd $TRT_RELEASE/data/mnist
# 运行下载mnist数据的脚本
python3 ./download_pgms.py
# 进入sample_mnist 所在的目录
cd $TRT_RELEASE/bin
# 运行sample_mnist
./sample_onnx_mnist