安装LibTorch与Torch-Tensorrt
其实libtorch就是pytorch的一些c++接口,所以以下提到的Pytorch版本就是libtorch版本。
准备工作
版本确认
需要先安装CUDA toolkit, cuDNN, TensorRT。而这几个软件间版本有强关联性,因此先按torch-tensorrt release中的要求找一套合适的版本关系。
我这里选择的是:
- Torch-TensorRT v1.2.0
- PyTorch 1.12
- CUDA toolkit 11.6
- cuDNN 8.4
- TensorRT 8.4
安装前置项
- 安装CUDA toolkit:https://docs.nvidia.com/cuda/index.html#
- 安装cuDNN:https://docs.nvidia.com/deeplearning/cudnn/index.html
- 安装Tensorrt:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#overview
安装libtorch与torch-tensorrt
下载libtorch
链接:https://pytorch.org/
其他版本的类推链接就行,如cuda 11.6+pytorch 1.12.1的链接为:https://download.pytorch.org/libtorch/cu116/libtorch-cxx11-abi-shared-with-deps-1.12.1%2Bcu116.zip
下载torch-tensorrt
链接:https://github.com/pytorch/TensorRT/releases
我需要的v1.2.0的链接为:https://github.com/pytorch/TensorRT/releases/download/v1.2.0/libtorchtrt-1.2.0-pre-cxx11-abi-cudnn8.4-tensorrt8.4-cuda11.6-libtorch1.12.1-x86_64-linux.tar.gz
解压并设置环境变量
将下载的压缩包分别解压到任意目录,然后需要设置一些环境变量,以便编译器和运行时能够找到相关的库和头文件。例如,假设你将libtorch解压到了/home/user/libtorch目录下,而torch-tensorrt解压到了/home/user/torchtrt目录下,那么你可以使用以下命令:
export LIBTORCH_DIR=/home/user/libtorch
export TORCHTRT_DIR=/home/user/torchtrt
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBTORCH_DIR/lib:$TORCHTRT_DIR/lib
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$LIBTORCH_DIR/include:$TORCHTRT_DIR/include
export CMAKE_PREFIX_PATH=$LIBTORCH_DIR:$TORCHTRT_DIR
将上述设置环境变量的命令放在./bashrc中即可。
报错
编译出现错误Failed to detect a default CUDA architecture
. 是CMake版本较高后出现的问题,要求必须设定CMAKE_CUDA_ARCHITECTURES
,根据cuda算力填写。3.24版本之后可以设置为native,为主机 GPU 的体系结构进行编译。
export CMAKE_CUDA_ARCHITECTURES=native
编译出现错误No CMAKE_CUDA_COMPILER could be found
. 是因为没有设置cuda的编译器,应该设置为之前安装的nvcc的路径。
export NVCC_PATH=/usr/local/cuda-11.6/bin/nvcc
export CMAKE_CUDA_COMPILER=$NVCC_PATH
export CUDACXX=$NVCC_PATH