CN111382847A - 数据处理装置及相关产品 - Google Patents

数据处理装置及相关产品 Download PDF

Info

Publication number
CN111382847A
CN111382847A CN201811611778.0A CN201811611778A CN111382847A CN 111382847 A CN111382847 A CN 111382847A CN 201811611778 A CN201811611778 A CN 201811611778A CN 111382847 A CN111382847 A CN 111382847A
Authority
CN
China
Prior art keywords
unit
neural network
data
result
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.)
Granted
Application number
CN201811611778.0A
Other languages
English (en)
Other versions
CN111382847B (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201811611778.0A priority Critical patent/CN111382847B/zh
Publication of CN111382847A publication Critical patent/CN111382847A/zh
Application granted granted Critical
Publication of CN111382847B publication Critical patent/CN111382847B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种数据处理装置及相关产品。数据处理装置包括:运算模块、存储模块和系统总线;运算模块与存储模块通过系统总线电连接;运算模块用于获取神经网络算法数据中的权值和输入数据,并根据权值和输入数据执行异或运算,得到异或运算结果,并通过系统总线将异或运算结果输出给存储模块;存储模块用于根据异或运算结果,获得并存储乘法运算结果。本申请提供的数据处理装置及相关产品,不需要调用其他芯片的数据,使得在执行神经网络算法时,在同一芯片内完成数据运算、存储及调用,提高了访存速度和带宽。

Description

数据处理装置及相关产品
技术领域
本申请涉及信息处理技术领域,特别是涉及一种数据处理装置及相关产品。
背景技术
随着神经网络的不断发展,在进行神经网络运算时,常常会对神经网络算法中输入数据的权值、输入数据进行乘法运算,获得神经网络的输出数据。
在手机、汽车和人造卫星等移动端、低功耗场景中,通常采用量化神经网络(Quatized Neural Network,QNN)的方法,削减神经网络推导和训练过程中存储或计算的开销。量化神经网络是将32位浮点数表示的神经网络算法中的权值、输入数据,用极少位的bit位表示的方法。在一些特定的场景中,通过用1个bit位表示神经网络算法中的权值和输入数据的二值神经网络(Binarized Neural Network,BNN),乘法运算被简化为异或运算和累加运算,在执行二值神经网络算法时,运算芯片进行异或运算获取的运算结果需要先存储至存储芯片,再调用存储芯片中的运算结果,进行累加运算,获取乘法运算结果。
在执行二值神经网络算法中,运算芯片需要多次向存储芯片存储异或运算结果,并多次调用存储芯片中异或存储结果,运算芯片与存储芯片之间的数据交互,对访存速度和带宽要求较高。
发明内容
本申请实施例提供了一种数据处理装置及相关产品,可以提高神经网络算法中乘法运算访存速度。
第一方面,一种数据处理装置,所述数据处理装置用于执行神经网络计算,所述数据处理装置包括:运算模块、存储模块和系统总线;所述运算模块与所述存储模块通过所述系统总线电连接;
所述运算模块用于获取神经网络算法数据中的权值和输入数据,并根据所述权值和所述输入数据执行异或运算,得到异或运算结果,并通过所述系统总线将所述异或运算结果输出给所述存储模块;
所述存储模块用于根据所述异或运算结果,获得并存储乘法运算结果。
在其中一个实施例中,所述存储模块包括累加运算单元和存储单元;所述累加运算单元与所述存储单元电连接;所述累加运算单元通过所述系统总线与所述运算模块电连接;
所述累加运算单元用于获取所述运算模块输出的所述异或运算结果,并累加所述异或运算结果,得到所述乘法运算结果;
所述存储单元,用于存储所述乘法运算结果。
在其中一个实施例中,所述累加运算单元用于从所述存储单元中获取上一次的乘法运算结果,并将所述上一次的乘法运算结果与本次的异或运算结果累加,获取所述乘法运算结果。
在其中一个实施例中,所述累加运算单元设置在所述存储单元内部;
或者,
所述累加运算单元设置在所述存储单元外部。
在其中一个实施例中,所述存储单元包括多个存储器,所述存储器用于存储所述乘法运算结果。
在其中一个实施例中,所述运算模块包括运算单元和缓存单元,所述运算单元与所述缓存单元电连接,所述缓存单元与所述存储模块通过所述系统总线连接;
所述缓存单元用于获取所述神经网络算法数据中的权值和输入数据;
所述运算单元用于从所述缓存单元中获取所述神经网络算法数据中的部分输入数据和对应的权值,并根据所述对应的权值对所述部分输入数据执行异或运算,得到所述异或运算结果,并将所述异或运算结果发送至所述缓存单元进行存储。
在其中一个实施例中,所述缓存单元还用于将所述异或运算结果通过所述系统总线发送给所述存储模块。
在其中一个实施例中,所述运算单元包括多个运算器,所述多个运算器用于执行所述异或运算。
在其中一个实施例中,若所述运算单元包括主运算器,则所述主运算器通过广播方式向其他所有所述运算器传输异或运算结果;
或者,
所述运算器通过节点传播方式沿预设方向向其他所述运算器传输异或运算结果。
在其中一个实施例中,所述运算模块还包括输出单元;所述输出单元与所述存储模块通过所述系统总线连接;所述输出单元用于获取所述存储模块存储的乘法运算结果,并将所述乘法运算结果发送给外部运算设备。
在其中一个实施例中,所述数据处理装置包括多层DRAM堆叠而成的3D内存芯片。
第二方面,本申请实施例提供了一种组合处理装置,该组合处理装置包括如第一方面所述的数据处理装置、通用互联接口,和其他处理装置。该数据处理装置与上述其他处理装置进行交互,共同完成用户指定的操作。该组合处理装置还可以包括存储装置,该存储装置分别与所述数据处理装置和所述其他处理装置连接,用于保存所述数据处理装置和所述其他处理装置的数据。
第三方面,本申请实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面所述的数据处理装置、上述第二方面所述的组合处理装置。
第四方面,本申请实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述第三方面所述的神经网络芯片。
第五方面,本申请实施例提供了一种板卡,该板卡包括上述第四方面所述的神经网络芯片封装结构。
第六方面,本申请实施例提供了一种电子装置,该电子装置包括上述第三方面所述的神经网络芯片或者上述第五方面所述的板卡。
上述数据处理装置及相关产品,数据处理装置包括:运算模块、存储模块和系统总线;运算模块与存储模块通过系统总线电连接;运算模块用于获取神经网络算法数据中的权值和输入数据,并根据权值和输入数据执行异或运算,得到异或运算结果,并通过系统总线将异或运算结果输出给存储模块;存储模块用于根据异或运算结果,获得并存储乘法运算结果。本申请提供的数据处理装置及相关产品,不需要调用其他芯片的数据,使得在执行神经网络算法时,在同一芯片内完成数据运算、存储及调用,提高了访存速度和带宽。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据处理装置的结构示意图;
图2为另一个实施例中数据处理装置的结构示意图;
图3为另一实施例中数据处理装置的结构示意图;
图4为另一实施例中数据处理装置的结构示意图;
图5为另一实施例中数据处理装置的结构示意图;
图6为另一实施例中数据处理装置的结构示意图;
图7为另一实施例中数据处理装置的结构示意图;
图8为另一实施例中数据处理装置的结构示意图;
图9为一个实施例中一种组合处理装置的结构示意图;
图10为一个实施例中另一种组合处理装置的结构示意图;
图11为一个实施例中一种板卡的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
需要说明的是,在手机、汽车和人造卫星等移动端、低功耗场景下,可以采用量化神经网络将神经网络算法中的权值、输入数据用极少个数的bit位表示。采用这种方法,神经网络算法中的乘法可以被替代为移位。进一步地,二值神经网络是上述量化神经网络在比特数n=1时的一个特例,其是将神经网络算法中的权值、输入用1个bit位表示,用异或和bit计数的方式替代了乘法累加,进一步缩减了计算量。
基于上述方法,对神经网络算法中的乘法运算进行简化,使得神经网络算法中的乘法运算可以简化为简单的异或运算,其中,部分运算可以转移至内存中进行运算。下面通过图1-5所示实施例来详细说明。
本发明实施例涉及的数据处理装置,可以通过软件、硬件或者软硬件结合的方式实现;该数据处理装置可以为图1所示的部分或者全部。该数据处理装置用于执行神经网络数据的处理,数据处理装置可以包括:运算模块10、存储模块20和系统总线30;运算模块10与存储模块20通过系统总线30电连接;运算模块10用于获取神经网络算法数据中的权值和输入数据,并根据权值和输入数据执行异或运算,得到异或运算结果,并通过系统总线30将异或运算结果输出给存储模块20;存储模块20用于根据异或运算结果,获得并存储乘法运算结果。
具体地,上述运算模块10可以包括多个运算器,运算模块10用于获取神经网络算法数据中的权值和输入数据,其中权值可以是运算模块10在进行乘法运算时,各运算器执行异或运算的参数,其可以通过神经网络的预训练获得。通过神经网络预训练获得该权值的过程,可以在图形处理器(Graphics Processing Unit,GPU)中完成。输入数据可以是运算模块10执行乘法运算中的数据,其可以是神经网络算法中的神经元数据,该神经元数据可以是神经元进行计算时所需的输入神经元数据。运算模块10通过多个运算器,根据权值,对输入数据进行异或运算,获得异或运算结果,并通过系统总线30将异或运算结果输出给存储模块20。
上述存储模块20用于根据运算模块10获得的异或运算结果,获得乘法运算结果,其可以是直接获取运算模块10的异或运算结果,即为乘法运算结果;也可以是将异或运算结果进行累加,获得乘法运算结果;本申请实施例对此不做限制。系统总线30可以是硅片通道(Through Silicon Vias,TSV),通过硅通孔铜互连的立体垂直整合,其可以是利用短的垂直电连接或通过硅晶片的通孔,以建立芯片内的电连接,为芯片内的连接提供最短的互连路径。
本实施例提供的数据处理装置,包括:运算模块、存储模块和系统总线;运算模块与存储模块通过系统总线电连接;运算模块用于获取神经网络算法数据中的权值和输入数据,并根据权值和输入数据执行异或运算,得到异或运算结果,并通过系统总线将异或运算结果输出给存储模块;存储模块用于根据异或运算结果,获得并存储乘法运算结果。本申请提供的数据处理装置及相关产品,不需要调用其他芯片的数据,使得在执行神经网络算法时,在同一芯片内完成数据运算、存储及调用,提高了访存速度和带宽。
图2为另一实施例提供的一种数据处理装置的结构示意图,其中,存储模块20包括累加运算单元201和存储单元202;累加运算单元201与存储单元202电连接;累加运算单元201通过系统总线30与运算模块10电连接;累加运算单元201用于获取运算模块10输出的异或运算结果,并累加异或运算结果,得到乘法运算结果;存储单元202用于存储乘法运算结果。
具体地,累加运算单元201用于获取运算模块10输出的异或运算结果,并累加异或运算结果,得到乘法运算结果。其可以是将每一次获取的运算模块10输出的异或运算结果,逐一累加获得乘法运算的结果,也可以是每次获取的运算模块10输出的异或运算结果时,将本次获取的异或运算结果,与上一次累加得到的乘法运算结果进行累加,获得乘法运算的结果,本申请实施例对此不做限制。上述的存储单元202用于存储乘法运算结果。其可以是在累加运算单元201完成一次累加后,将累加得到的乘法运算结果存储至存储单元201。
上述实施例提供的数据处理装置,存储模块包括:累加运算单元和存储单元;累加运算单元与存储单元电连接;累加运算单元通过系统总线与运算模块电连接;累加运算单元用于获取运算模块输出的异或运算结果,并累加异或运算结果,得到乘法运算结果;存储单元用于存储乘法运算结果。本实施例中,由于存储模块中设置有累加运算单元,使得累加运算单元在累加异或运算结果时,不必反复读取外部的存储装置中的异或运算结果,降低了累加运算的数据读取造成的数据交互,提高了神经网络算法的运算速度。
可选地,累加运算单元201用于从存储单元202中获取上一次的乘法运算结果,并将上一次的乘法运算结果与本次的异或运算结果累加,获取乘法运算结果。
具体地,在上述实施例的基础上,累加运算单元201用于从存储单元202中获取上一次的乘法运算结果,并通过系统总线30获得运算单元10得到的异或运算结果,累加运算单元201将上一次存储在存储单元202中的乘法运算结果,和本次通过系统总线30获得异或运算结果进行累加,获得乘法运算结果。
在上述实施例的基础上,累加运算单元201可以设置在存储单元202内部,或者,累加运算单元201也可以设置在存储单元202的外部。下面通过图3和图4来详细说明。
可选地,图3为另一实施例中数据处理装置的结构示意图,如图3所示,累加运算单元201设置在存储单元202内部;图4为另一实施例中数据处理装置的结构示意图,如图4所示,累加运算单元201设置在存储单元202外部。
具体地,当累加运算单元201设置在存储单元202内部时,如图3所示,存储单元202可以包括多层存储器,累加运算单元201可以分别设置在每一层存储器上,累加运算单元201可以直接获取存储单元202中存储的乘法运算结果;当累加运算单元201设置在存储单元202外部时,如图4所示,累加运算单元201可以设置在系统总线30上,累加运算单元201可以通过系统总线30获取存储单元202上存储的上一次乘法运算结果,并从运算单元10中获取异或运算结果,并将本次的异或运算结果累加,获得乘法运算结果。
上述实施例中提供的数据处理装置,累加运算单元设置在存储单元内部,或者,累加运算单元设置在存储单元外部。当累加运算单元设置在存储单元内部,累加运算单元直接从存储单元中获得上一次乘法运算结果,与本次的异或运算结果累加,获取乘法运算结果。本实施中,当累加运算单元设置在存储单元内部,通过存储单元获得上一次乘法运算结果时,所需的数据交互的速度快,进一步地提高了神经网络算法的运算速度。当累加单元设置在存储单元外部时,存储单元的体积减小,进而降低了数据处理装置的体积,节省数据处理装置所占空间。
可选地,存储单元202包括多个存储器,存储器用于存储乘法运算结果。
具体地,存储单元202包括多个存储器,存储器用于存储乘法运算结果,其中,存储器可以两两连接。在存储单元202可以通过系统总线30获得运算单元10输出的运算结果,并将运算结果存储在多个存储器中。累加运算单元201从多个存储器中,获取上一次乘法运算结果和本次异或运算结果,累加获得乘法运算结果。
上述实施例详细描述了存储模板的工作过程,下面通过图5来详细描述运算模块的结构和工作过程。
图5为另一实施例中数据处理装置的结构示意图,其中,运算模块10包括运算单元101和缓存单元102,运算单元101与缓存单元102电连接,缓存单元102与存储模块20通过系统总线30连接;缓存单元102用于获取神经网络算法数据中的权值和输入数据;运算单元101用于从缓存单元102中获取神经网络算法数据中的部分输入数据和对应的权值,并根据对应的权值对部分输入数据执行异或运算,得到异或运算结果,并将异或运算结果发送至缓存单元102进行存储。
具体地,运算模块10包括运算单元101和缓存单元102,运算单元101与缓存单元102电连接,运算单元101用于从缓存单元102中获取神经网络算法数据中的部分输入数据和对应的权值,并根据对应的权值对部分输入数据执行异或运算,得到异或运算结果。可选地,运算单元101可以包括多个运算器,多个运算器用于执行异或运算。可选地,如图6所示,多个运算器可以是一个主运算器和多个从运算器,其中主运算器分别与所有多个从运算器电连接。其可以是主运算器向各个从运算器分别分配待计算数据,各从运算器根据待计算数据,完成异或运算,得到异或运算结果。如图7所示,多个运算器也可以呈阵列型设置,在前的运算器将数据传递给在后的运算器,多个运算器根据待计算数据完成异或运算,得到异或运算结果。
进一步地,缓存单元102用于获取神经网络算法数据中的权值和输入数据,运算单元101从缓存单元102中获取神经网络算法数据中的部分权值和部分输入数据,进行异或运算,得到异或运算结果,进而将异或运算结果发送至缓存单元102进行存储。可选地,缓存单元102还用于将异或运算结果通过系统总线30发送给存储模块20。缓存单元102可以实时将异或运算结果通过系统总线30发送给存储模块20,也可以间隔一个时间周期将异或运算结果通过系统总线30发送给存储模块20,本申请实施例对此不做限制。
上述实施例中提供的数据处理装置,运算模块包括运算单元和缓存单元,运算单元与缓存单元电连接,缓存单元与存储模块通过系统总线连接;缓存单元用于获取神经网络算法数据中的权值和输入数据;运算单元用于从缓存单元中获取神经网络算法数据中的部分输入数据和对应的权值,并根据对应的权值对部分输入数据执行异或运算,得到异或运算结果,并将异或运算结果发送至缓存单元进行存储。本实施例中,通过运算模块中的运算单元完成异或运算,并将异或运算结果发送至缓存单元进行存储,缓存单元将异或运算结果发送给存储模块进行后续处理,使得神经网络算法可以在同一数据处理装置中完成,不必反复读取外部的存储装置中的异或运算结果,降低了累加运算的数据读取造成的数据交互,提高了神经网络算法的运算速度。
在上述实施例的基础上,继续如图6所示,可选地,若运算单元101包括主运算器,则主运算器通过广播方式向其他所有运算器传输异或运算结果;或者,继续如图7所示,运算器通过节点传播方式沿预设方向向其他运算器传输异或运算结果。
具体地,如图6所示,运算单元101包括主运算器,主运算器通过广播的方式向其他所有运算器传输异或运算结果。其中,运算单元101可以包括一个主运算器,也可以包括多个主运算器。当运算单元101包括一个主运算器时,该主运算器通过广播方式向其他所有运算器传输异或运算结果;当运算单元101包括多个主运算器时,各主运算器通过广播方式分别向其他所有与该主运算器连接的运算器传输异或运算结果;本申请实施例对此不做限制。
进一步地,多个运算器可以如图7所示的阵列分布,其中,与缓存单元102相邻的运算器从缓存单元102中获取到神经网络算法数据中的部分权值和部分输入数据,将部分权值和部分输入数据向与其相邻的其他运算器传递传输。例如,如图7所示,其可以是运算器1011从缓存单元102中获取到神经网络算法数据中的部分权值和部分输入数据,运算器1011将部分权值和部分输入数据传输至运算器1012,运算器1012将部分权值和部分输入数据传输至运算器1013,直至传输至运算器101n。
在上述实施例的基础上,当数据处理装置完成乘法运算后,还可以通过运算模块将乘法运算的结果发送给外部运算设备。
可选地,继续参见图5所示,运算模块10还包括输出单元103;输出单元103与存储模块20通过系统总线30连接;输出单元103用于获取存储模块20存储的乘法运算结果,并将乘法运算结果发送给外部运算设备800。
具体地,运算模块10还包括输出单元103;输出单元103与存储模块20通过系统总线30连接;输出单元103用于获取存储模块20存储的乘法运算结果,并将乘法运算结果发送给外部运算设备800。其中,输出单元103可以实时获取存储模块20存储的乘法运算结果,也可以是间隔一个时间周期获取存储模块20中存储的乘法运算结果,本申请实施例对此不做限制。外部运算设备800可以是神经网络算法中的下一个神经元,也可以是其他运算设备,本申请实施例对此不做限制。输出单元103可以是在获取存储模块20中存储的乘法运算结果时,就将乘法运算结果发送给外部运算设备800,也可以是根据外部运算设备发送的获取指令,将乘法运算结果发送给外部运算设备800,本申请实施例对此不做限制。
可选地,数据处理装置包括多层DRAM堆叠而成的3D内存芯片。
具体地,上述数据处理装置可以通过3D内存芯片来实现,其中,3D内存芯片是通过3D封装技术,将多层动态随机存取存储器(Dynamic Random Access Memory,DRAM)堆叠而成的新型内存。3D内存能提供很高的内存容量和访存带宽,在相同数据复用度的情况下有效提升处理器的运算速度,同时能够把神经网络加速模块中的缓存器(buffer)做的更小,将一部分运算结构转移到存储中。如图8所示,3D内存芯片,逻辑部分可以实现运算模块10的功能,DRAM可以实现存储模块20的功能,层间用硅片通道(TSV)互联。
参照图9所示,本申请还提供了一种组合处理装置,其包括上述数据处理装置、通用互联接口和除上述数据处理装置以外的其它处理装置;数据处理装置与其它处理装置进行交互,共同完成用户指定的计算操作。其中,其他处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置所包括的处理器数量不做限制。其他处理装置作为数据处理装置与外部数据和控制的接口,包括数据搬运,完成对本数据处理装置的开启、停止等基本控制;其他处理装置也可以和数据处理装置协作共同完成运算任务。通用互联接口,用于在所述数据处理装置与其他处理装置间传输数据和控制指令。该数据处理装置从其他处理装置中获取所需的输入数据,写入数据处理装置片上的共享存储器;可以从其他处理装置中获取控制指令,写入数据处理装置片上的神经网络装置;也可以读取数据处理装置的共享存储器中的数据并传输给其他处理装置。
可选的,参照图10所示,上述组合处理装置还可以包括存储装置,存储装置分别与所述数据处理装置和所述其他处理装置连接。存储装置用于保存在所述数据处理装置和所述其他处理装置的数据,尤其适用于所需要运算的数据在本数据处理装置或其他处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一个实施例中,本申请还提供了一种神经网络芯片,其包括了上述数据处理装置和/或组合处理装置。
在一个实施例中,本申请还提供了一种神经网络芯片封装结构,其包括了上述神经网络芯片。
在一个实施例中,本申请还提供了一种板卡,其包括了上述神经网络芯片封装结构。参照图11所示,上述板卡除了包括上述芯片封装结构81以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件82、接口装置83和控制器件84;所述存储器件82与所述芯片封装结构81内的神经网络芯片811通过总线连接,用于存储数据,所述存储器件82可以包括多组存储单元821。每一组所述存储单元821与所述神经网络芯片811通过总线连接。可以理解,每一组所述存储单元821可以是DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述神经网络芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接口装置83与所述芯片封装结构81内的神经网络芯片811电连接。所述接口装置83用于实现所述神经网络芯片811与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接口装置83可以为标准PCIE(peripheral componentinterconnect express,一种高速串行计算机扩展总线标准)接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述神经网络芯片,实现数据转移。优选的,当采用PCIE3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接口装置83还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,所述接口装置能够实现转接功能即可。另外,所述神经网络芯片811的计算结果仍由所述接口装置83传送回外部设备(例如服务器)。
所述控制器件84与所述神经网络芯片811电连接。所述控制器件84用于对所述芯片的状态进行监控。具体的,所述神经网络芯片811与所述控制器件84可以通过SPI(SerialPeripheral Interface,串行外设接口)接口电连接。所述控制器件可以包括单片机(MicroController Unit,MCU)。如所述神经网络芯片可以包括多个数据处理装置和/或组合处理装置,可以带动多个负载。因此,所述神经网络芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制器件84可以实现对所述神经网络芯片中多个数据处理装置和/或组合处理装置的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。电子设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的全部或部分处理过程是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:RandomAccess Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (17)

1.一种数据处理装置,其特征在于,所述数据处理装置用于执行神经网络计算,所述数据处理装置包括:运算模块、存储模块和系统总线;所述运算模块与所述存储模块通过所述系统总线电连接;
所述运算模块用于获取神经网络算法数据中的权值和输入数据,并根据所述权值和所述输入数据执行异或运算,得到异或运算结果,并通过所述系统总线将所述异或运算结果输出给所述存储模块;
所述存储模块用于根据所述异或运算结果,获得并存储乘法运算结果。
2.根据权利要求1所述装置,其特征在于,所述存储模块包括累加运算单元和存储单元;所述累加运算单元与所述存储单元电连接;所述累加运算单元通过所述系统总线与所述运算模块电连接;
所述累加运算单元用于获取所述运算模块输出的所述异或运算结果,并累加所述异或运算结果,得到所述乘法运算结果;
所述存储单元,用于存储所述乘法运算结果。
3.根据权利要求2所述装置,其特征在于,所述累加运算单元用于从所述存储单元中获取上一次的乘法运算结果,并将所述上一次的乘法运算结果与本次的异或运算结果累加,获取所述乘法运算结果。
4.根据权利要求3所述装置,其特征在于,
所述累加运算单元设置在所述存储单元内部;
或者,
所述累加运算单元设置在所述存储单元外部。
5.根据权利要求2-4任一项所述装置,其特征在于,所述存储单元包括多个存储器,所述存储器用于存储所述乘法运算结果。
6.根据权利要求1-4任一项所述装置,其特征在于,所述运算模块包括运算单元和缓存单元,所述运算单元与所述缓存单元电连接,所述缓存单元与所述存储模块通过所述系统总线连接;
所述缓存单元用于获取所述神经网络算法数据中的权值和输入数据;
所述运算单元用于从所述缓存单元中获取所述神经网络算法数据中的部分输入数据和对应的权值,并根据所述对应的权值对所述部分输入数据执行异或运算,得到所述异或运算结果,并将所述异或运算结果发送至所述缓存单元进行存储。
7.根据权利要求6所述装置,其特征在于,所述缓存单元还用于将所述异或运算结果通过所述系统总线发送给所述存储模块。
8.根据权利要求6所述装置,其特征在于,所述运算单元包括多个运算器,所述多个运算器用于执行所述异或运算。
9.根据权利要求8所述装置,其特征在于,
若所述运算单元包括主运算器,则所述主运算器通过广播方式向其他所有所述运算器传输异或运算结果;
或者,
所述运算器通过节点传播方式沿预设方向向其他所述运算器传输异或运算结果。
10.根据权利要求1-4任一项所述装置,其特征在于,所述运算模块还包括输出单元;所述输出单元与所述存储模块通过所述系统总线连接;所述输出单元用于获取所述存储模块存储的乘法运算结果,并将所述乘法运算结果发送给外部运算设备。
11.根据权利要求1-4任一项所述装置,其特征在于,所述数据处理装置包括多层DRAM堆叠而成的3D内存芯片。
12.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求1-11中任一项所述的数据处理装置、通用互联接口和除所述数据处理装置以外的其它处理装置;所述数据处理装置与所述其它处理装置进行交互。
13.根据权利要求12所述的组合处理装置,其特征在于,还包括:存储装置,所述存储装置分别与所述数据处理装置和所述其它处理装置连接,用于保存所述数据处理装置和所述其它处理装置的数据。
14.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求12-13中任一项所述的组合处理装置。
15.一种神经网络芯片封装结构,其特征在于,所述神经网络芯片封装结构包括如权利要求14所述的神经网络芯片。
16.一种板卡,其特征在于,所述板卡包括如权利要求15所述的神经网络芯片封装结构。
17.一种电子设备,其特征在于,所述电子设备包括如权利要求16所述的板卡。
CN201811611778.0A 2018-12-27 2018-12-27 数据处理装置及相关产品 Active CN111382847B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811611778.0A CN111382847B (zh) 2018-12-27 2018-12-27 数据处理装置及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811611778.0A CN111382847B (zh) 2018-12-27 2018-12-27 数据处理装置及相关产品

Publications (2)

Publication Number Publication Date
CN111382847A true CN111382847A (zh) 2020-07-07
CN111382847B CN111382847B (zh) 2022-11-22

Family

ID=71220806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811611778.0A Active CN111382847B (zh) 2018-12-27 2018-12-27 数据处理装置及相关产品

Country Status (1)

Country Link
CN (1) CN111382847B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152947A (zh) * 2020-08-21 2020-12-29 北京百度网讯科技有限公司 处理器及实现方法、电子设备和存储介质
CN113238715A (zh) * 2021-06-03 2021-08-10 上海新氦类脑智能科技有限公司 智能文件系统、及其配置方法、智能辅助计算设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018016608A1 (ja) * 2016-07-21 2018-01-25 株式会社デンソーアイティーラボラトリ ニューラルネットワーク装置、車両制御システム、分解処理装置、及びプログラム
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法
CN108205704A (zh) * 2017-09-27 2018-06-26 深圳市商汤科技有限公司 一种神经网络芯片

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018016608A1 (ja) * 2016-07-21 2018-01-25 株式会社デンソーアイティーラボラトリ ニューラルネットワーク装置、車両制御システム、分解処理装置、及びプログラム
CN108205704A (zh) * 2017-09-27 2018-06-26 深圳市商汤科技有限公司 一种神经网络芯片
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
叶莉娅等: "基于神经网络嵌入式系统体系结构的研究", 《杭州电子科技大学学报》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152947A (zh) * 2020-08-21 2020-12-29 北京百度网讯科技有限公司 处理器及实现方法、电子设备和存储介质
US20230179546A1 (en) 2020-08-21 2023-06-08 Beijing Baidu Netcom Science And Technology Co., Ltd. Processor and implementation method, electronic device, and storage medium
US11784946B2 (en) 2020-08-21 2023-10-10 Beijing Baidu Netcom Science And Technology Co., Ltd. Method for improving data flow and access for a neural network processor
CN113238715A (zh) * 2021-06-03 2021-08-10 上海新氦类脑智能科技有限公司 智能文件系统、及其配置方法、智能辅助计算设备和介质
CN113238715B (zh) * 2021-06-03 2022-08-30 上海新氦类脑智能科技有限公司 智能文件系统、及其配置方法、智能辅助计算设备和介质

Also Published As

Publication number Publication date
CN111382847B (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
CN110597559B (zh) 计算装置以及计算方法
CN112686379B (zh) 集成电路装置、电子设备、板卡和计算方法
CN111488976B (zh) 神经网络计算装置、神经网络计算方法及相关产品
CN111382847B (zh) 数据处理装置及相关产品
US11775808B2 (en) Neural network computation device and method
CN109711540B (zh) 一种计算装置及板卡
CN111209243B (zh) 数据处理装置、方法及相关产品
CN111381882B (zh) 数据处理装置及相关产品
CN111047005A (zh) 运算方法、装置、计算机设备和存储介质
TW201931219A (zh) 集成電路芯片裝置及相關產品
CN111260043A (zh) 数据选择器、数据处理方法、芯片及电子设备
CN111382856B (zh) 数据处理装置、方法、芯片及电子设备
CN111382852B (zh) 数据处理装置、方法、芯片及电子设备
CN111258537B (zh) 一种防止数据溢出的方法、装置和芯片
CN111260070B (zh) 运算方法、装置及相关产品
CN115549854A (zh) 循环冗余校验方法、装置、存储介质以及电子设备
CN111047030A (zh) 运算方法、装置、计算机设备和存储介质
CN112232498B (zh) 一种数据处理装置、集成电路芯片、电子设备、板卡和方法
CN111061507A (zh) 运算方法、装置、计算机设备和存储介质
CN111382853A (zh) 数据处理装置、方法、芯片及电子设备
CN112395003A (zh) 运算方法、装置及相关产品
CN111738428B (zh) 计算装置、方法及相关产品
CN111384944B (zh) 全加器、半加器、数据处理方法、芯片及电子设备
CN111275197B (zh) 运算方法、装置、计算机设备和存储介质
CN111382855B (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
GR01 Patent grant
GR01 Patent grant