zoukankan      html  css  js  c++  java
  • tensorrt cmakelist 顺序影响

    # 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写前面发现精度不一致了,
    然后也找了半天原因,各种控制变量实验,才发现顺序不一样,链接的库不一样,精度不一样。

    好记性不如烂键盘---点滴、积累、进步!
  • 相关阅读:
    [转]ASP.NET会话(Session)保存模式
    ASP.NET 2.0 实现伪静态网页方法
    显示带颜色的字符串
    sublime text 3.0使用
    sublime text插件
    cogs1715 动态逆序对
    双网卡bond
    解决CentOS6不能使用yum源
    查看磁盘io占用
    [office] 在word中的小技巧
  • 原文地址:https://www.cnblogs.com/yanghailin/p/14651931.html
Copyright © 2011-2022 走看看