[发明专利]一种通用、可配置的高能效池化计算多行输出方法有效

专利信息
申请号: 202111569090.2 申请日: 2021-12-21
公开(公告)号: CN114265801B 公开(公告)日: 2023-07-25
发明(设计)人: 黄明强;潘伦帅;薛鹏;于淑会 申请(专利权)人: 中国科学院深圳先进技术研究院
主分类号: G06F13/28 分类号: G06F13/28;G06F13/16;G06F9/30;G06F15/78;G06N3/063;G06N3/0464
代理公司: 北京维正专利代理有限公司 11508 代理人: 卓凡
地址: 518000 广东省深圳市*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 通用 配置 能效 计算 输出 方法
【权利要求书】:

1.一种通用、可配置的高能效池化计算多行输出方法,该多行输出方法基于一种可配置的多行输出池化计算处理系统,该处理系统包括上位机的可配置参数计算模块、下位机的可配置寄存器阵列操作控制模块、直接寄存器访问模块、以及计算模块;所述上位机的可配置参数计算模块将操作控制模块中所用到的所有参数都提前计算好,然后CPU将计算好的控制参数通过AXI-lite总线存储到可配置的寄存器阵列操作控制模块,所述的可配置寄存器阵列操作控制模块从CPU获取数据后,存储这些提前计算好的控制参数、并利用这些提前计算好的控制参数控制直接寄存器访问模块的存取操作、以及控制计算模块的池化计算;所述直接寄存器访问模块按照可配置寄存器阵列操作控制模块发送的控制参数、通过AXI4总线从片外存储器DDR中获取与控制参数相匹配的单行输入数据、并将该单行输入数据发送给计算模块;所述的计算模块按照可配置寄存器阵列操作控制模块发送的控制参数,进行与控制参数相匹配的高效能池化计算,并将计算结果用过直接寄存器访问模块发送到片外存储器DDR、由片外存储器DDR对计算结果进行保存;

所述计算模块包括一维缓冲区、一维控制模块、一维计算模块、二维缓冲区、二维控制模块、二维计算模块;所述一维缓冲区接收从片外存储器DDR提取的单行输入数据、并将单行输入数据发送给一维计算模块;所述一维计算模块生成池化计算后的一维输出结果,并将池化计算后一维输出结果发送给二维缓冲区,所述二维缓冲区将池化计算后的一维输出结果发送给二维计算模块,二维计算模块生成池化计算后的二维输出结果,并将池化计算后的二维输出结果通过直接寄存器访问模块发送给片外存储器DDR进行存储;

所述二维缓冲包含二维向量的输入数据,其行数为Ky行,列数为宽度输出,二维的缓存空间设置为N*axi_burst,这个值的大小必须满足公式(6):

N*axi_burst  Ky * max_width_out  (6);

其中,N为突发长度的倍数,取值需要满足等式(6);

axi_burst 为AXI突发传输长度;

max_width_out为在宽度方向上最大的输出个数;

所述上位机的可配置参数计算模块计算的控制参数包括涉及片上缓存空间的若干参数,该若干参数包括输出特征的宽度Wout、输出特征的高度Hout、输入通道数CHout、最大输出特征个数、最大输入特征的个数;

所述片上缓存空间的大小取决于突发传输的长度,假设片上缓存的空间大小为突发长度axi_burst_len,根据下列公式(1)-(5)确定输出个数:

Wout =(Win + 2 * Px - Kx)/Sx + 1  (1)

公式(1)当中:Wout是输出特征的宽度,Win是输入特征的宽,Px是宽度方向的填充数,Kx是宽度方向的滤波器的大小,Sx是宽度方向的步长;

Hout =(Hin + 2 * Py - Ky)/Sy + 1  (2)

公式(2)当中:Hout是输出特征的高度, Hin是输入特征的高度, Py是高度方向的填充数, Ky是高度方向的滤波器的大小, Sy是高度方向的步长;

CHout = CHin  (3)

