一种面向深度学习的可重构处理器运算单元制造技术

技术编号:20362458 阅读:43 留言:0更新日期:2019-02-16 16:20
本发明专利技术公开了一种面向深度学习的可重构处理器运算单元,包括控制器(1)、存储器(2)、选择输入器(3)、第一查找表(4)、第二查找表(5)、乘法器(6)、最大值池化模块(7)、平均值池化模块(8)、激活函数(9)、加法器(10)和选择输出器(11);其中,控制器(1)与存储器(2)、选择输入器(3)、第一查找表(4)和第二查找表(5)相连;乘法器(6)与加法器(10)相连;选择输出器(11)与最大值池化模块(7)、平均值池化模块(8)、激活函数(9)、加法器(10)、第一查找表(4)和第二查找表(5)相连。本发明专利技术既具有较高性能,又可以支持不同神经网络。

【技术实现步骤摘要】
一种面向深度学习的可重构处理器运算单元
本专利技术属于可重构处理器运算单元架构
,具体涉及一种面向深度学习的可重构处理器运算单元。
技术介绍
深度学习是近几年机器学习的一个研究热点,在许多方向都取得了优异的成果。现在,深度学习在许多学科领域都具备越来越重要的作用。然而受限于硬件设备,深度学习的运算速度要慢于传统的人工神经运算网络以及一些其他的机器学习方法。因此在一些需要高性能的计算和电脑运算领域,深度学习的加速显得格外重要。对于深度学习算法的硬件加速,目前通常有三类实现方式——多核CPU、GPU和FPGA,它们的共同特点是可以实现高并行度的计算。然而,因为这些方法需求大量的运算硬件并消耗很多能耗,并不适合于移动设备。可重构处理器已经被证明是一种兼具高灵活性和高能量效率的并行计算架构形式,是多核CPU和FPGA技术进一步发展受到限制的解决途径之一,是未来计算技术发展的重要方向和研究热点。因此,可重构处理器这一新型的计算架构,有可能成为未来实现高效能深度学习SoC的方案之一。深度学习神经网络有非常多的分类,比较著名的有卷积神经网络(CNN)以及循环神经网络(RNN)。CNN是一种生物自然视觉认知机制启发而来的神经网络,对于视觉图像的处理有着独特的优势,近几年来,CNN网络已经由最初的LeNet-5逐渐演变出了AlexNet、VGG、GoogLeNet等新的结构。RNN与CNN相比,更加倾向于处理序列数据,通过处理前后输入数据的联系来识别整个输入数据,因此RNN十分擅长处理文字音频等时序数据。在RNN的基础上,后续又发展出了BRNN、LSTM、EchoRNN等相关网络。如何灵活、高效地完成各类网络称为当前研究热点。传统的算法主要通过CPU或专用集成电路(ASIC)来实现,然而处理器可以完成的功能多,但速度较慢;ASIC因为是针对一种确定算法而设计的电路,速度快,效率高,但是功能单一。可重构处理器一般是由主处理器耦合一组可重构运算单元,主处理器通过改变运算单元中的配置信息来进行任务的调度,可重构运算单元通过特定的配置信息来决定执行哪些算法。所以通过设计运算单元,可以使可重构处理器具备实现多种深度学习网络的潜力。
技术实现思路
本专利技术的目的在于提供一种面向深度学习的可重构处理器运算单元,其既具有较高性能,又可以支持不同神经网络,包括CNN、RNN、BRNN、LSTM、CW-RNN。本专利技术采用如下技术方案来实现的:一种面向深度学习的可重构处理器运算单元,包括控制器、存储器、选择输入器、第一查找表、第二查找表、乘法器、最大值池化模块、平均值池化模块、激活函数、加法器和选择输出器;其中,控制器与存储器、选择输入器、第一查找表和第二查找表相连;乘法器与加法器相连;选择输出器与最大值池化模块、平均值池化模块、激活函数、加法器、第一查找表和第二查找表相连。本专利技术进一步的改进在于,控制器与外部总线连接,用于接受总线的命令,同时发给存储器、选择输入器、第一查找表及第二查找表命令和数据。本专利技术进一步的改进在于,存储器用于存储乘法器中使用的乘数和被乘数,乘法器用于接收存储器中的数据,实现乘法运算。本专利技术进一步的改进在于,选择输入器与外部控制单元连接,接受外部控制单元命令,同时选择计算类型,最大值池化、平均值池化或者激活函数。本专利技术进一步的改进在于,第一查找表用于实现sigmoid非线性函数;第二查找表用于实现Tanh非线性函数。本专利技术进一步的改进在于,最大值池化模块用于接收选择输入器中的数据做最大值池化运算。本专利技术进一步的改进在于,平均值池化模块用于接收选择输入器中的数据做平均值池化运算。本专利技术进一步的改进在于,激活函数用于接收选择输入器中的数据做ReLU函数计算。本专利技术进一步的改进在于,加法器用于接收乘法器的输出结果,和寄存器中的数据进行累加,然后再存入寄存器中。本专利技术进一步的改进在于,选择输出器与外部控制单元连接,用于根据外部控制单元的命令,选择将最大值池化模块、平均值池化模块、激活函数、加法器、第一查找表、第二查找表中的一个结果输出。本专利技术具有如下有益的技术效果:主要特点:1、运算单元具备卷积、乘加、最大值池化、最小值池化、ReLU激励函数、sigmoid激励函数、tanh激励函数等功能,支持多种神经网络算法的实现。2、运算单元支持补码运算,包括补码乘、加、正负判断等,故支持负数、小数的运算。3、运算单元具有控制模块,可以对单元运算功能实施切换。主要优点:1、将所有所需的逻辑运算和算数运算集成在同一个运算单元中,应用在神经网络密集运算型算法上,可以减小数据通讯的时间,提高运算速度。2、本专利技术使得可重构处理器支持多种复杂神经网络算法的实现,具备多功能,灵活,高效率的特点。附图说明图1为本专利技术一种面向深度学习的可重构处理器运算单元的结构示意图。图2为控制器的结构示意图。图3为选择输入模块的结构示意图。具体实施方式以下结合附图对本专利技术做出进一步的说明。本文提出的可重构处理器运算单元的结构框图如图1。本专利技术所提出的运算单元的数据流为:控制器控制信号负责选择将数据传入存储器中进行查表工作,或将数据传入选择输入器中进行功能运算;对于选择输入器来说,控制信号负责选择将数据传入乘法器、平均值池化模块以及激活函数中的具体一个;选择输出器,负责选择将加法器、平均值池化模块、最大值池化模块,激活函数或存储器中的一个作为输出结果。因为控制器、选择输入器与选择输出器共用一个控制信号,因此当控制器使用结束后依旧需要等待几个周期,直到选择输出器也使用结束后,控制信号才可以关闭。运算单元的运算分为三个流程:数据的输入,数据运算与数据的输出。本专利技术插入二级流水线以提高模块运行速度。本专利技术所提出的面向深度学习的可重构处理器运算单元由以下模块组成:包括控制器1、存储器2、选择输入器3、第一查找表4、第二查找表5、乘法器6、最大值池化模块7、平均值池化模块8、激活函数9、加法器10和选择输出器11;其中,控制器1与存储器2、选择输入器3、第一查找表4和第二查找表5相连;乘法器6与加法器10相连;选择输出器11与最大值池化模块7、平均值池化模块8、激活函数9、加法器10、第一查找表4和第二查找表5相连。具体如下:1)控制器,如图2所示控制器负责选择将输入信息传递到选择输入器或存储器。如果进行sigmoid与tanh函数的查表法操作时,则将读写信号与地址信息传递到第一查找表或第二查找表;如果进行乘加、卷积运算、池化运算以及ReLU函数实现时,则将输入数据、乘法所用存储器的地址信息、开始信号等信息传入到乘法器或选择输入器。2)选择输入器,如图3所示选择输入器负责选择进行乘加、最大值池化、平均值池化、ReLU激活函数功能。通过选择信号与开始信号决定输入将流入下级的哪个模块。总数信号用来决定进行卷积运算或乘积运算时一组数据的乘加个数,比如3×3的卷积运算需要九组数据的乘加,则总数信号输入为9。开始信号同时会激活内部计数器,对乘加与池化运算进行计数操作,当一组乘加完成时,选择输入器会发出信号将加模块中的寄存器清零,以进行下一组乘加的运算;同时,当进行池化操作时,由于一次池化操作需要四个输入,选择输入器会依次对池化模块分四次将输入传递过去,每当一组数传递完成,选择输本文档来自技高网
...

