一种硬件计算动态分配缓存装置制造方法及图纸

技术编号:35349883 阅读:16 留言:0更新日期:2022-10-26 12:16
本发明专利技术公开了一种硬件计算动态分配缓存装置,包括数据存储单元、动态分配缓存单元和运算单元,其中所述动态分配缓存单元包括动态分配控制模块、B_缓存和S_缓存,其中:数据存储单元,用于存放特征值和权重值;动态分配控制模块,用于根据特征值和权重值的数据量以及B_缓存和S_缓存的容量,针对B_缓存和S_缓存执行不同的缓存策略;运算单元,用于获取B_缓存和S_缓存中的数据进行乘累加运算并输出运算结果。本发明专利技术可减少因权重和输入特征参数量差异带来的反复读取数据引起的高计算总量和高带宽要求。宽要求。宽要求。

【技术实现步骤摘要】
一种硬件计算动态分配缓存装置


[0001]本专利技术属于硬件计算缓存分配
,具体涉及一种硬件计算动态分配缓存装置。

技术介绍

[0002]近年来,为了满足人们不断提高与发展的生产技术与生活的需要,人工智能应运而生。目前基于人工智能技术的深度卷积神经网络中,模型包含成千上百万的浮点型参数,计算过程需要消耗大量的计算资源和内存,对计算能力的要求也越来越高。
[0003]在支持神经网络计算的芯片方面,传统的通用CPU已经无法满足高效能的复杂计算要求。为了突破通用处理器的这些结构瓶颈,在图像处理方面,GPU(Graphical Processing Unit)采用多核处理器结构而取得巨大成功。与GPU运算相比,在终端小型芯片上部署模型,面临着巨大困难。和CPU以及GPU相对应,在硬件结构选择的另一端是专用芯片ASIC,从可编程性和能效的角度来衡量,专用芯片具有最高的能效。但是它的功能不能变化,无法满足不断更新的神经网络结构的需求。通用型GPP(General

Purpose Process Unit)处理器和GPU处理器虽然具有强大的计算效率,但是功耗往往偏高。通用型FPGA虽然具有很好的通用性和能效,但是结构上并没有针对深度学习神经网络进行优化,没有充分发挥并行化硬件结构的效率。
[0004]现有技术如专利申请号为CN201910559200.3的中国专利,其公开了一种生成基于芯片的计算功能的方法、装置、设备和存储介质,提出了一种可以根据不同的运算数据动态分配硬件资源的方案。该方案中的分配方式需要同时借助输入参数值信息、候选计算功能模块、目标计算功能模块和计算设备。这些模块要求对于通用型FPGA在有限的资源下具有较高的限制性。FPGA在图像处理相关的深度卷积神经网络的应用中之所以能够脱颖而出,在于其可将卷积运算转化为并行的乘累加运算实现运算加速。网络模型层结构具有差异性,而现有FPGA硬件缓存分配多为固定容量,当层结构改变通道数和数据量超过缓存容量时,由于固定容量分配,权重数据或特征值数据量超过指定缓存容量时,会出现因数据反复读取导致运算时长增加和带宽不足的情况。

技术实现思路

[0005]本专利技术的目的在于提供一种硬件计算动态分配缓存装置,减少因权重和输入特征参数量差异带来的反复读取数据引起的高计算总量和高带宽要求。
[0006]为实现上述目的,本专利技术所采取的技术方案为:
[0007]一种硬件计算动态分配缓存装置,所述硬件计算动态分配缓存装置包括数据存储单元、动态分配缓存单元和运算单元,其中所述动态分配缓存单元包括动态分配控制模块、B_缓存和S_缓存,其中:
[0008]所述数据存储单元,用于存放特征值和权重值;
[0009]所述动态分配控制模块,用于根据特征值和权重值的数据量以及B_缓存和S_缓存
的容量,针对B_缓存和S_缓存执行不同的缓存策略;
[0010]所述运算单元,用于获取B_缓存和S_缓存中的数据进行乘累加运算并输出运算结果;
[0011]所述B_缓存的容量大于S_缓存的容量,则所述缓存策略如下:
[0012]若特征值的数据量、权重值的数据量、B_缓存的容量和S_缓存的容量四者中,特征值的数据量最大或者权重值的数据量最大,则将特征值和权重值两者中数据量较小的一者分配至B_缓存进行存储,将特征值和权重值两者中数据量较大的一者分配至S_缓存进行存储;
[0013]或者,若特征值的数据量、权重值的数据量、B_缓存的容量和S_缓存的容量四者中,B_缓存的容量最大,则将特征值和权重值两者中数据量较大的一者分配至B_缓存进行存储,将特征值和权重值两者中数据量较小的一者分配至S_缓存进行存储。
[0014]以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
[0015]作为优选,所述运算单元进行乘累加运算一次处理的最大数据量为:输入特征图尺寸(I
h
*I
w
*N),卷积核尺寸(W
h
*W
w
*N*M);其中,I
h
表示输入特征图图像的高,I
w
表示输入特征图图像的宽,W
h
表示卷积核的高,W
w
表示卷积核的宽,N表示通道数,M表示卷积核组数;
[0016]取待处理的输入特征图尺寸为(I

h
*I

w
*N

),当N

