TPAT

TensorRT 插件自动生成工具
授权协议 Apache 2.0
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 微生新霁
操作系统 跨平台
开源组织 腾讯
适用人群 未知
 软件概览

TPAT 是由腾讯联合英伟达开发的 TensorRT 插件自动生成工具。

TensorRT 是当前应用最广的 GPU 推理框架,但由于支持的算子数量有限,用户面临手写插件以支持算子的痛点。而TPAT 能够支持开放神经网络交换 (ONNX) 格式所有的算子,端到端生成 TensorRT 插件,在解放人力成本的同时,性能对比手写毫不逊色。

TPAT 实现了 TensorRT 插件的全自动生成,TensorRT 的部署和上线能基本流程化不再需要人工参与。手写插件的步骤将由 TPAT 代替,TPAT 全自动生成一个算子插件耗时仅需要 30-60 分钟的时间(该时间用于搜索算子的高性能 CUDA Kernel)。

架构设计

TPAT 接受用户输入的 ONNX-Model,指定需要生成 TensorRT Plugin 的算子和 batch size,基于 TVM 深度学习编译器,对固定形状的算子进行 AutoTune,自动生成高性能的 CUDA Kernel. 将 CUDA Kernel 和 Runtime 必要的参数填充进 TensorRT Plugin 模板,生成动态链接库,可以直接加载到 TensorRT 运行。

TPAT 部分算子性能数据

使用 TPAT 自动生成 TensorRT-7.2 不支持的算子,并且用 TPAT 优化 TensorRT-7.2 原生实现性能较差的算子;

对比手写 Plugin

优化 TensorRT 原生算子

TPAT 使用案例

