基于CSR编码的卷积计算加速器及加速方法技术

技术编号:39156479 阅读:8 留言:0更新日期:2023-10-23 15:00
本发明专利技术公开了一种基于CSR编码的卷积计算加速器,包括:数据预处理模块,用于从外部读取数据,并进行分块处理;CSR编码模块,用于对分块数据进行CSR编码,得到编码数据及其对应的地址;乘法脉动计算阵列,用于根据地址对对应的编码数据进行计算;数据分配模块,用于将计算结果划分为本窗口数据和跨窗口数据,并传入数据累加模块进行累加;数据延迟模块,用于在判断发生加法写冲突时,向乘法脉动计算阵列反馈反压信号,以暂停当前工作,并在延迟数据相加完毕后重新启动当前工作;数据排布模块,用于对累加数据进行整合并通过再量化模块重新映射位宽后,写入片外存储。该方法减少了片上存储的压力,降低了功耗,适用于高并行卷积计算。算。算。

【技术实现步骤摘要】
基于CSR编码的卷积计算加速器及加速方法


[0001]本专利技术属于芯片设计
,具体涉及一种基于CSR编码的卷积计算加速器及加速方法。

技术介绍

[0002]随着卷积神经网络的研究不断推进,其样本学习能力与目标分类能力随之不断增强,CNN在移动端和边缘端的多个应用场景中的部署规模也逐年增加。同时,随着应用场景和融入学科的增加,卷积神经网络的规模和计算复杂度也急剧增大。
[0003]传统的卷积神经网络应用方案主要采用将神经网络部署在云端,以处理终端采集数据,并将运算结果返回终端。但这种方法面临着实时性不足的问题。随着搭载神经网络并本地处理数据的物联网设备应用需求日益增长,网络部署实时性的问题显得愈加紧迫。因此,如何高性能、低功耗、且具备实时性地进行深层卷积神经网络的部署,已经成为各研究机构与相关企业的研究热点。同时由于卷积计算在卷积神经网络所占的比例高达百分之九十以上,如何高效实现卷积运算便成了在边缘数据部署卷积神经网络的一大重点。
[0004]卷积运算需要十分庞大的参数量,在边缘设备的存储空间将其所需的数据全部存起来是不可能的。基于此,相关研究人员提出了一张重启脉动阵列的思想,在卷积计算中采用脉动阵列的方式,可以通过大量的数据复用去减少设备的存储压力,也使得大规模并行计算卷积运算成为可能。文献一《BISMO:A Scalable Bit

Serial Matrix Multiplication Overlay for Reconfigurable Computing》在脉动阵列结构的基础上,提出了一种位串行算法,将量化后的数据乘法分解成popcount操作和加法操作,去完成数据复用以及减少资源消耗去优化卷积运算。文献二《Eyeriss:An energy

efficient recon

figurable accelerator for deep convolutional neural networks》提出了一种Eyeriss卷积神经网络加速器,其主要采用基于脉动阵列的可重构架构,同时为了避免卷积中的冗余计算,采用了CSC编码方式,并且提出了行驻留的数据流方式去完成数据复用。
[0005]然而,上述文献一中的方法由于采用了位串行算法,因此只适用于经过低比特量化的数据,例如4bit以及以下的数据,无法适用于高并行卷积计算,同时也没有考虑到零所带来的冗余计算,使得算法功耗较大。文献二的方法虽然采用CSC编码跳过了零的冗余计算,但是由于其提出的行驻留数据流,需要将相同ID的数据匹配在一个时钟周期里,因此需要多级缓存结构去缓存数据,直到ID匹配完全才全部读出,所造成的缓存压力较大。

技术实现思路

