一种通用、可配置的高能效池化计算单行输出系统和方法技术方案

技术编号:33145989 阅读:15 留言:0更新日期:2022-04-22 13:57
本发明专利技术公开了一种通用、可配置的高能效池化计算单行输出系统和方法,该系统包括上位机的可配置参数计算模块、下位机的可配置寄存器阵列操作控制模块、直接寄存器访问模块、以及计算模块;所述的计算模块按照可配置寄存器阵列操作控制模块发送的控制参数,进行与控制参数相匹配的高效能池化计算,并将计算结果用过直接寄存器访问模块发送到片外存储器DDR、由片外存储器DDR对计算结果进行保存;该方法包括池化计算宽度方向参数配置方法、以及高能效池化计算单行输出方法。本发明专利技术采用池化计算单行输出的方法,使得片上存储面积减少了至少三分之二,有效减少了电路面积和降低了能耗,从而解决了支持任意类型的池化计算的瓶颈问题和接触了后顾之忧。和接触了后顾之忧。和接触了后顾之忧。

【技术实现步骤摘要】
一种通用、可配置的高能效池化计算单行输出系统和方法


[0001]本专利技术属于数字电路系统和深度学习领域,尤其涉及一种通用、可配置的高能效池化计算单行输出系统和方法。

技术介绍

[0002]卷积神经网络(CNN)被广泛应用于人工智能领域,已经在大量的人工智能任务中取得了重大的成果,当前的应用趋势是将人工智能应用在边缘计算设备中,比方说智能手机、无人机和AIot等。然而边缘设备工作在资源和能量有限的环境下,就必须满足高性能和低功耗的要求。传统的计算平台CPU和GPU的低吞吐率和低能效不能满足边缘设备的要求,这就给进行深度学习的高能效卷积神经网络加速器的发展带来机遇。
[0003]高性能卷积神经网络同时包含卷积层和池化层。卷积层的作用是检测特征的局部连接,池化层的作用是将相似的特征合并为同一个。迄今为止,已经对卷积神经网络加速器进行了大量研究,目前备受关注的卷积神经网络加速器有TPU、NVDLA、Eyeriss和DianNao,然而这些加速器的设计主要聚焦于如何对卷积层进行加速操作,缺少对池化单元的特定研究。与此同时,现有的池化模块设计极大程度上受限于计算的灵活性、能效和面积。
[0004]灵活性和通用性一直以来都是卷积神经网络(CNN)硬件加速器的重要指标之一,因为每一年主流的CNN网络的结构都会有所不同,同时池化操作也会因网络而异,所以,亟待开发一种能够适用每年网络结构变化的硬件加速期。在之前的卷积神经网络加速器硬件电路设计当中,只能支持单一特定的网络结构,并不能应用到现如今任意的快速发展的CNN当中
[0005]设计具有灵活性和通用性的卷积神经网络的难点在于:在硬件电路的简单化低能耗和通用性之间找到一个平衡点。以备受瞩目的CNN硬件加速器——NVDLA(NVIDIA Deep Learning accelerator)作为例子,虽然NVDLA具有很高的可配性,同时可以支持不同的尺寸的池化参数和三种池化方式,但是其存在的第一个问题:NVDLA的硬件电路面积和功耗是相当大的,这和高能效边缘计算的理念相违背。其存在的第二个问题,灵活性还是不够,它仅仅适配于池化内核(pooling kernel)为正方形的窗口(Kx=Ky),同时窗口在x方向和y方向移动的步长必须相等。
[0006]综上,现有技术设计CNN硬件加速器存在的问题是:第一、硬件电路面积相当大而导致高能耗,第二、无法支持任意形状池化计算。

技术实现思路

[0007]本专利技术为解决现有技术存在的问题,提出一种通用、可配置的高能效池化计算单行输出系统和方法,目的在于解决现有卷积神经网络加速器设计中无法支持任意形状池化计算以及高能耗的问题。
[0008]本专利技术为解决其技术问题提出以下技术方案:
[0009]一种可配置的单行输出池化计算处理系统,其特征在于:包括上位机的可配置参
数计算模块、下位机的可配置寄存器阵列操作控制模块、直接寄存器访问模块、以及计算模块;所述上位机的可配置参数计算模块将操作控制模块中所用到的所有参数都提前计算好,然后CPU将计算好的控制参数通过AXI

