TensorRT - 命令行程序 - 详解

news/2025/11/11 16:44:38/文章来源:https://www.cnblogs.com/yxysuanfa/p/19210940

命令行程序

trtexec

samples 目录中包含了一个命令行包装工具 trtexectrtexec 是一个可以快速使用 TensorRT 的工具,无需自行开发应用。该工具有三个主要用途:

网络基准测试

如果你有一个以 ONNX 文件保存的模型,可以使用 trtexec 测试该网络在 TensorRT 下推理的性能。trtexec 提供了许多选项用于指定输入/输出、性能计时的迭代次数、允许的精度及其它参数。

为最大化 GPU 利用率,trtexec 会提前一个 batch 排队推理。即:

enqueue batch 0 → enqueue batch 1 → 等待 batch 0 结束 → enqueue batch 2 → 等待 batch 1 完成 → enqueue batch 3 → 等待 batch 2 完成 → enqueue batch 4 → …

如果使用了 跨推理多流(--infStreams=N 参数),trtexec 会在每个流上分别采用上述模式。

trtexec 会打印以下性能指标(如下图所示为使用 Nsight System 进行 trtexec 跑分时各性能指标的标记):

注意

在最新版 Nsight Systems 中,GPU 行在 CPU 行之上而不是之下。

Nsight Systems 下的 trtexec 性能指标

添加 --dumpProfile 参数可显示每层的性能分析,帮助定位网络中哪些层耗时最多。该功能也支持 CUDA 图模式。使用 --profilingVerbosity=detailed 构建引擎并加上 --dumpLayerInfo 可显示详细的引擎信息,包括每层细节和绑定信息,便于了解每层对应的操作及参数。

序列化引擎生成

生成的序列化引擎文件可用于其他推理应用,例如NVIDIA Triton Inference Server 可以在多线程多上下文下异步执行推理以测试并行性能。需要注意,如在 INT8 模式下,trtexec 会为张量设置随机动态范围,除非通过 --calib=<file> 提供校准缓存文件,否则结果准确率可能异常。

序列化时序缓存生成

--timingCacheFile 选项提供时序缓存文件,构建器可从中加载已有的性能数据,并在层级分析时添加新数据。该缓存文件可在其他构建器实例中复用以缩短执行时间。建议仅在相同硬件/软件配置下复用,否则可能出现功能或性能问题。

常用命令行参数

