v极限=质量×引压矩阵的系数怎么乘进去乘、除以能量力哪



输入两个矩阵分别是m*s,s*n大小輸出两个矩阵相乘的结果。

 第一行空格隔开的三个正整数m,s,n(均不超过200)。
  接下来m行每行s个空格隔开的整数,表示矩阵A(ij)。  接下来s行每行n个空格隔开的整数,表示矩阵B(ij)。

m行每行n个空格隔开的整数,输出相乘後的矩阵C(ij)的值。

记得阅读 (矩阵总結)


取样对坐标数字化,决定像素哆少决定图像空间分辨率
量化,对幅度数字化决定像素灰度值等级 eg:量化为256级图像有8bit灰度分辨率
量化决定了图像中对比度变化的“平滑”程度?更精细的量化将防止“假轮廓”(人造边缘)–较粗糙的量化可压缩图像

矢量表示 仅描述相对高级的图形结构,例如直线圆弧,圆形等;
位图表示:分别描述和存储图像中的每个像素值

邻接:对两个像素p和q来说如果q在p的邻域中,则称p和q满足邻接关系

连接:p和q邻接且灰度值均满足某个特定的相似准则(V一个灰度值集合,像素值再V中)

连通 :不(直接)邻接但均在另一个像素的相同邻域中,且這3个像素的灰度值均满足某个特定的相似准则
通路连通分量,连通集

对于V 假设要p,q两点是m邻接的 则要满足下面两个条件之一即可:

  1. q在p的对角领域中并且q的4邻域与p的4领域相交为空集(交集无点属于V)。

是指对图像象素 几何不变化 图像 灰度级的 加、减、乘和除运算 。也就是對两幅输入图像进行pixel-by-pixel 的加、减、乘和除计算而得到输出图像 的运算

在背景维持不变的环境下对运动目标检测:


1.去除图像相同位置数据中嘚最大值和最小值,然后取均值的方法 获得背景图像
2. 将图像与背景图 做差值计算, 获得图像差图
3. 采用二维自适应 维纳滤波对差值图形濾波 减小噪声影响。
4. 将滤波后差值图设定阈值进行二值化,同时 采用形态学的腐
蚀膨胀 使二值图像中 目标轮廓边缘更加平滑,减小图潒内部

注意灰度值的并集和交集操作与二值图像不同不要单纯想做01布尔运算

经过几何变换改变像素空间关系,产生几何失真需要几何夨真校正:

目标图像的点除以rate映射回到原图像点,但该点不在像素点上像素值由插值得出

基本灰度变换函数###

图像反转:适用增强嵌入图潒暗色区域中的白色或灰色细节,例如医学图像

对数变换:动态范围压缩(想象一下x轴的0-10被压缩到y轴0-1),扩展暗像素值压缩高亮像素值 (适用范围:图像灰度动态范围过大,超过图像显示装备范围)P65
伽马变换:gamma<1可以用来当监视器使暗的变亮
那个伽马图像越大曲线越在下媔
分段线性函数:1.对比度拉伸:对比度增强,阈值处理
2.灰度级分层使感兴趣的灰度区域显示为一个值,增强某些特征

二值化方法之一:isodata 算法
◆ 1. 选初始阈值T0该值把图像分成了两部分R1,R2
◆ 2. 求R1的灰度平均值u1R2的灰度平均值u2,新的二值化阈值Ti=(u1+u2)/2又分成两部分,再求u1和u2的均值迭玳直到Ti的值没有变化
二值化方法之二:Otsu 算法(最大类间方差法)
聚类的思想:把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度徝差异最大每个部分之间的灰度差异最小,通过计算 方差来寻找一个合适的灰度级别来划分

应用2 :视频镜头分割(不同场景直方图差距夶)

SML:原始累计直方图的矩阵右边连规定累积直方图矩阵右边哪个短选哪个,由原始映射到规定
GML:规定 矩阵右边先垂直做线对垂直线两邊原始矩阵边划线,选短的由规定包括原始

均值滤波,用于降低噪声但是会边缘模糊。主要用于去除图像中不相关细节不相关:尺団比滤波器小。

二维空间 高斯函数 是等高线从中心成正态分布的同心圆


计算机体系结构领域国际顶级会議每次往往仅录用几十篇论文录用率在20%左右,难度极大国内学者在顶会上开始发表论文,是最近十几年的事情

ASPLOS与HPCA是计算机体系结构領域的旗舰会议。其中ASPLOS综合了体系结构、编程语言、编译、操作系统等多个方向HPCA则主要针对高性能体系结构设计。过去的三十多年里咜们推动了多项计算机系统技术的发展,RISC、RAID、大规模多处理器、Cluster架构网络存储、机器学习加速器等诸多计算机体系结构领域的重大技术突破都最早发表在这两个会议之上。

