获取TensorRT引擎文件(.engine)版本号的几种方法

获取TensorRT引擎文件(.engine)版本号的几种方法:

方法1:使用trtexec的–getPlanVersionOnly参数(推荐)

最直接和准确的方法:

export TENSORRT_ROOT=/opt/TensorRT-10.12.0.36 && export LD_LIBRARY_PATH=$TENSORRT_ROOT/lib:$LD_LIBRARY_PATH &&

$TENSORRT_ROOT/bin/trtexec --loadEngine="/media/models/scrfd_160x160_fp16.engine" --getPlanVersionOnly

从输出中可以看到类似下面的关键信息:

Plan was created with TensorRT version 10.8.0.43

获取TensorRT引擎文件版本号的完整方法总结

方法1:使用trtexec的–getPlanVersionOnly参数(最推荐)

# 设置TensorRT环境
export TENSORRT_ROOT=/opt/TensorRT-10.12.0.36
export LD_LIBRARY_PATH=$TENSORRT_ROOT/lib:$LD_LIBRARY_PATH
export PATH=$TENSORRT_ROOT/bin:$PATH

# 查看引擎文件版本
trtexec --loadEngine=/path/to/your/engine/file --getPlanVersionOnly

优点

  • 不需要反序列化整个引擎文件
  • 速度快,资源消耗少
  • 输出清晰明确
  • 支持TensorRT 8.6及以上版本

方法2:通过错误信息推断

当版本不匹配时,错误信息会显示版本号:

[TensorRT] IRuntime::deserializeCudaEngine: Error Code 1: Serialization (Serialization assertion stdVersionRead == kSERIALIZATION_VERSION failed.Version tag does not match. Note: Current Version: 240, Serialized Engine Version: 239)

版本号对应关系

  • 版本号240 = TensorRT 8.6.x
  • 版本号239 = TensorRT 8.5.x
  • 版本号238 = TensorRT 8.4.x

方法3:使用Python API

import tensorrt as trt

# 创建logger
logger = trt.Logger(trt.Logger.WARNING)

# 创建runtime
runtime = trt.Runtime(logger)

# 读取引擎文件
with open('/path/to/your/engine/file', 'rb') as f:
    engine_data = f.read()

# 尝试反序列化(会失败但会显示版本信息)
try:
    engine = runtime.deserialize_cuda_engine(engine_data)
except Exception as e:
    print(f"错误信息: {e}")
    # 错误信息中会包含版本号

方法4:使用strings命令查看二进制信息

strings /path/to/your/engine/file | grep -i "tensorrt\|version" | head -10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值