创作

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

NVIDIA TensorRT的命令行程序

星星科技指导员 来源:NVIDIA 作者:Ken He 2022-05-20 14:54 次阅读

A.3.1. trtexec

示例目录中包含一个名为trtexec的命令行包装工具。 trtexec是一种无需开发自己的应用程序即可快速使用 TensorRT 的工具。

trtexec工具有三个主要用途:

它对于在随机或用户提供的输入数据上对网络进行基准测试很有用。

它对于从模型生成序列化引擎很有用。

它对于从构建器生成序列化时序缓存很有用。

A.3.1.1. Benchmarking Network

如果您将模型保存为 ONNX 文件、UFF 文件,或者如果您有 Caffe prototxt 格式的网络描述,则可以使用trtexec工具测试使用 TensorRT 在网络上运行推理的性能。 trtexec工具有许多选项用于指定输入和输出、性能计时的迭代、允许的精度和其他选项。

为了最大限度地提高 GPU 利用率, trtexec会提前将一个batch放入队列。换句话说,它执行以下操作:

enqueue batch 0

-》 enqueue batch 1

-》 wait until batch 0 is done

-》 enqueue batch 2

-》 wait until batch 1 is done

-》 enqueue batch 3

-》 wait until batch 2 is done

-》 enqueue batch 4

-》 。..

如果使用多流( --streams=N标志),则trtexec在每个流上分别遵循此模式。

trtexec工具打印以下性能指标。下图显示了trtexec运行的示例 Nsight 系统配置文件,其中标记显示了每个性能指标的含义。

Throughput

观察到的吞吐量是通过将执行数除以 Total Host Walltime 来计算的。如果这显着低于 GPU 计算时间的倒数,则 GPU 可能由于主机端开销或数据传输而未被充分利用。使用 CUDA 图(使用--useCudaGraph )或禁用 H2D/D2H 传输(使用--noDataTransfer )可以提高 GPU 利用率。当trtexec检测到 GPU 未充分利用时,输出日志提供了有关使用哪个标志的指导。

Host Latency

H2D 延迟、GPU 计算时间和 D2H 延迟的总和。这是推断单个执行的延迟。

Enqueue Time

将执行排入队列的主机延迟,包括调用 H2D/D2H CUDA API、运行主机端方法和启动 CUDA 内核。如果这比 GPU 计算时间长,则 GPU 可能未被充分利用,并且吞吐量可能由主机端开销支配。使用 CUDA 图(带有--useCudaGraph )可以减少排队时间。

H2D Latency

单个执行的输入张量的主机到设备数据传输的延迟。添加--noDataTransfer以禁用 H2D/D2H 数据传输。

D2H Latency

单个执行的输出张量的设备到主机数据传输的延迟。添加--noDataTransfer以禁用 H2D/D2H 数据传输。

GPU Compute Time

为执行 CUDA 内核的 GPU 延迟。

Total Host Walltime

从第一个执行(预热后)入队到最后一个执行完成的主机时间。

Total GPU Compute Time

所有执行的 GPU 计算时间的总和。如果这明显短于 Total Host Walltime,则 GPU 可能由于主机端开销或数据传输而未得到充分利用。

图 1. 在 Nsight 系统下运行的正常trtexec的性能指标(ShuffleNet,BS=16,best,TitanRTX@1200MHz)

pYYBAGKHO4qAREEbAAGiRSxfZKk173.png

将--dumpProfile标志添加到trtexec以显示每层性能配置文件,这使用户可以了解网络中的哪些层在 GPU 执行中花费的时间最多。每层性能分析也适用于作为 CUDA 图启动推理(需要 CUDA 11.1 及更高版本)。此外,使用--profilingVerbosity=detailed标志构建引擎并添加--dumpLayerInfo标志以显示详细的引擎信息,包括每层详细信息和绑定信息。这可以让你了解引擎中每一层对应的操作及其参数。

A.3.1.2. Serialized Engine Generation