[0006]为了解决现有技术中存在的上述问题,本专利技术提供了一种基于CSR编码的卷积计算加速器及加速方法。本专利技术要解决的技术问题通过以下技术方案实现:
[0007]第一方面,本专利技术提供了一种基于CSR编码的卷积计算加速器,包括:
[0008]数据预处理模块、CSR编码模块、乘法脉动计算阵列、数据分配模块、数据累加模块、数据延迟模块、数据排布模块、再量化模块以及总控制模块;其中,
[0009]所述数据预处理模块用于通过DMA从外部读取数据,并进行分块处理,得到分块后的数据;
[0010]所述CSR编码模块用于对分块后的数据进行CSR编码,得到特征数据及其对应的地址;
[0011]所述乘法脉动计算阵列用于根据所述地址对对应的特征数据和权重进行自然流动复用计算,并将计算结果传入所述数据分配模块;
[0012]所述数据分配模块用于将传入的计算结果划分为本窗口数据和跨窗口数据,分别传入所述数据累加模块中的相应累加单元进行数据累加;
[0013]所述数据延迟模块用于在判断所述数据累加模块发生加法写冲突时,向所述乘法脉动计算阵列反馈反压信号,以暂停当前工作,并在延迟数据相加完毕后重新启动当前工作;
[0014]所述数据排布模块用于对所述数据累加模块输出的累加数据进行整合并通过所述再量化模块重新映射位宽后,通过DMA写进片外存储,以完成不连续输入数据的复用卷积计算;
[0015]所述总控制模块用于控制其余所有模块的调用和数据交互。
[0016]第二方面,本专利技术提供了一种基于CSR编码的卷积计算加速方法,应用于上述实施例提供的基于CSR编码的卷积计算加速器,包括以下步骤:
[0017]获取外部数据并进行分块预处理和CSR编码,得到特征数据及其对应的地址;
[0018]基于脉动阵列通过所述地址对对应的特征数据和权重进行自然流动复用计算,并将计算结果划分为本窗口数据和跨窗口数据;
[0019]通过加法器复用分别对所述本窗口数据和所述跨窗口数据进行累加,并在判断发生加法写冲突时,通过反压控制暂停当前工作,并在延迟数据相加完毕后重新启动当前工作;
[0020]对累加数据进行整合和重新映射位宽后,写进片外存储,以完成不连续输入数据的复用卷积计算。
[0021]本专利技术的有益效果:
[0022]1、本专利技术提供的基于CSR编码的卷积计算加速器通过对输入数据分块预处理节省了编码的额外开销,通过CSR编码处理有效规避了神经网络卷积计算中的冗余部分,通过编码之后的脉动计算阵列以及后续的一系列处理完成了不连续输入数据的复用,通过数据延迟模块实现反压控制,解决了输入数据不连续所带来的加法写冲突;同时,通过将数据分为本窗口和跨窗口两部分数据节省了匹配数据所需要的存储大小,减少了片上存储的压力,降低了功耗,使得高并行卷积计算成为了可能;
[0023]2、本专利技术提供的基于CSR编码的卷积计算加速器将预处理与CSR编码与缓存封装在一起,利用乒乓操作节省了编码的时间开销;
[0024]3、本专利技术通过数据分类和模块复用节省了额外的面积开销,既实现了脉动阵列中的特征值复用和加法器复用,又可以享受到编码带来的去除零冗余计算的便捷。
[0025]以下将结合附图及实施例对本专利技术做进一步详细说明。
附图说明
[0026]图1是本专利技术实施例提供的一种基于CSR编码的卷积计算加速器的结构框图;
[0027]图2是本专利技术实施例提供的CSR编码规则示意图;
[0028]图3是本专利技术实施例提供的一种基于CSR编码的卷积计算加速器的详细结构示意图;
[0029]图4是本专利技术实施例提供的PE单元的简要结构示意图;
[0030]图5是本专利技术实施例提供的单窗口数据分类示意图;
[0031]图6是本专利技术实施例提供的跨窗口数据交互示意图;
[0032]图7是本专利技术实施例提供的一个累加单元的简要示意图;
[0033]图8是本专利技术实施例提供的一种基于CSR编码的卷积计算加速方法的流程示意图。
具体实施方式
[0034]下面结合具体实施例对本专利技术做进一步详细的描述,但本专利技术的实施方式不限于此。
[0035]实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CSR编码的卷积计算加速器,其特征在于,包括:数据预处理模块、CSR编码模块、乘法脉动计算阵列、数据分配模块、数据累加模块、数据延迟模块、数据排布模块、再量化模块以及总控制模块;其中,所述数据预处理模块用于通过DMA从外部读取数据,并进行分块处理,得到分块后的数据;所述CSR编码模块用于对分块后的数据进行CSR编码,得到特征数据及其对应的地址;所述乘法脉动计算阵列用于根据所述地址对对应的特征数据和权重进行自然流动复用计算,并将计算结果传入所述数据分配模块;所述数据分配模块用于将传入的计算结果划分为本窗口数据和跨窗口数据,分别传入所述数据累加模块中的相应累加单元进行数据累加;所述数据延迟模块用于在判断所述数据累加模块发生加法写冲突时,向所述乘法脉动计算阵列反馈反压信号,以暂停当前工作,并在延迟数据相加完毕后重新启动当前工作;所述数据排布模块用于对所述数据累加模块输出的累加数据进行整合并通过所述再量化模块重新映射位宽后,通过DMA写进片外存储,以完成不连续输入数据的复用卷积计算;所述总控制模块用于控制其余所有模块的调用和数据交互。2.根据权利要求1所述的基于CSR编码的卷积计算加速器,其特征在于,所述数据预处理模块和所述CSR编码模块与数据输入通道的存储空间封装在一起并复制一次,以实现兵乓操作。3.根据权利要求1所述的基于CSR编码的卷积计算加速器,其特征在于,所述乘法脉动计算阵列采用编码数据横向流动、权重广播之后纵向流动的方式完成数据复用;其中,所述权重是根据卷积数据按照列排布的方式广播的。4.根据权利要求3所述的基于CSR编码的卷积计算加速器,其特征在于,所述乘法脉动计算阵列包括若干PE单元,每个PE单元均包括一个地址计算模块、一个流水线寄存器以及一个乘法器;其中,所述地址计算模块根据当前接收到的地址计算对应的编码数据在原始窗口的位置信息;所述流水线寄存器用于将当前地址及其对应的编码数据送往下一个PE单元;所述乘法器用于对当前的非零数据与权重相乘得到相应的乘积,并将该乘积与所述地址计算模块得到的位置信息保持同步一起送进所述数据分配模块。5.根据权利要求1...

【专利技术属性】
技术研发人员:彭琪陈纪宇王一凡朱樟明
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1