[发明专利]基于Neon指令的卷积神经网络的算法优化方法及装置在审
申请号: | 201710974484.3 | 申请日: | 2017-10-19 |
公开(公告)号: | CN107704921A | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 朱明;曾建平;张智鹏;耿磊 | 申请(专利权)人: | 北京智芯原动科技有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06F17/15 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100101 北京市朝阳区北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 neon 指令 卷积 神经网络 算法 优化 方法 装置 | ||
1.基于Neon指令的卷积神经网络的算法优化方法,其特征在于,该方法包括:
第一步骤,将卷积层的卷积核图像进行矩阵化处理,获取对应的A矩阵,并将A矩阵列数按照4倍数对齐;
第二步骤,输入待卷积图像,将待卷积输入图像进行矩阵化处理,获取对应的B矩阵,并将B矩阵行数按照4倍数对齐;
第三步骤,对B矩阵进行转置变换,获取转置矩阵Bt;
第四步骤,计算A矩阵和Bt矩阵的行与行点积;及
第五步骤,采用Neon指令进行并行优化处理。
2.如权利要求1所述的方法,其特征在于,所述第一步骤包括:对于卷积层中CNum个卷积核大小为N×N的卷积核图像,依次将每个卷积核图像作为一行矩阵数据,获取行数为CNum、列数为N×N的A矩阵;将A矩阵的列数扩展为4的倍数,扩展的每列矩阵内数值为0。
3.如权利要求1所述的方法,其特征在于,所述第二步骤包括:输入需要卷积层处理的待卷积图像;根据N×N的卷积核依次进行卷积滑窗处理,以获取MNum个经过卷积滑窗处理后的卷积特征子图像;依次将每个卷积特征子图像作为一列矩阵数据,获取行数为N×N、列数为MNum的B矩阵;将B矩阵的行数扩展为4的倍数,扩展的每行矩阵内数值为0。
4.如权利要求1所述的方法,所述第三步骤将B矩阵的行与列进行转置变换,以获得行数为MNum、列数为N×N扩展成4倍数对齐的Bt矩阵。
5.如权利要求1所述的方法,其特征在于,所述第五步骤包括:在Neon指令中,采用加载指令vld1q_f32进行4个浮点数的加载操作;采用乘法指令vmulq_f32进行4个浮点数的乘法运算操作;采用加法指令vaddq_f32进行4个浮点数的加法操作;采用拆分指令vget_low_f32和vget_high_f32分别获取2个浮点数;采用按对加法指令vpadd_f32先进行vget_low_f32、vget_high_f32内2个浮点数的相加,再对相加的结果进行相邻累加。
6.基于Neon指令的卷积神经网络的算法优化装置,其特征在于,该装置包括:卷积核图像矩阵处理模块,用于将卷积层的卷积核图像进行矩阵化处理,获取对应的A矩阵,并将A矩阵列数按照4倍数对齐;
待卷积输入图像矩阵处理模块,用于输入待卷积图像,将待卷积输入图像进行矩阵化处理,获取对应的B矩阵,并将B矩阵行数按照4倍数对齐;
矩阵转置变换模块,用于对B矩阵进行转置变换,获取转置矩阵Bt;
矩阵行与行点积模块,用于计算A矩阵和Bt矩阵的行与行点积;及
Neon指令优化处理模块,用于采用Neon指令进行并行优化处理。
7.如权利要求6所述的装置,其特征在于,所述卷积核图像矩阵处理模块包括:用于对于卷积层中CNum个卷积核大小为N×N的卷积核图像,依次将每个卷积核图像作为一行矩阵数据,获取行数为CNum、列数为N×N的A矩阵;将A矩阵的列数扩展为4的倍数,扩展的每列矩阵内数值为0。
8.如权利要求6所述的装置,其特征在于,所述待卷积输入图像矩阵处理模块包括:用于输入需要卷积层处理的待卷积图像;根据N×N的卷积核依次进行卷积滑窗处理,以获取MNum个经过卷积滑窗处理后的卷积特征子图像;依次将每个卷积特征子图像作为一列矩阵数据,获取行数为N×N、列数为MNum的B矩阵;将B矩阵的行数扩展为4的倍数,扩展的每行矩阵内数值为0。
9.如权利要求6所述的装置,所述矩阵转置变换模块用于将B矩阵的行与列进行转置变换,以获得行数为MNum、列数为N×N扩展成4倍数对齐的Bt矩阵。
10.如权利要求6所述的装置,其特征在于,所述Neon指令优化处理模块包括:用于在Neon指令中,采用加载指令vld1q_f32进行4个浮点数的加载操作;采用乘法指令vmulq_f32进行4个浮点数的乘法运算操作;采用加法指令vaddq_f32进行4个浮点数的加法操作;采用拆分指令vget_low_f32和vget_high_f32分别获取2个浮点数;采用按对加法指令vpadd_f32先进行vget_low_f32、vget_high_f32内2个浮点数的相加,再对相加的结果进行相邻累加。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智芯原动科技有限公司,未经北京智芯原动科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710974484.3/1.html,转载请声明来源钻瓜专利网。