码迷,mamicode.com
首页 > 其他好文 > 详细

tensorrt cmakelist 顺序影响

时间:2021-04-13 12:52:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:set   新建工程   顺序   tor   rect   com   oca   问题   调用   

# cuda10.0
include_directories(/usr/local/cuda/include)
link_directories(/usr/local/cuda/lib64)

# tensorrt 7.0.0.11
set(TENSORRT_ROOT ${CMAKE_SOURCE_DIR}/3rdparty/TensorRT-7.0.0.11)
include_directories(${TENSORRT_ROOT}/include)
link_directories(${TENSORRT_ROOT}/lib)

今天突然发现这两个顺序颠倒会影响精度。具体原因是调用的libnvinfer这个库。
cuda10.0和tensorrt目录下面都有这个库,但是cuda目录下面的库是6版本的,tensorrt下面这个库是7版本的。具体看下面这个图:
技术图片
顺序不一样,链接的库的版本不一样,哪个在前面就优先链接哪个库。
我这边是cuda在前面精度才一致,如果链接tensorrt目录下面的libnvinfer.so.7这个库精度就会不一致。看了git工程,大家写的cmakelist大部分都是把cuda写在前面。
试想想,如果我一开始把tensorrt写前面,然后精度不一致,又不报错,然后这个精度问题根本查找不出来的吧?太难了。
还好我是一开始把cuda写前面,然后再新建工程复制粘贴把tensorrt写前面发现精度不一致了,
然后也找了半天原因,各种控制变量实验,才发现顺序不一样,链接的库不一样,精度不一样。

tensorrt cmakelist 顺序影响

标签:set   新建工程   顺序   tor   rect   com   oca   问题   调用   

原文地址:https://www.cnblogs.com/yanghailin/p/14651931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!