硬件delay评估表

硬件延时评估表用于快速评估一个模型在特定硬件环境和推理引擎上的推理速度。 Bw 主要用于定义PaddleSlim支持的硬件延时评估表的格式。

概述

硬件延时评估表中存放着所有可能的操作对应的延时信息,该表中的一个操作包括操作类型和操作参数,比如:操作类型可以是conv2d,对应的操作参数有输入特征图的大小、卷积核个数、卷积核大小等。 给定操作的延时依赖于硬件环境和推理引擎。

整体格式

硬件延时评估表以文件或多行字符串的形式保存。

硬件延时评估表第一行保存版本信息,后续每行为一个操作和对应的延时信息。

版本信息

版本信息以英文字符逗号分割,内容依次为硬件环境名称、推理引擎名称和时间戳。

  • 硬件环境名称: 用于标识硬件环境,可以包含计算架构类型、版本号等信息。
  • 推理引擎名称: 用于标识推理引擎,可以包含推理引擎名称、版本号、优化选项等信息。
  • 时间戳: 该评估表的创建时间。

操作信息

操作信息字段之间以逗号分割。操作信息与延迟信息之间以制表符分割。

conv2d

格式

op_type,flag_bias,flag_relu,n_in,c_in,h_in,w_in,c_out,groups,kernel,padding,stride,dilation\tlatency

字段解释

  • op_type(str) - 当前op类型。
  • flag_bias (int) - 是否有 bias(0:无,1:有)。
  • flag_relu (int) - 是否有 relu(0:无,1:有)。
  • n_in (int) - 输入 Tensor 的批尺寸 (batch size)。
  • c_in (int) - 输入 Tensor 的通道 (channel) 数。
  • h_in (int) - 输入 Tensor 的特征高度。
  • w_in (int) - 输入 Tensor 的特征宽度。
  • c_out (int) - 输出 Tensor 的通道 (channel) 数。
  • groups (int) - 卷积二维层(Conv2D Layer)的组数。
  • kernel (int) - 卷积核大小。
  • padding (int) - 填充 (padding) 大小。
  • stride (int) - 步长 (stride) 大小。
  • dilation (int) - 膨胀 (dilation) 大小。
  • latency (float) - 当前op的延时时间

activation

格式

op_type,n_in,c_in,h_in,w_in\tlatency

字段解释

  • op_type(str) - 当前op类型。
  • n_in (int) - 输入 Tensor 的批尺寸 (batch size)。
  • c_in (int) - 输入 Tensor 的通道 (channel) 数。
  • h_in (int) - 输入 Tensor 的特征高度。
  • w_in (int) - 输入 Tensor 的特征宽度。
  • latency (float) - 当前op的延时时间

batch_norm

格式

op_type,active_type,n_in,c_in,h_in,w_in\tlatency

字段解释

  • op_type(str) - 当前op类型。
  • active_type (string|None) - 激活函数类型,包含:relu, prelu, sigmoid, relu6, tanh。
  • n_in (int) - 输入 Tensor 的批尺寸 (batch size)。
  • c_in (int) - 输入 Tensor 的通道 (channel) 数。
  • h_in (int) - 输入 Tensor 的特征高度。
  • w_in (int) - 输入 Tensor 的特征宽度。
  • latency (float) - 当前op的延时时间

eltwise

格式

op_type,n_in,c_in,h_in,w_in\tlatency

字段解释

  • op_type(str) - 当前op类型。
  • n_in (int) - 输入 Tensor 的批尺寸 (batch size)。
  • c_in (int) - 输入 Tensor 的通道 (channel) 数。
  • h_in (int) - 输入 Tensor 的特征高度。
  • w_in (int) - 输入 Tensor 的特征宽度。
  • latency (float) - 当前op的延时时间

pooling

格式

op_type,flag_global_pooling,n_in,c_in,h_in,w_in,kernel,padding,stride,ceil_mode,pool_type\tlatency

字段解释

  • op_type(str) - 当前op类型。
  • flag_global_pooling (int) - 是否为全局池化(0:不是,1:是)。
  • n_in (int) - 输入 Tensor 的批尺寸 (batch size)。
  • c_in (int) - 输入 Tensor 的通道 (channel) 数。
  • h_in (int) - 输入 Tensor 的特征高度。
  • w_in (int) - 输入 Tensor 的特征宽度。
  • kernel (int) - 卷积核大小。
  • padding (int) - 填充 (padding) 大小。
  • stride (int) - 步长 (stride) 大小。
  • ceil_mode (int) - 是否用 ceil 函数计算输出高度和宽度。0 表示使用 floor 函数,1 表示使用 ceil 函数。
  • pool_type (int) - 池化类型,其中 1 表示 pooling_max,2 表示 pooling_average_include_padding,3 表示 pooling_average_exclude_padding。
  • latency (float) - 当前op的延时时间

softmax

格式

