TensorRT的官网更新相对比较频繁,每次当算法库以及TensorRT库更新后,都会面临实际使用的库和TensorRT库版本对应不上的问题,通过接口查看版本号,并通过代码做相应的参数检查,是一个重要的环节,这里楼主记录一下,C++端通过接口查看版本号。
一、通过头文件查看TensorRT的版本号
首先定位到 NvInferVersion.h 这个头文件
find / -name NvInferVersion.h
这个头文件里就记录了这些版本号啦
//!
//! \file NvInferVersion.h
//!
//! Defines the TensorRT version
//!
#ifndef NV_INFER_VERSION_H
#define NV_INFER_VERSION_H
#define NV_TENSORRT_MAJOR 8 //!< TensorRT major version.
#define NV_TENSORRT_MINOR 2 //!< TensorRT minor version.
#define NV_TENSORRT_PATCH 3 //!< TensorRT patch version.
#define NV_TENSORRT_BUILD 0 //!< TensorRT build number.
#define NV_TENSORRT_SONAME_MAJOR 8 //!< Shared object library major version number.
#define NV_TENSORRT_SONAME_MINOR 2 //!< Shared object library minor version number.
#define NV_TENSORRT_SONAME_PATCH 3 //!< Shared object library patch version number.
二、通过接口查看
在 NvInferRuntimeCommon.h 头文件中记录了如何通过接口来查看TRT的版本号
通过接口查看,可以避免头文件和执行的TRT库中,版本号不一致的问题
#define NV_TENSORRT_VERSION nvinfer1::kNV_TENSORRT_VERSION_IMPL
//!
//! \namespace nvinfer1
//!
//! \brief The TensorRT API version 1 namespace.
//!
namespace nvinfer1
{
static constexpr int32_t kNV_TENSORRT_VERSION_IMPL
= (NV_TENSORRT_MAJOR * 1000) + (NV_TENSORRT_MINOR * 100) + NV_TENSORRT_PATCH; // major, minor, patch
Demo如下即可:
std::cout << nvinfer1::kNV_TENSORRT_VERSION_IMPL << std::endl;
std::cout << "============" << std::endl;