硬件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. C#中普通缓存的使用

    缓存的概念及优缺点在这里就不多做介绍,当然缓存包含多种有普通缓存.客户端缓存.DNS缓存.反向代理缓存以及分布式缓存等等.今天主要聊一聊C#通过编码来实现普通的缓存.话不多说直接上代码. 一.首先,新 ...

  2. hdu4604 不错的子序列问题

    题意:       给你一个栈,里面有n个数,和一个双头队列(空的),每次从栈里拿出一个数据,有三种选择,可以选择丢弃这个数字,也可以放到队头或者队尾,最后问你这个队列你面的最长连续非下降序列的长度. ...

  3. PAT 乙级 -- 1003 -- 我要通过!

    题目简述 "答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答案正确"大派送 -- 只要读入的字符串满足下列条件,系统就输出"答案正 ...

  4. Android so库文件的区节section修复代码分析

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78818917 一.Android so库文件的节表secion修复方案整理 1.简 ...

  5. 【jQuery】精细学习记录

    [jQuery]精细学习记录 基础 基本语法: $(选择器).action(回调函数); $/jQuery //jQuery核心函数 $(选择器) //获得的jQuery对象 jQuery核心 - j ...

  6. android手势识别

    一.简单手势识别: 简单手势识别分为以下几个步骤: 1.手指触碰屏幕时,触发MotionEvent事件: 2.该事件被OnTouchListener监听,可在它的onTouch()方法中获得该Moti ...

  7. Tensorflow Probability Distributions 简介

    摘要:Tensorflow Distributions提供了两类抽象:distributions和bijectors.distributions提供了一系列具备快速.数值稳定的采样.对数概率计算以及其 ...

  8. flex布局的使用

    一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box{ disp ...

  9. 封装了一些sqlsugar的常用方法 用来动态切换数据库和依赖注入 支持泛型

    接口: /// <summary> /// 数据库操作 /// </summary> public interface IDAL_Services { /// <summ ...

  10. Spring Boot & Cloud 轻量替代框架 Solon 1.4.1 发布

    Solon 是一个微型的Java开发框架.强调,克制 + 简洁 + 开放的原则:力求,更小.更快.更自由的体验.支持:RPC.REST API.MVC.Micro service.WebSocket. ...