[发明专利]一种基于脉动阵列硬件架构的深度学习卷积运算实现方法有效
申请号: | 202010148579.1 | 申请日: | 2020-03-05 |
公开(公告)号: | CN111506343B | 公开(公告)日: | 2023-07-07 |
发明(设计)人: | 雍珊珊;王新安;徐伯星;张兴;何春舅 | 申请(专利权)人: | 北京大学深圳研究生院 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F13/28;G06N3/0464;G06T1/20;G06T1/60 |
代理公司: | 深圳市华优知识产权代理事务所(普通合伙) 44319 | 代理人: | 余薇 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 脉动 阵列 硬件 架构 深度 学习 卷积 运算 实现 方法 | ||
1.一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,所述脉动阵列硬件架构包括网络数据存储接口、内部存储器、直接内存访问DMA、图像寄存器文件、输入缓存、接口单元、控制器、输出缓存以及脉动阵列模块,其特征在于,所述脉动阵列模块至少包括一行处理单元,所述一行处理单元至少包括一个处理元素,所述处理元素包括卷积SRAM、卷积寄存器文件以及ALU运算单元,行处理单元的相邻所述处理元素之间设置有数据直通通道,所述方法包括:
S1、所述控制器通过接口单元获取配置指令,并根据所述配置指令配置所述输入缓存和所述脉动阵列模块;
S2、通过所述直接内存访问DMA将所述网络数据存储接口获取的帧图像数据传输到所述内部存储器;
S3、逐行将存储于所述内部存储器中的帧图像数据读入到所述图像寄存器文件中,并通过广播的方式将一行图像数据输入到所述脉动阵列模块中,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中;
S4、在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,然后输出运算结果到所述输出缓存中;
所述S4的在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,包括:
在对应所述帧图像数据行数的多个时间周期内,脉动启动各行处理单元的处理元素,并将存储于所述卷积寄存器文件中的卷积核行输入到对应的处理元素;
在各个时间周期内,各处理元素将所述一行帧图像数据与对应的卷积核行进行卷积运算,然后将运算结果通过所述数据直通通道输出到相邻处理元素或者作为最终结果输出到所述输出缓存,直到最后一个时间周期对应的一行帧图像数据。
2.如权利要求1所述的方法,其特征在于,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中包括:
所述输入缓存根据卷积核尺寸配置指令将相应大小的卷积核数据输入所述卷积SRAM;
卷积SRAM逐行将所述卷积核输入到所述卷积寄存器文件中。
3.如权利要求2所述的方法,其特征在于,所述ALU运算单元用于将所述帧图像数据和所述卷积核进行卷积运算。
4.如权利要求3所述的方法,其特征在于,所述通过广播的方式将一行帧图像数据输入到所述脉动阵列模块中包括:
在一个时间周期内,通过图像寄存器文件将一行帧图像数据输出到所述脉动阵列模块的每个处理元素中。
5.如权利要求4所述的方法,其特征在于,所述脉动阵列模块的各行处理单元采用脉动启动方式。
6.如权利要求1所述的方法,其特征在于,所述ALU运算单元包括卷积运算单元、多路复选器、部分和缓存、寄存器单元、加法单元和FIFO缓冲器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学深圳研究生院,未经北京大学深圳研究生院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010148579.1/1.html,转载请声明来源钻瓜专利网。