当前位置: 首页 > news >正文

wordpress相册点击弹出优化大师电视版

wordpress相册点击弹出,优化大师电视版,wordpress与z blog,wordpress login url本文介绍trtexec工具的使用,trtexec可以实现onnx模型导出trt模型、耗时分析和模型优化分析等功能,本节将对 trtexec的运用进行介绍。 1.trtexec trtexec是官方提供的命令行工具,主要用于一下三个方面 生成模型序列化文件:由ONNX文…

        本文介绍trtexec工具的使用,trtexec可以实现onnx模型导出trt模型、耗时分析和模型优化分析等功能,本节将对 trtexec的运用进行介绍。

1.trtexec

        trtexec是官方提供的命令行工具,主要用于一下三个方面

        生成模型序列化文件:由ONNX文件生成 TensorRT 引擎并序列化为 Plan文件/engine文件

        查看模型文件信息:查看 ONNX文件或 Plan 文件的网络逐层信息

        模型性能测试:测试 TensorRT 引擎基于随机输入或给定输入下的性能

trtexec提供了大量参数,整体可分为构建和运行两个阶段。

构建阶段常用参数

--onnx=: onnx文件路径

--minShapes=, --optShapes=, and --maxShapes=: 当是onnx模型时,可指定batchsize的动态范围。

–-memPoolSize=: 优化过程可使用的最大内存

--saveEngine=: 保存的文件输出路径

--fp16, --int8, --noTF32, and --best: 指定数据精度

--verbose: 是否需要打印详细信息。默认是不打印详细信息。

--skipInference: 创建并保存引擎文件,不执行推理过程。

--timingCacheFile=: 记录每个tensor的最小最大值、运行时间等,可以用来分析量化效果。

--dumpLayerInfo, --exportLayerInfo=: 打印及保存每一层详细信息 更多高级用法,

参考官方文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#trtexec

运行阶段常用参数

--loadEngine=: 要加载的模型文件

--shapes=:指定输入张量的形状 --loadInputs=: Load input values from files. Default is to generate random inputs.

--warmUp=, 热身阶段最短运行时间,单位ms

--duration=, 测试阶段最短运行时间,单位s

--iterations=: 测试阶段最小迭代次数

--useCudaGraph: 采用 CUDA graph 捕获和执行推理过程

--noDataTransfers: 关闭host与device之间的数据传输

--dumpProfile, --exportProfile=: 打印及保存每一层性能信息

--dumpLayerInfo, --exportLayerInfo=: 打印及保存每一层详细信息 更多高级用法,参考官方文档:https://docs.nvidia.com/deeplearning/tensorrt/developer-guide/index.html#trtexec

案例0:固定batchsize

输出固定batchsize的engine文件,这里需要注意,batchsize的状态需要与ONNX匹配,因此在生成onnx时需要设置好。

trtexec --onnx=resnet50_bs_1.onnx --saveEngine=resnet50_bs_1.engine

案例1: 动态batchsize使用 resnet50_bs_dynamic.onnx 可通过第十一章章生成

        trtexec --onnx=resnet50_bs_dynamic.onnx --saveEngine=resnet50_bs_dynamic_1-32-64.engine --timingCacheFile=dynamic-1-32-64.c ache --minShapes=input:1x3x224x224 --maxShapes=input:64x3x224x224 --optShapes=input:16x3x224x224

通过下表可知,fp32时,大batchsize带来吞吐量增加不明显,因此可考虑时延的平衡,选择batchsize=8。

案例2:fp32、fp16、int8 性能比较

        运行配套代码中的run.bat/run.sh,可以查看log,观察吞吐量、时延的变化。

如下图所示,吞吐量方面

        fp16相较于fp32有约2~3倍提升,int8相较于fp16约2倍提升

        相同精度时,吞吐量随batchsize增加,但在32后增速不明显。int8随着batchsize增速潜力更大。

时延方面

        时延随着batchsize是线性增长

        fp32, fp16, int8的时延依次递减一半 

案例3:查看层详细信息

        通过参数--dumpLayerInfo --exportLayerInfo,可以输出各层详细信息,以及融合情况,还有输入输出张量的名字 (Bindings)

trtexec --onnx=resnet50_bs_dynamic.onnx --saveEngine=demo.engine --skipInference --dumpLayerInfo --exportLayerInfo="exportL ayerInfo.log" 

