CN109670581B - 一种计算装置及板卡 - Google Patents
一种计算装置及板卡 Download PDFInfo
- Publication number
- CN109670581B CN109670581B CN201811579542.3A CN201811579542A CN109670581B CN 109670581 B CN109670581 B CN 109670581B CN 201811579542 A CN201811579542 A CN 201811579542A CN 109670581 B CN109670581 B CN 109670581B
- Authority
- CN
- China
- Prior art keywords
- gate
- result
- processing circuit
- data
- input
- 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种计算装置及板卡,所述计算装置用于执行LSTM运算,所述板卡,所述板卡包括:存储器件、接口装置和控制器件以及神经网络芯片,所述神经网络芯片包括计算装置,所述存储器件,用于存储数据;所述接口装置,用于实现所述芯片与外部设备之间的数据传输;所述控制器件,用于对所述芯片的状态进行监控。本申请提供的计算装置具有功耗低的优点。
Description
技术领域
本申请涉及信息处理技术领域,具体涉及一种计算装置及板卡。
背景技术
长短时间记忆网络(LSTM)是一种时间递归神经网络(RNN),由于网络本身独特的结构设计,LSTM适合于处理和预测时间序列中间隔和延时非常长的重要事件。相比于传统的递归神经网络,LSTM网络表现出更好的性能,它非常适合从经验中学习,以便在重要事件之间存在未知大小时间之后时对时间序列进行分类、处理和预测。目前,在语音识别、视频描述、机器翻译和音乐自动合成等诸多领域,LSTM网络被广泛应用。
现有的LSTM网络基于通用处理器实现,现有的处理器执行LSTM运算的能耗高。
发明内容
本申请实施例提供了一种计算装置及相关产品,可提升LSTM的处理速度,节省功耗。
第一方面,提供一种所述计算装置用于执行LSTM运算,所述LSTM包括:输入门、忘记门、输出门和更新状态门,所述计算装置包括:运算单元、控制器单元、存储单元;
所述存储单元,用于存储LSTM运算算子、输入数据Xt、权值数据、输出数据ht、输入状态值Ct-1、输入结果ht-1、输出状态值Ct;
所述控制器单元,用于获取输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子,将输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子发送至运算单元,
所述运算单元,用于依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果,依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht以及输出状态值Ct。
可选的,所述运算单元包括:主处理电路以及从处理电路;
所述控制器单元,具体用于根据LSTM算子构建多个拆分算子、多个排序算子、乘法算子、激活算子以及加法算子;
所述主处理电路,具体用于依据排序算子将输入数据Xt、权值数据以及输入状态值进行重排序,所述权值数据包括:各个门的权值数据,然后依据拆分算法将各个门的权值数据以及乘法算子广播至从处理电路,将输入数据以及输入状态值拆分成多个输入数据块以及多个输入状态数据块,将多个输入数据块以及多个输入状态数据块分发给所述从处理电路;
所述从处理电路,用于依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果,依据乘法算子将所述多个输入状态数据块与各个门的权值数据执行乘法运算得到各个门的状态中间结果,将各个门的中间结果以及各个门的状态中间结果发送至主处理电路;
所述主处理电路,用于依据排序算子将每个门的中间结果排序得到各个门的排序结果,依据加法算子将各个门的排序结果执行偏置运算得到各个门的运算结果,依据排序算子将每个状态中间结排序得到各个门的状态排序结果,依据加法算子将各个门的状态排序结果执行偏置运算得到各个门的状态运算结果;依据加法算子将各个门的运算结果以及各个门的状态运算结果对应相加后进行后续处理得到各个门的输出结果。
可选的,所述主处理电路,具体用于依据乘法算子将输入状态值Ct-1与忘记门的输出结果ft相乘得到第一结果,依据乘法算子将更新状态门的输出结果gt与输入门的输出结果it相乘得到第二结果,将第一结果与第二结果相加得到输出状态值Ct。
可选的,所述主处理电路,具体用于依据激活算子对输出状态值Ct执行激活运算得到激活结果,将输出门的输出结果Ot与激活结果相乘得到输出结果ht。
可选的,所述后续处理具体包括:
如为忘记门、输入门和输出门,所述后续处理为sigmoid运算;
如为更新状态门,所述后续处理为激活运算tanh函数。
可选的,所述主处理电路,还用于将输出数据ht作为下一时刻的输入结果,将输出状态值Ct作为下一时刻的输入状态值。
可选的,如所述从处理电路的数量为多个,所述运算单元包括:树型模块,所述树型模块包括:一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据以及算子。
可选的,如所述从处理电路的数量为多个,所述运算单元还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路,
所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据以及算子。
可选的,如所述从处理电路的数量为多个,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个基础电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;
所述K个从处理电路,用于转发所述主处理电路以及多个从处理电路之间的数据以及算子。
可选的,所述主处理电路包括:转换处理电路;
所述转换处理电路,用于对数据执行转换处理,具体为:将主处理电路接收的数据执行第一数据结构与第二数据结构之间的互换。
可选的,所述从处理电路包括:乘法处理电路和累加处理电路;
所述乘法处理电路,用于对接收到的输入数据块中的元素值与各个门的权值中对应位置的元素值执行乘积运算得到各个门的乘积结果;接收到的输入状态数据块中的元素值与各个门的权值中对应位置的元素值执行乘积运算得到各个门的另一乘积结果;
所述累加处理电路,用于对该各个门的乘积结果执行累加运算得到各个门的中间结果,将该各个门的另一乘积结果执行累加运算得到各个门的状态中间结果。
可选的,所述树型模块为n叉树结构,所述n为大于等于2的整数。
第二方面,本申请实施例提供了一种LSTM运算装置,所述LSTM运算装置包括一个或多个第一方面提供的计算装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的LSTM运算,将执行结果通过I/O接口传递给其他处理装置;
当所述LSTM装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述计算装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的LSTM的运算;多个所述计算装置共享同一控制系统或拥有各自的控制系统;多个所述计算装置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑。
第三方面,提供一种组合处理装置,所述组合处理装置包括第二方面的LSTM运算装置,通用互联接口和其他处理装置;
所述LSTM运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
第四方面,提供一种神经网络芯片,神经网络芯片包括第一方面提供的计算装置或第二方面提供的LSTM运算装置或第三方面提供的组合处理装置。
第五方面,提供一种电子设备,所述电子设备包括如第四方面提供的芯片。
第六方面,提供一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及第四方面提供的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
第七方面,本申请实施例还提供一种LSTM运算方法,所述LSTM包括:所述LSTM包括:输入门、忘记门、输出门和更新状态门,所述计算装置包括:运算单元、控制器单元、存储单元;所述存储单元存储:LSTM运算算子、输入数据Xt、权值数据、输出数据ht、输入状态值Ct-1、输入结果ht-1、输出状态值Ct;
所述方法包括如下步骤:
所述控制器单元获取输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子,将输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子发送至运算单元,
所述运算单元依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果,依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht以及输出状态值Ct。
在一些实施例中,所述电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
在一些实施例中,所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种LSTM的结构示意图
图2是本申请实施例提供的一种计算装置的结构示意图。
图2a是本申请实施例提供的一种运算单元的结构示意图。
图3是本申请提供的另一种计算装置的结构示意图。
图3a是本申请提供的主处理电路的结构示意图。
图4a是本申请提供的一种树型模块发送端的结构示意图。
图4b是本申请提供的一种树型模块接收端的结构示意图。
图4c是本申请提供的二叉树结构示意图。
图5是本申请一个实施例提供的计算装置的结构图。
图6是本申请一个实施例提供的LSTM运算方法的流程示意图。
图7是本申请实施例提供的一种组合处理装置的结构图。
图8是本申请实施例提供的另一种组合处理装置的结构图。
图9是本申请实施例提供的一种板卡的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参阅图1,图1为一种LSTM的示意图,如图1所示,该LSTM包括:输入门、忘记门、更新状态单元和输出门,其对应的计算公式如下:
ft=σ(Wf[ht-1,xt]+bf
it=σ(Wi[ht-1,xt]+bi
gt=tanh(Wg[ht-1,xt]+bg
Ct=Ct-1⊙ft+gt⊙it
Ot=σ(Wo[ht-1,xt]+bo
ht=Ot⊙tanh(Ct)
其中,Xt为第t时刻的输入数据,ht-1表示t-1时刻的输出数据,Wf、Wi、Wg和Wo分别表示遗忘门、输入门、更新状态单元和输出门所对应的权值向量,bf、bi、bc和bo分别表示忘记门、输入门、更新状态单元和输出门所对应偏置;ft表示忘记门的输出,与t-1时刻的状态单元进行点乘来有选择的遗忘过去的状态单元值;it表示输入门的输出,与t时刻的得到的候选状态值点乘来有选择地将t时刻的候选状态值加入到更新状态单元中;gt表示t时刻计算得到的候选状态值;ct表示通过将t-1时刻的状态值有选择的遗忘和将t时刻的状态值有选择的加入得到的新的状态值,ct将在计算最终输出时刻被使用并传输到下一时刻;Ot表示t时刻更新状态单元中需要作为结果部分输出的选择条件;ht表示t时刻的输出,同时它还将被传输到下一时刻(即t+1时刻);⊙为向量按元素运算的乘积;σ为sigmoid函数,计算公式为:激活函数tanh函数的计算公式为/>
。在具体计算的时候,本申请将Wf、Wi、Wg和Wo拼成一个矩阵W,bf、bi、bc和bo拼成一个矩阵b。
参阅图2,图2为本申请提供的计算装置。参阅图2,提供了一种计算装置,该计算装置用于执行执行LSTM运算,该计算装置包括:控制器单元11、运算单元12和存储单元10,其中,控制器单元11与运算单元12、存储单元10连接,该运算单元12包括:一个主处理电路101和从处理电路102(可以为一个或多个从处理电路,优先选择多个从处理电路);
需要说明的,上述主处理电路自身包含有存储器(例如内存或寄存器),该存储器可以存储主处理电路的一些数据,从处理电路可以选择携带存储器。
LSTM包括:输入门、忘记门、输出门和更新状态门;
存储单元10,用于存储LSTM运算算子、输入数据Xt、权值数据、输出数据ht、输入状态值Ct-1、输入结果ht-1、输出状态值Ct;
控制器单元11,用于获取输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子,将输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子发送至运算单元,
运算单元12,用于依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果,依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht以及输出状态值Ct。
可选的,上述所述控制器单元,具体用于根据LSTM算子构建多个拆分算子、多个排序算子、乘法算子、激活算子以及加法算子;
所述主处理电路,具体用于依据排序算子将输入数据Xt、权值数据以及输入状态值进行重排序,所述权值数据包括:各个门的权值数据,然后依据拆分算法将各个门的权值数据以及乘法算子广播至从处理电路,将输入数据以及输入状态值拆分成多个输入数据块以及多个输入状态数据块,将多个输入数据块以及多个输入状态数据块分发给所述从处理电路;
所述从处理电路,用于依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果,依据乘法算子将所述多个输入状态数据块与各个门的权值数据执行乘法运算得到各个门的状态中间结果,将各个门的中间结果以及各个门的状态中间结果发送至主处理电路;
需要说明的是,上述各个门中每个门的运算是相对独立的,计算结果也相对独立,即每个门均具有各自的权值数据,例如Wf、Wi、Wg和Wo分别代表4个门的权值数据。
上述依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果具体可以包括:
将多个输入数据块与输入门权值数据执行乘法乘法运算得到输入门的中间结果,多个输入数据块与输出门权值数据执行乘法乘法运算得到输出门的中间结果,多个输入数据块与忘记门权值数据执行乘法乘法运算得到忘记门的中间结果,多个输入数据块与更新状态门权值数据执行乘法乘法运算得到更新状态门的中间结果。上述各个门的状态中间结果与各个门的中间结果类似,这里不在赘述。
所述主处理电路,用于依据排序算子将每个门的中间结果排序得到各个门的排序结果,依据加法算子将各个门的排序结果执行偏置运算得到各个门的运算结果,依据排序算子将每个状态中间结排序得到各个门的状态排序结果,依据加法算子将各个门的状态排序结果执行偏置运算得到各个门的状态运算结果;依据加法算子将各个门的运算结果以及各个门的状态运算结果对应相加后进行后续处理得到各个门的输出结果。
本申请提供的技术方案将运算单元设置成主从结构,对于LSTM的正向运算,将本时刻的输入数据以及忘记门的输出数据拆分并行处理,这样通过主处理电路以及从处理电路即能够对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
可选的,所述主处理电路,具体用于依据乘法算子将输入状态值Ct-1与忘记门的输出结果ft相乘得到第一结果,依据乘法算子将更新状态门的输出结果gt与输入门的输出结果it相乘得到第二结果,将第一结果与第二结果相加得到输出状态值Ct。
可选的,所述主处理电路,具体用于依据激活算子对输出状态值Ct执行激活运算得到激活结果,将输出门的输出结果Ot与激活结果相乘得到输出结果ht。
可选的,所述后续处理具体包括:
如为忘记门、输入门和输出门,所述后续处理为sigmoid运算;
如为更新状态门,所述后续处理为激活运算tanh函数。
可选的,所述主处理电路,还用于将输出数据ht作为下一时刻的输入结果,将输出状态值Ct作为下一时刻的输入状态值。
上述LSTM可以包含多个隐层,h为大于等于2的整数,对于第h个隐层可以为LSTM中的任意一个中间隐层的运算,多个LSTM运算,其实现过程是,在正向运算中,当上一时刻t-1执行完成之后得到输出结果t-1,当前时刻t的运算算子会将上一时刻输出结果t-1作为下一时刻的忘记门的输入数据,忘记门通过sigmoid来确定上以时刻输出结果t-1的通过率,这样即得到了忘记门t时刻的输出结果t,将输出结果t与权值进行运算,另一部分运算为时刻t输入层的输入数据作为另一部分输入神经元,然后将两部分输入神经元分别与权值执行乘积运算得到两个运算结果,将两个运算结果相加即得到时刻t的输出结果,然后将时刻t的输出结果作为下一时刻t+1忘记门的输入数据,这样即能够有选择的确定上一时刻的结果的通过率。
可选的,上述计算装置还可以包括:直接内存访问单元50,存储单元10可以包括:寄存器、缓存中的一个或任意组合,具体的,所述缓存,用于存储计算算子;所述寄存器,用于存储所述输入数据和标量;所述缓存为高速暂存缓存。直接内存访问单元50用于从存储单元10读取或存储数据。
可选的,该控制器单元包括:算子存储单元110、算子处理单元111和存储队列单元113;
算子存储单元110,用于存储所述LSTM运算关联的计算算子;
所述算子处理单元111,用于对所述计算算子解析得到多个运算算子;
存储队列单元113,用于存储算子队列,该算子队列包括:按该队列的前后顺序待执行的多个运算算子或计算算子。
可选的,该控制器单元还可以包括:
所述依赖关系处理单元108,用于在具有多个运算算子时,确定第一运算算子与所述第一运算算子之前的第零运算算子是否存在关联关系,如所述第一运算算子与所述第零运算算子存在关联关系,则将所述第一运算算子缓存在所述算子存储单元内,在所述第零运算算子执行完毕后,从所述算子存储单元提取所述第一运算算子传输至所述运算单元;
所述确定该第一运算算子与第一运算算子之前的第零运算算子是否存在关联关系包括:
依据所述第一运算算子提取所述第一运算算子中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算算子提取所述第零运算算子中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算算子与所述第零运算算子具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算算子与所述第零运算算子不具有关联关系。
在另一种可选实施例中,运算单元12如图3所示,可以包括一个主处理电路101和多个从处理电路102。在一个实施例里,如图3所示,多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,需要说明的是,如图3所示的K个从处理电路仅包括第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路,即该k个从处理电路为多个从处理电路中直接与主处理电路连接的从处理电路。
K个从处理电路,用于在所述主处理电路以及多个从处理电路之间的数据(该数据可以为输入数据块、输入状态数据块、中间结果、状态中间结果等等)以及算子转发。
可选的,如图3a所示,该主处理电路还可以包括:转换处理电路110、激活处理电路111、加法处理电路112中的一种或任意组合;
转换处理电路110,用于数据执行转换处理,具体为:将主处理电路接收的数据(包括但不限于:输入数据Xt、权值数据(各个门的权值)、输入状态值Ct-1、输入结果ht-1)执行第一数据结构与第二数据结构之间的互换(例如连续数据与离散数据的转换,例如浮点数据与定点数据的转换)。
激活处理电路111,用于执行主处理电路内数据的激活运算;
加法处理电路112,用于执行加法运算或累加运算。
另一个实施例里,该运算算子为矩阵乘以矩阵的算子、累加算子、激活算子等等计算算子。
在一种可选的实施方案中,如图4a所示,所述运算单元包括:树型模块40,所述树型模块包括:一个根端口401和多个支端口404,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
上述树型模块具有收发功能,例如如图4a所示,该树型模块即为发送功能,如图4b所示,该树型模块即为接收功能。
所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据(该数据可以为输入数据块、输入状态数据块、中间结果、状态中间结果等等)。
可选的,该树型模块为计算装置的可选择结果,其可以包括至少1层节点,该节点为具有转发功能的线结构,该节点本身可以不具有计算功能。如树型模块具有零层节点,即无需该树型模块。
可选的,该树型模块可以为n叉树结构,例如,如图4c所示的二叉树结构,当然也可以为三叉树结构,该n可以为大于等于2的整数。本申请具体实施方式并不限制上述n的具体取值,上述层数也可以为2,从处理电路可以连接除倒数第二层节点以外的其他层的节点,例如可以连接如图4c所示的倒数第一层的节点。
可选的,上述运算单元可以携带单独的缓存,如图2a所示,可以包括:神经元缓存单元,该神经元缓存单元63缓存该从处理电路的输入神经元向量数据和输出神经元值数据。
如图2a,该运算单元还可以包括:权值缓存单元64,用于缓存该从处理电路在计算过程中需要的权值数据。
在一种可选实施例中,运算单元12如图5所示,可以包括分支处理电路103;其具体的连接结构如图5所示,其中,
上述分支处理电路103可以包括存储器,如图5所示,分支处理电路103的存储器的大小可以为在单个从处理电路需要存储的最大数据容量的2到2.5倍之间,这样设置以后,从处理电路即无需设置存储器,相对于一个分支处理电路,其只用设置2.5*R(单个从处理器电路所需的容量值),如果没有分支处理电路,那么需要设置4*R,并且其寄存器的利用率还低,因此该结构可以有效的降低存储器的总容量,降低成本。
所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的(该数据可以为输入数据块、输入状态数据块、中间结果、状态中间结果等等)。
下面通过一个实例的例子来说明上述输入数据的拆分的方式(上述输入状态数据的拆分也可以同输入数据的拆分),对于输出结果与输入数据因为数据类型相同,其拆分的方式基本相同,假设该数据类型为矩阵,该矩阵为H*W,则拆分的方式可以为,如H的数值较小(小于设定阈值,例如100),那么在沿H方向将矩阵H*W拆分成H个向量(每个向量为矩阵H*W的一行),每个向量即为一个输入数据块,并对输入数据块的第一元素的位置标记在输入数据块,即输入数据块h,w,其中,h、w分别为输入数据块h,w的第一元素在H方向以及W方向的值,例如第一输入数据块,该h=1.w=1。从处理电路接收到输入数据块h,w后,将输入数据块h,w与权值每列元素一一对应相乘和累加运算得到中间结果w,i,中间结果的w为输入数据块的w值,i为与输入数据块计算的列元素的列数值,主处理电路确定中间结果在对应门的运算结果的位置为w、i。例如,输入数据块输入数据块1,1与权值第一列计算得到的输入中间结果1,1,主处理电路将输入中间结果1,1排列在对应门的运算结果第一行第一列。
本申请还提供一种LSTM运算方法,所述方法应用于计算装置所述LSTM包括:所述LSTM包括:输入门、忘记门、输出门和更新状态门,所述计算装置包括:运算单元、控制器单元、存储单元;所述存储单元存储:LSTM运算算子、输入数据Xt、权值数据、输出数据ht、输入状态值Ct-1、输入结果ht-1、输出状态值Ct;所述方法包括如下步骤:
步骤S601、控制器单元获取输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子,将输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子发送至运算单元,
步骤S601、运算单元依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果,依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht以及输出状态值Ct。
可选的,所述运算单元包括:主处理电路以及从处理电路;所述运算单元依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果具体包括:
所述控制器单元根据LSTM算子构建多个拆分算子、多个排序算子、乘法算子、激活算子以及加法算子;
所述主处理电路依据排序算子将输入数据Xt、权值数据以及输入状态值进行重排序,所述权值数据包括:各个门的权值数据,然后依据拆分算法将各个门的权值数据以及乘法算子广播至从处理电路,将输入数据以及输入状态值拆分成多个输入数据块以及多个输入状态数据块,将多个输入数据块以及多个输入状态数据块分发给所述从处理电路;
所述从处理电路依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果,依据乘法算子将所述多个输入状态数据块与各个门的权值数据执行乘法运算得到各个门的状态中间结果,将各个门的中间结果以及各个门的状态中间结果发送至主处理电路;
所述主处理电路依据排序算子将每个门的中间结果排序得到各个门的排序结果,依据加法算子将各个门的排序结果执行偏置运算得到各个门的运算结果,依据排序算子将每个状态中间结排序得到各个门的状态排序结果,依据加法算子将各个门的状态排序结果执行偏置运算得到各个门的状态运算结果;依据加法算子将各个门的运算结果以及各个门的状态运算结果对应相加后进行后续处理得到各个门的输出结果。
可选的,依据输入状态值Ct-1以及各个门的输出结果得到输出状态值Ct具体包括:
所述主处理电路依据乘法算子将输入状态值Ct-1与忘记门的输出结果ft相乘得到第一结果,依据乘法算子将更新状态门的输出结果gt与输入门的输出结果it相乘得到第二结果,将第一结果与第二结果相加得到输出状态值Ct。
可选的,所述依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht具体包括:
所述主处理电路依据激活算子对输出状态值Ct执行激活运算得到激活结果,将输出门的输出结果Ot与激活结果相乘得到输出结果ht。
本申请还揭露了一个LSTM装置,其包括一个或多个在本申请中提到的计算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的LSTM运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上计算装置时,计算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的卷积神经网络训练的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该LSTM装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请还揭露了一个组合处理装置,其包括上述的LSTM装置,通用互联接口,和其他处理装置。LSTM运算装置与其他处理装置进行交互,共同完成用户指定的操作。图7为组合处理装置的示意图。
其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为LSTM运算装置与外部数据和控制的接口,包括数据搬运,完成对本LSTM运算装置的开启、停止等基本控制;其他处理装置也可以和LSTM运算装置协作共同完成运算任务。
通用互联接口,用于在所述LSTM装置与其他处理装置间传输数据和控制算子。该LSTM装置从其他处理装置中获取所需的输入数据,写入LSTM装置片上的存储装置;可以从其他处理装置中获取控制算子,写入LSTM装置片上的控制缓存;也可以读取LSTM装置的存储模块中的数据并传输给其他处理装置。
可选的,该结构如图8所示,还可以包括存储装置,存储装置分别与所述LSTM装置和所述其他处理装置连接。存储装置用于保存在所述LSTM装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本LSTM装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述LSTM装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。参阅图9,图9提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件390、接口装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置与所述芯片封装结构内的芯片电连接。所述接口装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE3.0X16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接口装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干算子用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来算子相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (27)
1.一种计算装置,其特征在于,所述计算装置用于执行LSTM运算,所述LSTM包括:输入门、忘记门、输出门和更新状态门,所述计算装置包括:运算单元、控制器单元、存储单元;
所述存储单元,用于存储LSTM运算算子、输入数据Xt、权值数据、输出数据ht、输入状态值Ct-1、输入结果ht-1、输出状态值Ct;
所述控制器单元,用于获取输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子,将输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子发送至运算单元,
所述运算单元,用于依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果,依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht以及输出状态值Ct;所述运算单元包括:主处理电路以及从处理电路;
所述控制器单元,具体用于根据LSTM算子构建多个拆分算子、多个排序算子、乘法算子、激活算子以及加法算子;
所述主处理电路,具体用于依据排序算子将输入数据Xt、权值数据以及输入状态值进行重排序,所述权值数据包括:各个门的权值数据,然后依据拆分算法将各个门的权值数据以及乘法算子广播至从处理电路,将输入数据以及输入状态值拆分成多个输入数据块以及多个输入状态数据块,将多个输入数据块以及多个输入状态数据块分发给所述从处理电路;
所述从处理电路,用于依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果,依据乘法算子将所述多个输入状态数据块与各个门的权值数据执行乘法运算得到各个门的状态中间结果,将各个门的中间结果以及各个门的状态中间结果发送至主处理电路;
所述主处理电路,用于依据排序算子将每个门的中间结果排序得到各个门的排序结果,依据加法算子将各个门的排序结果执行偏置运算得到各个门的运算结果,依据排序算子将每个状态中间结排序得到各个门的状态排序结果,依据加法算子将各个门的状态排序结果执行偏置运算得到各个门的状态运算结果;依据加法算子将各个门的运算结果以及各个门的状态运算结果对应相加后进行后续处理得到各个门的输出结果。
2.根据权利要求1所述的装置,其特征在于,
所述主处理电路,具体用于依据乘法算子将输入状态值Ct-1与忘记门的输出结果ft相乘得到第一结果,依据乘法算子将更新状态门的输出结果gt与输入门的输出结果it相乘得到第二结果,将第一结果与第二结果相加得到输出状态值Ct。
3.根据权利要求2所述的装置,其特征在于,
所述主处理电路,具体用于依据激活算子对输出状态值Ct执行激活运算得到激活结果,将输出门的输出结果Ot与激活结果相乘得到输出结果ht。
4.根据权利要求1所述的装置,其特征在于,所述后续处理具体包括:
如为忘记门、输入门和输出门,所述后续处理为sigmoid运算;
如为更新状态门,所述后续处理为激活运算tanh函数。
5.根据权利要求1所述的装置,其特征在于,
所述主处理电路,还用于将输出数据ht作为下一时刻的输入结果,将输出状态值Ct作为下一时刻的输入状态值。
6.根据权利要求1-5任意一项所述的装置,其特征在于,如所述从处理电路的数量为多个,所述运算单元包括:树型模块,所述树型模块包括:一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;
所述树型模块,用于转发所述主处理电路与所述多个从处理电路之间的数据以及算子。
7.根据权利要求1-5任意一项所述的装置,其特征在于,如所述从处理电路的数量为多个,所述运算单元还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路,
所述分支处理电路,用于转发所述主处理电路与所述多个从处理电路之间的数据以及算子。
8.根据权利要求1-5任意一项所述的装置,其特征在于,如所述从处理电路的数量为多个,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;
所述K个从处理电路,用于转发所述主处理电路以及多个从处理电路之间的数据以及算子。
9.根据权利要求1-5任意一项所述的装置,其特征在于,所述主处理电路包括:转换处理电路;
所述转换处理电路,用于对数据执行转换处理,具体为:将主处理电路接收的数据执行第一数据结构与第二数据结构之间的互换。
10.根据权利要求1-5任意一项所述的装置,其特征在于,所述从处理电路包括:乘法处理电路和累加处理电路;
所述乘法处理电路,用于对接收到的输入数据块中的元素值与各个门的权值中对应位置的元素值执行乘积运算得到各个门的乘积结果;接收到的输入状态数据块中的元素值与各个门的权值中对应位置的元素值执行乘积运算得到各个门的另一乘积结果;
所述累加处理电路,用于对该各个门的乘积结果执行累加运算得到各个门的中间结果,将该各个门的另一乘积结果执行累加运算得到各个门的状态中间结果。
11.根据权利要求6所述的装置,其特征在于,所述树型模块为n叉树结构,所述n为大于等于2的整数。
12.一种LSTM运算装置,其特征在于,所述LSTM运算装置包括一个或多个如权利要求1-11任一项所述的计算装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的LSTM运算,将执行结果通过I/O接口传递给其他处理装置;
当所述LSTM运算装置包含多个所述计算装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述计算装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的LSTM的运算;多个所述计算装置共享同一控制系统或拥有各自的控制系统;多个所述计算装置共享内存或者拥有各自的内存;多个所述计算装置的互联方式是任意互联拓扑;
所述运算单元包括:主处理电路以及从处理电路;
所述控制器单元,具体用于根据LSTM算子构建多个拆分算子、多个排序算子、乘法算子、激活算子以及加法算子;
所述主处理电路,具体用于依据排序算子将输入数据Xt、权值数据以及输入状态值进行重排序,所述权值数据包括:各个门的权值数据,然后依据拆分算法将各个门的权值数据以及乘法算子广播至从处理电路,将输入数据以及输入状态值拆分成多个输入数据块以及多个输入状态数据块,将多个输入数据块以及多个输入状态数据块分发给所述从处理电路;
所述从处理电路,用于依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果,依据乘法算子将所述多个输入状态数据块与各个门的权值数据执行乘法运算得到各个门的状态中间结果,将各个门的中间结果以及各个门的状态中间结果发送至主处理电路;
所述主处理电路,用于依据排序算子将每个门的中间结果排序得到各个门的排序结果,依据加法算子将各个门的排序结果执行偏置运算得到各个门的运算结果,依据排序算子将每个状态中间结排序得到各个门的状态排序结果,依据加法算子将各个门的状态排序结果执行偏置运算得到各个门的状态运算结果;依据加法算子将各个门的运算结果以及各个门的状态运算结果对应相加后进行后续处理得到各个门的输出结果。
13.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求12所述的LSTM运算装置,通用互联接口和其他处理装置;
所述LSTM运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
14.根据权利要求13所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述LSTM运算装置和所述其他处理装置连接,用于保存所述LSTM运算装置和所述其他处理装置的数据。
15.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求1所述的计算装置或如权利要求12所述的LSTM运算装置或如权利要求14所述的组合处理装置。
16.一种电子设备,其特征在于,所述电子设备包括如所述权利要求15所述的芯片。
17.一种板卡,其特征在于,所述板卡包括:存储器件、接口装置和控制器件以及如权利要求15所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
18.根据权利要求17所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接口装置为:标准PCIE接口。
19.一种LSTM运算方法,其特征在于,所述方法应用于计算装置,所述LSTM包括:输入门、忘记门、输出门和更新状态门,所述计算装置包括:运算单元、控制器单元、存储单元;所述存储单元存储:LSTM运算算子、输入数据Xt、权值数据、输出数据ht、输入状态值Ct-1、输入结果ht-1、输出状态值Ct;
所述方法包括如下步骤:
所述控制器单元获取输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子,将输入数据Xt、权值数据、输入状态值Ct-1、输入结果ht-1、以及LSTM运算算子发送至运算单元,
所述运算单元依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果,依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht以及输出状态值Ct;
所述运算单元包括:主处理电路以及从处理电路;所述运算单元依据输入数据Xt、权值数据、输入结果ht-1以及LSTM运算算子执行输入门的运算、忘记门的运算、输出门的运算以及更新状态门的运算得到各个门的输出结果具体包括:
所述控制器单元根据LSTM算子构建多个拆分算子、多个排序算子、乘法算子、激活算子以及加法算子;
所述主处理电路依据排序算子将输入数据Xt、权值数据以及输入状态值进行重排序,所述权值数据包括:各个门的权值数据,然后依据拆分算法将各个门的权值数据以及乘法算子广播至从处理电路,将输入数据以及输入状态值拆分成多个输入数据块以及多个输入状态数据块,将多个输入数据块以及多个输入状态数据块分发给所述从处理电路;
所述从处理电路依据乘法算子将所述多个输入数据块与各个门的权值数据执行乘法运算得到各个门的中间结果,依据乘法算子将所述多个输入状态数据块与各个门的权值数据执行乘法运算得到各个门的状态中间结果,将各个门的中间结果以及各个门的状态中间结果发送至主处理电路;
所述主处理电路依据排序算子将每个门的中间结果排序得到各个门的排序结果,依据加法算子将各个门的排序结果执行偏置运算得到各个门的运算结果,依据排序算子将每个状态中间结排序得到各个门的状态排序结果,依据加法算子将各个门的状态排序结果执行偏置运算得到各个门的状态运算结果;依据加法算子将各个门的运算结果以及各个门的状态运算结果对应相加后进行后续处理得到各个门的输出结果。
20.根据权利要求19所述的方法,其特征在于,依据输入状态值Ct-1以及各个门的输出结果得到输出状态值Ct具体包括:
所述主处理电路依据乘法算子将输入状态值Ct-1与忘记门的输出结果ft相乘得到第一结果,依据乘法算子将更新状态门的输出结果gt与输入门的输出结果it相乘得到第二结果,将第一结果与第二结果相加得到输出状态值Ct。
21.根据权利要求19所述的方法,其特征在于,所述依据输入状态值Ct-1以及各个门的输出结果得到输出数据ht具体包括:
所述主处理电路依据激活算子对输出状态值Ct执行激活运算得到激活结果,将输出门的输出结果Ot与激活结果相乘得到输出结果ht。
22.根据权利要求19所述的方法,其特征在于,所述后续处理具体包括:
如为忘记门、输入门和输出门,所述后续处理为sigmoid运算;
如为更新状态门,所述后续处理为激活运算tanh函数。
23.根据权利要求19所述的方法,其特征在于,所述方法还包括:
所述主处理电路将输出数据ht作为下一时刻的输入结果,将输出状态值Ct作为下一时刻的输入状态值。
24.根据权利要求19-23任意一项所述的方法,其特征在于,如所述从处理电路的数量为多个,所述运算单元包括:树型模块,所述树型模块包括:一个根端口和多个支端口,所述树型模块的根端口连接所述主处理电路,所述树型模块的多个支端口分别连接多个从处理电路中的一个从处理电路;所述方法还包括:
所述树型模块转发所述主处理电路与所述多个从处理电路之间的数据以及算子。
25.根据权利要求19-23任意一项所述的方法,其特征在于,如所述从处理电路的数量为多个,所述运算单元还包括一个或多个分支处理电路,每个分支处理电路连接至少一个从处理电路,所述方法还包括:
所述分支处理电路转发所述主处理电路与所述多个从处理电路之间的数据以及算子。
26.根据权利要求19-23任意一项所述的方法,其特征在于,如所述从处理电路的数量为多个,所述多个从处理电路呈阵列分布;每个从处理电路与相邻的其他从处理电路连接,所述主处理电路连接所述多个从处理电路中的k个从处理电路,所述k个从处理电路为:第1行的n个从处理电路、第m行的n个从处理电路以及第1列的m个从处理电路;所述方法还包括:
所述K个从处理电路所述主处理电路以及多个从处理电路之间的数据以及算子。
27.根据权利要求19-23任意一项所述的方法,其特征在于,所述从处理电路包括:乘法处理电路和累加处理电路;所述方法具体包括:
所述乘法处理电路对接收到的输入数据块中的元素值与各个门的权值中对应位置的元素值执行乘积运算得到各个门的乘积结果;接收到的输入状态数据块中的元素值与各个门的权值中对应位置的元素值执行乘积运算得到各个门的另一乘积结果;
所述累加处理电路对该各个门的乘积结果执行累加运算得到各个门的中间结果,将该各个门的另一乘积结果执行累加运算得到各个门的状态中间结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811579542.3A CN109670581B (zh) | 2018-12-21 | 2018-12-21 | 一种计算装置及板卡 |
PCT/CN2019/105932 WO2020125092A1 (zh) | 2018-12-20 | 2019-09-16 | 计算装置及板卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811579542.3A CN109670581B (zh) | 2018-12-21 | 2018-12-21 | 一种计算装置及板卡 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109670581A CN109670581A (zh) | 2019-04-23 |
CN109670581B true CN109670581B (zh) | 2023-05-23 |
Family
ID=66147138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811579542.3A Active CN109670581B (zh) | 2018-12-20 | 2018-12-21 | 一种计算装置及板卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109670581B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020125092A1 (zh) * | 2018-12-20 | 2020-06-25 | 中科寒武纪科技股份有限公司 | 计算装置及板卡 |
CN110764714B (zh) * | 2019-11-06 | 2021-07-27 | 深圳大普微电子科技有限公司 | 一种数据处理方法、装置、设备及可读存储介质 |
CN112491555B (zh) * | 2020-11-20 | 2022-04-05 | 山西智杰软件工程有限公司 | 医疗电子签名的处理方法及电子设备 |
CN112329926B (zh) * | 2020-11-30 | 2024-09-10 | 珠海采筑电子商务有限公司 | 智能机器人的质量改善方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341542A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 用于执行循环神经网络和lstm运算的装置和方法 |
CN108268939A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001188767A (ja) * | 1999-12-28 | 2001-07-10 | Fuji Xerox Co Ltd | ニューラルネットワーク演算装置及びニューラルネットワークの演算方法 |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US10380481B2 (en) * | 2015-10-08 | 2019-08-13 | Via Alliance Semiconductor Co., Ltd. | Neural network unit that performs concurrent LSTM cell calculations |
WO2018058452A1 (zh) * | 2016-09-29 | 2018-04-05 | 北京中科寒武纪科技有限公司 | 一种执行人工神经网络运算的装置和方法 |
US10691996B2 (en) * | 2016-12-15 | 2020-06-23 | Beijing Deephi Intelligent Technology Co., Ltd. | Hardware accelerator for compressed LSTM |
WO2018120016A1 (zh) * | 2016-12-30 | 2018-07-05 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
-
2018
- 2018-12-21 CN CN201811579542.3A patent/CN109670581B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107341542A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 用于执行循环神经网络和lstm运算的装置和方法 |
CN108268939A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 用于执行lstm神经网络运算的装置和运算方法 |
Non-Patent Citations (1)
Title |
---|
何峰等.长短期记忆LSTM神经形态芯片设计的两步映射方法.《集成电路应用》.2018,(07),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN109670581A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522052B (zh) | 一种计算装置及板卡 | |
CN109543832B (zh) | 一种计算装置及板卡 | |
CN109670581B (zh) | 一种计算装置及板卡 | |
CN111047022B (zh) | 一种计算装置及相关产品 | |
CN111488976B (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN111079908B (zh) | 片上网络数据处理方法、存储介质、计算机设备和装置 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN111488963B (zh) | 神经网络计算装置和方法 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN111047021B (zh) | 一种计算装置及相关产品 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN111368967B (zh) | 一种神经网络计算装置和方法 | |
CN111368986B (zh) | 一种神经网络计算装置和方法 | |
CN111381882B (zh) | 数据处理装置及相关产品 | |
CN111047024B (zh) | 一种计算装置及相关产品 | |
CN111078623B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111367567B (zh) | 一种神经网络计算装置和方法 | |
CN111368987B (zh) | 一种神经网络计算装置和方法 | |
CN111368990B (zh) | 一种神经网络计算装置和方法 | |
CN110472734A (zh) | 一种计算装置及相关产品 | |
CN111260046B (zh) | 运算方法、装置及相关产品 | |
CN111258641B (zh) | 运算方法、装置及相关产品 | |
CN111078625B (zh) | 片上网络处理系统和片上网络数据处理方法 | |
CN111222632B (zh) | 计算装置、计算方法及相关产品 | |
CN111078624B (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 | ||
CB02 | Change of applicant information |
Address after: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant after: Zhongke Cambrian Technology Co.,Ltd. Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant before: Beijing Zhongke Cambrian Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TG01 | Patent term adjustment | ||
TG01 | Patent term adjustment |