TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成

这个PR增加了对分区、编译和运行TensorRT
BYOC目标的支持。

Building

有两个新的cmake标志:

USE_TENSORRT=ON/OFF:启用TENSORRT代码生成-这不需要TENSORRT库              USE_TENSORRT_GRAPH_RUNTIME=ON/OFF/“path/to/TensorRT”:

启用TENSORRTruntime-这需要TENSORRT库。从deb包或JetPack在系统范围内安装TensorRT时,可以通过“ON”来检测,但是.tar.gz安装要求提供提取的TensorRT归档文件的路径。

Usage

编译目标应该是“cuda”,以确保将TensorRT函数的输入和输出参数放在GPU上。

Compilation

from tvm.relay.op.contrib import tensorrt

mod = tensorrt.partition_for_tensorrt(mod, params)

with relay.build_config(opt_level=3):

graph, lib, params =
relay.build(mod, target=“cuda”, params=params)

Running inference is unchanged

mod = graph_runtime.create(graph, lib, ctx=tvm.gpu(0))

mod.run(…)

High level components

Partitioning

TensorRT的注释规则根据目标的TensorRT版本以及“批处理模式”而变化。这可以用trt_version进行配置,并使用use_implicit_batch分区的partition_for_tensorrt批处理参数。

如果TVM是针对TensorRT库构建的,则链接版本将用于分区。

Codegen

此实现使用codegen的JSONRuntime
JSONSerializer基类将中继表达式序列化为json格式。

Runtime

runtime由tensorrt中的runtime模块类处理tensorrt_runtime.cc。在runtime,它首先使用TensorRTBuilder类(tensorrt_builder.cc)用于使用TensorRT API将json图转换为TensorRT INetworkDefinition。它使用tensorrt中的converterconverter classes算子tensorrt_ops.cc。然后,构建TensorRT引擎,此过程可能需要几分钟时间,因为TensorRT将在此时执行优化。引擎被缓存以备进一步的推理调用。

如果guards,runtime可以针对许多TensorRT版本进行编译。它适用于TensorRT 5、6和7。编译后的模型必须为TensorRT版本<=runtime使用的版本进行分区。编译后的模型可能需要更新的TensorRT版本的算子可用。

Problem

TensorRT有一些参数,比如max_workspace_size和use_implicit_batch,希望用户能够在分区_中为partition_for_tensorrt提供这些参数。这些参数需要传递给codegen并存储在序列化图中,直到运行时为止。使用“隐式”批处理也会影响分区规则。使用环境变量将这些从Python传递到C++中的代码生成。想知道有没有更好的方法来做这个?

我在python/tvm/relay/op/contrib/tensorrt.py中实现了一个名为prune_tensorrt_subgraphs()的转换/tensorrt.py. 这是在分区之后运行的,决定是保留子图还是将其返回到典型的TVM编译路径。之所以需要这样做,是因为有些子图可能是无效的——例如当输入具有不同的批处理大小时,或者为了优化目的,如果子图没有乘法累加。在C++中实现了一个通用版本,但使用全局注册表来允许每个代码对象定义自己的is_invalid_subgraph回调。将来,如果找到更好的方法来注册回调,可以切换到泛型版本。

需要在注释时介入目标tensorrt版本。把它放在一个全局变量中。

