一种基于脉动阵列硬件架构的深度学习卷积运算实现方法技术

技术编号:25184660 阅读:160 留言:0更新日期:2020-08-07 21:12
本申请实施例属于深度学习技术领域,涉及一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,方法包括:S1、所述控制器通过接口单元获取配置指令,并根据所述配置指令配置所述输入缓存和所述脉动阵列模块;S2、通过所述直接内存访问DMA将所述网络数据存储接口获取的帧图像数据传输到所述内部存储器;S3、逐行将存储于所述内部存储器中的帧图像数据读入到所述图像寄存器文件中,并通过广播的方式将一行图像数据输入到所述脉动阵列模块中,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中;S4、在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,然后输出运算结果到所述输出缓存中。

【技术实现步骤摘要】
一种基于脉动阵列硬件架构的深度学习卷积运算实现方法
本专利技术涉及深度学习
,尤其涉及一种基于脉动阵列硬件架构的深度学习卷积运算实现方法。
技术介绍
当前,人工智能已经展现了其在多领域方面的独特优势,比如大数据、智能医疗、安防、先进辅助驾驶系统等。深度学习(DeepLearning)在解决高级抽象认知问题上有着显著的成果,是人工智能算法中最为有效也是使用最为广泛的算法,为“谷歌大脑”、“百度大脑”等采用,并且进入了科大讯飞语音识别、谷歌翻译、Facebook人脸识别等领域。谷歌、微软、Facebook等高端互联网公司的研究实践表明,深度学习能够在图像感知等方面达到甚至超过人类的水平。而卷积神经网络(CNN)是深度学习中最为有效、最具代表性的技术,是当前各大学和公司研究进行语音分析和图像识别研究的热点,它对图像、声音进行有效学习和识别分析,是当前和未来汽车自动驾驶、人脸识别、疾病特征判断、声音识别等信息处理的关键核心技术。深度学习中卷积运算占据了大部分操作和运算时间,因此针对卷积层的优化是硬件设计的重点。在卷积层中,每个通道的输入特征图将与多个卷积核进行二维卷积运算。在二维卷积运算中,每个像素都会被复用数次。因此,数据重复访问是功耗主要来源之一。同时,对于硬件实现来说,位于高存储层次的数据复用将会带来较大的带宽占用,增大功耗。
技术实现思路
本申请实施例的目的在于提出一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,以降低深度学习二维卷积运算的功耗。为了解决上述技术问题,本申请实施例提供一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,采用了如下所述的技术方案:所述基于脉动阵列硬件架构的深度学习卷积运算实现方法,所述脉动阵列硬件架构包括网络数据存储接口、内部存储器、直接内存访问DMA、图像寄存器文件、输入缓存、接口单元、控制器、输出缓存以及脉动阵列模块,所述方法包括:S1、所述控制器通过接口单元获取配置指令,并根据所述配置指令配置所述输入缓存和所述脉动阵列模块;S2、通过所述直接内存访问DMA将所述网络数据存储接口获取的帧图像数据传输到所述内部存储器;S3、逐行将存储于所述内部存储器中的帧图像数据读入到所述图像寄存器文件中,并通过广播的方式将一行图像数据输入到所述脉动阵列模块中,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中;S4、在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,然后输出运算结果到所述输出缓存中。进一步的,所述脉动阵列模块至少包括一行处理单元,所述一行处理单元至少包括一个处理元素,所述处理元素包括卷积SRAM、卷积寄存器文件以及ALU运算单元。进一步的,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中包括:所述输入缓存根据卷积核尺寸配置指令将相应大小的卷积核数据输入所述卷积SRAM;卷积SRAM逐行将所述卷积核输入到所述卷积寄存器文件中。进一步的,所述ALU运算单元用于将所述帧图像数据和所述卷积核进行卷积运算。进一步的,所述通过广播的方式将一行帧图像数据输入到所述脉动阵列模块中包括:在一个时间周期内,通过图像寄存器文件将一行帧图像数据输出到所述脉动阵列模块的每个处理元素中。进一步的,所述脉动阵列模块的各行处理单元采用脉动启动方式。进一步的,所述行处理单元的相邻所述处理元素之间设置有数据直通通道。进一步的,所述在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行包括:在对应所述帧图像数据行数的多个时间周期内,脉动启动所述各行处理单元的处理元素,并将存储于所述卷积寄存器文件中的卷积核行输入到对应的处理元素;在各个时间周期内,各处理元素将所述一行帧图像数据与对应的卷积核行进行卷积运算,然后将运算结果通过所述数据直通通道输出到相邻处理元素或者作为最终结果输出到所述输出缓存,直到最后一个时间周期对应的一行帧图像数据。进一步的,所述ALU运算单元包括卷积运算单元、多路复选器、部分和缓存、寄存器单元、加法单元和FIFO缓冲器。与现有技术相比,本申请实施例主要有以下有益效果:提供一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,所述脉动阵列硬件架构包括网络数据存储接口、内部存储器、直接内存访问DMA、图像寄存器文件、输入缓存、接口单元、控制器、输出缓存以及脉动阵列模块,方法包括:S1、所述控制器通过接口单元获取配置指令,并根据所述配置指令配置所述输入缓存和所述脉动阵列模块;S2、通过所述直接内存访问DMA将所述网络数据存储接口获取的帧图像数据传输到所述内部存储器;S3、逐行将存储于所述内部存储器中的帧图像数据读入到所述图像寄存器文件中,并通过广播的方式将一行图像数据输入到所述脉动阵列模块中,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中;S4、在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,然后输出运算结果到所述输出缓存中。图像寄存器文件通过广播的方式不断向脉动阵列模块并行输入帧图像数据,并与输入缓存输入脉动阵列模块的卷积核进行并行逐行卷积运算,从而实现低存储层次的数据复用,降低了卷积运算的功耗。附图说明为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了根据本申请的实施例提供的一种脉动阵列硬件架构的结构示意图;图2示出了图1中脉动阵列模块109的结构示意图;图3示出了图2中处理元素PE的内部结构示意图;图4是根据本申请的实施例提供的一种基于脉动阵列硬件架构的深度学习卷积运算实现方法的流程图。图5是根据本申请的实施例提供的一种处理元素PE的组成及数据流图。具体实施方式除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的
的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。为了使本文档来自技高网
...