lite总线存储到可配置的寄存器阵列操作控制模块,所述的可配置寄存器阵列操作控制模块从CPU获取数据后,存储这些提前计算好的控制参数、并利用这些提前计算好的控制参数控制直接寄存器访问模块的存取操作、以及控制计算模块的池化计算;所述直接寄存器访问模块按照可配置寄存器阵列操作控制模块发送的控制参数、通过AXI4总线从片外存储器DDR中获取与控制参数相匹配的单行输入数据、并将该单行输入数据发送给计算模块;所述的计算模块按照可配置寄存器阵列操作控制模块发送的控制参数,进行与控制参数相匹配的高效能池化计算,并将计算结果用过直接寄存器访问模块发送到片外存储器DDR、由片外存储器DDR对计算结果进行保存。
[0010]所述计算模块包括一维缓冲区、一维控制模块、一维计算模块、二维缓冲区、二维控制模块、二维计算模块;所述一维缓冲区接收从片外存储器DDR提取的单行输入数据、并将单行输入数据发送给一维计算模块;所述一维计算模块生成池化计算后的一维输出结果,并将池化计算后一维输出结果发送给二维缓冲区,所述二维缓冲区将池化计算后的一维输出结果发送给二维计算模块,二维计算模块生成池化计算后的二维输出结果,并将池化计算后的二维输出结果通过直接寄存器访问模块发送给片外存储器DDR进行存储。
[0011]所述二维缓冲包含二维向量的输入数据,其行数为Ky行,列数为宽度输出,二维的缓存空间设置为N*axi_burst,这个值的大小必须满足公式(6):
[0012]N*axi_burst>Ky*max_width_out
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0013]所述上位机的可配置参数计算模块计算的控制参数包括涉及片上缓存空间的若干参数,该若干参数包括输出特征的宽度Wout、输出特征的高度Hout、输入通道数CHout、最大输出特征个数、最大输入特征的个数。
[0014]所述片上缓存空间的大小取决于突发传输的长度,假设片上缓存的空间大小为突发长度(depth=axi_burst_len),根据下列公式确定输出个数:
[0015]Wout=(Win+2*Px

Kx)/Sx+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0016]公式一当中:Wout是输出特征的宽度=(Win输入特征的宽+2*Px宽度方向的填充数

Kx宽度方向的滤波器的大小)/Sx宽度方向的步长+1
[0017]Hout=(Hin+2*Py

Ky)/Sy+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0018]公式二当中:Hout是输出特征的高度=(Hin输入特征的高度+2*Py高度方向的填充数

Ky高度方向的滤波器的大小)/Sy高度方向的步长+1
[0019]CH
out
=CH
in
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0020]公式三:CHout是输出通道数=CHin输入通道数
[0021]max_out_numbers=(axi_burst_len

Kx)//Sx+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0022]公式四:max_out_nmubers是最大输出个数=(突发长度
‑‑
Kx宽度方向的滤波器的大小)//Sx宽度方向的步长+1
[0023]符号“//”代表地板除法,那么可以推导出要求输入的最大像素点的个数为:
[0024]max_in_number=(max本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通用、可配置的高能效池化计算单行输出系统,其特征在于:包括上位机的可配置参数计算模块、下位机的可配置寄存器阵列操作控制模块、直接寄存器访问模块、以及计算模块;所述上位机的可配置参数计算模块将操作控制模块中所用到的所有参数都提前计算好,然后CPU将计算好的控制参数通过AXI

lite总线存储到可配置的寄存器阵列操作控制模块,所述的可配置寄存器阵列操作控制模块从CPU获取数据后,存储这些提前计算好的控制参数、并利用这些提前计算好的控制参数控制直接寄存器访问模块的存取操作、以及控制计算模块的池化计算;所述直接寄存器访问模块按照可配置寄存器阵列操作控制模块发送的控制参数、通过AXI4总线从片外存储器DDR中获取与控制参数相匹配的单行输入数据、并将该单行输入数据发送给计算模块;所述的计算模块按照可配置寄存器阵列操作控制模块发送的控制参数,进行与控制参数相匹配的高效能池化计算,并将计算结果用过直接寄存器访问模块发送到片外存储器DDR、由片外存储器DDR对计算结果进行保存。2.根据权利要求1所述的一种通用、可配置的高能效池化计算单行输出系统,其特征在于:所述计算模块包括一维缓冲区、一维控制模块、一维计算模块、二维缓冲区、二维控制模块、二维计算模块;所述一维缓冲区接收从片外存储器DDR提取的单行输入数据、并将单行输入数据发送给一维计算模块;所述一维计算模块生成池化计算后的一维输出结果,并将池化计算后一维输出结果发送给二维缓冲区,所述二维缓冲区将池化计算后的一维输出结果发送给二维计算模块,二维计算模块生成池化计算后的二维输出结果,并将池化计算后的二维输出结果通过直接寄存器访问模块发送给片外存储器DDR进行存储。3.根据权利要求2所述的一种通用、可配置的高能效池化计算单行输出系统,其特征在于:所述二维缓冲包含二维向量的输入数据,其行数为Ky行,列数为宽度输出,二维的缓存空间设置为N*axi_burst,这个值的大小必须满足公式(6):N*axi_burst>Ky*max_width_out。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)4.根据权利要求1所述的一种通用、可配置的高能效池化计算单行输出系统,其特征在于:所述上位机的可配置参数计算模块计算的控制参数包括涉及片上缓存空间的若干参数,该若干参数包括输出特征的宽度Wout、输出特征的高度Hout、输入通道数CHout、最大输出特征个数max_out_nmubers、最大输入特征的个数max_in_number。5.根据权利要求4所述的一种通用、可配置的高能效池化计算单行输出系统,其特征在于:所述片上缓存空间的大小取决于突发传输的长度,假设片上缓存的空间大小为突发长度(depth=axi_burst_len),根据下列公式确定输出个数:Wout=(Win+2*Px

Kx)/Sx+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)公式一当中:Wout是输出特征的宽度=(Win输入特征的宽+2*Px宽度方向的填充数

Kx宽度方向的滤波器的大小)/Sx宽度方向的步长+1Hout=(Hin+2*Py

Ky)/Sy+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)公式二当中:Hout是输出特征的高度=(Hin输入特征的高度+2*Py高度方向的填充数

Ky高度方向的滤波器的大小)/Sy高度方向的步长+1CH
out
=CH
in
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)公式三:CHout是输出通道数=CHin输入通道数max_out_numbers=(axi_burst_len

Kx)//Sx+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)公式四:max_out_nmubers是最大输出个数=(突发长度
‑‑
Kx宽度方向的滤波器的大
小...

【专利技术属性】
技术研发人员:黄明强潘伦帅薛鹏于淑会
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:

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

1