TensorRT宏碁自建云(BYOC, BuildYourOwnCloud)上集成相关推荐

  1. 宏碁施振荣:大陆是国际化的练兵场

    一手创设硬件航母宏碁集团的施振荣,刚才迈入70岁,见证并出席整体打算机期间的他被称为台湾科技教父.在PC大局失败的大遭受之下,这位活化石奈何对于PC.如何看待搬动搜集,如何看待正在兴起的IoT时代,想 ...

  2. 黄少华接任施振荣就任宏碁董事长

    6月18日消息,宏碁集团今日宣布董事长施振荣正式卸任,黄少华将接任宏碁董事长.施振荣称,他仍会以国艺会董事长的身份继续打拼,将继续担任宏碁自建运BYOC(宏碁自建云)业务的首席建构师职位. 施振荣在内 ...

  3. 宏碁收购Gateway 12天上演变脸大戏

    宏碁收购Gateway 12天上演变脸大戏[@more@]电脑报记者 朱文利 特约记者 曹增光 谚云:六月的天,娃娃的脸--说变就变.但这个世界上爱变脸的远不止六月天,短短12天之内,IT界也上演了一 ...

  4. 宏碁e5572g57mx加固态_宏基e5572g57mx怎么拆机

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:宏基e5572g57mx怎么拆机回答:第一步: 准备将工具(细十字螺丝刀.一字螺丝刀.镊.刀片.软布 )及待拆本准备好.第二步: 拆 ...

  5. 宏碁暗影骑士4安装不了Linux,宏碁暗影骑士4评测:在细节中不断改进前行!

    [PConline 评测]A:"你说现在游戏本发展得这么快,选择也这么多了,玩个游戏价格多少更合适?" B:"别废话,问我?免费最合适!" A:"得了 ...

  6. 宏碁非凡pro 2023款参数 评测 宏碁非凡pro 2023款值得买吗

    宏碁非凡pro 2023款笔记本散热上,选择双风扇对称设计,高效散热:双翼式铜管,大直径散热面积:立体风道,提升散热效能. 宏碁非凡pro 2023款笔记本搭载的是十三代酷睿处理器,屏幕采用的是康宁大 ...

  7. 宏碁与联想的个人计算市场之战

    虽然各主流媒体都用了"宏碁将运营方正PC品牌"的语句来陈述二者的合作,但事实上,不管是宏碁接管方正PC的运营,还是宏碁收购方正PC的业务,对于中国市场上的无数用户来说," ...

  8. MR混合现实头显来啦!宏碁微软产品率先上市

    原文标题:MR混合现实头显来啦!宏碁微软产品率先上市 微软此前表示,PC世界中的一系列著名OEM合作伙伴将会生产Windows 10混合现实头显.据小编了解,宏碁将会首先在本月开始向开发者发货,分阶段 ...

  9. 宏碁电脑总裁兰奇取代王振堂兼任CEO一职

    宏碁电脑全球总裁兰奇头上的"乌纱帽"越来越多.日前,这位从王振堂手中获得了公司CEO一职,从而成为宏碁电脑最具实力派的决策者之一. 而王振堂辞去宏碁电脑CEO之后,则转任宏碁集团( ...

最新文章

  1. Dockerfile的详解
  2. ECharts问题--柱状图和折线图中xAxis.data为空时报错问题解决
  3. [NodeJS] 优缺点及适用场景讨论 - 鱼松
  4. C#PDF转Word
  5. VS2005混合编译ARM汇编代码
  6. Wi-Fi 6 认证计划启动:开启 Wi-Fi 新纪元
  7. 如何自己打印计算机准考证,如何打印计算机准考证
  8. MATLAB 2018a 安装
  9. c语言程序装萝卜,c语言编程题库(大一c语言编程题库)
  10. Gantt - attachEvent事件监听 - 两个参数事件
  11. 高通 lcd dtsi
  12. ibus mozc 日文输入法
  13. 计算机技术和教育,计算机技术和现代数学教育
  14. 不久的明天,也许是很光明的
  15. 拷贝相关器 matlab,基于MELP的水下实时语音通信机的研究与实现
  16. 扫描二维码打开微信小程序,携带参数,含配置和代码详解
  17. 华东师范大学计算机试题,(华东师范大学计算机考试习题.doc
  18. 海康威视的视频如何显示在web页面上显示
  19. 【大道至简】机器学习算法之EM算法(Expectation Maximization Algorithm)详解(附代码)---通俗理解EM算法。
  20. SIFT Flow 笔记

热门文章

  1. Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
  2. 深度学习学习指南-工具篇
  3. 提高期——SLA实践指导秘籍
  4. 机房收费系统【VB版】——上下机
  5. java集合中对象某属性比较排序
  6. LTV 即用户生命周期价值
  7. 预见未来丨机器学习:未来十年研究热点
  8. 有了NPU,还要DSP吗?
  9. TensorFlowMNIST数据集逻辑回归处理
  10. matrix_multiply代码解析