【技术保护点】
1.一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,所述脉动阵列硬件架构包括网络数据存储接口、内部存储器、直接内存访问DMA、图像寄存器文件、输入缓存、接口单元、控制器、输出缓存以及脉动阵列模块,其特征在于,包括:/nS1、所述控制器通过接口单元获取配置指令,并根据所述配置指令配置所述输入缓存和所述脉动阵列模块;/nS2、通过所述直接内存访问DMA将所述网络数据存储接口获取的帧图像数据传输到所述内部存储器;/nS3、逐行将存储于所述内部存储器中的帧图像数据读入到所述图像寄存器文件中,并通过广播的方式将一行图像数据输入到所述脉动阵列模块中,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中;/nS4、在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,然后输出运算结果到所述输出缓存中。/n

【技术特征摘要】
1.一种基于脉动阵列硬件架构的深度学习卷积运算实现方法,所述脉动阵列硬件架构包括网络数据存储接口、内部存储器、直接内存访问DMA、图像寄存器文件、输入缓存、接口单元、控制器、输出缓存以及脉动阵列模块,其特征在于,包括:
S1、所述控制器通过接口单元获取配置指令,并根据所述配置指令配置所述输入缓存和所述脉动阵列模块;
S2、通过所述直接内存访问DMA将所述网络数据存储接口获取的帧图像数据传输到所述内部存储器;
S3、逐行将存储于所述内部存储器中的帧图像数据读入到所述图像寄存器文件中,并通过广播的方式将一行图像数据输入到所述脉动阵列模块中,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中;
S4、在所述脉动阵列模块中将一行帧图像数据与卷积核进行卷积运算,直到所述帧图像的最后一行,然后输出运算结果到所述输出缓存中。


2.如权利要求1所述的方法,其特征在于,所述脉动阵列模块至少包括一行处理单元,所述一行处理单元至少包括一个处理元素,所述处理元素包括卷积SRAM、卷积寄存器文件以及ALU运算单元。


3.如权利要求2所述的方法,其特征在于,所述输入缓存根据控制器的配置将卷积核逐行输入所述脉动阵列模块中包括:
所述输入缓存根据卷积核尺寸配置指令将相应大小的卷积核数据输入所述卷积SRAM;
卷积SRAM逐行将所述卷积核输入到所述卷积寄存器文件中。

...

【专利技术属性】
技术研发人员:雍珊珊王新安徐伯星张兴何春舅
申请(专利权)人:北京大学深圳研究生院
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1