[发明专利]深度可分离卷积的加速方法和存储介质有效
| 申请号: | 201911336362.7 | 申请日: | 2019-12-23 |
| 公开(公告)号: | CN111079904B | 公开(公告)日: | 2023-05-23 |
| 发明(设计)人: | 许勇;刘灵辉 | 申请(专利权)人: | 福建星网视易信息系统有限公司 |
| 主分类号: | G06N3/0464 | 分类号: | G06N3/0464;G06F9/38;G06F9/30 |
| 代理公司: | 福州市景弘专利代理事务所(普通合伙) 35219 | 代理人: | 张忠波;徐剑兵 |
| 地址: | 350008 福建省福州市仓山区金山*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 深度 可分离 卷积 加速 方法 存储 介质 | ||
1.一种深度可分离卷积的加速方法,其特征在于,包括以下步骤:
计算深度可分离卷积的输入/输出数据的排序,使所述输入/输出数据在内存中按卷积时的访问顺序连续存储;
计算矩阵卷积所需的寄存器数量nr,所述nr=k×k+k+rk,其中,k为深度卷积系数大小,rk为k按一个SIMD乘法指令做能完成的向量浮点乘法数量vn向上取整的数量;
判断矩阵卷积所需的寄存器数量nr是否小于等于SIMD寄存器组所能存储的向量浮点乘法数量vn的总数量tn,若是,则使用SIMD寄存器组直接进行深度可分离卷积,若否,则将系数矩阵分割后进行卷积,使每次卷积所需的寄存器数量为小于或等于CPU处理器的SIMD寄存器数量tn的最大值;
所述步骤“计算深度可分离卷积的输入/输出数据的排序,使所述输入/输出数据在内存中按卷积时的访问顺序连续存储”包括:
分配所述输入/输出数据的索引号IDX,IDX=Y×W+X,W为N通道的卷积输入/输出浮点数据的宽度,Y为卷积输入/输出浮点数据位于通道的行数,X为卷积输入/输出浮点数据位于通道的列数,COLS为通道组大小;
对N通道的卷积输入/输出数据进行分组;
根据公式(IDX/L)×L×COLS+(S/vn)×L×vn+(IDX%L)×vn+(S%vn),计算卷积输入/输出浮点数据的排列,使所述输入/输出数据在内存中按卷积时的访问顺序连续存储,其中,S为数据在N通道中所在的通道数;L为输入子矩阵的行数量。
2.根据权利要求1所述的深度可分离卷积的加速方法,其特征在于,所述“将系数矩阵分割后进行卷积”包括步骤:
将系数矩阵分割成mk份,每次最多处理nk行,并使mk×nk小于等于k,以及使tr取小于tn的最大值,所述tr=k×nk+nk+rk;其中,所述mk为系数矩阵分割的份数,nk为分割后的矩阵的最大行数,tr为所需的寄存器总数量。
3.根据权利要求1所述的深度可分离卷积的加速方法,其特征在于,还包括数据处理步骤:读取卷积结果数据,对卷积结果数据进行激活处理,存储处理后的卷积数据。
4.根据权利要求1所述的深度可分离卷积的加速方法,其特征在于,若CPU处理器具有32个SIMD寄存器,且每个SIMD寄存器可以存储4个浮点数时,若系数矩阵为5X5矩阵,则将系数矩阵5X5矩阵分割成4X5矩阵和1X5矩阵分别进行深度可分离卷积;若系数矩阵为7X7矩阵,则将系数矩阵7X7分割成3个2X7矩阵和1个1X7矩阵分别进行深度可分离卷积。
5.根据权利要求1所述的深度可分离卷积的加速方法,其特征在于,所述CPU处理器为嵌入式设备的CPU处理器。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网视易信息系统有限公司,未经福建星网视易信息系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911336362.7/1.html,转载请声明来源钻瓜专利网。





