热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

文献阅读(11)FlexFlow

文章目录1introduction2method2.1输入复用InputReuse(IR)2.2输出复用OutputReuse(OR)2.3权重复用WeightReuse(WR)1

文章目录

  • 1 introduction
  • 2 method
    • 2.1 输入复用Input Reuse(IR)
    • 2.2 输出复用Output Reuse(OR)
    • 2.3 权重复用Weight Reuse(WR)
  • 1 方法
  • 2 架构


  • 题目:Deep Convolutional Neural Network Architecture With Reconfigurable Computation Patterns
  • 时间:2017
  • 期刊: TVLSI
  • 研究机构:清华大学
  • 参考博客:https://blog.csdn.net/darknessdarkness/article/details/106251428

1 introduction

本篇论文的主要贡献:

  1. DNA can reconfigure its data paths to support a hybrid data reuse pattern for different layer sizes
  2. DNA can reconfigure its computing resources to support a highly scalable and efficient mapping method
  3. A layer-based scheduling framework is proposed to reconfigure DNA’s resources

2 method

首先明确参数:

  • N:输入通道数
  • M:输出通道数
  • L:输入特征图宽度
  • H:输入特征图高度
  • C:输出特征图宽度
  • R:输出特征图高度
  • K:卷积核宽度
    在这里插入图片描述
    DRAM访问次数为IN∗αi+OUT∗αo+WGT∗αw+TotalPooledOutputIN * \alpha_i + OUT * \alpha_o + WGT * \alpha_w + TotalPooledOutputINαi+OUTαo+WGTαw+TotalPooledOutput
    其中αi\alpha_iαiαw\alpha_wαwαo\alpha_oαo分别表示输入特征图、权重、输出特征图的数据复用次数

2.1 输入复用Input Reuse(IR)

输入的特征图,先沿输出通道方向算,再沿输入通道方向算,这样特征图只需要加载一次,即αi=1\alpha_i = 1αi=1,此时αw\alpha_wαw取决于输入特征图在宽度和高度方向tiling的次数,αo\alpha_oαo取决于权重在输出通道方向tiling的次数
在这里插入图片描述
缺点: 输入特征图存在overlay的区域

2.2 输出复用Output Reuse(OR)

如下图,先沿输入通道算,再沿输出通道算,输出特征图一直在累加,所以αo=0\alpha_o = 0αo=0,而αi\alpha_iαi取决于输出通道tiling次数,αw\alpha_wαw取决于输出特征图宽度和高度方向tiling次数
在这里插入图片描述

2.3 权重复用Weight Reuse(WR)

在这里插入图片描述



  • 题目:FlexFlow: A Flexible Dataflow Accelerator Architecture for Convolutional Neural Networks
  • 时间:2017
  • 会议:HPCA
  • 研究机构:中科院计算所
  • 参考博客:https://zhuanlan.zhihu.com/p/109041345

1 方法

在这里插入图片描述
这有几个概念是跟我们之前的理解不一样:

  • Feature map Parallelism (FP):对应输入通道和输出通道
  • Neuron Parallelism (NP):对应输出特征图宽度和高度方向
  • Synapse Parallelism (SP):对应了一个3x3或5x5 kernel内部的并行度

在这里插入图片描述
针对架构的分类,同样采用了Neuron、Synapse的概念,比如说3x3kernel内部并行的SP对应了(a)的脉动阵列,输出特征图宽度和高度方向的NP对应了(b)的2D mapping,而FP对应了tiling,倒是比较接近我们的设计

2 架构

PE结构如下图所示,可以发现每个PE内部都会有一个local buffer,方便实现不同数据的重排,那么卷积操作一共分成三步

  • DataFlow1: 数据分发到PEDistribution Layer to Local Store
  • DataFlow2: Local Store to Operator
  • DataFlow3: Neuron and Kernel Buffers to Distribution Layer
    在这里插入图片描述
    下图展示了混合并行度的情况,对于(a),包括了
  • 输出通道方向并行度 x2
  • kernel内部并行度 x4
  • 输出特征图x方向 x2

对于(b),包括了

  • 输出通道方向并行度 x2
  • 输入通道方向并行度 x2
  • kernel内部并行度 x2
  • 输出特征图x方向 x2

在这里插入图片描述
下面这个图对应了上图(a),表示是具体数据分布方式,黑箭头表示t时刻数据访问,灰箭头表示t+1时刻数据访问。

  • 在t时刻时,第一行PE对应了输入特征图的0-3
  • 在t时刻时,第一行PE对应了输入特征图的1-4
  • 在t+1时刻时,第一行PE对应了输入特征图的2-5
  • 在t+1时刻时,第一行PE对应了输入特征图的3-6

可以发现,数据按下面的排布方式,不会出现bank conflict
在这里插入图片描述
可以说,想要实现灵活的数据流,主要的难度都在这个数据排布和重组上
在这里插入图片描述


推荐阅读
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • Proof (of knowledge) of exponentiation
    1.ProofofexponentiationProofofexponentiation是基于adaptiverootassumption(充分必要条件࿰ ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Oasis 公布 Q3、Q4 路线图 | 推动 Sapphire 成为隐私王冠上闪耀明珠 ... [详细]
  • linux filesystem_如何使用cgdb + qemu调试linux内核模块
    如何使用cgdbqemu调试linux内核模块前言Linux代码庞大而繁杂,光看代码会使人头晕目眩,如果能通过调试工具对其代码执行流程进行调试ÿ ... [详细]
  • 本文翻译自:WhatisaMavenartifact?什么是神器?为什么Maven需要它?#1楼参考:https:sta ... [详细]
  • 在MirrorAPI中,我们可以使用以下内容: ... [详细]
  • 题目大意题目原文:http:uva.onlinejudge.orgexternal10410474.pdf背景还是基本的排序问题,题目意思很简单就是首先 ... [详细]
  • 下面是一个用openssl实现获取https网页内容的demo,整个流程比较简单,主要封装的API如下staticinthttps_init(http ... [详细]
  • 3357: [Usaco2004]等差数列
    3357:[Usaco2004]等差数列TimeLimit:10SecMemoryLimit:128MBSubmit:321Solved:153[Submit][Status][D ... [详细]
  • 互联网世界 9 种基本的商业模式
    互联网世界9种基本的商业模式一个商业模式是运行一个公司的方法;通过该模式的运作,一个公司能维持自己的生存,就是说,能有收益。商业模式意味着一个公司是如何通过在价值链中定位自己,从而获 ... [详细]
  • 这篇文章主要讲解了“GradeBook类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grad ... [详细]
  • jcip里scalability的定义:Scalabilitydescribestheabilitytoimprovethroughputorcapacitywh ... [详细]
  • 开发笔记:OpenCV基础图形绘制
    本文由编程笔记#小编为大家整理,主要介绍了OpenCV基础---图形绘制相关的知识,希望对你有一定的参考价值。图形绘制OpenCV提供了直线,矩形,圆 ... [详细]
author-avatar
義忠仁倫冧沫Bob
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有