【trtexec】trtexec命令大全

1.1 Model Option 模型选项

–uff : UFF模型文件名
–onnx : ONNX模型文件名
–model : Caffe模型文件名,模式时无模型,使用随机权重
–deploy : Caffe prototxt 文件名
–output : 输出名称(可多次指定);UFF和Caffe至少需要一个输出
–uffInput : 输入blob名称及其维度(X、Y、Z=C、H、W),可以多次指定;UFF型号至少需要一个
–uffNHWC : 设置输入是否在NHWC布局中而不是NCHW中(在–uffInput中使用X、Y、Z=H、W、C顺序)

1.2 Build Options 构建选项

–maxBatch : 设置最大批处理大小并构建隐式批处理引擎(默认值=1)
–explicitBatch :构建引擎时使用显式批量大小(默认 = 隐式)
–minShapes=spec : 使用提供的最小形状的配置文件构建动态形状
–optShapes=spec : 使用提供的 opt 形状的配置文件构建动态形状
–maxShapes=spec : 使用提供的最大形状的配置文件构建动态形状
–minShapesCalib=spec : 使用提供的最小形状的配置文件校准动态形状
–optShapesCalib=spec : 使用提供的 opt 形状的配置文件校准动态形状
–maxShapesCalib=spec :使用提供的最大形状的配置文件校准动态形状
注意:必须提供所有三个 min、opt 和 max 形状。但是,如果只提供了 opt 形状,那么它将被扩展,以便将最小形状和最大形状设置为与 opt 形状相同的值。此外,使用 动态形状意味着显式批处理。 输入名称可以用转义单引号括起来(例如:‘Input:0’)。示例输入形状规范:input0:1x3x256x256,input1:1x3x128x128 每个输入形状都作为键值对提供,其中 key 是输入名称 值是用于该输入的维度(包括批次维度)。 每个键值对都使用冒号 (😃 分隔键和值。 可以通过逗号分隔的键值对提供多个输入形状。
–inputIOFormats=spec : 每个输入张量的类型和格式(默认所有输入为fp32:chw)
注意:如果指定此选项,请按照与网络输入ID相同的顺序为所有输入设置逗号分隔的类型和格式(即使只有一个输入需要指定IO格式)或设置一次类型和格式以进行广播。
–outputIOFormats=spec : 每个输出张量的类型和格式(默认所有输入为fp32:chw)
注意:如果指定此选项,请按照与网络输出ID相同的顺序为所有输出设置逗号分隔的类型和格式(即使只有一个输出需要指定IO格式)或设置一次类型和格式以进行广播。
–workspace=N : 以M为单位设置工作区大小(默认值 = 16)
–noBuilderCache : 在构建器中禁用时序缓存(默认是启用时序缓存)
–nvtxMode=mode : 指定 NVTX 注释详细程度。 mode ::= default|verbose|none
–minTiming=M : 设置内核选择中使用的最小迭代次数(默认值 = 1)
–avgTiming=M : 为内核选择设置每次迭代的平均次数(默认值 = 8)
–noTF32 : 禁用 tf32 精度(默认是启用 tf32,除了 fp32)
–refit : 将引擎标记为可改装。这将允许检查引擎内的可改装层和重量。
–fp16 : 除 fp32 外,启用 fp16 精度(默认 = 禁用)
–int8 : 除 fp32 外,启用 int8 精度(默认 = 禁用)
–best : 启用所有精度以达到最佳性能(默认 = 禁用)
–calib= : 读取INT8校准缓存文件
–safe : 仅测试安全受限流中可用的功能
–saveEngine= : 保存序列化模型的文件名
–loadEngine= : 加载序列化模型的文件名
–tacticSources=tactics : 通过从默认策略源(默认 = 所有可用策略)中添加 (+) 或删除 (-) 策略来指定要使用的策略。

1.3 Inference Options 推理选项

–batch=N : 为隐式批处理引擎设置批处理大小(默认值 = 1)
–shapes=spec : 为动态形状推理输入设置输入形状。
注意:使用动态形状意味着显式批处理。 输入名称可以用转义的单引号括起来(例如:‘Input:0’)。 示例输入形状规范:input0:1x3x256x256, input1:1x3x128x128 每个输入形状都作为键值对提供,其中键是输入名称,值是用于该输入的维度(包括批次维度)。 每个键值对都使用冒号 (😃 分隔键和值。 可以通过逗号分隔的键值对提供多个输入形状。
–loadInputs=spec :从文件加载输入值(默认 = 生成随机输入)。 输入名称可以用单引号括起来(例如:‘Input:0’)
–iterations=N : 至少运行 N 次推理迭代(默认值 = 10)
–warmUp=N : 在测量性能之前运行 N 毫秒以预热(默认值 = 200)
–duration=N : 运行至少 N 秒挂钟时间的性能测量(默认值 = 3)
–sleepTime=N : 延迟推理以启动和计算之间的 N 毫秒间隔开始(默认 = 0)
–streams=N : 实例化 N 个引擎以同时使用(默认值 = 1)
–exposeDMA : 串行化进出设备的 DMA 传输。 (默认 = 禁用)
–noDataTransfers : 在推理过程中,请勿将数据传入和传出设备。 (默认 = 禁用)
–useSpinWait : 主动同步 GPU 事件。 此选项可能会减少同步时间,但会增加 CPU 使用率和功率(默认 = 禁用)
–threads : 启用多线程以驱动具有独立线程的引擎(默认 = 禁用)
–useCudaGraph : 使用 cuda 图捕获引擎执行,然后启动推理(默认 = 禁用)
–separateProfileRun : 不要在基准测试中附加分析器; 如果启用分析,将执行第二次分析运行(默认 = 禁用)
–buildOnly : 跳过推理性能测量(默认 = 禁用)

1.4 Build and Inference Batch Options 构建和推理批处理选项


使用隐式批处理时,引擎的最大批处理大小(如果未指定)设置为推理批处理大小; 使用显式批处理时,如果仅指定形状用于推理,它们也将在构建配置文件中用作 min/opt/max; 如果只为构建指定了形状,则 opt 形状也将用于推理; 如果两者都被指定,它们必须是兼容的; 如果启用了显式批处理但都未指定,则模型必须为所有输入提供完整的静态维度,包括批处理大小

1.5 Reporting Options 报告选项

–verbose : 使用详细日志记录(默认值 = false)
–avgRuns=N : 报告 N 次连续迭代的平均性能测量值(默认值 = 10)
–percentile=P : 报告 P 百分比的性能(0<=P<=100,0 代表最大性能,100 代表最小性能;(默认 = 99%)
–dumpRefit : 从可改装引擎打印可改装层和重量
–dumpOutput : 打印最后一次推理迭代的输出张量(默认 = 禁用)
–dumpProfile : 每层打印配置文件信息(默认 = 禁用)
–exportTimes= : 将计时结果写入 json 文件(默认 = 禁用)
–exportOutput= : 将输出张量写入 json 文件(默认 = 禁用)
–exportProfile= : 将每层的配置文件信息写入 json 文件(默认 = 禁用)

1.6 System Options 系统选项

 
–device=N :选择 cuda 设备 N(默认 = 0)
–useDLACore=N : 为支持 DLA 的层选择 DLA 核心 N(默认 = 无)
–allowGPUFallback : 启用 DLA 后,允许 GPU 回退不受支持的层(默认 = 禁用)
–plugins : 要加载的插件库 (.so)(可以多次指定)

命令实战:【trtexec】trtexec命令实战-CSDN博客

参考资料:

TensorRT/samples/trtexec at master · NVIDIA/TensorRT · GitHub
TensorRT trtexec的用法说明_trtexec --inputioformats和--outputioformats同时指定报错-CSDN博客
TensorRT - 自带工具trtexec的参数使用说明-CSDN博客
17. TensorRT 的命令行程序 - NVIDIA 技术博客
TensorRT: TensorRT Command-Line Wrapper: trtexec

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: trtexec是英伟达TensorRT SDK提供的可执行命令,用于在推理时加载和执行TensorRT引擎。 TensorRT是英伟达公司专门针对深度学习推理而开发的库,通过优化网络模型,实现高效的计算。trtexec工具可以用来验证和测试定制的TensorRT引擎,同时它也提供了一些基本的推理功能,能够接收输入和输出,将模型推理结果输出到文件或控制台上。 对于Ubuntu用户,可以在安装完成TensorRT SDK后直接使用trtexec工具。使用方法是在命令行中输入“trtexec”加上命令参数。如: trtexec --onnx=model.onnx --explicitBatch --maxBatch=64 这个命令表示使用模型为model.onnx的ONNX格式的网络模型文件进行推理,设置显式Batch模式,最大批次为64。 总之,trtexec是一款非常实用的命令行工具,可以帮助深度学习实践者快速验证和测试其TensorRT引擎以及进行推理操作。 ### 回答2: Trtexec是一个用于TensorRT推理的命令行工具。Linux平台的TensorRT库自v4.0版本开始提供了该工具。在Ubuntu系统中,用户可以通过安装TensorRT库并在终端中执行trtexec命令来进行模型推理。 trtexec具有在基于文件的方式下执行TensorRT推理的能力,用户可以通过在终端中输入命令来指定相应的输入和输出流、推理批大小、数据类型等参数,并指定用于推理的TensorRT引擎文件、输入数据文件和输出数据文件。trtexec还支持能力分析和异步推理等不同的选项。 在实践中,trtexec是一个非常常用的TensorRT推理工具,它不仅提供了对TensorRT模型性能的实时评估和优化,还可以作为TensorRT部署的核心组件之一,为用户提供高效的模型部署和调试解决方案。 ### 回答3: trtexec是nvidia TensorRT中提供的一个可执行文件,它可以在命令行中使用。TensorRT是一种高性能的深度学习推理引擎,可以在NVIDIA GPU上进行高效地推理。这个命令是在Ubuntu操作系统上使用trtexec时需要输入的命令trtexec在Ubuntu上的使用需要一定的配置和准备工作。首先,需要安装NVIDIA CUDA和cuDNN,这些是TensorRT的前置依赖项。其次,需要在系统环境变量中添加TensorRT的安装目录,以便trtexec程序能够访问到TensorRT库。 在做完以上准备工作后,可以使用以下命令运行trtexec: $ ./trtexec --uff=<path_to_uff> --uffInput=<input_node_name>,<input_shape> --output=<output_node_name> --batch=<batch_size> --useDLACore=<Dla_core_id> 其中: - --uff:指定需要转换为TensorRT模型的UFF文件的路径; - --uffInput:指定UFF模型的输入节点名称和形状; - --output:指定TensorRT输出节点的名称; - --batch:指定批处理大小; - --useDLACore:在支持DLA的NVIDIA SoC上,可以使用该选项将TensorRT计算卸载到DLA核心上,以加速推理。 使用trtexec可以快速验证TensorRT模型的正确性,并在GPU上进行高效的推理,适用于各种深度学习应用场景。需要注意的是,在使用trtexec时需要仔细检查输入输出节点的名称和形状,以确保模型转换和推理的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值