trtexec 是 TensorRT 提供的一个命令行工具,用于将深度学习模型转换为 TensorRT 引擎,并对其进行性能测试和推理。它支持多种模型格式(如 ONNX、Caffe 等),并允许用户配置各种参数以优化模型性能。以下是 trtexec 的主要功能和命令选项介绍:
工具安装
trtexec 是 NVIDIA TensorRT 提供的一个命令行工具,用于测试和运行 TensorRT 引擎。它可以用于快速评估模型的性能、生成 TensorRT 引擎文件等。
安装TensorRT
基本功能
模型转换:
- trtexec 可以将 ONNX、Caffe 等格式的模型转换为 TensorRT 引擎文件(.engine),以便在 NVIDIA GPU 上进行高效推理。
性能测试:
- 通过运行多次推理,trtexec 可以测量并报告模型的推理性能,包括延迟和吞吐量。
动态形状支持:
- 支持动态输入形状,可以在模型转换和推理时指定最小、最佳和最大输入形状。
精度设置:
- 支持多种计算精度,包括 FP32、FP16、INT8 和 FP8,以在性能和精度之间进行权衡。 常用命令选项
常用命令选项
模型选项
- –onnx=:指定要加载的 ONNX 模型文件。
- –saveEngine=:将转换后的 TensorRT 引擎文件保存到指定路径。
- –loadEngine=:加载已保存的 TensorRT 引擎文件。
构建选项
- –minShapes=spec、–optShapes=spec、–maxShapes=spec:指定动态输入形状的最小、最佳和最大值。
- –fp16:启用 FP16 精度。
- –int8:启用 INT8 精度,并且需要提供校准文件。
- –calib=:指定 INT8 校准缓存文件。
- –builderOptimizationLevel:设置构建优化级别,值越高,构建时间越长但可能性能更好。
推理选项
- –shapes=spec:设置动态形状输入的实际形状。
- –iterations=N:指定推理迭代次数。
- –duration=N:指定推理测试的持续时间(秒)。
- –warmUp=N:指定推理前的预热时间(毫秒)。
性能报告
- –verbose:启用详细日志。
- –avgRuns=N:报告多个连续迭代的平均性能。
- –percentile=P1,P2,P3,…:报告指定百分位数的性能。
系统选项
- –device=N:选择 CUDA 设备。
- –useDLACore=N:选择 DLA 核心。
示例命令
1转换 ONNX 模型为 TensorRT 引擎:
trtexec