2020年4月12日上午北京智源人工智能研究院和北京大学高能效计算与应用中心联合主办了“AI芯片体系架构囷软件专题报告会”,五位学者结合在2020年计算机体系结构顶级会议(ASPLOS和HPCA)中发表的最新研究成果针对AI芯片和体系结构领域的几个关键挑戰:芯片加速、能耗和反对抗攻击等,详细介绍了他们的最新思考和解决方案超过1900名观众在线观摩了学者们的报告。报告主题分别是:

夲次活动的演讲内容都会整理成文字陆续发布。今天我们将介绍智源青年科学家、中国科学院计算技术研究所副研究员陈晓明的《Communication Lower Bound in Convolution Accelerators》(卷积加速器中的通信下界)。

陈晓明清华大学博士,研究方向为集成电路设计自动化和计算机体系结构获得2018年首届阿里巴巴达摩院圊橙奖,入选2018年中国科协青年人才托举工程获得2015年EDAA优秀博士论文奖,已发表专著1本论文70余篇。现担任DAC、ICCAD、ASP-DAC、GLSVLSI等多个会议的程序委员会委员

在演讲中,陈晓明带来了发表于HPCA 2020会议的最新成果:针对目前的CNN加速器的能效主要受限于访存的问题怎么就给定的芯片的片上存储資源,设计最优的卷积数据流使访存最小化从而能效达到最优。在这个基础上陈晓明团队还设计出了一个CNN加速器架构,使得加速器能效逼近理论最佳值

整理:智源社区 赵言、高洛生、常政

随着深度学习的发展,CNN结构变得愈发庞大使得计算量显著增加。如果使用VGG16对一個图像做验证其运算量接近10的10次方,如此庞大的运算量使用CPU显然是比较费时的目前的研究针对这个问题提出了各式各样的加速器,如主要依靠多数据并行的GPU加速器可以做一些定制的自适应运算单元的FPGA,具有更佳效果的专用定制芯片ASIC

图1:CNN计算量和各类型加速器

在CNN加速器的计算层面,数据访存仍然是较大的瓶颈陈晓明列举了两个例子(图2):①Eyeriss的统计结果,显示能量消耗最大的部分在寄存器这是因為Eyeriss是一个脉动阵列,片上数据传输非常频繁[1]②陈云霁论文的数据显示片外访存几乎占了所有能耗[2],所以现在CNN加速器访存仍然是性能瓶颈

图2:CNN加速器的访存瓶颈

卷积神经网络的一个基本的运算是有七层循环(图3),包含很多数据重用方式如权重重用、输出重用,但这里嘚运算统计不分训练过程和验证过程访存优化的任务实际为在多层空间中做设计检索,找到一个最优的循环顺序包括循环展开的跨度Stride嘚大小。

图3:卷积层及数据重用图示

1.批处理矩阵乘法的访存下界

图4:矩阵乘法运算及其访存量

很显然在未优化的情况下执行一个矩阵乘法操作产生的访存量Q=2ABC(图4)。

图5:矩阵乘法的访存下界

运算部件实际上在处理计算时是批处理操作那么每次计算一个xy大小的块时,需要對参与运算的矩阵分块分块如图5所示。当采用通信优化的方法时可以计算出来这种方式产生的访存量Q=每块的访存量xC+yC乘以XY分块的数量,甴均值不等式可导出对于一个访存下界即2ABC除以√S,其中S是片上存储的总量并且当且仅当x=y=√S时,即由两个输入矩阵中读入相等的数据量時可以达到通信最优。这种方式得到的矩阵的访存量要比最直接的矩阵乘实现减少√S的量。对应于实际的计算流程要把几乎所有的爿上存储全部分配给输出部分,用来存储输出中间结果的时候可以达到最小的访存量

2.卷积抽象为矩阵乘法时的访存下界

上文论述了计算任务为矩阵乘法的访存情况,接下来进入卷积的分析卷积可以转化为矩阵乘法,下面的抽象过程是为了便于从逻辑上的推导出理论上嘚访存下界,但实际上陈晓明具体的优化方案并不是把卷积变成矩阵乘法进行操作具体的方案,参见下文数据流和架构优化部分

图6:卷积抽象为矩阵乘法图示

卷积抽象成矩阵乘的过程如图6所示,对于卷积核的抽象即是把每一个卷积核拉成一列,不同的卷积核拉到不同嘚列上面这样就将权重矩阵转化完成;对于输出结果,每个输出通道变成一列这样能把不同的输出通道变成不同的列,当一个Batch中有多個输出图像就上下再堆起来,按照这样的方法输出矩阵就转化完成再分析输入图像矩阵的元素,一个滑动窗之中所有的元素拉成横向量然后将卷积窗向右滑动一格,绿色标的部分变成第二行蓝色的卷积窗变成最后一行,一个Batch中不同的图像也上下堆起来这样输入转變也可以完成。

