CN102947818A - 神经处理单元 - Google Patents
神经处理单元 Download PDFInfo
- Publication number
- CN102947818A CN102947818A CN2011800312012A CN201180031201A CN102947818A CN 102947818 A CN102947818 A CN 102947818A CN 2011800312012 A CN2011800312012 A CN 2011800312012A CN 201180031201 A CN201180031201 A CN 201180031201A CN 102947818 A CN102947818 A CN 102947818A
- Authority
- CN
- China
- Prior art keywords
- memory
- value
- contextual information
- processor
- activation
- 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
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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Neurology (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Memory System (AREA)
- General Factory Administration (AREA)
- Manipulator (AREA)
Abstract
本文公开的主题提供了用于基于神经的处理的方法、装置和制造物品。一方面,提供了一种方法。该方法可包括从第一存储器读取基于至少一个连接值存储的上下文信息;从第二存储器读取与至少一个连接值相匹配的激活值;通过第一处理器将上下文信息和激活值发送至多个微引擎中的至少一个微引擎,从而将该至少一个微引擎配置为神经元;及在该至少一个微引擎上生成表示神经元的输出的值。还公开了相关装置、***、方法和物品。
Description
相关申请的交叉引用
本申请根据35U.S.C.§119(e)要求下述临时申请的权益,并通过引用将该临时申请全文并入本文中:于2010年5月19日提交的、题为“NeuralProcessing Unit”的系列号为61/346,441的临时申请。
技术领域
本申请涉及数据处理,具体地,涉及基于神经的处理。
背景技术
可以基于限定神经元、树突和轴突的行为的各种神经模型来实施基于神经的数据处理。在一些实例中,可利用数量巨大的平行神经元和这些神经元之间的连接来实施基于神经的数据处理。基于神经的处理的平行性质使得其十分适于处理诸如数据处理、信号处理、预测、分类的任务及类似任务。
发明内容
本文公开的主题提供了用于神经处理的方法、装置和制造物品。
一方面,提供了一种方法。该方法可包括从第一存储器读取基于至少一个连接值存储的上下文信息(context information);从第二存储器读取与所述至少一个连接值相匹配的激活值;通过第一处理器将上下文信息和激活值发送至多个微引擎中的至少一个微引擎,从而将所述至少一个微引擎配置为神经元;及在所述至少一个微引擎上生成表示神经元的输出的值。
方法的实施方式包括本文描述的一个或多个特征(包括下述特征中的一个或多个)。从第一存储器读取还可包括读取包括上下文信息的数据结构,该上下文信息基于用于在多个微引擎上实施的神经元的连接值而连续地存储在存储器中。数据结构可包括多个块,多个块中的每一个块均包括限定在神经元上的执行的类型、表示包括至少一个连接值的上下文信息在第一存储器中的存储位置的第一地址以及表示激活值在第二存储器中的存储位置的第二地址。数据结构可包括多个顺序块,多个顺序块中的每一个均包括连接值以及神经元类型,该神经元类型限定实施在多个微引擎中的一个上的相应神经元。顺序块可作为包被发送至多个微引擎中的至少一个,并且其中,多个微引擎中的每一个均包括至少一个处理器和至少一个存储器。数据结构可包括多个顺序块,每个顺序块均包括神经元类型和用于相应神经元的多个连接值。第一处理器可与第一存储器相连以使得能够从第一存储器读取。可在至少一个微引擎上基于上下文信息和激活值生成值,而不访问第一存储器和第二存储器以获得额外的上下文信息。第一存储器和第二存储器可实施在集成电路的同一存储器中。生成的值可至少发送至第二存储器。
还描述了包括有形嵌入的机器可读介质的物品,该机器可读介质是可操作的以使得一个或多个机器(例如计算机等)实施本文描述的操作。类似地,还描述了可包括处理器和连接至处理器的存储器的***。存储器可包括一个或多个程序,该程序使得处理器执行本文描述的一项或多项操作。
本文描述的主题的一种或多种变形的详情在附图和下文的说明书中阐述。根据说明书、附图以及权利要求,本文描述的主题的特征和优点将变得显而易见。
附图说明
附图中:
图1示出了神经元的框图;
图2示出了神经处理单元(NPU)的框图;
图3A-B示出了用于顺序存储背景信息的数据结构的实例;
图4示出了用于基于背景信息配置神经元的方法;
图5示出了神经处理单元的另一框图;
图6示出了包括多个神经处理单元的***的框图;
图7示出了用于配置神经元的另一方法;
图8示出了配置用于基于上下文信息实施神经元的微引擎的实例。
图9示出了包括多个神经处理单元的***的框图。
类似的标记可能指示相同或类似的元件。
具体实施方式
本文公开的主题涉及由包括上下文信息的至少一个包配置的神经处理单元(NPU)。如本文所使用的,上下文信息指用于将处理器配置为神经处理单元的信息。此外,即使不是全部的上下文信息,也是一部分上下文信息可以基于连接值顺序地存储在存储器中以通过神经处理单元辅助处理。
在解释神经处理单元的详情之前,下文提供了对由利用神经处理单元实施的神经元所执行的处理的描述。
图1描述了包括神经元Aj 150的***100,神经元150可由神经处理单元实施。尽管图1描述了单个神经元150,但***100也可包括多个神经元。
神经元150可基于激活值Ai(t-1)(对应于A0-A8)160A-I、连接Wij165A-I(标记为coj至c8j)以及输入值110A-I(标记为S0-S8)生成输出Aj(t)170。输入值110A-I可能接收自其他神经元的输出、存储器和/或提供值(例如电压值)的一个或多个传感器。激活值Ai(t-1)可接收自存储器并可对应于输出(例如,***100的先前周期或时期(例如,在t-1时)的先前激活值),然而,激活值也可以由主计算机提供。连接Wij 165A-I(也被称为权值、连接权值和连接值)可接收自存储器和/或由主计算机提供。
通过示例性的方式说明,在给定时间t,每个激活值160A-I都被乘以一个相应的连接165A-I。例如,连接权值coj 165A乘以激活值A0 160A,连接权值c1j 165B乘以激活值A1 160B,以此类推。随后对结果(即,连接和激活值的乘法的结果)求和,最终的和值经由基底函数K的运算以在时间t为节点Aj 150产生输出Aj(t)170。输出170可在随后的时间(例如,在t+1时)用作激活值。
***100可包括多个神经元,例如神经元150,并且每个神经元可实施在本文描述的神经处理单元上。此外,可根据神经模型配置神经元,神经模型的实例如下: 等式1
其中:
K对应于基底函数(其实例包括sigmoid函数、小波函数以及任意其他基底函数),
Aj(t)对应于由给定神经元(例如,第j个神经元)在给定时间t提供的输出值,
Ai(t-1)对应于在先前时间t-1时用于第j个神经元的分配给连接i的在先输出值(或激活值),
Wij表示用于第j个神经元的第i个连接值,
j根据神经元的数量而变化并识别给定神经元,
i从0到n-1变化,以及
n对应于至神经元的连接的数量。
尽管本说明书将等式1作为神经模型的实例,但其他模型也可以用于限定神经元的类型。此外,在一些实施中,每个连接可以与多种神经元类型中的一种相关联。例如,连接Wij 165A-C可以实施对应于第一种类型神经元的第一神经模型,而连接Wij 165D-E可以实施对应于第二种类型神经元的第二神经模型。在该实例中,上下文信息将包括连接值以及表示神经元类型的信息。
图2描述了配置用于操作为神经元(例如上文关于图1描述的神经元150)的神经处理单元200的示例性实施方式。神经处理单元200包括第一存储器(例如顺序存储器205)、处理器210、第二存储器(例如静态随机存取存储器215(标记为SRAM))以及一个或多个处理器(例如一个或多个配置为实施神经元的微引擎220A-E)。
尽管图2描述了单个神经处理单元200,但在一些实施中,***可包括多个神经处理单元。例如,多个神经处理单元可实施在集成电路和/或专用集成电路上以提供神经处理***。
顺序存储器205可以实施为任意类型的存储器,例如随机存取存储器、动态随机存取存储器、双数据率同步动态存取存储器、闪存、铁电随机存取存储器、机械、磁盘驱动器、光驱动器以及类似物。顺序存储器205可包括上下文信息,上下文信息如果不包括所有的,也包括一些用于将微引擎(例如微引擎220A)配置为神经元的信息。例如,顺序存储器205可包括数据结构,该数据结构包括下列各项中的一项或多项:神经元的标识(例如,正在配置j个神经元中的哪一个);每个连接i的连接值Wij,使用的基底函数K的表示和/或先前激活值Ai(t-1)。
在一些实施中,从顺序存储器205以包格式获得上下文信息。术语“包”指包括上下文信息和/或指向上下文信息的指针的容器。包提供连接值和其他信息(例如,配置神经元类型的指令,基底函数K的表示,第j个神经元的标识,等等),但从另一存储器(例如,静态随机存取存储器215)获得先前激活值Ai(t-1)。读取自顺序存储器205的包可包括配置为结合图3A-3B描述的数据结构的上下文信息。在一些实施中,顺序存储器205还可从主计算机接收上下文信息。
处理器210可实施为任意类型的处理器,例如,配置为处理超长指令字(VLIW)的中央处理器单元,然而也可以使用其他类型的处理器。处理器210可从顺序存储器205检索上下文信息(格式化为一个或多个包)。
一个或多个额外的神经处理单元(也被称为簇)可从处理器210接收上下文信息,并且/或者经由连接230为处理器210提供上下文信息。处理器210还可存储和/或检索中间值,例如来自静态随机存取存储器215的先前激活值Ai(t-1)。
处理器210可将包括从存储器205获得的上下文信息以及任意中间值(例如,从静态随机存取存储器215获得的先前激活值Ai(t-1))的包路由至微引擎,从而将微引擎配置为神经元。
在一些实施中,存储器205中的上下文信息被组织在顺序块中,如下文结合图3A-3B描述的那样。从存储器205中的顺序块读取存储器205中的上下文信息以将微引擎配置为神经元。此外,如果***包括多个神经元,则处理器210可将包括上下文信息的一组包路由至每个微引擎220A-E,从而将每个微引擎配置为根据模型(例如上文中等式1的神经模型)运行的神经元。此外,可以为每个连接、神经元和/或时期持续地重复微引擎的配置和执行。
每个微引擎220A-E可实施为处理器,例如,中央处理单元、精简指令集处理器及类似物。在利用精简指令集处理器的实施中,精简指令集处理器的功能可能被限制,由此降低了芯片(例如集成电路)上使用的空间/尺寸。在任意情况下,微引擎220A-E都可以通过处理器210提供的上下文信息来配置,从而使得神经元能够实施在微引擎上。
图3A描述了存储在顺序存储器(例如顺序存储器205)中的数据结构300的实例。在图3A的实例中,顺序存储器被配置为顺序地存储可读取和/或写入的上下文信息的块310A-B,直到数据结构300的末端,随后,读取和/或写入将在存储器的起始端(例如块310A)重新开始。块310A-B对应于神经元处理***的多个神经元中的每一个。
例如,对于给定的神经元(例如第j个神经元),块310A可存储上下文信息。具体地,块310A可包括限定神经元类型320的信息。类型320限定了神经元的种类以及执行神经元的方式。例如,类型320可限定神经模型、限定第j个神经元使用的等式1或基底函数K。在该实例中,神经元类型可具有相应的代码组,该代码组加载到微引擎中以使得微引擎能够处理上下文信息并生成输出。此外,在一些实施中,支持多种神经元类型,从而***利用用于上下文信息中表示的神经元类型的相应代码组配置微引擎。
块310A中的上下文信息也可包括用在顺序存储器中的地址330以存储块310A。地址330使得当块310A的内容改变时能够写回到顺序存储器中,例如通过改变用于学习和塑性的权值。块310A中的上下文信息也可包括激活地址340,该激活地址340与块310A的神经元的给定连接相关联。举例来说,激活地址340可使得能够从静态随机存取存储器215加载块310A中正使用的连接的激活值。块310A还可包括使用的连接值350A-N。例如,对于具有10个连接的给定神经元j,块310A将包括对应于W0j至W9j的10个连接值。
数据结构300可以为每个由中央处理***实施的神经元包括其他块,例如块310B或类似物。数据结构300的使用可允许为每个神经元顺序地读取上下文信息(格式化为基于包的格式),并且随后在微引擎上配置和执行这些神经元。在一些实施中,数据结构300可以在神经元的微引擎执行期间减小(如果没有消除的话)由微引擎对存储器205和215的低效、随机、存储器读取。
图3B描述了存储在顺序存储器中的数据结构305的另一实例。在图3B的示例中,每个块390A-C可包括用于神经元的单个连接值。具体地,块390A包括第一连接350A和用于配置第一神经元的其他上下文信息320-340,块390B包括第一连接值333和用于配置第二神经元的其他上下文信息,以此类推,直到一组神经元的所有第一连接值已经配置为执行。一旦执行,举例来说,输出激活值可存储在静态随机存取存储器215中,随后,处理用于神经元的下一组连接。块390C包括第二连接350B和用于配置第一神经元的其他上下文信息。一旦利用第二连接值配置,就处理用于神经元的第二组连接,产生另一组输出激活值。可以为至神经元的每个连接重复该过程,直到所有的连接都被处理,此时,该过程从数据结构305的块390A上的第一连接开始重复。
在一些实施方式中,当处理器执行神经模型并检索执行该模型所需的数据时,数据结构300和305可降低存储器存取的数量。例如,在典型的未根据本文描述的数据结构配置的微处理器中,举例来说,由于从0至n、1至i以及1至j的索引,微处理器将需要对存储器进行大量的数据随机抽取,从而执行等式1的神经模型。相比之下,在一些实施中,本文描述的微引擎可以通过连续地将存储器中的如示例性数据结构300和305中所述的上下文信息排序而降低(如果没有消除的话)随机抽取次数。此外,在一些实施中,***200的随机抽取可以被限制为处理器205从静态随机存取存储器215检索激活值。在一些实施中,第一处理器(例如处理器210)处理所有的从存储器205和215的与上文所述的索引相关联的存储器抽取,并且第二处理器(例如微引擎)在不存取存储器205和215的情况下实施神经元。此外,微引擎可配置为利用从其寄存器存储器(下文结合图5描述)存取的数据运行神经元。此外,在一些实施中,包括第一和第二处理器的该***可有助于高效地处理,举例来说,尤其是在与神经模型(例如等式1)关联的稀疏矩阵的情况下。
图4描述了方法400,其可以由本文描述的神经处理***实施。图4的描述也涉及图2和图3A-3B。
在步骤492,处理器210可以从存储器205顺序地读取。这种顺序读取可包括从存储器205中的连续地址的块中读取包括上下文信息的多个包中的至少一个。例如,可以如图3A-B中描述的那样在块中顺序地读取数据。上下文信息可包括用于根据神经模型(例如等式1)将微引擎配置为神经元的信息。例如,从顺序存储器205中接收的包可提供连接值和其他信息(例如,表明神经元类型的指令、激活值,等等)以配置神经元。
在步骤493中,处理器210还可以从静态随机存取存储器215读取先前激活值Ai(t-1)。参考图3A-B,处理器210可接收包括连接值350A、神经元类型320、顺序存储器中的地址330以及静态随机存取存储器215中的地址340的包。处理器210随后可利用地址340定位静态随机存取存储器215,并随后利用查找表确定对应于连接值350A的激活值。
在步骤494中,处理器210可将上下文信息和激活值转发至微引擎中以配置微引擎。例如,处理器210可将包括上下文信息(例如,连接值350A、神经元类型320以及类似物)和从静态随机存取存储器215获得的激活值的至少一个包转发至微引擎220A中。当微引擎接收至少一个包时,微引擎220A可基于神经元类型(例如,通过加载用于由神经元类型320表示的神经元类型的代码组/指令)配置其自身并且随后利用连接值350A、激活值和其他可提供给微引擎的上下文信息执行神经元。
在步骤496中,配置的至少一个微引擎为给定的时间t生成输出,例如Aj(t)。输出Aj(t)也可提供给处理器210,而处理器210可将输出Aj(t)路由至静态随机存取存储器215或其他神经处理单元230。可以为***的每个连接、神经元和/或时期重复方法290。
图5描述了神经处理单元500的另一示例性实施。神经处理单元500在一些方面类似于***200,但还包括存储器接口505、应用接口510和调度器520。存储器接口505连接至顺序存储器205和处理器210,并且应用接口510连接至处理210和调度器520,调度器520进一步连接至微引擎220A-E。
存储器接口505控制对顺序存储器205的存取。例如,存储器接口505可以顺序地索引至存储器205中,从而检测传递给处理器210的上下文信息的下一个包。
处理器210还可以配置为路由器。当处理器210以包的形式从顺序存储器205和/或存储器215接收上下文信息时,处理器210随后可将基于包的上下文信息路由至微引擎以将微引擎配置为神经元。在执行神经元之后,包处理器210还可接收由微引擎生成的输出值Aj(t)。接收的输出值Aj(t)随后可经由连接565A-D提供给其他神经处理单元和/或存储在存储器中,例如静态随机存取存储器215。
在从主计算机初始加载数据以配置***500期间,举例来说,处理器210可将数据块从主计算机移动至顺序存储器205中的顺序位置和其他位置(例如静态随机存取存储器215)、经由连接565A-D移动至其他相邻的神经处理单元和/或一个或多个微引擎220A-E中。
在微引擎上的神经元的执行期间,处理器210可将连接权值与激活值相匹配。例如,处理器210可从顺序存储器205接收包括用于第j个神经元的第i个连接的连接权值Wij的包。对于第i个连接,处理器210随后可将连接权值Wij与存储在静态随机存取存储器215中的先前激活值Ai(t-1)相匹配。在一些实施中,查找表用于将每个连接权值Wij与存储在静态随机存取存储器215中的相应激活值Ai(t-1)相匹配。
应用接口510提供了至每个微引擎220A-E的接口。在一些实施中,应用接口510可从静态随机存取存储器215抽取与包括在接收包中的连接值相匹配的激活值。匹配激活值的地址可包括在从处理器210接收的包中。例如,匹配激活地址的地址可以作为神经元静态随机存取存储器激活地址340存储在包中。包括上下文信息(例如,神经元类型、连接值、激活值及类似物)的包随后被转发至微引擎。
调度器520为在应用接口510和微引擎220A-E之间交换的包提供包处理和排序。在一些实施中,调度器520为包括上下文信息的包选择目的微引擎。调度器520还可利用上下文信息加载包括微引擎寄存器的微引擎并将输出数据从微引擎220A-E发送至其他神经处理单元、静态随机存取存储器215和/或顺序存储器205。
神经处理单元500可通过连接565A-D(标记为北、东、西和南)连接至其他神经处理单元。例如,神经处理单元500可具有至四个其他神经处理单元(例如,神经处理单元北单元500、神经处理单元南单元500、神经处理单元东单元500、神经处理单元西单元500)的连接565A-D。此外,每个其他神经处理单元可连接至四个其他的神经处理单元,并且在一些实施中,每个神经处理单元可实施在一个或多个专用集成电路上。
图6描述了包括四个神经处理单元660A-D的***600的示例。每个神经处理单元可包括顺序存储器632(标记为DDR2)、存储控制器634、存储器接口636、应用接口640、静态随机存取存储器642、调度器644以及多个微引擎646(标记为NME)。
在图6所示的实施中,每个神经处理单元660A-D连接至路由器610,可如上文关于处理器210描述的那样实施路由器610。然而,在一些实施中,路由器610还可以配置为非阻塞、交叉开关(crossbar)包路由器,其在输入和输出之间提供多个平行路径,例如存储器接口和应用接口。
下文提供了神经处理单元660A内的元件的描述,但其他神经处理单元660B-D可以以类似于神经处理单元660A的方式配置。此外,包括神经处理单元660A-D的***600可以实施在芯片上,例如专用集成电路(ASIC),并且,尽管在图6中仅示出了四个神经处理单元660A-D,但***600也可包括其他数量的神经处理单元。
顺序存储器632可以如上文中关于顺序存储器205描述的那样来实施。在图6的实例中,顺序存储器632可实施为双数据率同步动态存取存储器,然而也可以使用其他类型的存储器。顺序存储器632可以电连接至存储器控制器634以允许读取并写入顺序存储器632。
存储器控制器634可控制对顺序存储器632的读取和写入。上下文信息可以存储在顺序存储器632的顺序地址中,并且上下文信息可以基于包的形式从存储器632中读取或写入存储器632中。当实施基于包的格式时,包可以经由至存储器接口636的电连接而提供给路由器610或从路由器610接收。此外,在一些实施中,存储器控制器634可提供接口,该接口根据从存储器(例如存储器632)获得的数据生成包并将生成的包发送至路由器610。存储器控制器634还可从路由器610接收包并将包的内容写入存储器632中。不同类型的存储器(从静态随机存取存储器、动态随机存取存储器到更持久的光存储机构)可用在存储器632上,而不论所使用的存储器类型,存储器控制器634处理包并将包寻址到存储器中。
存储器接口636可以以类似于上述的存储器接口505的方式实施。在图6的实例中,存储器接口636可缓冲发送给或接收自存储控制器634的包。
路由器610可电连接至660A-D上的每个应用接口和连接692A-C上。连接692A-C可提供至其他设备的连接,例如,其他神经处理单元、存储器、主计算机和类似物。在一些实施中,连接692C可实施为PCI接口以允许以最高至132兆比特/每秒的速度将数据发送给路由器610(并从路由器610发送出去)。连接692C也可以为***600处理加载、调试和处理数据。例如,连接692A-C可用于将***600连接至主计算机。主计算机可提供包括激活值的上下文信息、接收微引擎生成的输出值并为每个微引擎提供代码以将微引擎配置为神经元。
应用接口640可以以类似于应用接口510的方式实施。然而,在图6的实例中,应用接口640可以电连接至静态随机存取存储器642和调度器644。静态随机存取存储器642可以以类似于静态随机存取存储器215的方式实施,而调度器644可以以类似于调度器520的方式实施。调度器644电连接至多个微引擎646(标记为NME),微引擎646可以以类似于微引擎220A-E的方式实施。
图7描述了方法700,其可以由本文描述的神经处理单元实施。同样,将结合图3A-B和图6描述方法700。
在步骤793中,存储器控制器634可从存储器632的顺序地址读取数据。这种读取操作可包括读取包括上下文信息的多个包中的至少一个以根据神经模型将微引擎配置为神经元。存储器控制器634可以为存储器接口636提供读取包,在提供给路由器610之前,包可以在存储接口636排序。存储器控制器634还可控制向存储器632写入数据(例如从路由器610接收的包)。
在步骤794中,路由器610可从存储器接口636接收多个包中的至少一个并随后将接收的包提供给660A-D上的应用接口中的一个。例如,路由器610可将包括用于第j个神经元的第i个连接的连接权值Wij的至少一个包路由至应用接口640。
在步骤797中,应用接口可从存储器抽取匹配激活值。例如,应用接口640可将连接权值与先前激活值Ai(t-1)相匹配并随后从存储器(例如静态随机存取存储器642)抽取匹配激活值。对于接收的每个包而言,应用接口640可读取包括在包中的连接权值Wij并随后确定存储在静态随机存取存储器642中的匹配激活值。如所述,应用接口640可基于表明抽取哪个激活值的查找表来确定匹配。
在步骤798中,应用接口(例如应用接口640)随后可以向调度器(例如调度器644)提供上下文信息(例如,连接权值Wij、匹配激活值Ai(t-1)以及类似物)。随后,调度器644将该上下文信息提供给微引擎646中的一个以将微引擎配置为神经元。
在步骤799中,配置的微引擎生成输出,例如Aj(t)。输出Aj(t)可以提供给调度器644和应用接口640,其可将输出Aj(t)提供给静态随机存取存储器642或其他神经处理单元600B-D。可以为神经元的每个连接和神经处理***的每个神经元重复方法700。此外,方法700可以重复多次。
图8示出了微引擎800的实例,其可用在微引擎220A-E和/或微引擎646上。微引擎800可包括寄存器存储器820、中央处理单元830和程序存储器850。微引擎800可电连接至调度器520以允许微引擎800从调度器520接收包括上下文信息、激活值和类似物的包并为调度器520提供输出激活。
在一些实施中,微引擎800接收包括上下文信息的包,例如,图3B中描述的块390A。微引擎800将块390A存储在寄存器820中。随后,微引擎800可访问程序存储器850以获取指令(例如程序代码),从而根据由存储在寄存器820中的块390A的上下文信息所表明的神经类型320来配置微引擎。然后,微引擎800利用包括在寄存器820处存储的的块中的上下文信息(例如,激活值和连接值)执行指令。随后,输出被发送至调度器520,然后进一步被路由至其他设备,例如静态随机存取存储器、另一神经处理单元和/或主计算机。输出可用作随后时间的激活。
寄存器820可从调度器520接收上下文信息,该上下文信息已经如上文关于图3A-3B描述的那样结构化。寄存器820也可包括控制状态寄存器(CSR)、累加寄存器、程序计数器(PC)和多个暂存寄存器。寄存器820可以实施为包括足够的存储空间以至少存储数据结构300和305和/或图3A-B中描述的数据结构300和305中的至少一个块。还可以以乒乓配置实施寄存器820,该乒乓配置包括两个相同的寄存器库以允许调度器520写入寄存器820的一个库中,而中央处理单元830从寄存器820的其他库中读取和执行。
微引擎800可包括限定能够实施在微引擎上的一组可能的神经模型的指令组(例如代码)。因此,指令组(其可存储在程序存储器850中)可用于配置和编码微引擎,从而作为多种神经元类型中的至少一种来运行。此外,指令组可以在微引擎之间通信以辅助配置。用于微引擎800的代码也可以使用汇编程序来处理汇编语言程序并将该程序转换成二进制代码文件以加载至微引擎中。例如,可以通过命令行调用神经汇编程序以采用汇编代码程序并将该汇编代码转换成二进制文件以加载至微引擎中。
图9描述了***900,在本文中将其称为储巢(hive)。神经处理单元(每个都被标记为NPU)可以以二维网格布局的形式互连。在一些实施中,当与共享单条存储器总线的多个处理器相比时,二维网格结构可增加处理能力。神经处理单元之间的互连可以实施为提供高速、串行数据线的电互连。主机接口990可与神经处理单元和主计算机992接口。例如,主机接口990可将包传递给储巢,读取在神经处理单元之间交换的包,并拦截在神经处理单元之间发送的包。神经处理单元均可具有唯一的标识符以使得能够定位和/或寻址每个神经处理单元。
本文描述的主题可以实施在根据期望配置的***、装置、方法和/或物品中。具体地,可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现本文描述的主题的各种实施。这些各种实施可包括实施在一种或多种可执行和/或可在可编程***中解释的计算机程序中,该可编程***包括至少一个可编程处理器,该处理器可以是专用或通用的,其连接以从存储***、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送至上述设备。
这些计算机程序(也被称为程序、软件、软件应用、应用、元件或代码)包括用于可编程处理器的机器指令,并且可以以高级程序和/或面向对象的编程语言和/或汇编/机器语言实施。如本文所使用的,术语“机器可读介质”指用于为可编程处理器提供机器指令和/或数据的任何计算机程序制品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括将机器指令接收为机器可读信号的机器可读介质。
类似的,本文还描述了***,其可包括处理器和连接至处理器的存储器。存储器可包括一个或多个程序,该程序使处理器执行本文描述的一种或多种操作。
此外,尽管结合神经处理的情况描述了本发明的***,但本文描述的***可用在其他环境中,举例来说,包括有限元分析和滤波器组处理(filterbank processing)。此外,术语组可指任意数量,包括空组。
尽管上文详细描述了一些变形,但其他修改和增加是可能的。具体地,可以除本文列出的特征和/或变形之外提供其他特征和/或变形。例如,上述的实施可以涉及公开的特征的各种组合和子组合和/或上文公开的若干其他特征的组合和子组合。此外,附图中和/或本文中描述的逻辑流程不需要按照所示的具体顺序或相继顺序来实现期望的结果。其他实施方式也可以落入随附权利要求的范围内。
Claims (20)
1.一种方法,包括:
从第一存储器读取基于至少一个连接值存储的上下文信息;
从第二存储器读取与所述至少一个连接值相匹配的激活值;
通过第一处理器将上下文信息和激活值发送至多个微引擎中的至少一个微引擎,从而将所述至少一个微引擎配置为神经元;及
在所述至少一个微引擎上生成表示神经元的输出的值。
2.根据权利要求1所述的方法,其中,从第一存储器读取还包括:
读取包括上下文信息的数据结构,该上下文信息基于用于在多个微引擎上实施的神经元的连接值而连续地存储在存储器中。
3.根据权利要求1所述的方法,其中,数据结构包括多个块,所述多个块中的每个块均包括限定在神经元上的执行的类型、表示包括所述至少一个连接值的上下文信息在第一存储器中的存储位置的第一地址,以及表示激活值在第二存储器中的存储位置的第二地址。
4.根据权利要求1所述的方法,其中,数据结构包括多个顺序块,所述多个顺序块中的每个顺序块均包括连接值以及神经元类型,该神经元类型限定在所述多个微引擎中的一个上实施的相应神经元。
5.根据权利要求4所述的方法,其中,每个顺序块作为包被发送至所述多个微引擎中的至少一个上,并且其中,所述多个微引擎中的每一个均包括至少一个处理器和至少一个存储器。
6.根据权利要求1所述的方法,其中,数据结构包括多个顺序块,每个顺序块均包括神经元类型和用于相应神经元的多个连接值。
7.根据权利要求1所述的方法,其中,第一处理器与第一存储器相连以使得能够从第一存储器进行读取。
8.根据权利要求1所述的方法,其中,生成包括:
在所述至少一个微引擎上基于上下文信息和激活值生成所述值,而不访问第一存储器和第二存储器以获得额外的上下文信息。
9.根据权利要求1所述的方法,其中,第一存储器和第二存储器实施在集成电路的同一存储器中。
10.根据权利要求1所述的方法,还包括:
将所述值至少发送至第二存储器。
11.一种装置,包括:
第一存储器,包括基于至少一个连接值存储的上下文信息;
第二存储器,包括与所述至少一个连接值相匹配的激活值;
第一处理器,配置为发送读取自第一存储器的上下文信息和读取自第二存储器的激活值;及
第二组处理器中的至少一个,配置为接收读取自第一存储器的上下文信息和读取自第二存储器的激活值,并生成表示一组神经元中的至少一个的输出的至少一个值。
12.根据权利要求11所述的装置,其中,第一存储器还包括数据结构,该数据结构包括上下文信息,该上下文信息基于用于在第二组处理器上实施的神经元组中的至少一个的连接值而连续地存储在存储器中。
13.根据权利要求11所述的装置,其中,数据结构包括多个块,所述多个块中的每个块均包括神经元类型、表示上下文信息在第一存储器中的存储位置的第一地址,以及表示激活值在第二存储器中的存储位置的第二地址。
14.一种计算机程序制品,包括机器可读介质,该机器可读介质存储指令,当指令由至少一个可编程处理器执行时,使得所述至少一个可编程处理器执行下述操作:
从第一存储器读取基于至少一个连接值存储的上下文信息;
从第二存储器读取与所述至少一个连接值相匹配的激活值;
通过第一处理器将上下文信息和激活值发送至多个微引擎中的至少一个中,从而将所述至少一个微引擎配置为神经元;及
在所述至少一个微引擎上生成表示神经元的输出的值。
15.根据权利要求14所述的计算机程序制品,其中,从第一存储器读取还包括:
读取包括上下文信息的数据结构,该上下文信息基于用于在所述多个微引擎上实施的神经元的连接值而连续地存储在存储器中。
16.根据权利要求14所述的计算机程序制品,其中,数据结构包括多个块,所述多个块中的每个块均包括限定在神经元上的执行的类型、表示包括所述至少一个连接值的上下文信息在第一存储器中的存储位置的第一地址,以及表示激活值在第二存储器中的存储位置的第二地址。
17.一种装置,包括:
第一存储器,包括存储在块中的上下文信息,其中,每个块包括用于神经元的至少一个连接值和表示神经元类型的信息;
存储器控制器,与第一存储器接口并控制读取第一存储器和写入第一存储器中的至少一种;
第一处理器,配置为从存储器控制器和第一存储器接收上下文信息,其中,第一处理器还被配置为转发上下文信息;
接口,其配置为:
接收由第一处理器转发的上下文信息,
将多个激活值中的至少一个与所述至少一个连接值相匹配,
抽取所述多个激活值中的匹配的至少一个,及
转发所述多个激活值中抽取的至少一个和所述至少一个连接值;以及
第二组处理器中的至少一个,配置为接收所述多个激活值中转发的至少一个和所述至少一个连接值,并生成表示被配置为神经元组中的至少一个的第二组处理器中的至少一个的输出的至少一个值。
18.一种计算机程序制品,包括机器可读介质,该机器可读介质存储指令,当指令由至少一个可编程处理器执行时,使得所述至少一个可编程处理器执行下述操作:
从第一存储器读取存储在块中的上下文信息,其中,每个块包括至少一个用于神经元的连接值和表示神经元类型的信息;
在与第一存储器连接的存储器控制器上控制读取第一存储器和写入第一存储器中的至少一种;
在第一处理器上接收来自存储器控制器和第一存储器的上下文信息,其中,第一处理器还被配置为将上下文信息转发至接口;
在接收上接收由第一处理器转发的上下文信息
在接口上将多个激活值中的至少一个与至少一个连接值相匹配;
在接口上抽取匹配的多个激活值中的至少一个;
在接口上转发抽取的多个激活值中的至少一个和至少一个连接值;
在第二组处理器中的一个或多个上接收转发的多个激活值中的至少一个和转发的至少一个连接值;及
在第二组处理器中的一个或多个上生成输出。
19.一种方法,包括:
从第一存储器读取存储在块中的上下文信息,其中,每个块包括用于神经元的至少一个连接值和表示神经元类型的信息;
在与第一存储器接口的存储器控制器上控制读取第一存储器和写入第一存储器中的至少一种;
在第一处理器上接收来自存储器控制器和第一存储器的上下文信息,其中,第一处理器还被配置为将上下文信息转发至接口;
在接口上接收由第一处理器转发的上下文信息
在接口上将多个激活值中的至少一个与所述至少一个连接值相匹配;
在接口上抽取所述多个激活值中匹配的至少一个激活值;
在接口上转发所述多个激活值中抽取的至少一个激活值和所述至少一个连接值;
在第二组处理器中的一个或多个处理器上接收所述多个激活值中转发的至少一个激活值和转发的至少一个连接值;及
在第二组处理器中的所述一个或多个处理器上生成输出。
20.一种装置,包括:
用于读取基于至少一个连接值存储的上下文信息的器件;
用于读取与所述至少一个连接值相匹配的激活值的器件;
用于将上下文信息和激活值发送至多个微引擎中的至少一个微引擎从而将所述至少一个微引擎配置为神经元的器件;及
用于生成表示神经元的输出的值的器件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34644110P | 2010-05-19 | 2010-05-19 | |
US61/346,441 | 2010-05-19 | ||
PCT/US2011/022155 WO2011146147A1 (en) | 2010-05-19 | 2011-01-21 | Neural processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102947818A true CN102947818A (zh) | 2013-02-27 |
CN102947818B CN102947818B (zh) | 2015-07-22 |
Family
ID=44973304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180031201.2A Expired - Fee Related CN102947818B (zh) | 2010-05-19 | 2011-01-21 | 神经处理单元 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8655815B2 (zh) |
EP (1) | EP2572293A4 (zh) |
JP (1) | JP2013529342A (zh) |
KR (1) | KR20130111956A (zh) |
CN (1) | CN102947818B (zh) |
CA (1) | CA2799167A1 (zh) |
WO (1) | WO2011146147A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077635A (zh) * | 2014-11-07 | 2017-08-18 | 国际商业机器公司 | 基于突触神经网络核心的传感器*** |
CN107291209A (zh) * | 2016-04-01 | 2017-10-24 | 上海磁宇信息科技有限公司 | 细胞阵列计算*** |
WO2017185347A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 用于执行循环神经网络和lstm运算的装置和方法 |
CN109670586A (zh) * | 2018-12-29 | 2019-04-23 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109754062A (zh) * | 2017-11-07 | 2019-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN111860811A (zh) * | 2016-04-27 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种用于执行人工神经网络全连接层正向运算的装置和方法 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405975B2 (en) | 2010-03-26 | 2016-08-02 | Brain Corporation | Apparatus and methods for pulse-code invariant object recognition |
US8990133B1 (en) | 2012-12-20 | 2015-03-24 | Brain Corporation | Apparatus and methods for state-dependent learning in spiking neuron networks |
US9566710B2 (en) | 2011-06-02 | 2017-02-14 | Brain Corporation | Apparatus and methods for operating robotic devices using selective state space training |
US9213937B2 (en) | 2011-09-21 | 2015-12-15 | Brain Corporation | Apparatus and methods for gating analog and spiking signals in artificial neural networks |
US9015092B2 (en) | 2012-06-04 | 2015-04-21 | Brain Corporation | Dynamically reconfigurable stochastic learning apparatus and methods |
US9104186B2 (en) | 2012-06-04 | 2015-08-11 | Brain Corporation | Stochastic apparatus and methods for implementing generalized learning rules |
US9146546B2 (en) | 2012-06-04 | 2015-09-29 | Brain Corporation | Systems and apparatus for implementing task-specific learning using spiking neurons |
US9412041B1 (en) | 2012-06-29 | 2016-08-09 | Brain Corporation | Retinal apparatus and methods |
CN102855213B (zh) * | 2012-07-06 | 2017-10-27 | 中兴通讯股份有限公司 | 一种网络处理器指令存储装置及该装置的指令存储方法 |
US9256215B2 (en) * | 2012-07-27 | 2016-02-09 | Brain Corporation | Apparatus and methods for generalized state-dependent learning in spiking neuron networks |
US9082078B2 (en) | 2012-07-27 | 2015-07-14 | The Intellisis Corporation | Neural processing engine and architecture using the same |
US9159020B2 (en) * | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
US9367798B2 (en) | 2012-09-20 | 2016-06-14 | Brain Corporation | Spiking neuron network adaptive control apparatus and methods |
US9189730B1 (en) | 2012-09-20 | 2015-11-17 | Brain Corporation | Modulated stochasticity spiking neuron network controller apparatus and methods |
US20140143191A1 (en) | 2012-11-20 | 2014-05-22 | Qualcomm Incorporated | Piecewise linear neuron modeling |
US9185057B2 (en) * | 2012-12-05 | 2015-11-10 | The Intellisis Corporation | Smart memory |
US9195934B1 (en) | 2013-01-31 | 2015-11-24 | Brain Corporation | Spiking neuron classifier apparatus and methods using conditionally independent subsets |
US9764468B2 (en) | 2013-03-15 | 2017-09-19 | Brain Corporation | Adaptive predictor apparatus and methods |
US9008840B1 (en) | 2013-04-19 | 2015-04-14 | Brain Corporation | Apparatus and methods for reinforcement-guided supervised learning |
US9242372B2 (en) | 2013-05-31 | 2016-01-26 | Brain Corporation | Adaptive robotic interface apparatus and methods |
US9792546B2 (en) | 2013-06-14 | 2017-10-17 | Brain Corporation | Hierarchical robotic controller apparatus and methods |
US9314924B1 (en) * | 2013-06-14 | 2016-04-19 | Brain Corporation | Predictive robotic controller apparatus and methods |
US9436909B2 (en) | 2013-06-19 | 2016-09-06 | Brain Corporation | Increased dynamic range artificial neuron network apparatus and methods |
US9552546B1 (en) | 2013-07-30 | 2017-01-24 | Brain Corporation | Apparatus and methods for efficacy balancing in a spiking neuron network |
US9579789B2 (en) | 2013-09-27 | 2017-02-28 | Brain Corporation | Apparatus and methods for training of robotic control arbitration |
US10339041B2 (en) * | 2013-10-11 | 2019-07-02 | Qualcomm Incorporated | Shared memory architecture for a neural simulator |
US9489623B1 (en) | 2013-10-15 | 2016-11-08 | Brain Corporation | Apparatus and methods for backward propagation of errors in a spiking neuron network |
US9597797B2 (en) | 2013-11-01 | 2017-03-21 | Brain Corporation | Apparatus and methods for haptic training of robots |
US9463571B2 (en) | 2013-11-01 | 2016-10-11 | Brian Corporation | Apparatus and methods for online training of robots |
US9358685B2 (en) | 2014-02-03 | 2016-06-07 | Brain Corporation | Apparatus and methods for control of robot actions based on corrective user inputs |
US9672464B2 (en) | 2014-02-28 | 2017-06-06 | Qualcomm Incorporated | Method and apparatus for efficient implementation of common neuron models |
US9346167B2 (en) | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
US9630318B2 (en) | 2014-10-02 | 2017-04-25 | Brain Corporation | Feature detection apparatus and methods for training of robotic navigation |
US9881349B1 (en) | 2014-10-24 | 2018-01-30 | Gopro, Inc. | Apparatus and methods for computerized object identification |
US10061531B2 (en) | 2015-01-29 | 2018-08-28 | Knuedge Incorporated | Uniform system wide addressing for a computing system |
US9552327B2 (en) | 2015-01-29 | 2017-01-24 | Knuedge Incorporated | Memory controller for a network on a chip device |
US10108516B2 (en) | 2015-01-29 | 2018-10-23 | Knuedge Incorporated | Affinity data collection in a computing system |
US9717387B1 (en) | 2015-02-26 | 2017-08-01 | Brain Corporation | Apparatus and methods for programming and training of robotic household appliances |
CN107924487A (zh) * | 2015-04-17 | 2018-04-17 | 情感爱思比株式会社 | 处理***以及程序 |
US9886193B2 (en) | 2015-05-15 | 2018-02-06 | International Business Machines Corporation | Architecture and implementation of cortical system, and fabricating an architecture using 3D wafer scale integration |
US9864519B2 (en) | 2015-08-24 | 2018-01-09 | Knuedge Incorporated | Performing write operations in a network on a chip device |
US10152352B2 (en) | 2015-11-17 | 2018-12-11 | Friday Harbor Llc | Writing to contiguous memory addresses in a network on a chip architecture |
US9977745B2 (en) | 2016-01-05 | 2018-05-22 | Knuedge, Inc. | Flow control through packet router |
US9959066B2 (en) | 2016-02-12 | 2018-05-01 | Knuedge Incorporated | Memory-attached computing resource in network on a chip architecture to perform calculations on data stored on memory external to the chip |
US10027583B2 (en) | 2016-03-22 | 2018-07-17 | Knuedge Incorporated | Chained packet sequences in a network on a chip architecture |
US10635968B2 (en) * | 2016-03-24 | 2020-04-28 | Intel Corporation | Technologies for memory management of neural networks with sparse connectivity |
US10346049B2 (en) | 2016-04-29 | 2019-07-09 | Friday Harbor Llc | Distributed contiguous reads in a network on a chip architecture |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
US11551028B2 (en) | 2017-04-04 | 2023-01-10 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network |
US11615297B2 (en) | 2017-04-04 | 2023-03-28 | Hailo Technologies Ltd. | Structured weight based sparsity in an artificial neural network compiler |
US10387298B2 (en) | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US11544545B2 (en) | 2017-04-04 | 2023-01-03 | Hailo Technologies Ltd. | Structured activation based sparsity in an artificial neural network |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
EP3724822A1 (en) * | 2017-12-12 | 2020-10-21 | Amazon Technologies Inc. | On-chip computational network |
JP7108702B2 (ja) * | 2018-03-22 | 2022-07-28 | アマゾン テクノロジーズ インコーポレイテッド | 複数の入力データセットのための処理 |
RU2739340C1 (ru) * | 2019-11-14 | 2020-12-23 | Федеральное государственное бюджетное учреждение науки Институт физиологии им. И.П. Павлова Российской академии наук (ИФ РАН) | Способ нейроморфной обработки данных и устройство для его осуществления |
US11811421B2 (en) | 2020-09-29 | 2023-11-07 | Hailo Technologies Ltd. | Weights safety mechanism in an artificial neural network processor |
US11263077B1 (en) | 2020-09-29 | 2022-03-01 | Hailo Technologies Ltd. | Neural network intermediate results safety mechanism in an artificial neural network processor |
US11874900B2 (en) | 2020-09-29 | 2024-01-16 | Hailo Technologies Ltd. | Cluster interlayer safety mechanism in an artificial neural network processor |
US11237894B1 (en) | 2020-09-29 | 2022-02-01 | Hailo Technologies Ltd. | Layer control unit instruction addressing safety mechanism in an artificial neural network processor |
US11221929B1 (en) | 2020-09-29 | 2022-01-11 | Hailo Technologies Ltd. | Data stream fault detection mechanism in an artificial neural network processor |
US20230267276A1 (en) * | 2022-02-22 | 2023-08-24 | Bank Of America Corporation | System and method for determining context changes in text |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0636001A1 (en) * | 1992-04-15 | 1995-02-01 | A.C. Machines Limited | Process and apparatus for manufacturing shaped confectionery products |
US5701394A (en) * | 1989-12-18 | 1997-12-23 | Hitachi, Ltd. | Information processing apparatus having a neural network and an expert system |
US6859855B1 (en) * | 1999-08-19 | 2005-02-22 | Murata Manufacturing Co., Ltd. | Data processing device |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4974169A (en) * | 1989-01-18 | 1990-11-27 | Grumman Aerospace Corporation | Neural network with memory cycling |
JPH0342768A (ja) * | 1989-07-11 | 1991-02-22 | Nec Corp | ニューロコンピュータ回路 |
US5325464A (en) * | 1990-05-22 | 1994-06-28 | International Business Machines Corporation | Pyramid learning architecture neurocomputer |
US5282261A (en) * | 1990-08-03 | 1994-01-25 | E. I. Du Pont De Nemours And Co., Inc. | Neural network process measurement and control |
JPH04182769A (ja) * | 1990-11-17 | 1992-06-30 | Nissan Motor Co Ltd | デジタル・ニューロプロセッサ |
US5214747A (en) * | 1990-12-24 | 1993-05-25 | Eastman Kodak Company | Segmented neural network with daisy chain control |
DE69327997T2 (de) * | 1992-03-30 | 2000-07-27 | Seiko Epson Corp., Tokio/Tokyo | Gerät zur spracherkennung mit neuronalem netzwerk und lernverfahren dafür |
US8686549B2 (en) * | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US20110219035A1 (en) * | 2000-09-25 | 2011-09-08 | Yevgeny Korsunsky | Database security via data flow processing |
US9525696B2 (en) * | 2000-09-25 | 2016-12-20 | Blue Coat Systems, Inc. | Systems and methods for processing data flows |
US7031969B2 (en) * | 2002-02-20 | 2006-04-18 | Lawrence Technologies, Llc | System and method for identifying relationships between database records |
US20060155661A1 (en) * | 2005-01-07 | 2006-07-13 | Morgan David W | Portable device for classification of medical data |
US7533071B2 (en) * | 2005-06-28 | 2009-05-12 | Neurosciences Research Foundation, Inc. | Neural modeling and brain-based devices using special purpose processor |
US7627540B2 (en) | 2005-06-28 | 2009-12-01 | Neurosciences Research Foundation, Inc. | Addressing scheme for neural modeling and brain-based devices using special purpose processor |
US7555469B2 (en) * | 2006-11-16 | 2009-06-30 | L-3 Communications Integrated Systems L.P. | Reconfigurable neural network systems and methods utilizing FPGAs having packet routers |
JP5171118B2 (ja) * | 2007-06-13 | 2013-03-27 | キヤノン株式会社 | 演算処理装置及びその制御方法 |
EP2359542B1 (en) * | 2008-12-19 | 2014-03-26 | Telefonaktiebolaget L M Ericsson (PUBL) | A method and apparatus for routing data |
EP2259214B1 (en) * | 2009-06-04 | 2013-02-27 | Honda Research Institute Europe GmbH | Implementing a neural associative memory based on non-linear learning of discrete synapses |
-
2011
- 2011-01-21 US US13/011,727 patent/US8655815B2/en not_active Expired - Fee Related
- 2011-01-21 CA CA2799167A patent/CA2799167A1/en not_active Abandoned
- 2011-01-21 JP JP2013511155A patent/JP2013529342A/ja active Pending
- 2011-01-21 KR KR1020127033120A patent/KR20130111956A/ko not_active Application Discontinuation
- 2011-01-21 EP EP11783883.9A patent/EP2572293A4/en not_active Withdrawn
- 2011-01-21 WO PCT/US2011/022155 patent/WO2011146147A1/en active Application Filing
- 2011-01-21 CN CN201180031201.2A patent/CN102947818B/zh not_active Expired - Fee Related
-
2013
- 2013-12-31 US US14/145,711 patent/US9558444B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701394A (en) * | 1989-12-18 | 1997-12-23 | Hitachi, Ltd. | Information processing apparatus having a neural network and an expert system |
EP0636001A1 (en) * | 1992-04-15 | 1995-02-01 | A.C. Machines Limited | Process and apparatus for manufacturing shaped confectionery products |
US6859855B1 (en) * | 1999-08-19 | 2005-02-22 | Murata Manufacturing Co., Ltd. | Data processing device |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010660B2 (en) | 2014-11-07 | 2021-05-18 | International Business Machines Corporation | Synaptic neural network core based sensor system |
CN107077635B (zh) * | 2014-11-07 | 2020-08-25 | 国际商业机器公司 | 基于突触神经网络核心的传感器*** |
CN107077635A (zh) * | 2014-11-07 | 2017-08-18 | 国际商业机器公司 | 基于突触神经网络核心的传感器*** |
CN107291209B (zh) * | 2016-04-01 | 2021-02-09 | 上海磁宇信息科技有限公司 | 细胞阵列计算*** |
CN107291209A (zh) * | 2016-04-01 | 2017-10-24 | 上海磁宇信息科技有限公司 | 细胞阵列计算*** |
CN111860811A (zh) * | 2016-04-27 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种用于执行人工神经网络全连接层正向运算的装置和方法 |
CN111860811B (zh) * | 2016-04-27 | 2024-01-16 | 中科寒武纪科技股份有限公司 | 一种用于执行人工神经网络全连接层正向运算的装置和方法 |
US11531860B2 (en) | 2016-04-29 | 2022-12-20 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Apparatus and method for executing recurrent neural network and LSTM computations |
WO2017185347A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 用于执行循环神经网络和lstm运算的装置和方法 |
US11727244B2 (en) | 2016-04-29 | 2023-08-15 | Cambricon Technologies Corporation Limited | Apparatus and method for executing recurrent neural network and LSTM computations |
CN109754062A (zh) * | 2017-11-07 | 2019-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109754062B (zh) * | 2017-11-07 | 2024-05-14 | 上海寒武纪信息科技有限公司 | 卷积扩展指令的执行方法以及相关产品 |
CN109670586B (zh) * | 2018-12-29 | 2019-11-12 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN109670586A (zh) * | 2018-12-29 | 2019-04-23 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
US20140172763A1 (en) | 2014-06-19 |
EP2572293A4 (en) | 2013-12-04 |
EP2572293A1 (en) | 2013-03-27 |
CA2799167A1 (en) | 2011-11-24 |
US20110289034A1 (en) | 2011-11-24 |
US8655815B2 (en) | 2014-02-18 |
CN102947818B (zh) | 2015-07-22 |
JP2013529342A (ja) | 2013-07-18 |
KR20130111956A (ko) | 2013-10-11 |
WO2011146147A1 (en) | 2011-11-24 |
US9558444B2 (en) | 2017-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102947818B (zh) | 神经处理单元 | |
US11151444B2 (en) | Structural descriptions for neurosynaptic networks | |
US10678741B2 (en) | Coupling parallel event-driven computation with serial computation | |
US20180103448A1 (en) | Scaling multi-core neurosynaptic networks across chip boundaries | |
CN110546610A (zh) | 通过数据共享和分配增强人工智能/机器硬件的处理性能 | |
CN112740236A (zh) | 在深度神经网络中利用激活稀疏性 | |
WO2012006468A1 (en) | Methods and systems for replaceable synaptic weight storage in neuro-processors | |
EP3055812A2 (en) | Shared memory architecture for a neural simulator | |
CN105518625A (zh) | 具有高带宽存储器接口的计算硬件 | |
Dean et al. | Dynamic adaptive neural network array | |
US11694067B2 (en) | Neuromorphic processor and operating method thereof | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
EP2926301B1 (en) | Generating messages from the firing of pre-synaptic neurons | |
Velasquez et al. | Parallel computing using memristive crossbar networks: Nullifying the processor-memory bottleneck | |
WO2022133384A1 (en) | Ai synaptic coprocessor | |
Schrauwen et al. | Parallel hardware implementation of a broad class of spiking neurons using serial arithmetic | |
Wongthanavasu et al. | Cellular automata for pattern recognition | |
Schrauwen et al. | Compact digital hardware implementations of spiking neural networks | |
CN116402103A (zh) | 一种存算一体静态控制配置方法 | |
Linares-Barranco et al. | Implementation of a time-warping AER mapper | |
Pirrone | A large-scale spiking neural networks emulation architecture | |
Sharaf et al. | P system with Innate Immunity | |
JPH01205270A (ja) | 行列演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1180077 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150722 Termination date: 20210121 |
|
CF01 | Termination of patent right due to non-payment of annual fee |