公式(3):CHout是输出通道数,Chin是输入通道数;

max_out_numbers = (axi_burst_len - Kx)//Sx + 1  (4)

公式(4):max_out_nmubers是最大输出个数,axi_burst_len是突发长度,Kx是宽度方向的滤波器的大小,Sx是宽度方向的步长;

符号“//”代表地板除法,那么可以推导出要求输入的最大像素点的个数为:

max_in_number = (max_out_numbers - 1)*Sx + Kx -Py  (5)

公式(5):max_in_number是最大输入特征的个数,max_out_nmubers是最大输出特征的个数,Sx是宽度方向的步长,Kx是宽度方向的滤波器的大小,Py是高度方向的填充数;

该多行输出方法还基于一种池化计算宽度方向参数配置方法,该方法包括:

步骤一、输入一次突发传输的长度burst_lenth;

步骤二、片上存储的深度FIFO_depth为突发长度axi_burst_len;

步骤三、宽度方向一次突发传输的最大输出个数Max_Width_out;

步骤四、计算宽度方向需要突发传输的次数Split_Weight_Num;

步骤五、判断突发传输的次数是否精确等于1,如果大于1,则继续步骤六,如果精确等于1,则第一次宽度方向输出个数、最后一次宽度方向输出个数均等于Wout, 最后一次宽度方向输入个数、最后一次宽度方向输入个数均等于Win;

步骤六、中间传输宽度方向输出个数Middle_Width_ out为突发传输最大输出个数;确定中间传输宽度方向输入个数Middle_Width_ in,

步骤七、最大输出个数Wout能否被中间传输宽度方向输出个数Middle_Width_out整除,如果能,继续步骤八;如果不能,则确定宽度方向突发传输的次数、则确定最后一次突发传输的个数,转入步骤十;

步骤八、最后一次宽度方向输出个数Last_Width_out 为中间传输宽度方向输出的个数Middle_Width_out;

步骤九、确定宽度方向最后一次突发传输的特征值输入的个数Last_Width_in,从而确定在右侧填充0的个数;

其特征在于:所述一种通用、可配置的高能效池化计算多行输出方法,包括以下步骤:

步骤一、计算高度方向的最大输入行数;

所述高度方向的最大输入行数=2D计算模块的内存深度/最大宽度方向的输出行数;

步骤二、计算高度方向的最大输出行数;

所述高度方向的最大输出行数=(高度方向的最大输入行数-高度方向滤波器的大小)/高度方向的步长+1

步骤三、判断高度方向的分割次数是否为1,如果等于1,则:第一次高度方向的输出行数=Hout,第一次高度方向的输入行数=Hin;确定最后一次高度方向输入行数,输入特征底部需要填充padding的行数,如果分割次数大于1,则继续步骤四;

步骤四、第一次高度方向输出的行数=高度方向最大输出行数;第一次高度方向输入行数=(第一次高度方向输出的行数-1)*高度方向的步长+高度方向滤波器的大小-高度方向的padding的值;

步骤五、中间次数高度方向的输出行数=高度方向最大的输出行数;中间次数高度方向的输入行数=中间次数高度方向的输出行数*高度方向的步长+重叠步长

步骤六、Hout能否被中间次数的高度方向输入行数整除?如果能,继续步骤七;如果不能,确定高度方向分割次数,最后一次高度方向的输出行数=(Hout-第一次高度方向的输出行数)%中间次数的高度方向的输出行数,继续步骤八;

步骤七、确定高度方向分割次数;最后一次高度方向的输出行数=中间次数高度方向的输出行数;

步骤八、确定最后一次高度方向的输入行数,输入特征底部需要的填充padding的行数。

2.根据权利要求1所述一种通用、可配置的高能效池化计算多行输出方法,其特征在于:所述2D计算模块的内存深度,设为2倍的1D片上存储深度,所述1D片上存储的深度为突发长度。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院深圳先进技术研究院,未经中国科学院深圳先进技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111569090.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top