卷积可以变换成矩阵层但这种变换并不等价。可以看到仅对于权重和输出来讲是等价的这只是对它们的元素做了一下形状的重塑,没有增加或删除元素但是对输入则不一样,我们将卷积窗展开了卷积窗中有重叠的元素可以重用,按上面的转变方式这種重用就会消失所以陈晓明团队定义了一个R表示每一个输入卷积窗可以重用的次数。

图7:卷积窗中的数据重用参数

这样等效完毕后就會带来一个问题:通信最优的卷积是不是通信最优的矩阵乘法再结合滑动窗重用的过程?答案是肯定的这里直接给出结论,推导过程详見论文简言之即对任何一个卷积操作而言,片外访存的通信访存量Q的下界可以用Ω()表示一种渐近关系[4]这种表示法类似于时间复杂喥O()。

图8:图像卷积的通信访存下界

如果从直观上对得到的访存量公式做解释分子上是一个卷积层的不同大小长宽、通道个数、卷积核大小连乘积,这和矩阵乘法2ABC类似分母就是√RS,S是片上存储的大小R是卷积窗重用每个元素最多被重用的次数,与矩阵乘法的通信下界公式相比这里其实只多了一个√R,所以卷积当中访存下界其实是比访存最优的矩阵乘减少一个√R的倍数这是卷积滑动窗重用R次的概念。

三、逼近通信下界的数据流优化

上文的推导得到了理论上可以达到通信访存最优的数据流经方法这种方式是在输出的图像里每次取一個很小的块,在一个批处理中有若干图像因此就需要在若干张图像中提取这些小块,每个图像b中取出x·y·z的块那么计算这些块需要多尐输入数据?答案是需要x’·y’·所有输入通道,对于权重而言则需要z个权重的所有通道按照这种分块方式可以得到五个参数:<b,z,y,x,k>。由于无法一次性地把所有需要的输入数据全部装载到片上存储因此可以使用分批的方法将输入数据进行装载,k即为每次装载的输入通道的数量理想化时k=1,此时导致用来装载输入数据的片上存储最小

把输入数据映射到矩阵乘上,仍然得到一个分块矩阵乘两个输入矩阵中每次讀取一列和一行,然后对两个向量做内积对输出的块再进行部分和累加。然而在实际情况中并不需要完整的读取如此多数据。因为卷積窗的重用每个元素最多可以被重用R次,使得输入矩阵实际读入的数据就被减少到了最多1/R以上推导过程可以得到两条选择分块参数的原则:1. bxy≈Rz,即从两个矩阵当中读入的量相等;2. bxyz≈S且k=1即要把几乎片上所有存储全部分配给输出部分,这样可以以每次最少的输入产生最多嘚输出这样做其实和矩阵乘是类似的。实际上通信优化的实现过程也参考了[3]中描述的方法。

因为部分和永远驻留在片上直到计算完荿才写回DRAM,所以输出重用是完全的从输入和权重中读入的量是相等的,所以卷积窗重用充分利用输入重用和权重重用部分利用,这是鉯一种平衡的方式利用这便是本文数据流的特点。

四、逼近通信下界的架构优化

关于片上负载的映射因为使用的方式类似,在此也仅簡要概括而不再赘述其基本思想类似于俄罗斯套娃,每次计算的一块再以同样的方式细分成更小的块每个小块分给每个PE。如图10所示有兩块黄色Global Buffer一块用来存储输入数据,另一块用来存储权重全局寄存器使用灰色方块表示。数据从Global Buffer读到寄存器中然后所有的PE再从寄存器讀取数据进行计算,最后将部分和存入PE的Local寄存器里面卷积窗重用通过全局寄存器实现,即我们无需从DRAM中多次读入可重用的数据该结构鈳以进一步优化,对于存储输入量和权重的Global Buffer只需要一行一列即可通过流水线的方式进行工作,而不再需要把数据全部存在片上且每次只鼡一部分这是一种非常浪费的行为。


总而言之对于Global Buffer而言其下界和DRAM其实是一样的。每次从DRAM读取的数据存储在Global Buffer中还要被读取一次也要被寫入Global Buffer一次,所以对于读取和写入而言Global Buffer通信量最小值其实与DRAM的通信最小值一样对于寄存器而言,其通信量最小值和MAC操作数一样这个结论嘚前提是假设PE中加法树层数就是一层,若加法树层数是N层最后则需要除以N。

图11:理想的加速器架构

访存最优的加速器架构如图11所示理想的加速器架构是不考虑一些实际因素,假设直接根据数据流得出的理想架构只需要一列片上Buffer存储输入,一行片上Buffer存储权重所有的PE从這两个片上Buffer读取数据,每次读取一列一行做内积再对部分和进行累加,所有PE之间不需要传递任何数据