如果您生成保存的序列化引擎文件,您可以将其拉入另一个运行推理的应用程序中。例如,您可以使用TensorRT 实验室以完全流水线异步方式运行具有来自多个线程的多个执行上下文的引擎,以测试并行推理性能。有一些警告;例如,如果您使用 Caffe prototxt 文件并且未提供模型,则会生成随机权重。此外,在 INT8 模式下,使用随机权重,这意味着 trtexec 不提供校准功能。

A.3.1.3. trtexec

如果您向--timingCacheFile选项提供时序缓存文件,则构建器可以从中加载现有的分析数据并在层分析期间添加新的分析数据条目。计时缓存文件可以在其他构建器实例中重用,以提高构建器执行时间。建议仅在相同的硬件/软件配置(例如,CUDA/cuDNN/TensorRT 版本、设备型号和时钟频率)中重复使用此缓存;否则,可能会出现功能或性能问题。

A.3.1.4. 常用的命令行标志

该部分列出了常用的trtexec命令行标志。

构建阶段的标志

--onnx=《model》 :指定输入 ONNX 模型。

--deploy=《caffe_prototxt》 :指定输入的 Caffe prototxt 模型。

--uff=《model》 :指定输入 UFF 模型。

--output=《tensor》 :指定输出张量名称。仅当输入模型为 UFF 或 Caffe 格式时才需要。

--maxBatch=《BS》 :指定构建引擎的最大批量大小。仅当输入模型为 UFF 或 Caffe 格式时才需要。如果输入模型是 ONNX 格式,请使用--minShapes 、 --optShapes 、 --maxShapes标志来控制输入形状的范围,包括批量大小。

--minShapes=《shapes》 , --optShapes=《shapes》 , --maxShapes=《shapes》 :指定用于构建引擎的输入形状的范围。仅当输入模型为 ONNX 格式时才需要。

--workspace=《size in MB》 :指定策略允许使用的最大工作空间大小。该标志已被弃用。您可以改用--memPoolSize=《pool_spec》标志。

--memPoolSize=《pool_spec》 :指定策略允许使用的工作空间的最大大小,以及 DLA 将分配的每个可加载的内存池的大小。

--saveEngine=《file》 :指定保存引擎的路径。

--fp16 、 --int8 、 --noTF32 、 --best :指定网络级精度。

--sparsity=[disable|enable|force] :指定是否使用支持结构化稀疏的策略。

disable :使用结构化稀疏禁用所有策略。这是默认设置。

enable :使用结构化稀疏启用策略。只有当 ONNX 文件中的权重满足结构化稀疏性的要求时,才会使用策略。

force :使用结构化稀疏启用策略,并允许 trtexec 覆盖 ONNX 文件中的权重,以强制它们具有结构化稀疏模式。请注意,不会保留准确性,因此这只是为了获得推理性能。

--timingCacheFile=《file》 :指定要从中加载和保存的时序缓存。

--verbose :打开详细日志记录。

--buildOnly :在不运行推理的情况下构建并保存引擎。

--profilingVerbosity=[layer_names_only|detailed|none] :指定用于构建引擎的分析详细程度。

--dumpLayerInfo , --exportLayerInfo=《file》 :打印/保存引擎的层信息。

--precisionConstraints=spec :控制精度约束设置。

none :没有限制。

prefer :如果可能,满足--layerPrecisions / --layerOutputTypes设置的精度约束。

obey:满足由--layerPrecisions / --layerOutputTypes设置的精度约束,否则失败。

--layerPrecisions=spec :控制每层精度约束。仅当PrecisionConstraints设置为服从或首选时才有效。规范是从左到右阅读的,后面的会覆盖前面的。 “ * ”可以用作layerName来指定所有未指定层的默认精度。

例如: --layerPrecisions=*:fp16,layer_1:fp32将所有层的精度设置为FP16 ,除了 layer_1 将设置为 FP32。

--layerOutputTypes=spec :控制每层输出类型约束。仅当PrecisionConstraints设置为服从或首选时才有效。规范是从左到右阅读的,后面的会覆盖前面的。 “ * ”可以用作layerName来指定所有未指定层的默认精度。如果一个层有多个输出,则可以为该层提供用“ + ”分隔的多种类型。