>N时,B_缓存或S_缓存使用连续多个地址空间来存储一个像素点的N

通道数的特征值,当N

≤N时,B_缓存或S_缓存的每个地址空间存储一个像素点的N通道数的特征值,I

h
表示待处理的输入特征图图像的高,I

w
表示待处理的输入特征图图像的宽,N

表示待处理的通道数;
[0017]取待处理的卷积核尺寸为(W

h
*W

w
*N

*M

),当M

>M时,B_缓存或S_缓存使用连续多个地址空间来存储一个点的M

组卷积核的权重值,若M

≤M,B_缓存或S_缓存的每个地址空间存储一个点的M组卷积核的权重值,W

h
表示待处理的卷积核的高,W

w
表示待处理的卷积核的宽,M

表示待处理的卷积核组数。
[0018]作为优选,所述运算单元包括M组平行MAC单元,每个MAC单元实现特征值和对应卷积核的权重值的乘累加运算。
[0019]作为优选,所述若特征值的数据量、权重值的数据量、B_缓存的容量和S_缓存的容量四者中,特征值的数据量最大或者权重值的数据量最大,则将特征值和权重值两者中数据量较小的一者分配至B_缓存进行存储,将特征值和权重值两者中数据量较大的一者分配至S_缓存进行存储,具体为:
[0020]若特征值的数据量>权重值的数据量>B_缓存的容量>S_缓存的容量,则将权重值分配至B_缓存,将特征值分配至S_缓存;
[0021]或者,若特征值的数据量>B_缓存的容量>权重值的数据量>S_缓存的容量,则将权重值分配至B_缓存,将特征值分配至S_缓存;
[0022]或者,若特征值的数据量>B_缓存的容量>S_缓存的容量>权重值的数据量,则将权重值分配至B_缓存,将特征值分配至S_缓存;
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种硬件计算动态分配缓存装置,其特征在于,所述硬件计算动态分配缓存装置包括数据存储单元、动态分配缓存单元和运算单元,其中所述动态分配缓存单元包括动态分配控制模块、B_缓存和S_缓存,其中:所述数据存储单元,用于存放特征值和权重值;所述动态分配控制模块,用于根据特征值和权重值的数据量以及B_缓存和S_缓存的容量,针对B_缓存和S_缓存执行不同的缓存策略;所述运算单元,用于获取B_缓存和S_缓存中的数据进行乘累加运算并输出运算结果;所述B_缓存的容量大于S_缓存的容量,则所述缓存策略如下:若特征值的数据量、权重值的数据量、B_缓存的容量和S_缓存的容量四者中,特征值的数据量最大或者权重值的数据量最大,则将特征值和权重值两者中数据量较小的一者分配至B_缓存进行存储,将特征值和权重值两者中数据量较大的一者分配至S_缓存进行存储;或者,若特征值的数据量、权重值的数据量、B_缓存的容量和S_缓存的容量四者中,B_缓存的容量最大,则将特征值和权重值两者中数据量较大的一者分配至B_缓存进行存储,将特征值和权重值两者中数据量较小的一者分配至S_缓存进行存储。2.如权利要求1所述的硬件计算动态分配缓存装置,其特征在于,所述运算单元进行乘累加运算一次处理的最大数据量为:输入特征图尺寸(I
h
*I
w
*N),卷积核尺寸(W
h
*W
w
*N*M);其中,I
h
表示输入特征图图像的高,I
w
表示输入特征图图像的宽,W
h
表示卷积核的高,W
w
表示卷积核的宽,N表示通道数,M表示卷积核组数;取待处理的输入特征图尺寸为(I

h
*I

w
*N

),当N

>N时,B_缓存或S_缓存使用连续多个地址空间来存储一个像素点的N

通道数的特征值,当N

≤N时,B_缓存或S_缓存的每个地址空间存储一个像素点的N通道数的特征值,I

h
表示待处理的输入特征图图像的高,I

w
表示待处理的输入特征图图像的宽,N

表示待处理的通道数;取待处理的卷积核尺寸为(W

h
*W

w
*N

*M

),当M

>M时,B_缓存或S_缓存使用连续多个地址空间来存储一个点的M

组卷积核的权重值,若M

≤M,B_缓存或S_缓存的每个地址空间存储一个点的M组卷积核的权重值,W

h
表示待处理的卷积核的高,W

w
表示待处理的卷积核的宽,M

...

【专利技术属性】
技术研发人员:李盈盈曹学成丁永林廖湘萍李炜
申请(专利权)人:中国电子科技集团公司第五十二研究所
类型:发明
国别省市:

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

1