在windows和linux上玩转Tensorrt

11 篇文章 0 订阅
6 篇文章 0 订阅

为避免重复,一些安装内容我直接贴其他大佬的帖子了,我是按照他们的步骤来操作的,趟过一遍,没有问题。
本篇着重在tensort在Cmakelist中如何配置,以及如何配置编译动/静态库,比较基础,也是想做个笔记记录一下。


一、环境

  • windows
    1. windows11
    2. cuda:11.8
    3. cudnn:8(注意和cuda配套)
    4. tensorrt:8.6.1.6
  • linux
    1. ubuntu18.04 x86
    2. cuda: 11.4
    3. cudnn: 8
    4. tensorrt:8.6.1.6

二、安装cuda和cudnn

linux可以参考:ubunu安装cuda

三、安装tensorrt以及配置

均可以参考:https://blog.csdn.net/djstavaV/article/details/125195569

四、CMakeLists如何配置tensorrt以及坑

这里的场景是这样的,有两个工程,A工程来调用B工程,B工程中包含tensorrt的推理操作依赖tensorrt,那么这就需要把B工程打包成库文件,关于Cmakelist详细指导可以跳转到如何在CMakelist中配置,这里编译成库文件,在Cmakelist中,需要把

add_executable(${PROJECT_NAME} ${SOURCE_FILES})

改成

add_library(${PROJECT_NAME} STATIC ${SOURCE_FILES}) 

注意: 这里一定要用静态库,不然会报这个错误:

ERROR: 1: [dispatchStubs.cpp::deserializeEngine::14] Error Code 1: Internal Error (Unexpected call to stub)

查询资料参考:https://github.com/NVIDIA/TensorRT/issues/3307

然后要注意顺序:

include_directories -> link_directories -> add_library -> target_link_libraries -> install

对了,这里最后一步最好install一下,可以加入到系统路径/usr/local/lib/中。可参考:

install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION /usr/local/lib/)

其他的,target_link_libraries把tensorrt依赖的库文件放入即可,包括cuda的,这里也举例:

target_link_libraries(${PROJECT_NAME}  cublas cudart cudadevrt nvinfer nvinfer_dispatch nvinfer_lean nvinfer_plugin nvinfer_vc_plugin nvonnxparser nvparsers)

然后include_directorieslink_directories分别放入cuda和tensorrt的include文件和lib文件即可。
注意: include、lib和链接库一定要加,不然会出现以下问题:

cmakelist  /usr/bin/ld: cannot find -lcublas
  • 小抄
    1. add_executable 用来生成可执行文件;
    2. add_library 用来生成库文件,其中的关键字SHAREDSTATIC又分别代表动态库和静态库。

以上就是全部内容,有什么问题可以评论,一起交流 ,Enjoy~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas_Cai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值