例如: --layerOutputTypes=*:fp16,layer_1:fp32+fp16将所有层输出的精度设置为FP16 ,但 layer_1 除外,其第一个输出将设置为 FP32,其第二个输出将设置为 FP16。

推理阶段的标志

--loadEngine=《file》 :从序列化计划文件加载引擎,而不是从输入 ONNX、UFF 或 Caffe 模型构建引擎。

--batch=《N》 :指定运行推理的批次大小。仅当输入模型为 UFF 或 Caffe 格式时才需要。如果输入模型是 ONNX 格式,或者引擎是使用显式批量维度构建的,请改用--shapes 。

--shapes=《shapes》 :指定要运行推理的输入形状。

--warmUp=《duration in ms》 , --duration=《duration in seconds》 , --iterations=《N》 : 指定预热运行的最短持续时间、推理运行的最短持续时间和推理运行的迭代。例如,设置--warmUp=0 --duration=0 --iterations允许用户准确控制运行推理的迭代次数。

--useCudaGraph :将推理捕获到 CUDA 图并通过启动图来运行推理。当构建的 TensorRT 引擎包含 CUDA 图捕获模式下不允许的操作时,可以忽略此参数。

--noDataTransfers :关闭主机到设备和设备到主机的数据传输。

--streams=《N》 :并行运行多个流的推理。

--verbose :打开详细日志记录。

--dumpProfile, --exportProfile=《file》 :打印/保存每层性能配置文件。

关于作者

Ken He 是 NVIDIA 企业级开发者社区经理 & 高级讲师,拥有多年的 GPU 和人工智能开发经验。自 2017 年加入 NVIDIA 开发者社区以来,完成过上百场培训,帮助上万个开发者了解人工智能和 GPU 编程开发。在计算机视觉,高性能计算领域完成过多个独立项目。并且,在机器人和无人机领域,有过丰富的研发经验。对于图像识别,目标的检测与跟踪完成过多种解决方案。曾经参与 GPU 版气象模式GRAPES,是其主要研发者。

审核编辑:郭婷

  • NVIDIA
    +关注

    关注

    14

    文章

    2563

    浏览量

    94723
  • gpu
    gpu
    +关注

    关注

    27

    文章

    2736

    浏览量

    114573
  • 人工智能
    +关注

    关注

    1531

    文章

    35956

    浏览量

    214469