然而,若所有PE全部共享两个片上存储实际中会带来连线太长的问题;若在片上加入部分全局寄存器,再把PE分组每个PE共享一组全局寄存器,这样做能够有效避免片上线呔长的问题除此之外,该架构(如图12所示)和理想架构没有太明显的区别

还有一个问题值得考虑:不同的卷积层映射到这样的架构上媔,带来的分块参数是不一样加速器架构需要适应不同的分块参数,本文提出的适应方法不是采用复杂的片上网络而是增加了一个非瑺简单的多路选择器结构,从而避免了复杂的片上网络含有多路选择器的加速器结构原理也比较简单,对于存储权重的部分寄存器而言使用了类似Round Robin的连接方式,如果这部分寄存器没有被完全用满则只需要控制多路选择器的输入即可,而不会涉及没有使用的部分同样,对于存储输入的寄存器每一行PE使用一组寄存器,只需要控制多路选择器的输入即可这样做的好处是,如果只使用寄存器的前半部分控制输入可以保证只选择前半部分而不会选择后面未使用的部分。因此图13所示的含有多路选择器的加速器结构被用来适应不同的分块参數

图13:含有多路选择器的加速器架构

实验仿真通过台积电65纳米工艺仿真衡量了五种不同的设计。其中PE和片上Global Buffer尺寸等都不尽相同。

实验Φ与很多不同的数据流做了对比有不同的输出重用方式、不同的权重重用方式、不同的输入重用方式等。图14中蓝色的块表示放在片上供偅用

图14:用于比较的数据流

图15表示了片外访存在5组不同数据流比较的结果。通过比较5组不同的数据流的片外访存证明了陈晓明等人的数據流可基本达到理论下界

图15:5组不同数据流对比结果

由于陈晓明等人的数据流不使用剪枝算法压缩输入,为了公平起见图16展示了其数據流与Lower bound、未剪枝压缩Eyeriss和经过剪枝压缩Eyeriss的对比情况,数据参考了[1]和[5]中的研究对比结果显示其数据流比Eyeriss减少了大量片外访存。但仍然存在一個特例就第一层而言,Eyeriss取得了比下界还小的访存量这是因为下限Ω像时间复杂度一样,是一种渐进描述,对于小问题可能不是那么准确。

片外访存累加后的量化结果(图17)表明:陈晓明等人的数据流接近300MB,该值低于剪枝压缩后Eyeriss的数据流更远低于不进行剪枝压缩的Eyeriss数据鋶。

图17:片外访存累加后的量化结果

如图19所示Global Buffer访存量的理论下界其实和DRAM访存量的理论下界相等,对于权重的下界是则是完全相等对于輸入而言,片上Global Buffer的读入量和写入量都高于DRAM产生这样结果的原因主要是由于“卷积光晕”现象,即卷积输出大小是x*y则输入大小要比x*y略大┅些,因此需要一些额外的读入和写入因此实验结果稍大一些。

图20展示了寄存器的访存量五种不同的设计只比理论下界多了6%-12%的寄存器嘚访存量。遗憾的是由于没有找到任何可对比数据,即便Eyeriss也没有给出寄存器的访存量因此没有和其它任何方案进行对比实验。

图20:寄存器的访存量

加速器的整体能效如图21所示对于5种不同的实现,基本上计算部分占据了相当大部分的能耗因此设计的加速器架构是计算占优而不是访存占优,访存已经降低到了比较小的水平同时,能效与理论下界的差距在37%-87%差距的主要原因如图21中黄色部分所示,即Local寄存器由静态功耗比较高引起。该问题仍然具有优化余地方法是借助存内计算的思路解决该问题。

从图22可以看出Global Buffer的资源利用率比较低,Global寄存器的资源利用率比较低这是由于加速器需要额外的资源适应不同的分块尺寸。如果从所有存储资源利用率的角度来看资源利用率仍然处于较高水平,大约维持在80%-90%之间PE的利用率高于97%。

图22:资源利用率对比

演讲最后陈晓明言简意赅地总结了他所做的工作:鉴于当前嘚卷积加速器访存占的能耗很高,于是设计算法推导出访存理论下界并以此为基础设计出访存最优的卷积数据流和加速器架构。

A:这不昰一种真正的转换只是为了从直观上更好地解释推导过程的方式,就是实现当中我们没有做任何转变

A:其实Performance影响因素比较多,比如片仩的时钟、处理器核的数量所以我觉得比较难推导,现在我们能推出来的只有片上存储的大小和访存量的关系因为这两个是直接相关嘚,Performance可能难以推出这种很强的关系

我要回帖

更多关于 矩阵的系数怎么乘进去 的文章

 

随机推荐