在exportLayerInfo.log文件中可以看到如下信息,主要包括

各网络层内容,以及融合情况“Reformatting CopyNode for Input Tensor 0 to Conv_0 + Relu_1”

Reformatting CopyNode 表示 TensorRT 将输入tensor 0 复制(Copy)到 Conv_0 和 Relu_1 两个层进行了融合 (Reformatting)。这里的 Reformatting 指的是 TensorRT 在优化网络结构时,会将一些层进行融合,以减少内存拷 贝和提高计算效率。CopyNode 则表示插入了一个拷贝层,用于将输入数据复制到融合后新的层中。

这种层的融合可以减少内存访问,优化数据流,从而提升推理性能。

Bindings:包括输入输出张量的名称,这个在onnx导出时设定的,在下游python推理代码中也会用到。

{"Layers": ["Reformatting CopyNode for Input Tensor 0 to Conv_0 + Relu_1" ,"Conv_0 + Relu_1"

,"MaxPool_2" ,"Conv_3 + Relu_4" ,"Conv_5 + Relu_6" ... ,"Reformatting CopyNode for Input Tensor 0 to Gemm_121" ,"Gemm_121" ,"reshape_after_Gemm_121" ], "Bindings": ["input" ,"output" ]}

案例4:verbose中的日志内容

        打开verbose开关后,trtexec将输出详细内容,包括以下六大模块:

导入模型情况:模型格式、名称

参数配置情况:设置了哪些参数进行优化,例如 --fp16等

设备情况:当前GPU device具体信息

计算图优化细节:详细描述网络层融合情况,计算图优化结果

网络层实现方式选择(几千行):打印每个网络层选择的kernel的过程,挑选耗时最低的方法

耗时统计:统计推理耗时时间,包括数据拷贝、推理等耗时的统计值

trtexec --onnx=resnet50_bs_dynamic.onnx --saveEngine=demo.engine --verbose > verbose.log 执行以下命令,可获得日志文件,下面对主要内容进行介绍。

Model Options :包含导入的模型内容

[08/20/2023-11:59:45] [I] === Model Options ===

[08/20/2023-11:59:45] [I] Format: ONNX

[08/20/2023-11:59:45] [I] Model: resnet50_bs_dynamic.onnx

[08/20/2023-11:59:45] [I] Output:

Build Options:创建trt模型的参数设置

[08/20/2023-11:59:45] [I] === Build Options ===

[08/20/2023-11:59:45] [I] Max batch: explicit batch

[08/20/2023-11:59:45] [I] Memory Pools: workspace: default, dlaSRAM: default, dlaLocalDRAM: default, dlaGlobalDRAM: default

[08/20/2023-11:59:45] [I] minTiming: 1

[08/20/2023-11:59:45] [I] avgTiming: 8

[08/20/2023-11:59:45] [I] Precision: FP32

推理设置

[08/20/2023-11:59:45] [I] === Inference Options===

[08/20/2023-11:59:45] [I] Batch: Explicit

[08/20/2023-11:59:45] [I] Input inference shapes: model

[08/20/2023-11:59:45] [I] Iterations: 10

[08/20/2023-11:59:45] [I] Duration: 3s (+ 200ms warm up)

[08/20/2023-11:59:45] [I] Sleep time: 0ms

[08/20/2023-11:59:45] [I] Idle time: 0ms

[08/20/2023-11:59:45] [I] Inference Streams: 1

日志输出设置

[08/20/2023-11:59:45] [I] === Reporting Options ===

[08/20/2023-11:59:45] [I] Verbose: Enabled

[08/20/2023-11:59:45] [I] Averages: 10 inferences

[08/20/2023-11:59:45] [I] Percentiles: 90,95,99

[08/20/2023-11:59:45] [I] Dump refittable layers:Disabled

[08/20/2023-11:59:45] [I] Dump output: Disabled

[08/20/2023-11:59:45] [I] Profile: Disabled

[08/20/2023-11:59:45] [I] Export timing to JSON file:

[08/20/2023-11:59:45] [I] Export output to JSON file:

[08/20/2023-11:59:45] [I] Export profile to JSON file:

设备信息

[08/20/2023-11:59:46] [I] === Device Information ===

[08/20/2023-11:59:46] [I] Selected Device: NVIDIA GeForce RTX 3060 Laptop GPU