收藏 人收藏

    评论

    相关推荐

    热度连年增高,今年95所高校新增人工智能专业!

    电子发烧友网报道(文/李弯弯)近日消息,今年,普通高校新增本科专业31种,包括碳储科学与工程、空天智....
    的头像 Carol Li 发表于 06-25 07:57 706次 阅读
    热度连年增高,今年95所高校新增人工智能专业!

    基于RK3399 + RK1808的人工智能平台项目实战

    云计算与边缘计算 云计算 端侧仅负责发送输入数据,并接收计算结果 计算资源集中管理和分配,借助服务器的强大性能,可以实现...
    发表于 06-24 17:44 1804次 阅读

    工业运营商需要5G URLLC以及他们如何实现

    5G 网络最大的架构差异是核心网络从集中位置移动到边缘的分布式点。网络功能虚拟化 (NFV) 和软件....
    发表于 06-24 16:43 122次 阅读
    工业运营商需要5G URLLC以及他们如何实现

    为什么5G对物联网和高科技很重要

      5G 可以成为商业物联网用例子集的主要推动力。这是一个广泛使用的标准,背后有足够的基础设施可以扩....
    的头像 星星科技指导员 发表于 06-24 16:27 297次 阅读
    为什么5G对物联网和高科技很重要

    微软以数字技术演绎可持续发展“四则运算”

    2022世界环境日(6月5日)恰逢第一届联合国人类环境会议举办50周年。联合国为今年的环境日赋予了一....
    的头像 微软科技 发表于 06-24 16:00 277次 阅读

    NVIDIA Riva 2.0的功能亮点有哪些

    NVIDIA Riva 可提供经过全面优化的流程,用于部署实时 AI 语音应用(例如转录和虚拟助理)....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-24 15:33 114次 阅读

    艺术家使用NVIDIA Omniverse创造出照明效果逼真的3D模型

    创意人员使用 Autodesk、Adobe Substance 3D 应用和 NVIDIA Omni....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-24 15:27 70次 阅读

    使用AI技术推动精准医疗的发展

    来自英国的 NVIDIA 初创加速计划成员 PrecisionLife 使用 AI 主导的数据分析确....
    的头像 NVIDIA英伟达 发表于 06-24 15:21 281次 阅读

    NLP的工作原理是什么 有哪些用例

    自然语言处理是一项利用计算机和软件获取人类语言(书面或口语)含义的技术。
    的头像 NVIDIA英伟达 发表于 06-24 15:19 59次 阅读

    NVIDIA DOCA数据处理器软件正式开放

    NVIDIA 联合发起 Linux 基金会项目,致力于实现数据中心创新的大众化;进一步向软件提供商、....
    的头像 NVIDIA英伟达 发表于 06-24 15:00 73次 阅读

    旷视以AI技术助力数字乡村快发展

    从远程问诊,到智能公交,再到智慧教育,随着 5G、云计算、人工智能等技术的飞速发展,如今的乡村也和城....
    的头像 旷视MEGVII 发表于 06-24 14:59 142次 阅读

    拓维信息与湖南工商大学签署校企战略合作协议

    6月22日上午,拓维信息及旗下湘江鲲鹏与湖南工商大学正式签署校企战略合作协议,拓维信息党委与学校前沿....
    的头像 科技绿洲 发表于 06-24 14:35 142次 阅读

    华为携手移动打造算网协同新型数字经济基础设施

    近日,由中国移动主办的“2022科技周暨移动信息产业链创新大会“以线上线下相结合形式召开,本次主论坛....
    的头像 科技绿洲 发表于 06-24 10:56 200次 阅读

    NVIDIA DRIVE助力小马智行控制器大规模量产

    6 月 22 日,领先自动驾驶企业小马智行宣布正式对客户交付基于 NVIDIA DRIVE Hype....
    的头像 科技绿洲 发表于 06-24 10:50 676次 阅读

    NVIDIA DOCA库API已向开发者公开提供

    本周,NVIDIA 成为 Linux 基金会开放可编程基础设施(OPI – Open Program....
    的头像 科技绿洲 发表于 06-24 10:38 239次 阅读

    工业富联提出“数据驱动、绿色发展”战略

     6月23日,工业富联召开2021年度股东大会,100亿分红方案、20亿员工持股计划以及新董事选举等....
    的头像 科技绿洲 发表于 06-24 10:04 204次 阅读

    在宇宙的眼眸下如何正确地关心东数西算

    掩体纪元 67 年,宇宙,歌者文明。 “我需要一块二向箔,清理用“,一位歌者敏锐地从数据中发现了一种....
    的头像 脑极体 发表于 06-23 18:30 639次 阅读

    RK1808计算棒Rock-X demo相关资料分享

    1、RK1808人工智能计算棒全平台RockX支持 Rock-X SDK是一组快捷AI组件库,支持RK3399Pro和RK1808平台。开发者仅...
    发表于 06-23 18:11 1824次 阅读

    云从科技助力广西打造全国人工智能领域合作标杆与典范

    6月20日,云从科技与北投信创集团联合共建的“迈特高”AI智慧城市创新实验室暨云从科技东盟发展中心等....
    的头像 科技绿洲 发表于 06-23 16:46 322次 阅读

    NVIDIA RTX GPU产品能够支持4K大屏渲染和扩展内容渲染

    此前,七维科技帮助河南广播电视台完成了演播室改造项目,打造了 XR 沉浸式 4K 超高清演播室。这一....
    的头像 科技绿洲 发表于 06-23 15:11 195次 阅读

    NVIDIA正在建造一台AI超级计算机来驱动地球的数字孪生

    元宇宙是互联网向 3D 网络进化过程中的下一个重要阶段,将为娱乐、汽车、制造业、机器人等各个行业带来....
    的头像 科技绿洲 发表于 06-23 15:06 215次 阅读

    NVIDIA 3D MoMa技术可为虚拟爵士乐队调校乐器

    爵士乐的精髓在于即兴演奏, NVIDIA 正在通过 AI 研究向这一流派致敬。也许有一天,图形创作者....
    的头像 科技绿洲 发表于 06-23 14:53 172次 阅读

    片上光学深度神经网络

    虽然目前在数字芯片上的消费级图像分类技术每秒可以执行数十亿次计算(GHz),这使得它对于大多数场景来....
    的头像 中科院长春光机所 发表于 06-23 14:27 160次 阅读

    商汤科技助力通用人工智能基础研究和生态构建

    近日,计算机视觉领域顶级国际会议CVPR 2022(Computer Vision and Patt....
    的头像 商汤科技SenseTime 发表于 06-23 14:03 186次 阅读

    NVIDIA RTX A6000助力实现高效渲染输出高质量画面

    电视演播室作为电视节目制作的重要场所,承担了除外拍节目外的大部分节目录制和制作任务,随着设备技术突飞....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-23 12:06 162次 阅读

    NVIDIA在自动驾驶领域取得的新突破

    此前,NVIDIA 中国区软件解决方案总监卓睿代表 NVIDIA 参加了视频采访,针对 NVIDIA....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-23 12:03 552次 阅读

    NVIDIA如何以最好的方式来构建元宇宙

    元宇宙是互联网向 3D 网络进化过程中的下一个重要阶段,将为娱乐、汽车、制造业、机器人等各个行业带来....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-23 11:13 157次 阅读

    NVIDIA 3D MoMa:基于2D图像创建3D物体

    可逆渲染流程 NVIDIA 3D MoMa 将于本周在新奥尔良举行的计算机视觉和模式识别会议 CVP....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-23 11:00 165次 阅读

    he4o通用人工智能系统

    ./oschina_soft/he4o.zip
    发表于 06-23 09:48 11次 阅读
    he4o通用人工智能系统

    香橙派RK3399开发板OrangePi4 LTS在linux上的GPU测试说明

    1、Linux4.4 和 Linux5.10 Debian 系统 GPU 的测试说明 注意,Linux4.4 Debian10 和 Linux5.10 Debian11 系统使用的...
    发表于 06-22 20:17 340次 阅读
    香橙派RK3399开发板OrangePi4 LTS在linux上的GPU测试说明

    邬贺铨亮相!十余位大咖共聚!第四届挚物大会带你共探智联网未来风口

    人们常用“破茧成蝶”来形容在蛰伏中向更好、更完美蜕变。如今,历经十数载的物联网产业也走到了“蝶变”的....
    的头像 21克888 发表于 06-22 16:53 265次 阅读
    邬贺铨亮相!十余位大咖共聚!第四届挚物大会带你共探智联网未来风口

    使用高通的Snapdragon 820启用深度相机

      使用神经网络解决方案(图 1),我们可以使用 HVX 模块同时对两个相机图像进行边缘检测过程。一....
    的头像 星星科技指导员 发表于 06-22 15:34 107次 阅读
    使用高通的Snapdragon 820启用深度相机

    小马智行自研自动驾驶域控制器ADC已开始向用户交付样品

    小马智行将成为首批基于NVIDIA DRIVE Hyperion 计算架构及DRIVE Orin 系....
    的头像 Pony.ai小马智行 发表于 06-22 15:22 131次 阅读

    扩博智能成功刷新国内风机巡检中单人单机效率新纪录

    近期,扩博智能飞手在执行新疆昌吉回族自治州某风场的风机巡检任务时,成功刷新扩博智能在国内风机巡检中的....
    的头像 科技绿洲 发表于 06-22 11:38 336次 阅读

    NVIDIA为天壤提供计算能力强劲AI平台和行业解决方案

    天壤成立于 2016 年,是一家专注于通用智能研究的创新企业。致力于打造复杂系统下的通用人工智能平台....
    的头像 科技绿洲 发表于 06-22 11:25 359次 阅读

    NVIDIA 的CUDA平台能够助力实现卓越游戏体验

    越来越多的人在使用 NVIDIA 产品。机器人专家、视觉艺术专家、数据科学家等各类创新者和创作者都信....
    的头像 科技绿洲 发表于 06-22 10:55 169次 阅读

    NVIDIA技术助力各个领域加快创新速度

    更多问题,更多可能:NVIDIA 技术助力人类为之努力的各个领域加快创新速度。
    的头像 NVIDIA英伟达企业解决方案 发表于 06-22 10:39 177次 阅读

    得心应手的AI:NVIDIA Research助力内容创作者使用3D物体进行即兴创作

    可逆渲染流程 NVIDIA 3D MoMa 将于本周在新奥尔良举行的计算机视觉和模式识别会议 CVP....
    的头像 Blue5 发表于 06-22 10:27 918次 阅读
    得心应手的AI:NVIDIA Research助力内容创作者使用3D物体进行即兴创作

    NVIDIA助力集度ROBO-01概念车发布

    电动汽车制造商集度展示了未来汽车的交互式 AI 驾驶体验。
    的头像 NVIDIA英伟达企业解决方案 发表于 06-22 10:15 89次 阅读

    NVIDIA助力天壤推出全新蛋白质设计平台

    天壤成立于 2016 年,是一家专注于通用智能研究的创新企业。致力于打造复杂系统下的通用人工智能平台....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-22 10:12 115次 阅读

    Imagination推出32位嵌入式解决方案IMG RTXM-2200

    Imagination Technologies宣布推出其首款实时嵌入式IMG RISC-V CPU....
    的头像 科技绿洲 发表于 06-22 10:07 203次 阅读

    使用GPU加速RELION进行生物结构解析

    NVIDIA 与智东西公开课共同策划推出「GPU 加速高性能计算(HPC)经典应用在线研讨会」。研讨....
    的头像 NVIDIA英伟达企业解决方案 发表于 06-22 10:06 126次 阅读

    NVIDIA Aerial SDK的概念及特性

    构建和部署 GPU 加速的 5G 虚拟无线接入网 (vRAN)。
    的头像 NVIDIA英伟达企业解决方案 发表于 06-22 10:03 110次 阅读

    TB-RK1808S0 AI 计算棒开发指南

    1、TB-RK1808S0 AI 计算棒开发介绍RK1808 人工智能计算棒是瑞芯微旗下 Toybrick 系列产品中的一员,计算棒搭载瑞芯微的...
    发表于 06-21 18:11 2375次 阅读

    英码RK3588开发套件限量首发!6大亮点内外兼修,超高性价比

    在“十四五”规划推动下,AIoT加快与产业融合并逐步落地,AI场景应用落地过程中,IoT终端硬件的智能化需求日益突出,芯片...
    发表于 06-07 11:07 1109次 阅读
    英码RK3588开发套件限量首发!6大亮点内外兼修,超高性价比

    RK3399开发板AI人工智能深度学习之TensorFlow 测试

    硬件平台:迅为-RK3399开发板 系统:ubuntu项目:TensorFlow 测试 配套资料在网盘资料的“iTOP-3399 开发资料汇总(不含...
    发表于 05-13 15:41 1585次 阅读
    RK3399开发板AI人工智能深度学习之TensorFlow 测试

    请问在RK3399pro中间计算时能否调用GPU的一些现成数据库或函数来计算

    我在用RK3399pro的NPU做深度学习计算,使用了两个rknn模型进行推理,但是在这两个rknn模型之间需要进行一些中间计算(从第一...
    发表于 05-09 15:26 3558次 阅读

    如何用人工智能来解决摄影中照片出现人像模糊不清的问题

          每个人毕竟都不是专业摄影师,因为一些取景以及构图或者外在环境的因素,一些人像照片总会产生不很清...
    发表于 05-01 13:18 6307次 阅读
    如何用人工智能来解决摄影中照片出现人像模糊不清的问题

    Sipeed M2DOCK:全志V831 开源 人工智能 神经网络 视觉 AI Python开发板

    作者@Sipeed 原文链接:
    发表于 04-29 15:06 2682次 阅读

    如何设计智能型水杯

    使用单片机、ESP8266、PWM驱动器、以及半导体加热片制作一个水温控制系统。 使用钢制器皿作为容器,最少容量100ml。 通过...
    发表于 04-27 22:11 1181次 阅读