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

    好记性不如烂键盘---点滴、积累、进步!
  • 相关阅读:
    获取当前时区时间
    python lambda表达式详解
    Odoo 12开发之开发环境准备
    初步了解odoo12
    web前端面试题
    实现一个优先级队列
    面试题
    python读取和生成excel文件
    Django基础
    virtualenv
  • 原文地址:https://www.cnblogs.com/yanghailin/p/14651931.html
Copyright © 2020-2023  润新知