CN107305486B - 一种神经网络maxout层计算装置 - Google Patents
一种神经网络maxout层计算装置 Download PDFInfo
- Publication number
- CN107305486B CN107305486B CN201610244656.7A CN201610244656A CN107305486B CN 107305486 B CN107305486 B CN 107305486B CN 201610244656 A CN201610244656 A CN 201610244656A CN 107305486 B CN107305486 B CN 107305486B
- Authority
- CN
- China
- Prior art keywords
- maxout layer
- maxout
- instruction
- layer operation
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本公开提供了一种maxout层运算装置,用于根据maxout层运算指令执行maxout层运算,其特征在于,包括连接到存储模块的maxout层运算模块,maxout层运算模块包括:寄存器单元,用于存储maxout层输入数据地址,maxout层输入数据地址为maxout层输入数据在存储模块中的存储地址;加载/存储单元,根据maxout层运算指令对应的maxout层输入数据地址从存储模块获取相应的maxout层输入数据;剪枝单元,对按特征优先存放的maxout层输入数据在特征维度上进行压缩,得到剪枝数据;以及运算单元,根据maxout层运算指令对剪枝数据执行相应运算以得到maxout层运算结果。
Description
技术领域
本公开涉及一种神经网络maxout层运算装置和方法,用于根据maxout层运算指令执行maxout层运算。
背景技术
当前计算机领域有越来越多的算法涉及到maxout层运算,以人工神经网络算法为例,多种神经网络算法中都含有大量的maxout层运算。在神经网络中,经常需要对于输入数据进行剪枝,对于一个maxout层输入数据,其数据为三维数据,分别为横坐标、纵坐标以及特征维度的数据,maxout运算的剪枝策略为在特征维度上压缩数据,即fj=max({fi|aj≤i≤bj}),其中fi为一个点对应的特征维度上的各个值,aj和bj标定出在该特征维度上选取数据的范围,最后得到值fj,即将同一个点的特征维度按预定方式分组取得每组中的最大值,作为这一点的新的一系列的特征,这样,可以在神经网络中获得不同特征层之间的相关信息,可以显著提升神经网络的识别能力。因此,maxout层运算成为目前各种计算装置在设计之初都需要考虑的一个重要问题。
在现有技术中,一种进行maxout层运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能单元来执行通用指令,从而执行maxout层运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行maxout层运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行神经网络maxout层运算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行maxout层运算。然而,上述方案中,GPU片上缓存太小,在进行大规模maxout层运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
在另一种现有技术中,使用专门定制的maxout层运算装置来进行神经网络maxout层运算,其中,使用定制的寄存器堆和定制的处理单元进行maxout层运算。然而,目前已有的专用maxout层运算装置受限于寄存器堆,不能够灵活地支持不同长度的maxout层运算。
综上所述,现有的不管是片上多核通用处理器、片间互联通用处理器(单核或多核)、还是片间互联图形处理器都无法进行高效的maxout层运算,并且这些现有技术在处理maxout层运算问题时存在着代码量大,受限于片间通讯,片上缓存不够,支持的maxout层规模不够灵活等问题。
发明内容
(一)要解决的技术问题
本公开的目的在于,提供一种maxout层运算装置,解决现有技术中存在的受限于片间通讯、片上缓存不够、支持的maxout层长度不够灵活等问题。
(二)技术方案
本公开提供一种maxout层运算装置,包括连接到存储模块的maxout层运算模块,maxout层运算模块包括:加载/存储(Load/Store)单元,根据maxout层运算指令对应的maxout层输入数据地址从存储模块获取相应的maxout层输入数据;剪枝单元,对按特征优先存放的maxout层输入数据在特征维度上进行压缩,得到剪枝数据;以及运算单元,根据maxout层运算指令对剪枝数据执行相应运算以得到maxout层运算结果。
可选地,该装置还包括所述存储模块。
可选地,所述maxout层运算模块还包括数据转置单元,将按纵坐标或横坐标优先存放的数据转置成按特征优先存放的转置数据。
可选地,该装置还包括指令处理模块,从指令存储设备获取maxout层运算指令并发送到maxout层运算模块。
可选地,所述指令处理模块包括:
取指单元,用于从所述指令存储设备中获取maxout层运算指令;
译码单元,用于对获取的maxout层运算指令进行译码;
存储队列,用于对译码后的maxout层运算指令进行顺序存储;
指令寄存器,存储maxout层运算指令所需的地址数据;
依赖关系处理单元;以及
指令队列,
其中,依赖关系处理单元在向maxout层运算模块提供maxout层运算指令前,判断该maxout层运算指令与之前的maxout层运算指令是否访问相同存储空间,若是,则指示指令队列存储该maxout层运算指令,待所述之前的maxout层运算指令执行完毕后,将该maxout层运算指令提供给所述maxout层运算模块;否则,指示指令队列直接将该maxout层运算指令提供给所述maxout层运算模块。
可选地,所述存储模块还用于存储所述maxout层运算结果。
可选地,该装置还包括输入输出模块,用于存储模块从外部存储设备读取入maxout层输入数据和向外部存储设备写maxout层运算结果。
可选地,所述存储模块为高速暂存存储器。
可选地,所述maxout层运算指令包括一操作码和至少五个操作域,其中,所述操作码用于指示该maxout层运算指令的功能,所述五个操作域分别表示输入数据的起始地址、输入数据的数据长度,输出数据的起始地址、输出数据的数据长度,以及做maxout层运算的特征选取范围。
可选地,所述maxout层运算装置为多流水级结构,其中,maxout层数据转置单元处于第一流水级,剪枝单元处于第二流水级,运算单元处于第三流水级。
本公开还提供了一种使用maxout层运算装置执行maxout层运算的方法,包括:
S1,取指单元取出maxout层运算指令,并将该maxout层运算指令送往译码单元;
S2,译码单元对maxout层运算指令译码,并将maxout层运算指令送往存储队列;
S3,从指令寄存器中获取maxout层运算指令所对应的指令寄存器里的数据信息以填充maxout层运算指令,所述数据信息包括maxout层输入数据起始地址、maxout层输入数据长度、maxout层输入数据的特征层数目,maxout层输入数据的图像单个特征层大小,做maxout运算的特征层大小,maxout层输出数据起始地址,maxout层输出数据长度;
S4,在取得需要的数据信息后,该maxout层运算指令被送往依赖关系处理单元,依赖关系处理单元分析该指令与前面的尚未执行结束的指令在数据上是否访问相同存储空间,如果是,则该条maxout层运算指令在指令队列中等待至其与前面的未执行结束的指令在数据上不再访问相同地址空间然后被发射,否则发射该maxout层运算指令;
S5,maxout层运算指令被发射到maxout层运算模块,maxout层运算模块从存储模块中取出需要的maxout层输入数据并完成maxout层运算指令对应运算;以及
S6,运算完成后,将结果写回至存储模块的指定地址,同时依赖关系处理单元中的该指令被提交。
本公开还提供了一种maxout层运算方法,应用以上任一所述的maxout层运算装置,根据maxout层运算指令执行maxout层运算,包括:
加载/存储单元根据maxout层运算指令对应的maxout层输入数据地址从存储模块获取相应的maxout层输入数据;
剪枝单元对按特征优先存放的maxout层输入数据在特征维度上进行压缩,得到剪枝数据;以及
运算单元根据maxout层运算指令对剪枝数据执行相应运算以得到maxout层运算结果。
可选地,还包括:
寄存器单元存储maxout层输入数据地址,maxout层输入数据地址为maxout层输入数据在存储模块中的存储地址;
数据转置单元将按纵坐标或横坐标优先存放的数据转置成按特征优先存放的转置数据。
可选地,还包括:指令处理模块从指令存储设备获取maxout层运算指令并发送到maxout层运算模块。
可选地,其中指令处理模块从指令存储设备获取maxout层运算指令并发送到maxout层运算模块,包括步骤:
取指单元从所述指令存储设备中获取maxout层运算指令;
译码单元对获取的maxout层运算指令进行译码;
存储队列对译码后的maxout层运算指令进行顺序存储;
指令寄存器存储maxout层运算指令所需的数据信息;
依赖关系处理单元在向maxout层运算模块提供maxout层运算指令前,判断该maxout层运算指令与之前的maxout层运算指令是否访问相同存储空间,若是,则指示指令队列存储该maxout层运算指令,待所述之前的maxout层运算指令执行完毕后,将该maxout层运算指令提供给所述maxout层运算模块;否则,指示指令队列直接将该maxout层运算指令提供给所述maxout层运算模块。
可选地,所述存储模块还存储所述maxout层运算结果。
可选地,还包括:
输入输出模块存储模块从外部存储设备读取maxout层输入数据和向外部存储设备写maxout层运算结果。
可选地,所述存储模块为高速暂存存储器。
可选地,所述maxout层运算指令包括一操作码和至少五个操作域,其中,所述操作码用于指示该maxout层运算指令的功能,所述五个操作域分别表示输入数据的起始地址、输入数据的数据长度、输出数据的起始地址、输出数据的数据长度,以及做maxout层运算的特征选取范围。
本公开还提供了一种电子设备,包括以上任一所述的maxout层运算装置。
(三)有益效果
本公开提供的maxout层运算装置,将参与计算的maxout层输入输出数据暂存在存储模块,例如暂存在高速暂存存储器(Scratchpad Memory)上,使得maxout层运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量神经网络maxout层运算任务的执行性能,本公开采用的指令集使用方便、支持的maxout层长度灵活。
附图说明
图1是根据本公开实施例的maxout层运算装置的结构示意图。
图2是根据本公开实施例的指令集的格式示意图。
图3是根据本公开另一实施例的maxout层运算装置的结构示意图。
图4是根据本公开实施例的maxout层运算装置执行maxout层运算的流程图。
具体实施方式
根据结合附图对本公开示例性实施例的以下详细描述,本公开的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。
根据本公开实施例的maxout运算,其是将输入层的神经元向量,分离成多个组,每一个组内的同一个输入点的不同特征层取最大值,作为该点的输出。
图1示意性示出了根据本公开实施例的maxout层运算装置1的框图。其中模块均可以通过硬件电路(例如包括但不限于FPGA、CGRA、专用集成电路ASIC、模拟电路和忆阻器等)实现。
如图1所示,maxout层运算装置1包括maxout层运算模块10。根据本公开的实施例,maxout层运算装置1还可以包括存储模块20。maxout层运算模块10连接到存储模块20。存储模块20用于存储maxout层输入数据,在一种实施方式中,该存储模块20可以是高速暂存存储器(Scratchpad Memory),能够支持不同大小的maxout层输入输出数据。根据本公开实施例,将必要的maxout层运算数据暂存在高速暂存存储器上,使本运算装置在进行maxout层运算过程中可以灵活有效地支持不同宽度的数据,提升包含大量神经网络maxout层运算任务的执行性能。
maxout层运算模块10包括寄存器单元11、加载/存储(Load/Store)单元12、数据转置单元13、剪枝单元14、以及非线性运算单元15。
寄存器单元11用于存储maxout层输入数据地址,其中,maxout层输入数据地址为maxout层输入数据在存储模块20中的存储地址。在一种实施方式中,寄存器单元11可以包括标量寄存器堆,提供运算过程中所需的标量寄存器,标量寄存器不只存放maxout层输入数据地址,还可以存放有标量数据。当涉及到重复使用maxout层的输入数据做运算时,maxout层运算模块10不仅可以从寄存器单元11中获取maxout层输入数据地址,还可以从寄存器单元11中获取相应的已经加载进来的maxout层输入数据。
maxout层运算模块10获取maxout层运算指令。然后,根据该运算指令的立即数或基于该运算指令从寄存器单元中11获取的maxout层输入数据地址,加载/存储单元12在存储模块20中获取相应的maxout层输入数据。根据本公开的实施例,加载/存储单元12可以将maxout层输入数据保存在寄存器单元11中。当涉及到重复使用maxout层的输入数据做运算时,maxout层运算模块10可以从寄存器单元11中获取相应的已经加载进来的maxout层输入数据。
接着,数据转置单元13、剪枝单元14、以及非线性运算单元15根据maxout层运算指令,使用获取的maxout层输入数据进行maxout层运算,得到maxout层运算结果,并将maxout层运算结果存储于存储模块20中。maxout层运算模块10为多流水级结构,其中,数据转置单元13处于第一流水级,剪枝单元14处于第二流水级,非线性运算单元15处于第三流水级。这些单元处于不同的流水级,当连续串行的多条maxout层运算指令的先后次序与相应单元所在流水级顺序一致时,可以更加高效地实现这一连串maxout层运算指令所要求的操作。
具体地,数据转置单元13将每个maxout层输入数据按纵坐标或横坐标优先存放的数据转置成按特征优先存放的转置数据(如果数据本身就是以特征优先存放,则不需要该转置操作)。按特征优先存放maxout层数据的方式是已知的,在此不做赘述。
对每个按特征优先存放的maxout层输入数据,剪枝单元14在特征维度上进行压缩,得到剪枝数据。具体地,剪枝单元14得到maxout层输入数据的特征分组中每个组的最大值,作为该转置数据对应的剪枝数据。例如,一个转置数据包括已分为三组的特征{f1,f2,f3},{f4,f5,f6},{f7,f8,f9},取每个组的最大值f2,f5,f9,作为其剪枝数据。该分组方式仅是示例性的,可以根据实际需要预先设定不同的分组方式。
运算单元15根据运算指令对剪枝单元14输出的剪枝数据执行相应运算。根据本公开的实施例,所述运算可以是非线性运算如sigmoid运算、TanH运算、relu运算或softmax运算等。然后,运算单元15将运算结果返回给加载/存储单元12,加载/存储单元12可以将运算结果写入存储模块20中。
图2示出了本公开提供的指令集的格式示意图。如图2所示,maxout层运算指令包括一操作码和至少五个操作域,所述五个操作域分别表示输入数据的起始地址、输入数据的数据长度,输出数据的起始地址、输出数据的数据长度,以及做maxout层运算的特征选取范围。其中,操作码用于指示该maxout层运算指令的功能,maxout层运算装置通过识别该操作码可进行不同的maxout层运算,操作域用于指示该maxout层运算指令的数据信息,其中,数据信息可以是立即数或寄存器号。例如,要获取一个maxout层输入数据时,根据寄存器号可以在相应的寄存器中获取maxout层输入数据起始地址和maxout层输入数据长度,再根据maxout层输入数据起始地址和maxout层输入数据长度在存储模块20中获取相应地址存放的maxout层输入数据;要获得一个maxout层运算所需要整合的特征层个数,可以从操作域中的立即数获得;一个maxout层运算结果输出的起始地址和数据长度也同样从操作域中获得。
指令集包含有不同功能的maxout层输入数据运算指令,包括按特征优先存放数据格式maxout层运算指令和/或按图像纵坐标或横坐标优先存放数据格式maxout层运算指令。
根据按特征优先存放数据格式maxout层运算指令,maxout层运算模块10从存储模块20的指定地址或寄存器单元11取出指定大小的maxout层输入数据,在maxout层运算模块10中,对maxout层输入数据进行剪枝并执行相应操作,并将计算结果写回至存储模块20的指定地址。
根据按图像纵坐标或横坐标优先存放数据格式maxout层运算指令,maxout层运算模块10从存储模块20的指定地址或寄存器单元11取出指定长度的maxout层输入数据,在maxout层运算装置中首先在第一个流水级将数据转置为按特征优先存放的数据,然后对maxout层输入数据进行剪枝并执行相应操作,并将计算结果写回至存储模块20的指定地址。图3示出了根据本公开另一实施例的maxout层运算装置1的结构框图。如图3所示,除了图1所示的maxout层运算模块10和存储模块20之外,maxout层运算装置1还包括指令处理模块30,用于从指令存储设备(未示出)获取maxout层运算指令,并对该maxout层运算指令进行处理后,提供给maxout层运算模块10。其中,指令处理模块30包括:
取指单元31,用于从指令存储设备获取maxout层运算指令;
译码单元32,用于对获取的maxout层运算指令进行译码;
存储队列33,用于对译码后的maxout层运算指令进行顺序存储;
指令寄存器34,存储指令所需的地址数据,填充指令;
依赖关系处理单元35;以及
指令队列36。
依赖关系处理单元35用于在向maxout层运算模块10提供maxout层运算指令前,判断该maxout层运算指令与之前的maxout层运算指令是否访问相同存储空间,若是,指示指令队列36存储该maxout层运算指令,待之前的maxout层运算指令执行完毕后,将该maxout层运算指令提供给所述maxout层运算模块10的相应单元;否则,指示指令队列36直接将该maxout层运算指令提供给所述maxout层运算模块10的相应单元。具体地,maxout层运算指令访问存储模块20时,前后指令可能会访问同一块存储空间,这种情况被称为前后指令的数据之间存在依赖关系。为了保证指令执行结果的正确性,当前指令如果被检测到与之前的指令的数据存在依赖关系,该指令必须在指令队列36内等待至所述依赖关系被消除。指令在执行过程中,同时也被缓存在依赖关系处理单元35中,当一条指令执行完之后,如果该指令同时也是依赖关系处理单元35中未被提交指令中最早的一条指令,该指令将被提交。一旦提交,该条指令进行的操作对装置状态的改变将无法撤销。
根据本公开的实施例,maxout层运算装置1还包括输入输出模块40可以将maxout层输入输出数据在存储模块20与外部存储设备(未示出)之间进行传输。例如,输入输出模块40可用于存储模块从外部存储设备读取入maxout层输入数据和向外部存储设备写maxout层运算结果
根据本公开的一种实施方式,用于本公开装置的指令集采用定长指令,即每个指令的长度都是统一大小。
图4示出了根据本公开实施例供的maxout层运算装置执行maxout层运算的流程图,如图4所示,执行maxout层运算指令的过程包括:
S1,取指单元取出该条maxout层运算指令,并将该指令送往译码单元。
S2,译码单元对指令译码,并将指令送往存储队列。
S3,指令寄存器对指令进行填充。具体地,从指令寄存器中获取指令中五个操作域(该五个操作域分别表示输入数据的起始地址、输入数据的数据长度,输出数据的起始地址、输出数据的数据长度,以及做maxout层运算的特征选取范围(即,由多少个特征数据得到一个特征数据))所对应的数据信息以填充maxout层运算指令,包括输入数据起始地址、输入数据长度、输入数据的特征层数目,输入数据的单个特征层大小,做maxout层运算的特征层大小,输出数据起始地址,输出数据长度。
S4,在取得需要的数据信息后,该指令被送往依赖关系处理单元。依赖关系处理单元分析该指令与前面的尚未执行结束的指令在数据上是否存在依赖关系。该条指令需要在指令队列中等待至其与前面的未执行结束的指令在数据上不再存在依赖关系为止。
S5,依赖关系不存在后,该条maxout层运算指令被送往maxout层运算模块。maxout层运算模块根据所需数据的地址和长度从存储模块中取出需要的maxout层输入数据,然后在maxout层单元中完成指令对应操作。根据本公开的实施例,所述指令对应操作包括数据转置(当输入数据是横坐标或纵坐标优先格式时执行该操作,当输入数据是特征优先格式时省略该操作)、剪枝、以及与指令相应的运算。根据本公开的实施例,所述运算可以是非线性运算如sigmoid运算、TanH运算、relu运算或softmax运算等。
S6,运算完成后,将结果写回至存储模块的指定地址,同时依赖关系处理单元中的该指令被提交。
本公开的maxout层运算装置及其中的各模块、单元可由软件、硬件、或固件实现。这些装置、模块、单元可以集成在一起实现或分离地实现并彼此通信或交互。例如,可以采用专用集成电路来集成实现。或者,其中的部分模块、单元可以实现为专用集成电路或固化有计算机程序代码的可编程器件,而部分模块、单元实现为通用计算器件运行存储在存储设备中的计算机程序代码。例如,可以将部分模块、单元等(如数据转置单元)实现为由软件实现数据的转置,而内部存储单元可由寄存器组实现或高速缓存单元实现等。
综上所述,本公开提供maxout层运算装置能够很好地解决当前计算机领域越来越多的算法包含大量maxout层运算的问题,相比于已有的传统解决方案,本公开可以具有使用方便、支持的maxout层规模灵活、片上缓存充足等优点。本公开可以用于多种包含大量maxout层运算的计算任务,包括目前表现十分出色的人工神经网络算法的反相训练和正向预测等计算方法。
本公开实施例还提供了一种电子设备,包括前述的maxout层运算装置。
电子设备可包括但不限于机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
所述交通工具可包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本公开中各功能/单元/模块/子模块都可以是硬件,比如该硬件可以是电路,包括数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。所述计算装置中的计算模块可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (21)
1.一种maxout层运算装置,其特征在于,包括连接到存储模块的maxout层运算模块,maxout层运算模块包括:
加载/存储单元,根据maxout层运算指令对应的maxout层输入数据地址从存储模块获取相应的maxout层输入数据;
剪枝单元,对按特征优先存放的maxout层输入数据在特征维度上进行压缩,得到剪枝数据;以及
运算单元,根据maxout层运算指令对剪枝数据执行相应运算以得到maxout层运算结果。
2.根据权利要求1所述的装置,其特征在于,所述存储模块,位于所述maxout层运算装置内部。
3.根据权利要求1所述的装置,其特征在于,所述maxout层运算模块还包括:
寄存器单元,用于存储maxout层输入数据地址,maxout层输入数据地址为maxout层输入数据在存储模块中的存储地址;和/或
数据转置单元,将按纵坐标或横坐标优先存放的数据转置成按特征优先存放的转置数据。
4.根据权利要求1所述的装置,其特征在于,还包括指令处理模块,从指令存储设备获取maxout层运算指令并发送到maxout层运算模块。
5.根据权利要求4所述的装置,其特征在于,所述指令处理模块包括:
取指单元,用于从所述指令存储设备中获取maxout层运算指令;
译码单元,用于对获取的maxout层运算指令进行译码;
存储队列,用于对译码后的maxout层运算指令进行顺序存储;
指令寄存器,存储maxout层运算指令所需的数据信息;
依赖关系处理单元;以及
指令队列,
其中,依赖关系处理单元在向maxout层运算模块提供maxout层运算指令前,判断该maxout层运算指令与之前的maxout层运算指令是否访问相同存储空间,若是,则指示指令队列存储该maxout层运算指令,待所述之前的maxout层运算指令执行完毕后,将该maxout层运算指令提供给所述maxout层运算模块;否则,指示指令队列直接将该maxout层运算指令提供给所述maxout层运算模块。
6.根据权利要求1所述的maxout层运算装置,其特征在于,所述存储模块还用于存储所述maxout层运算结果。
7.根据权利要求1所述的maxout层运算装置,其特征在于,还包括:
输入输出模块,用于存储模块从外部存储设备读取maxout层输入数据和向外部存储设备写maxout层运算结果。
8.根据权利要求1所述的maxout层运算装置,其特征在于,所述存储模块为高速暂存存储器。
9.根据权利要求1所述的maxout层运算装置,其特征在于,所述maxout层运算指令包括一操作码和至少五个操作域,其中,所述操作码用于指示该maxout层运算指令的功能,所述五个操作域分别表示输入数据的起始地址、输入数据的数据长度、输出数据的起始地址、输出数据的数据长度,以及做maxout层运算的特征选取范围。
10.根据权利要求3所述的maxout层运算装置,其特征在于,所述maxout层运算模块为多流水级结构,其中,数据转置单元处于第一流水级,剪枝单元处于第二流水级,运算单元处于第三流水级。
11.一种使用根据权利要求5所述的maxout层运算装置执行maxout层运算的方法,其特征在于,包括:
取指单元取出maxout层运算指令,并将该maxout层运算指令送往译码单元;
译码单元对maxout层运算指令译码,并将maxout层运算指令送往存储队列;
从指令寄存器中获取maxout层运算指令所对应的数据信息以填充maxout层运算指令,所述数据信息包括maxout层输入数据起始地址、maxout层输入数据长度、maxout层输入数据的特征层数目、maxout层输入数据的单个特征层大小、做maxout层运算的特征层大小、maxout层输出数据起始地址、maxout层输出数据长度;
在取得需要的数据信息后,该maxout层运算指令被送往依赖关系处理单元,依赖关系处理单元分析该指令与前面的尚未执行结束的指令在数据上是否访问相同存储空间,如果是,则该条maxout层运算指令在指令队列中等待至其与前面的未执行结束的指令在数据上不再访问相同地址空间然后被发射,否则发射该maxout层运算指令;
maxout层运算指令被发射到maxout层运算模块,maxout层运算模块从存储模块中取出需要的maxout层输入数据并完成maxout层运算指令对应运算;以及
运算完成后,将结果写回至存储模块的指定地址,同时依赖关系处理单元中的该指令被提交。
12.一种maxout层运算方法,应用如权利要求1至10中任一所述的maxout层运算装置,根据maxout层运算指令执行maxout层运算,其特征在于,包括:
加载/存储单元根据maxout层运算指令对应的maxout层输入数据地址从存储模块获取相应的maxout层输入数据;
剪枝单元对按特征优先存放的maxout层输入数据在特征维度上进行压缩,得到剪枝数据;以及
运算单元根据maxout层运算指令对剪枝数据执行相应运算以得到maxout层运算结果。
13.根据权利要求12所述的方法,其特征在于,还包括:
寄存器单元存储maxout层输入数据地址,maxout层输入数据地址为maxout层输入数据在存储模块中的存储地址;
数据转置单元将按纵坐标或横坐标优先存放的数据转置成按特征优先存放的转置数据。
14.根据权利要求12所述的方法,其特征在于,还包括:指令处理模块从指令存储设备获取maxout层运算指令并发送到maxout层运算模块。
15.根据权利要求14所述的方法,其特征在于,指令处理模块从指令存储设备获取maxout层运算指令并发送到maxout层运算模块,包括步骤:
取指单元从所述指令存储设备中获取maxout层运算指令;
译码单元对获取的maxout层运算指令进行译码;
存储队列对译码后的maxout层运算指令进行顺序存储;
指令寄存器存储maxout层运算指令所需的数据信息;
依赖关系处理单元在向maxout层运算模块提供maxout层运算指令前,判断该maxout层运算指令与之前的maxout层运算指令是否访问相同存储空间,若是,则指示指令队列存储该maxout层运算指令,待所述之前的maxout层运算指令执行完毕后,将该maxout层运算指令提供给所述maxout层运算模块;否则,指示指令队列直接将该maxout层运算指令提供给所述maxout层运算模块。
16.根据权利要求12所述的方法,其特征在于,所述存储模块还存储所述maxout层运算结果。
17.根据权利要求12所述的方法,其特征在于,还包括:
输入输出模块存储模块从外部存储设备读取maxout层输入数据和向外部存储设备写maxout层运算结果。
18.根据权利要求13所述的方法,其特征在于,所述存储模块为高速暂存存储器。
19.根据权利要求12所述的方法,其特征在于,所述maxout层运算指令包括一操作码和至少五个操作域,其中,所述操作码用于指示该maxout层运算指令的功能,所述五个操作域分别表示输入数据的起始地址、输入数据的数据长度、输出数据的起始地址、输出数据的数据长度,以及做maxout层运算的特征选取范围。
20.根据权利要求12所述的方法,其特征在于,所述maxout层运算模块为多流水级结构,其中,数据转置单元处于第一流水级,剪枝单元处于第二流水级,运算单元处于第三流水级。
21.一种电子设备,其特征在于,包括权利要求1-10任一所述的maxout层运算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011035396.5A CN112348182B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
CN201610244656.7A CN107305486B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610244656.7A CN107305486B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011035396.5A Division CN112348182B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107305486A CN107305486A (zh) | 2017-10-31 |
CN107305486B true CN107305486B (zh) | 2020-11-03 |
Family
ID=60151514
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011035396.5A Active CN112348182B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
CN201610244656.7A Active CN107305486B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011035396.5A Active CN112348182B (zh) | 2016-04-19 | 2016-04-19 | 一种神经网络maxout层计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112348182B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109754061B (zh) * | 2017-11-07 | 2023-11-24 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109754062B (zh) * | 2017-11-07 | 2024-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN111062483A (zh) * | 2018-10-16 | 2020-04-24 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN109683959B (zh) * | 2018-12-24 | 2020-12-01 | 安谋科技(中国)有限公司 | 处理器的指令执行方法及其处理器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790379A (zh) * | 2004-12-17 | 2006-06-21 | 中国林业科学研究院资源信息研究所 | 一种遥感影像决策树分类系统及方法 |
CN104850845A (zh) * | 2015-05-30 | 2015-08-19 | 大连理工大学 | 一种基于非对称卷积神经网络的交通标志识别方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR73396E (fr) * | 1958-03-13 | 1960-06-27 | Prod Bruts Et Manufactures Au | Appareil de chauffage au maxout |
JP3132566B2 (ja) * | 1989-08-30 | 2001-02-05 | 日本電気株式会社 | 命令先行制御装置 |
US5301231A (en) * | 1992-02-12 | 1994-04-05 | International Business Machines Corporation | User defined function facility |
JPH11161491A (ja) * | 1997-11-27 | 1999-06-18 | Oki Electric Ind Co Ltd | 汎用プロセッサ |
US6947916B2 (en) * | 2001-12-21 | 2005-09-20 | Quicksilver Technology, Inc. | IC for universal computing with near zero programming complexity |
CN100470571C (zh) * | 2006-08-23 | 2009-03-18 | 北京同方微电子有限公司 | 一种用于密码学运算的微处理器内核装置 |
US20120117054A1 (en) * | 2010-11-08 | 2012-05-10 | Lakshmikant Shrinivas | Query Analysis in a Database |
US9235799B2 (en) * | 2011-11-26 | 2016-01-12 | Microsoft Technology Licensing, Llc | Discriminative pretraining of deep neural networks |
US9153230B2 (en) * | 2012-10-23 | 2015-10-06 | Google Inc. | Mobile speech recognition hardware accelerator |
KR101494638B1 (ko) * | 2013-02-19 | 2015-03-02 | 서강대학교산학협력단 | 반사 스펙트럼 추정을 이용하여 생체 내의 혈관을 영상화하는 방법, 그 방법을 이용한 혈관천자 안내 장치 및 사용자 인증 장치 |
US9401148B2 (en) * | 2013-11-04 | 2016-07-26 | Google Inc. | Speaker verification using neural networks |
US20160026912A1 (en) * | 2014-07-22 | 2016-01-28 | Intel Corporation | Weight-shifting mechanism for convolutional neural networks |
US10783900B2 (en) * | 2014-10-03 | 2020-09-22 | Google Llc | Convolutional, long short-term memory, fully connected deep neural networks |
CN105157870A (zh) * | 2015-07-24 | 2015-12-16 | 南京理工大学 | 一种基于无源无线声表面波传感器的在线测温系统 |
-
2016
- 2016-04-19 CN CN202011035396.5A patent/CN112348182B/zh active Active
- 2016-04-19 CN CN201610244656.7A patent/CN107305486B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1790379A (zh) * | 2004-12-17 | 2006-06-21 | 中国林业科学研究院资源信息研究所 | 一种遥感影像决策树分类系统及方法 |
CN104850845A (zh) * | 2015-05-30 | 2015-08-19 | 大连理工大学 | 一种基于非对称卷积神经网络的交通标志识别方法 |
Non-Patent Citations (1)
Title |
---|
基于BP神经网络的企业环境行为信用评价的研究;朱晓彦;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140515(第5期);I140-82 * |
Also Published As
Publication number | Publication date |
---|---|
CN112348182A (zh) | 2021-02-09 |
CN112348182B (zh) | 2024-01-12 |
CN107305486A (zh) | 2017-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109101273B (zh) | 神经网络处理装置及其执行向量最大值指令的方法 | |
CN107315574B (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
CN111857820B (zh) | 一种用于执行矩阵加/减运算的装置和方法 | |
CN111651205B (zh) | 一种用于执行向量内积运算的装置和方法 | |
CN107305486B (zh) | 一种神经网络maxout层计算装置 | |
CN107315716B (zh) | 一种用于执行向量外积运算的装置和方法 | |
CN107315568B (zh) | 一种用于执行向量逻辑运算的装置 | |
CN111651203B (zh) | 一种用于执行向量四则运算的装置和方法 | |
CN107315563B (zh) | 一种用于执行向量比较运算的装置和方法 | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN107315567B (zh) | 一种用于执行向量最大值最小值运算的装置和方法 | |
EP3447690A1 (en) | Maxout layer operation apparatus and method | |
CN111857821A (zh) | 一种用于生成服从一定分布的随机向量装置和方法 | |
CN112596881A (zh) | 存储部件及人工智能处理器 | |
CN109324826B (zh) | 计数装置和计数方法 | |
CN115878184A (zh) | 基于一个指令搬移多个数据的方法、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100190 room 644, comprehensive research building, No. 6 South Road, Haidian District Academy of Sciences, Beijing Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |