[发明专利]一种CNN加速方法、加速装置及计算机可读存储介质在审
申请号: | 202010412121.2 | 申请日: | 2020-05-15 |
公开(公告)号: | CN111626405A | 公开(公告)日: | 2020-09-04 |
发明(设计)人: | 史超超 | 申请(专利权)人: | TCL华星光电技术有限公司 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/08;G06F13/28 |
代理公司: | 深圳紫藤知识产权代理有限公司 44570 | 代理人: | 杨艇要 |
地址: | 518132 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cnn 加速 方法 装置 计算机 可读 存储 介质 | ||
1.一种CNN加速方法,用于FPGA,其特征在于,包括:
通过DMA接口将完成边界填充的图像数据缓存进入行缓存区;
调用FPGA内置的硬件加速单元对所述的行缓存区内的数据进行卷积运算,所述的卷积运算的卷积核大小为N×N,每个卷积层的行缓存接口数量为N;
将完成卷积运算的像素缓存至缓存区,并通过DMA端口传输至外部DDR;其中N为大于1的整数。
2.根据权利要求1所述的方法,其特征在于,所述的卷积运算包括:
从bram中抓取所需要的N2个像素及对应的权重;
通过非0值判断模块判断所述的N2个像素及对应的权重是否存在零值;
对抓取的像素矩阵及对应的权重矩阵进行卷积计算:当所述的N2个像素及对应的权重不存在零值时,利用N2个乘法器对所述像素矩阵中的元素及所述权重矩阵中的元素进行乘法运算,然后利用N2-1个加法器对所述的N2个乘法器的输出数据相加,完成卷积运算;当所述的N2个像素及对应的权重存在零值时,则在使用乘法器进行乘法运算时,忽略掉所述零值对应的相乘项。
3.根据权利要求1或2所述的方法,其特征在于,通过DMA接口将完成边界填充的图像数据缓存进入行缓存区之后,还包括:
调用HLS pipeline unroll指令;
且所述调用HLS pipeline unroll指令与所述的卷积运算同时进行。
4.根据权利要求1或2所述的方法,其特征在于,调用FPGA内置的硬件加速单元对所述的行缓存区内的数据进行卷积运算之后,还包括:
对所述卷积运算及将完成卷积运算的像素缓存至缓存区进行数据流操作。
5.根据权利要求1所述的方法,其特征在于,所述边界填充由ARM CPU端完成。
6.根据权利要求5所述的方法,其特征在于,所述的ARM CPU端的输入数据由ARM端PS从外部DDR调用。
7.一种CNN加速装置,用于FPGA,其特征在于,包括:
第一存储模块,用于通过DMA接口将完成边界填充的图像数据缓存进入行缓存区;
运算模块,用于调用FPGA内置的硬件加速单元对所述的行缓存区内的数据进行卷积运算,所述的卷积运算的卷积核大小为N×N,每个卷积层的行缓存接口数量为N;
第二存储模块,用于将完成卷积运算的像素缓存至缓存区,并通过DMA端口传输至外部DDR。
8.根据权利要求7所述的装置,其特征在于,所述的硬件加速单元包括:
抓取子单元,用于从bram中抓取所需要的N2个像素及对应的权重;
判断单子元,通过非0值判断模块判断所述的N2个像素及对应的权重是否存在零值;
计算子单元,用于对抓取的像素矩阵及对应的权重矩阵进行卷积计算:当所述的N2个像素及对应的权重不存在零值时,利用N2个乘法器对所述像素矩阵中的元素及所述权重矩阵中的元素进行乘法运算,然后利用N2-1个加法器对所述的N2个乘法器的输出数据相加,完成卷积运算;当所述的N2个像素及对应的权重存在零值时,则在使用乘法器进行乘法运算时,忽略掉所述零值对应的相乘项。
9.根据权利要求7或8所述的装置,其特征在于,还包括:
指令调用模块,用于调用HLS pipeline unroll指令;
且所述的调用HLS pipeline unroll指令与所述的卷积运算同时进行。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行权利要求1-6中任一项所述的CNN加速方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于TCL华星光电技术有限公司,未经TCL华星光电技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010412121.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:触控显示面板及触控显示装置
- 下一篇:一种组播表项自聚合的安全过滤方法