op_type,axis,n_in,c_in,h_in,w_in\tlatency

字段解释

  • op_type(str) - 当前op类型。
  • axis (int) - 执行 softmax 计算的维度索引,应该在 [−1,rank − 1] 范围内,其中 rank 是输入变量的秩。
  • n_in (int) - 输入 Tensor 的批尺寸 (batch size)。
  • c_in (int) - 输入 Tensor 的通道 (channel) 数。
  • h_in (int) - 输入 Tensor 的特征高度。
  • w_in (int) - 输入 Tensor 的特征宽度。
  • latency (float) - 当前op的延时时间。

硬件delay评估表的更多相关文章

  1. deeplearning模型分析

    deeplearning模型分析 FLOPs paddleslim.analysis.flops(program, detail=False) 获得指定网络的浮点运算次数(FLOPs). 参数: pr ...

  2. 【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践

    01 引言 随着用户的增长.业务的发展,大型企业用户的业务系统的数据量越来越大,超大数据表的性能问题成为阻碍业务功能实现的一大障碍.其中,流水表作为最常见的一类超大表,是企业级用户经常碰到的性能瓶颈. ...

  3. 金蝶K3表

    系统ID     表ID     表名     表中文名     表说明     FType     FSefDefSign0     0     t_VoucherGroup     凭证字表    ...

  4. 外包项目测试工作量评估指南&外包项目测试验收流程

    ## ### 外包项目测试工作量评估指南 1.目的        编写本指导书的目的旨在为我公司进行测试外包服务工作进行指导,帮助项目经理和相关人员编写测试方案.评估工作量.制定测试计划和测试策略等, ...

  5. SQL Server调优系列进阶篇(查询优化器的运行方式)

    前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...

  6. 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(三)

    ----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<In-Memory OLTP – Comm ...

  7. Android开发-API指南-<uses-feature>

    <uses-feature> 英文原文:http://developer.android.com/guide/topics/manifest/uses-feature-element.ht ...

  8. Oracle调优总结(经典实践 重要)

    转载:http://langgufu.iteye.com/blog/1974211 Problem Description:1.每个表的结构及主键索引情况2.每个表的count(*)记录是多少3.对于 ...

  9. SQL Server调优系列进阶篇 - 查询优化器的运行方式

    前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...

随机推荐

  1. 【死磕ibatis】SqlMapClient 基本操作示例

    前言:想要学习ibatis,我这里写了一些关于SqlMapClient 的具体例子,希望对你有帮助.话不多说,直接看例子. 例 1: 数据写入操作(insert, update, delete): s ...

  2. 日志配置文件读取spring boot配置文件中的属性

    如果是读取 application.properties 这种spring boot的默认配置文件时 其中 scope固定为context  指明从上下文中获取, name 根据自己的意思给, sou ...

  3. hdu4280 最大流DINIC

    题意:       x最小的到x最大的点同一时间的最大运输量. 思路:       裸的最大流,不解释,注意一点,记得加上防爆栈. #pragma comment(linker, "/STA ...

  4. 查找和定位Android应用的按钮点击事件的代码位置基于Xposed Hook实现

    本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80956455 在进行Android程序的逆向分析的时候,经常需要通过Androi ...

  5. hdu5007 小水题

    题意:       给你一个串,如果出现子串 "Apple", "iPhone", "iPod", "iPad"输出MA ...

  6. Apache Tomcat examples directory vulnerabilities(Apache Tomcat样例目录session操纵漏洞)复现

    目录 Session操控漏洞 示例: Session操控漏洞 在Apache tomcat中,有一个默认的example示例目录,该example目录中存着众多的样例,其中/examples/serv ...

  7. HTTP自定义Header-(SOCKET-TCP)

      HTTP自定义Header-TCP 前几天弄一些东西,需要在发送http请求的时候自定义http头,找了几个库用着很不爽.有的把Cookie直接干掉了,还自己在头里加了版权,最后终于忍不了了.在网 ...

  8. android The content of the adapter has changed but ListView did not receive a notification 错误的解决方案

    使用了AsyncTask在后台刷新适配器,并且通知ui线程更新ListView,运行时发现时不时的出现 如题 的错误, 导致程序崩溃,解决方法如下: 1.建立一个缓冲数据集,这个数据集就是填充适配器的 ...

  9. JVM虚拟机-了解Java堆中对象分配、布局和访问的全过程

    目录 前言 对象的创建 类加载检查 分配内存 内存空间分配方式 指针碰撞 空闲列表 并发时的内存分配 同步处理:CAS 本地线程分配缓冲:TLAB 初始化零值 设置对象头 执行 init 方法 对象的 ...

  10. Yii2表头强制不换行

    在Yii2中使用GridView生成的表格有一个小问题,那就是表头的列宽是根据列的值自适应的,但有时值的长度比较小,表头就会出现下面这种情况(表头不在同一行,非常的不利于数据的查看) 设置强制不换行可 ...