硬件delay评估表
硬件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评估表的更多相关文章
- deeplearning模型分析
deeplearning模型分析 FLOPs paddleslim.analysis.flops(program, detail=False) 获得指定网络的浮点运算次数(FLOPs). 参数: pr ...
- 【巨杉数据库SequoiaDB】巨杉Tech | 分布式数据库千亿级超大表优化实践
01 引言 随着用户的增长.业务的发展,大型企业用户的业务系统的数据量越来越大,超大数据表的性能问题成为阻碍业务功能实现的一大障碍.其中,流水表作为最常见的一类超大表,是企业级用户经常碰到的性能瓶颈. ...
- 金蝶K3表
系统ID 表ID 表名 表中文名 表说明 FType FSefDefSign0 0 t_VoucherGroup 凭证字表 ...
- 外包项目测试工作量评估指南&外包项目测试验收流程
## ### 外包项目测试工作量评估指南 1.目的 编写本指导书的目的旨在为我公司进行测试外包服务工作进行指导,帮助项目经理和相关人员编写测试方案.评估工作量.制定测试计划和测试策略等, ...
- SQL Server调优系列进阶篇(查询优化器的运行方式)
前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...
- 内存中 OLTP - 常见的工作负荷模式和迁移注意事项(三)
----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<In-Memory OLTP – Comm ...
- Android开发-API指南-<uses-feature>
<uses-feature> 英文原文:http://developer.android.com/guide/topics/manifest/uses-feature-element.ht ...
- Oracle调优总结(经典实践 重要)
转载:http://langgufu.iteye.com/blog/1974211 Problem Description:1.每个表的结构及主键索引情况2.每个表的count(*)记录是多少3.对于 ...
- SQL Server调优系列进阶篇 - 查询优化器的运行方式
前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...
随机推荐
- POJ 2752 同一个串的前后串
题解东北赛回来再补 #include<stdio.h> #include<string.h> int next[500000]; int ans[500000]; char s ...
- POJ2406简单KMP
题意: 给一个字符串,求最大的前缀循环周期,就是最小的循环节对应的最大的那个周期. 思路: KMP的简单应用,求完next数组后有这样的应用:next[i] :是最大循环节的第几位 ...
- Tomcat反序列化漏洞(CVE-2016-8735)
目录 CVE-2016-8735 漏洞复现 漏洞修复: CVE-2016-8735 漏洞描述: 该漏洞与之前Oracle发布的 mxRemoteLifecycleListener 反序列 ...
- 你注意到了吗?修改API文档也需要规范!
关于API接口文档的内容和格式规范的文章,之前也有写过,网上也有不少写的比我还好的,就不赘述了,今天想说的是一个很容易被忽略的点,修改API文档的规范:版本控制. 示例 拿Eolinker来演示一下流 ...
- Object划分
Object划分 1.PO(persistantobject)持久对象 PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包 含任何对数据库的操作. 2.DO(Domain ...
- 通过Python将监控数据由influxdb写入到MySQL
一.项目背景 我们知道InfluxDB是最受欢迎的时序数据库(TSDB).InfluxDB具有 持续高并发写入.无更新:数据压缩存储:低查询延时 的特点.从下面这个权威的统计图中,就可以看出Influ ...
- 纯vue3实现的svg可视化web组态编辑器。主要用于物联网mqtt实时系统图
vue就是边做这个项目边学的 代码可能有点乱 还望各位大神勿喷 如果代码对您有帮助 麻烦辛苦帮我点个star 预览地址 https://svg.yaolunmao.top 如何使用 # 克隆项目 gi ...
- multiset容器erase函数的误用
<从缺陷中学习C/C++>第3章库函数问题,本章主要介绍库函数的使用中会遇到的问题.使用库函数可以降低软件开发的难度,提高代码编写的效率.本节为大家介绍multiset容器erase函数的 ...
- 分析型CRM系统都分析什么?
在之前的文章中我们曾经讲过,目前市面上常见的CRM系统大概可以分为通用型.协助型和分析型三种类型.由于每个企业的类型.业务的不同,就需要选择一款适合的CRM客户关系管理系统.今天我们就来说一说,分析型 ...
- ELK 在 MacOS( Big Sur) 上安装与配置步骤
ELK学习笔记 - 安装篇 目录 ELK学习笔记 - 安装篇 1. ElasticSearch 1.1 发展历史及现状 1.2 ElasticSearch 的安装 2. Logstash 2.1 Lo ...