版本统一
cuda、cudnn、tensorrt版本对应关系与安装教程csdn上有很多,本文不做描述
cudnn安装须知
- 将
/include
中文件拷贝到/usr/local/cuda/include
下 - 将
/lib/libcundd*
拷贝到/usr/local/cuda/lib64
下
tensorRT安装须知
-
设置环境变量
- 终端设置方式
#解压得到TensorRT-8.6.1.6的文件夹,将里边的lib绝对路径添加到环境变量中 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/sxj/xiazai/TensorRT-8.6.1.6/lib # 重新加载环境变量 source ~/.bashrc
- 文件设置方式
sudo gedit ~/.bashrc
修改文件
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pkc/AJ/3rdParty/TensorRT/lib export PATH=/home/pkc/AJ/3rdParty/TensorRT/bin${PATH:+:${PATH}}
然后在终端运行
source ~/.bashrc
设置好环境变量后一定要打开文件确认。
为了避免其它软件找不到 TensorRT 的库,建议把 TensorRT 的库和头文件添加到系统路径下:
# TensorRT路径下
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include
部署大坑
nvinfer1::createInferBuilder创建返回nullptr
tensorrt
环境错误,确认~/.bashrc
中相应的变量路径;- 没有引用库文件
cuda::cudart
; - 日志对象
logger
创建错误。
tensort调用
CMakeLists
# cuda
find_package(CUDAToolkit REQUIRED)
message(STATUS "CUDA:${CUDAToolkit_INCLUDE_DIRS}")
include_directories("${CUDAToolkit_INCLUDE_DIRS}")
link_directories(${CUDAToolkit_LIBRARY_DIR})
# TensorRT
set(TENSORRT_ROOT "/home/pkc/AJ/3rdParty/TensorRT")
include_directories("/home/pkc/AJ/3rdParty/TensorRT/include")
link_directories("${TENSORRT_ROOT}/lib")
file(GLOB TENSORRT_LIBS "${TENSORRT_ROOT}/lib/*.so")
target_link_libraries(${PROJECT_NAME}
${TENSORRT_LIBS}
CUDA::cudart
nvinfer
nvonnxparser
)