【技术保护点】
1.一种面向深度学习的可重构处理器运算单元,其特征在于,包括控制器(1)、存储器(2)、选择输入器(3)、第一查找表(4)、第二查找表(5)、乘法器(6)、最大值池化模块(7)、平均值池化模块(8)、激活函数(9)、加法器(10)和选择输出器(11);其中,控制器(1)与存储器(2)、选择输入器(3)、第一查找表(4)和第二查找表(5)相连;乘法器(6)与加法器(10)相连;选择输出器(11)与最大值池化模块(7)、平均值池化模块(8)、激活函数(9)、加法器(10)、第一查找表(4)和第二查找表(5)相连。

【技术特征摘要】
1.一种面向深度学习的可重构处理器运算单元,其特征在于,包括控制器(1)、存储器(2)、选择输入器(3)、第一查找表(4)、第二查找表(5)、乘法器(6)、最大值池化模块(7)、平均值池化模块(8)、激活函数(9)、加法器(10)和选择输出器(11);其中,控制器(1)与存储器(2)、选择输入器(3)、第一查找表(4)和第二查找表(5)相连;乘法器(6)与加法器(10)相连;选择输出器(11)与最大值池化模块(7)、平均值池化模块(8)、激活函数(9)、加法器(10)、第一查找表(4)和第二查找表(5)相连。2.根据权利要求1所述的一种面向深度学习的可重构处理器运算单元,其特征在于,控制器(1)与外部总线连接,用于接受总线的命令,同时发给存储器(2)、选择输入器(3)、第一查找表(4)及第二查找表(5)命令和数据。3.根据权利要求1所述的一种面向深度学习的可重构处理器运算单元,其特征在于,存储器(2)用于存储乘法器(6)中使用的乘数和被乘数,乘法器(6)用于接收存储器(2)中的数据,实现乘法运算。4.根据权利要求1所述的一种面向深度学习的可重构处理器运算单元,其特征在于,选择输入器(3)与外部控制单元连接,接受外部控制单元命令,同时选择计算类型,最大值池化、...

【专利技术属性】
技术研发人员:杨晨王逸洲杨景森王小力耿莉
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

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

1