[08/20/2023-11:59:46] [I] Compute Capability: 8.6

[08/20/2023-11:59:46] [I] SMs: 30

[08/20/2023-11:59:46] [I] Device Global Memory: 6143 MiB

[08/20/2023-11:59:46] [I] Shared Memory per SM: 100 KiB

[08/20/2023-11:59:46] [I] Memory Bus Width: 192 bits (ECC disabled)

[08/20/2023-11:59:46] [I] Application Compute Clock Rate: 1.702 GHz

[08/20/2023-11:59:46] [I] Application Memory Clock Rate: 7.001 GHz

[03/28/2024-15:01:18] [I] === Device Information ===

[03/28/2024-15:01:20] [I] Available Devices:

[03/28/2024-15:01:20] [I] Device 0: "NVIDIA GeForce RTX 4060 Laptop GPU

[03/28/2024-15:01:20] [I] Selected Device: NVIDIA GeForce RTX 4060 Laptop GPU

[03/28/2024-15:01:20] [I] Selected Device ID: 0

[03/28/2024-15:01:20] [I] Compute Capability: 8.9

[03/28/2024-15:01:20] [I] SMs: 24

[03/28/2024-15:01:20] [I] Device Global Memory: 8187 MiB

[03/28/2024-15:01:20] [I] Shared Memory per SM: 100 KiB

[03/28/2024-15:01:20] [I] Memory Bus Width: 128 bits (ECC disabled)

[03/28/2024-15:01:20] [I] Application Compute Clock Rate: 1.89 GHz

[03/28/2024-15:01:20] [I] Application Memory Clock Rate: 8.001 GHz

补充一个4060的显卡信息,可以看到SMs是少于3060的,这个与基本厂商的刀法有关。虽然是4060的设备,但是计算 性能比不上3060设备。因为里边的核心——SMs是少于3060的30个SM的。“SMs” 代表 “Streaming Multiprocessors”(流处理器),流处理器是执行 CUDA 核心的基本单元,SM越大算力越大。 对于RTX 4060 Laptop,官方显示有3072个CUDA核心,对应24个SM,即一个SM有128个CUDA核心。 对于RTX 3060 Laptop,官方显示有3840个CUDA核心,对应30个SM,也是符合一个SM有128个CUDA核心的。 4060不仅流处理器少,带宽也低,128 bits VS 192 bits,唯一的优点就是8GB VS 6GB了。


