tensorrt trtexec
时间: 2025-05-16 16:59:43 浏览: 15
### TensorRT 中 `trtexec` 的使用方法及参数说明
`trtexec` 是 NVIDIA 提供的一个命令行工具,用于测试和验证 TensorRT 引擎的功能以及性能。它支持多种输入模型格式(如 ONNX),并允许用户通过一系列参数来调整推理过程中的行为。
以下是关于 `trtexec` 的主要功能及其常用参数的详细介绍:
#### 基本语法
```bash
trtexec [options]
```
#### 参数详解
1. **指定输入模型**
- 使用 `--onnx=<path>` 来加载一个 ONNX 模型文件[^3]。
```bash
--onnx=path/to/model.onnx
```
2. **构建优化引擎**
- 可以通过 `--saveEngine=<file>` 将生成的 TensorRT 引擎保存到磁盘上以便后续重用[^1]。
```bash
--saveEngine=path/to/engine.trt
```
- 如果已有预训练好的 TensorRT 引擎,则可以通过 `--loadEngine=<file>` 加载该引擎。
```bash
--loadEngine=path/to/existing_engine.trt
```
3. **设置运行模式**
- 启用 FP16 或 INT8 精度模式可以显著提升性能:
- 对于半精度浮点数运算启用 FP16 支持:
```bash
--fp16
```
- 配置 INT8 校准表以实现整数量化加速:
```bash
--int8 --calibrationTable=path/to/calibration.table
```
4. **控制批处理大小**
- 默认情况下会采用动态批量尺寸,默认最小、最优和最大批次均为 1;如果希望自定义这些值,可通过如下选项完成配置:
```bash
--minShapes=input:1x3x224x224 --optShapes=input:8x3x224x224 --maxShapes=input:16x3x224x224
```
5. **测量延迟与吞吐量**
- 执行多次迭代计算平均推理时间:
```bash
--iterations=1000
```
- 设置暖机次数减少首次调用带来的偏差影响:
```bash
--warmUpIterations=100
```
6. **其他实用选项**
- 显示详细的日志信息帮助调试问题所在位置:
```bash
--verbose
```
- 展示版本号确认当前使用的具体发行版编号是否匹配预期需求:
```bash
--version
```
#### 示例代码片段
下面提供了一个简单的例子展示如何利用上述提到的部分参数组合起来实际操作 `trtexec` 工具进行 ONNX 转换至 TRT Engine 并评估其表现情况的过程。
```bash
trtexec \
--onnx=resnet50v2.onnx \
--shapes=input:1x3x224x224 \
--workspace=4096 \
--batchSize=1 \
--fp16 \
--saveEngine=resnet50v2.engine \
--iterations=100 \
--warmUpIterations=10 \
--exportTimes=output/timing.json \
--exportOutput=output/output_data.json
```
此脚本将会把 ResNet-50 v2 架构从原始 ONNX 表达形式转化为适配硬件特性的高效 TensorRT 推理引擎实例,并记录每次预测耗时时长数据存储进 JSON 文件当中便于后期分析比较不同设定条件下系统响应速度差异程度。
---
阅读全文
相关推荐


