使用 TPAT 支持 Onehot 算子(TensorRT-7.2.2.3)

  • 输入包括了 onehot 算子的 ONNX_Model、Onehot 算子的名字、batch_size
  • TPAT借助 TVM的Relay 和 AutoScheduler 组件,生成高性能的 CUDA Kernel;
  • 经过模板填充后直接生成可用的 onehot 算子 Plugin 的动态链接库。

 

  • 【C-TPAT反恐验厂安全标准】 C-TPAT反恐验厂安全标准:   1.商业伙伴要求   包括承运人、分包商、原材料供应商必须有可核准的书面程序。   2.程序安全   工厂应当制定安全措施确保货物在存放、搬运及运输过程中的安全性及完整性的。   3.信息安全   自动化系统必须使用需要定期更换口令的个人担保账户,并实施信息技术安全标准、程序和政策,同时应对全体员工进行培训。   4.个人安全

  • 新的最低安全标准更新现已推出 海关贸易反恐伙伴关系 (CTPAT) 只是美国海关和边境保护局 (CBP) 多层货物执法战略中的一层。通过该计划,CBP 与贸易界合作,加强国际供应链并改善美国边境安全。CTPAT 是一项自愿的公私部门合作计划,它承认 CBP 只有通过与国际供应链的主要利益相关者(如进口商、承运人、集运商、许可报关行和制造商)密切合作,才能提供最高水平的货物安全。2006 年《每个港

  • AEO认证的一个重要背景是国家的信用建设,在新的认证标准中,在某一些行业中,其实已经将这一块的内容明确出来,对于企业调整和优化自身的供应链建设,其实是非常有帮助的。 不少大型的企业在梳理自己的供应链体系的时候,发现自己竟然还和不少的失信企业在合作,有的都想象都后怕,失信企业很多时候背负十几个诉讼官司,有的甚至接近破产边缘,这些都是企业未来的发展隐患,很可能自己的货物交付都因此而中断。 CTPAT认

  • 外国制造商对于商业伙伴的选择,包括承运人、其他制造商、产品供应商和卖主(零件和原材料供应商等)必须有书面的、可核准的程序。  1、安全程序 对于那些符合C-TPAT认证条件的商业伙伴(承运人、进口商、港口、码头、经纪人、并装业者等),外国制造商必须有文件证据(比如C-TPAT证书、SVI编号等)表明这些商业伙伴是否经过C-TPAT认证。 对那些不符合C-TPAT认证条件的商业伙伴,外国制造商应要求

  • C-TPAT Protocols Section Attachment D2 Subject Self-Assessment for Foreign Manufacturers and Suppliers Vendor Name: Factory Name & Address: Reviewer Name: Reviewer Title: Reviewer Company & Contact In

  • CTPAT MSC公告 CTPAT研讨会和活动 新的最低安全标准更新现已推出 海关反恐贸易伙伴关系(CTPAT)只是美国海关与边境保护局(CBP)多层货物执法策略中的一层。通过该计划,CBP与贸易界合作,以加强国际供应链并改善美国边境安全。CTPAT是一项自愿的公私部门伙伴关系计划,该计划认识到CBP只能通过与国际供应链的主要利益相关方(如进口商,承运人,集运商,持照报关行和制造商)密切合作,才能

  • 外国制造商对于商业伙伴的选择,包括承运人、其他制造商、产品供应商和卖主(零件和原材料供应商等)必须有书面的、可核准的程序。  1、安全程序 对于那些符合C-TPAT认证条件的商业伙伴(承运人、进口商、港口、码头、经纪人、并装业者等),外国制造商必须有文件证据(比如C-TPAT证书、SVI编号等)表明这些商业伙伴是否经过C-TPAT认证。 对那些不符合C-TPAT认证条件的商业伙伴,外国制造商应要求

  • CTPAT MSC公告 CTPAT研讨会和活动 新的最低安全标准更新现已推出 海关反恐贸易伙伴关系(CTPAT)只是美国海关与边境保护局(CBP)多层货物执法策略中的一层。通过该计划,CBP与贸易界合作,以加强国际供应链并改善美国边境安全。CTPAT是一项自愿的公私部门伙伴关系计划,该计划认识到CBP只能通过与国际供应链的主要利益相关方(如进口商,承运人,集运商,持照报关行和制造商)密切合作,才能

  • TAPA FSR适用于将高价值物品存储于仓库及分销中心,且使用他们自己或分包商运输系统、货运代理的组织。除了运输商以外,制药企业、服装企业、烟草企业、大型零售商都已应用此标准保护他们的仓库安全。SGS是货运资产保护协会(TAPA)认可的审核机构,可以依照FSR的详细要求对组织进行审核,内容包括:门禁控制、员工检查、周边安全、防止闯入者安全设备、监控系统、高价值存储区、转运延迟以及仓库中其他敏感区域

 相关资料
  • 所以我有一个Vaadin 7应用程序,我一直在开发,但现在需要集成JAAS和最终的OpenAM进行身份验证和授权。我注意到很多人都在用Spring来让它工作,所以我走了这条路。我使用了VaadinSpringIntegration插件,我认为它的设置是正确的,但当我启动我的应用程序时,我的自动连线bean是空的。我以前从未使用过Spring,所以很可能我忽略了一些东西。 这是我网站的一部分。xml

  • 我向我的IntelliJ插件添加了一个自动完成功能,如下所示: 我如何格式化我要放在编辑器上的新方法?我不需要自定义格式,只需要IntelliJ的默认格式

  • cmf_plugin_url($url, $param = [], $domain = false) 功能 生成访问插件的url 参数 $url: string url格式:插件名://控制器名/方法 $param: array 参数 $domain:boolean|array 是否显示域名 或者直接传入域名 返回 string 插件的url 例子 echo cmf_plugin_url('De

  • X1.4.0新增 sp_plugin_url($url,$param,$domain) 功能: 生成访问插件的url 参数: $url: url 格式:插件名://控制器名/方法 $param:额外参数,默认为空数组 $domain:是否添加域名,默认false 返回: 类型url 模板使用: {:sp_plugin_url('Demo://Index/index',array('id'=>2)

  • cmf_plugin_url($url, $param = [], $domain = false) 功能 生成访问插件的url 参数 $url: string url格式:插件名://控制器名/方法 $param: array 参数 $domain:boolean|array 是否显示域名 或者直接传入域名 返回 string 插件的url 例子 echo cmf_plugin_url('De

  • 我有两个表A(id,col1,col2)和B(col3,col4,col5,col6) 这引发错误 为什么postgres不自动为列“id”生成值?如果我从表B中提供“id”,或者如果我插入单行(没有select)并为自动生成的列提供“default”关键字,查询就可以工作。 编辑:表创建查询

  • 问题内容: 有人知道如何从1开始生成,以便下一个对象具有2,依此类推吗? 我尝试了以下方法,但不起作用: 问题答案: 您需要一个 静态的 类成员来跟踪上次使用的索引。确保还实现一个复制构造函数: 更新: 正如@JordanWhite建议的那样,您可能希望使static计数器成为 atomic ,这意味着可以安全地同时使用(即一次在多个线程中使用)。为此,将类型更改为: 增量读取和复位操作变为:

  • 嗨,我有一个包含两个库模块的gradle android项目: 所以LibB依赖于LibA。因此,LibB 的 build.gradle 文件如下所示: 如您所见,我想为gradle项目中的每个库模块生成. aar文件。到目前为止还不错,但是生成对LibA具有正确依赖关系的pom.xml文件并没有像预期的那样工作: pom。LibB的xml文件如下所示: 有没有办法在生成的pom文件中指定LibA