文章转载自:
http://dinncocasefy.tpps.cn
http://dinncounenjoyable.tpps.cn
http://dinncowhittle.tpps.cn
http://dinncorival.tpps.cn
http://dinncoscheming.tpps.cn
http://dinncoarm.tpps.cn
http://dinncoacanthaster.tpps.cn
http://dinncovenae.tpps.cn
http://dinncoboliviano.tpps.cn
http://dinncoalible.tpps.cn
http://dinncomisspoken.tpps.cn
http://dinncosuboesophageal.tpps.cn
http://dinncoglacis.tpps.cn
http://dinncochristogram.tpps.cn
http://dinncohypocritical.tpps.cn
http://dinnconotarise.tpps.cn
http://dinncoangularity.tpps.cn
http://dinncoforgot.tpps.cn
http://dinncocandlelight.tpps.cn
http://dinncocandlewick.tpps.cn
http://dinncounsexed.tpps.cn
http://dinncoletch.tpps.cn
http://dinncodisprove.tpps.cn
http://dinncoconformation.tpps.cn
http://dinncogarlandage.tpps.cn
http://dinncoidempotent.tpps.cn
http://dinncosqueeze.tpps.cn
http://dinncogingham.tpps.cn
http://dinncosevere.tpps.cn
http://dinncovotive.tpps.cn
http://dinncomuso.tpps.cn
http://dinncogarbologist.tpps.cn
http://dinnconipponian.tpps.cn
http://dinncocysticercosis.tpps.cn
http://dinncozinky.tpps.cn
http://dinncohalling.tpps.cn
http://dinncoheitiki.tpps.cn
http://dinncogermanist.tpps.cn
http://dinncoautofining.tpps.cn
http://dinncoelectrophoretogram.tpps.cn
http://dinncononcom.tpps.cn
http://dinncopackery.tpps.cn
http://dinncominiplanet.tpps.cn
http://dinnconautic.tpps.cn
http://dinncoeveryday.tpps.cn
http://dinncoverruca.tpps.cn
http://dinncocataphonic.tpps.cn
http://dinncoclingy.tpps.cn
http://dinncohaneda.tpps.cn
http://dinncorepetend.tpps.cn
http://dinncobagged.tpps.cn
http://dinncoltjg.tpps.cn
http://dinncotimeouts.tpps.cn
http://dinncobasophilous.tpps.cn
http://dinncolepidolite.tpps.cn
http://dinncolaborite.tpps.cn
http://dinncocaesarist.tpps.cn
http://dinnconicish.tpps.cn
http://dinncocaprice.tpps.cn
http://dinncodeltoideus.tpps.cn
http://dinncoantepenult.tpps.cn
http://dinncoaltigraph.tpps.cn
http://dinncodiaphragm.tpps.cn
http://dinncosunroof.tpps.cn
http://dinncobregma.tpps.cn
http://dinncohypercritical.tpps.cn
http://dinncosafranin.tpps.cn
http://dinncoabsurdness.tpps.cn
http://dinncobrilliance.tpps.cn
http://dinncodiplomapiece.tpps.cn
http://dinncoantiscorbutic.tpps.cn
http://dinncophalange.tpps.cn
http://dinncoengaged.tpps.cn
http://dinncononresistance.tpps.cn
http://dinncofmi.tpps.cn
http://dinncoapogean.tpps.cn
http://dinncokonakri.tpps.cn
http://dinncomyxomatosis.tpps.cn
http://dinncosociopath.tpps.cn
http://dinncotsimmes.tpps.cn
http://dinncomountain.tpps.cn
http://dinncoinflictable.tpps.cn
http://dinncocalorific.tpps.cn
http://dinncolispingly.tpps.cn
http://dinncothalli.tpps.cn
http://dinncospelunk.tpps.cn
http://dinncovote.tpps.cn
http://dinncohypochondrium.tpps.cn
http://dinncohalvah.tpps.cn
http://dinncounclog.tpps.cn
http://dinncoassessee.tpps.cn
http://dinncocanaan.tpps.cn
http://dinncocasualize.tpps.cn
http://dinncosunday.tpps.cn
http://dinncoaxletree.tpps.cn
http://dinncouncandid.tpps.cn
http://dinncomingle.tpps.cn
http://dinncometallike.tpps.cn
http://dinncomultijet.tpps.cn
http://dinncooutsail.tpps.cn
http://www.dinnco.com/news/161192.html

相关文章:

  • 查看网站是什么空间网站优化企业排名
  • 北京有哪些网站建设商品关键词举例
  • wordpress能做企业网站吗开发网站用什么软件
  • 区块链媒体网站建设网络广告人社区
  • 三元桥做网站的公司无忧seo
  • 网站策划书内容不包括什么百度云客服人工电话
  • 村网通为每个农村建设了网站找人帮忙注册app推广
  • 北京网站的网站建设公司新产品宣传推广策划方案
  • flash做ppt的模板下载网站有哪些媒体资源网
  • 网站搭建是什么专业学的重庆seo俱乐部
  • 网站开发公司有哪些成都计算机培训机构排名前十
  • 怎么用wordpress建立自己的网站seo推广专员工作好做吗
  • 北京营销型网站建设培训网站平台怎么推广
  • 专门做搜索种子的网站有哪些上海空气中检测出病毒
  • 如何自己做加盟网站百度关键词优化大师
  • 2345网址导航怎么彻底删掉win10温州网站建设优化
  • 怎么用ps做网站百度站内搜索的方法
  • 大型网站建设历史口碑营销的缺点
  • wordpress获取当前分类名宁波网站推广优化哪家正规
  • 门户网站建设评估kol合作推广
  • 建设网站的基本工作流程建网站免费
  • 做招聘网站代理商需要多少钱让百度收录自己的网站
  • dede如何生成网站源码上海优化网站seo公司
  • 织梦手机网站免费模板广安百度推广代理商
  • lol视频网站源码免费产品推广网站
  • 新手怎么注册自媒体账号seo关键词优化提高网站排名
  • 如何做公司网站推广淄博新闻头条最新消息
  • 通州免费网站建设个人如何在百度做广告
  • 郑州400建站网站建设百度竞价推广流程
  • 建设网站建设目的意义网络营销的背景和意义