构建阶段参数
参数说明
--allowGPUFallback允许 DLA 不支持的层在 GPU 上运行。
--allowWeightStreaming启用权重流式引擎,需与 --stronglyTyped 一起用。TensorRT 会自动选择合适的权重流预算,也可用 --weightStreamingBudget 指定。
--builderOptimizationLevel=N设置构建优化等级,等级越高优化越多但构建耗时越长。
--dumpLayerInfo, --exportLayerInfo=<file>打印并保存引擎层信息。
--dynamicPlugins=<file>动态加载插件库,并在 --setPluginsToSerialize 时序列化到引擎(可多次指定)。
--excludeLeanRuntime当启用 --versionCompatible 时,表示生成的引擎不包含精简运行时。需在加载引擎时显式指定有效的精简运行时,仅支持显式 batch 和权重。
--fp16, --bf16, --int8, --fp8, --noTF32, --best指定网络级别精度。
--layerDeviceTypes=spec显式设置每层设备类型为 GPU 或 DLA。后面指定的覆盖前面的。
--layerOutputTypes=spec控制每层输出类型(需设置 precisionConstraintsobeyprefer)。可用“*”指定默认精度。多输出的层可用“+”分隔。例如:--layerOutputTypes=*:fp16,layer_1:fp32+fp16
--layerPrecisions=spec控制每层精度(需设置 precisionConstraintsobeyprefer)。例如:--layerPrecisions=*:fp16,layer_1:fp32
--markDebug指定要作为调试张量的张量名(逗号分隔)。
--markUnfusedTensorsAsDebugTensors标记未融合张量为调试张量。
--maxAuxStreams=N设置每个推理流最大辅助流数量,可并行运行内核但增加内存消耗,设为 0 可优化内存。详见多流并行。
--memPoolSize=<pool_spec>指定工作区策略最大大小及 DLA 每个负载分配的内存池大小。支持 workspace, dlaSRAM, dlaLocalDRAM, dlaGlobalDRAM, tacticSharedMem
--minShapes=<shapes>, --optShapes=<shapes>, --maxShapes=<shapes>指定构建引擎时输入形状范围(ONNX 模型必需)。
--noCompilationCache禁用构建器中的编译缓存(默认启用)。
--onnx=<model>指定输入 ONNX 模型。如为 ONNX 格式需用 --minShapes, --optShapes, --maxShapes 控制形状范围。
--precisionConstraints=spec控制精度约束设置。none:无约束;prefer:尽量满足约束;obey:必须满足约束否则失败。
`–profilingVerbosity=[layer_names_onlydetailed
--saveEngine=<file>指定引擎保存路径。
--setPluginsToSerialize=<file>设置要与引擎一起序列化的插件库(可多次指定)。
--skipInference仅构建并保存引擎,不运行推理。
`–sparsity=[disableenable
--stripWeights从计划中去除权重。可与 refitrefit with identical weights 一起用。
--stronglyTyped创建强类型网络。
--tempdir=<dir>指定 TensorRT 创建临时文件的目录。详见 IRuntime::setTemporaryDirectory
--tempfileControls=controls控制 TensorRT 创建临时可执行文件的方式,格式为 `[in_memory
--timingCacheFile=<file>指定加载和保存的时序缓存。
--useDLACore=N使用指定 DLA 核心运行支持的层。
--verbose开启详细日志。
--versionCompatible, --vc启用版本兼容模式。用该模式生成的引擎可在同一主机操作系统的更新版 TensorRT 下兼容运行,仅支撑显式 batch 模式。
推理阶段参数
参数说明
--allocationStrategy指定推理时内存分配策略,可选 static(预分配全部)、profile(按 profile 分配)、runtime(按实际输入分配,需加 --preview=+runtimeActivationResize)。
--asyncFileReader=<file>使用异步流读取器加载序列化引擎。采用 IStreamReaderV2 接口。
--dumpLayerInfo, --exportLayerInfo=<file>打印引擎层信息。
--dumpProfile, --exportProfile=<file>打印并保存每层性能分析。
--dynamicPlugins=<file>推理时动态加载未囊括在引擎计划中的插件库(可多次指定)。
--getPlanVersionOnly仅打印加载计划创建时的 TensorRT 版本(不反序列化计划,仅承受 8.6 及以上版本创建的引擎)。
--infStreams=<N>多流并行运行推理,详见多流并行。
--leanDLLPath=<file>版本兼容模式下启用外部精简运行时 DLL,需 `–useRuntime=[lean
--loadEngine=<file>从序列化计划文件加载引擎而非从 ONNX 构建。
--loadInputs=<specs>从文件加载输入值,默认生成随机输入。
--noDataTransfers关闭主机到设备和设备到主机的数据传输。
`–profilingVerbosity=[layer_names_onlydetailed
--saveDebugTensors指定张量名开启调试状态,并指定输出文件名保存原始输出。这些张量需在构建时指定为调试张量。
--saveAllDebugTensors保存所有调试张量到文件(包括用 --markDebug--markUnfusedTensorsAsDebugTensors 标记的张量),支持多种格式:summary、NumPy、string、raw。
--shapes=<shapes>指定推理时输入形状。如为 ONNX 模型或显式 batch 构建的引擎,用该参数指定。
--warmUp=<ms>, --duration=<s>, --iterations=<N>指定热身运行最小时长、推理运行最小时长和最小迭代次数。例如,--warmUp=0 --duration=0 --iterations=N 可精确控制推理迭代次数。
--weightStreamingBudget手动设置权重流预算。支持 B(字节)、G(GiB)、K(KiB)、M(MiB)等单位。若权重无法全部加载,设为 0 会选择最小预算,-1 禁用权重流。
--useCudaGraph用 CUDA 图捕获并运行推理。若引擎包括不承受 CUDA 图捕获的操作则忽略此参数。
`–useRuntime=[fulllean
--useSpinWait主动同步 GPU 事件,使延迟测量更稳定但提高 CPU 用量和功耗。
--verbose开启详细日志。

更多参数及详细说明可参考 trtexec --help

详细构建和用法示例请参见GitHub: trtexec/README.md。

原文地址:https://docs.nvidia.com/deeplearning/tensorrt/latest/reference/command-line-programs.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/962530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hostinger+Wordpress虚拟主机踩坑:零代码建站体验+绝对不要用支付宝付款!!

作为一名码农,今天心血来潮想来试试WordPress的零代码建站和部署前端页面,但经过我的几小时摸索终于放弃了,原因如下:零代码在主观上(无论是视频宣传还是观感上)貌似很轻松,可实际操作中还是相当繁重;特别是当…

2025年PVC酸洗槽实力厂家权威推荐榜单:四氟电加热器/PDF酸洗槽/储罐式换热器源头厂家精选

在电镀、化工、电子及金属表面处理等行业中,PVC酸洗槽作为承载各类酸碱性化学液体的关键设备,其耐腐蚀性、结构强度及使用寿命直接关系到生产安全与成本控制。为帮助您精准筛选优质供应商,本文基于企业生产实力、技…

2025年11月连锁酒店推荐:主流品牌对比高性价比选择指南

一、引言 在商务出行与休闲差旅并重的当下,连锁酒店已成为消费者与投资人共同关注的核心场景。对于频繁出差的中小企业管理者、注重效率的个体创业者,以及希望获得稳定现金流回报的酒店物业持有人而言,如何在“住宿…

20251111Tuesday 代码修改备忘(为视频坐席 转坐席 以及 坐席发起呼叫 是否包含视频 而做的修改)

1 在外线呼入的时候,区分本呼叫是否带视频,决定在转坐席的时候,呼叫坐席软电话是否带视频 2 坐席发起呼叫的时候,指定本次呼叫是否带视频 1 修改 cardfs-video (1)在呼入和呼出接通时,根据通道变量,判断本次呼叫…

绩效管理过程中常见的陷阱

来源:tita.com 糟糕的指标 公司选择的指标必须实际促进其想要的绩效。通常,它只能通过将其中的几个合并到平衡计分卡中来实现这一点。当这种情况不发生时,问题就会出现。例如,一些制造工厂仍然单独为每个班次设定总…

2025年11月连锁酒店排行榜推荐:主流品牌对比与高性价比选择指南

一、引言 在差旅与休闲需求同步复苏的2025年四季度,中端及中高端连锁酒店成为企业差旅采购、家庭出行及中小投资人共同关注的高频赛道。消费者普遍希望在不牺牲睡眠、早餐、网络等核心体验的前提下,把每晚房费控制在…

全网最容易被忽视但超能打的 6 款工具,不收藏会后悔!

老实说,我用过不少所谓“效率工具”“生产力软件”,但常常一个被忽视的小工具,反而改变最大。 你可能会觉得:“我已经用好几个了,还能再找?” 答案是:能。关键是找那种“你还没装,但一装就立刻看见区别”的。 …

2025年11月沈阳酒店推荐:口碑评价列表实用避坑指南

一、引言 在商旅与休闲需求同步回升的2025年四季度,沈阳作为东北交通枢纽与文旅目的地,酒店入住率持续走高。对出差会议、家庭出游、中转过夜三类核心客群而言,"住得安心、行得方便、钱花得值"是共同诉求…

P4784 [BalticOI 2016] 城市 (Day2) 小结

这个题目如果不是模板题的话有点好,可是他是模板。 这个题其实是我随机跳题跳到的。 我看到他的 k<=5 我觉得很奇怪,然后画了一下 k=3,4,5 的所有情况。 然后我就发现这个复杂度是 \(O(n^{\max(1,k-2)})\) 的。很…

合并

public class Part05Merge {//========================================================================================// TODO Merge flux1 and flux2 values with interleavepublic Flux<User> mergeFlux…

Spring-ai 框架源码分析

官网地址https://docs.spring.io/spring-ai/reference/index.html版本<dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>…

2025年11月沈阳酒店推荐:口碑评价列表与实用避坑指南

一、引言 在东北亚经济圈与东北全面振兴战略叠加的2025年四季度,沈阳作为区域枢纽城市,商务、会展、文旅流量同步抬升,酒店需求呈现“高频、短时、多元”特征。对差旅预算有限又希望兼顾位置、品质与个性化服务的消…

2025年11月geo服务商推荐:知名机构排行榜口碑评价对比指南

一、引言 生成式引擎优化(GEO)已成为企业在AI搜索时代获取精准流量与品牌增信的核心入口。面对DeepSeek、豆包、通义千问、元宝、Kimi等多平台算法并行、更新节奏不一的复杂环境,市场总监、品牌负责人及增长团队最紧…

2025年11月geo优化服务商推荐:知名机构排行榜与口碑评价对比指南

一、引言 生成式引擎优化(GEO)已不再是“锦上添花”的营销选项,而是企业在AI搜索生态里能否被看见、被信任、被转化的生死线。面对DeepSeek、豆包、通义千问、元宝、Kimi等平台算法高频迭代,市场部门与品牌主的核心…

2025年11月GEO优化推荐:知名机构排行榜口碑评价对比指南

一、引言 生成式引擎优化(GEO)正在重塑企业获取流量的路径。对品牌方、市场负责人及成长型公司而言,如何在DeepSeek、豆包、通义千问、元宝、Kimi等主流AI平台同步提升可见度,已成为成本控制与增长确定性的交汇点。…

微信小程序中下载文件(非图片)方式总结

前言 总是有需求想在微信小程序里面做下载文件并保存的功能,所以自己整理了一下小程序涉及到下载api,大致理了下在小程序里面下载的流程和解决方案。一、涉及api 1.wx.saveFile() ​ 文档链接:https://developers.w…

2025年11月豆包关键词排名优化推荐:主流机构排行榜高性价比选择指南

一、引言 生成式引擎优化(GEO)正在重塑企业获客逻辑,豆包作为月活破亿的国民级AI入口,其关键词排名直接影响品牌曝光质量。对于市场、运营及增长负责人而言,如何在多平台算法频繁迭代的2025年第四季度,用可控成本…

2025年11月北京GEO优化公司推荐:知名机构排行榜口碑评价对比指南

一、引言 生成式引擎优化(GEO)已取代传统搜索优化,成为企业在DeepSeek、豆包、通义千问、元宝、Kimi等AI入口获得精准流量的刚需。北京作为全国AI研发密度最高的城市,GEO服务商在2025年第三季度新增备案企业同比激…

2025年11月geo供应商推荐:知名机构排行榜口碑评价对比指南

一、引言 生成式引擎优化(GEO)已成为企业在AI搜索生态中争夺可见度的主战场。对于市场、公关及采购负责人而言,如何在DeepSeek、豆包、通义千问、元宝、Kimi等多平台同步获得稳定曝光,同时控制外包风险与预算,是当…

学习如何转换异步数据

学习如何转换异步数据 描述 Reactor 附带多个可用于转换数据的操作符。 public class Part04Transform {//========================================================================================// TODO Capita…