CN107454965A - 神经网络处理器中的批处理 - Google Patents
神经网络处理器中的批处理 Download PDFInfo
- Publication number
- CN107454965A CN107454965A CN201680020154.4A CN201680020154A CN107454965A CN 107454965 A CN107454965 A CN 107454965A CN 201680020154 A CN201680020154 A CN 201680020154A CN 107454965 A CN107454965 A CN 107454965A
- Authority
- CN
- China
- Prior art keywords
- input
- weight
- layer
- batch
- neural net
- 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
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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8046—Systolic arrays
-
- 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/048—Activation functions
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- 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)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
用于针对多个输入中的每个生成相应的神经网络输出的方法、***和装置,包括在计算机存储介质上编码的计算机程序,所述方法包括,针对神经网络层的每个:接收要在所述神经网络层进行处理的多个输入;从所述多个输入形成输入的一个或多个批,每个批具有达到所述神经网络层的相应的批大小的多个输入;选择输入的所述一个或多个批中的多个进行处理,其中所述一个或多个批中的多个的输入的计数大于或等于按顺序的后续层的相应的相关联批大小;以及对所述一个或多个输入批中的多个进行处理以生成相应的神经网络层输出。
Description
背景技术
该说明书涉及硬件中的计算神经网络推理。
神经网是一种采用一层或多层神经元来针对所接收的输入生成输出的机器学习模型,所述输出例如分类。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层的输入,所述下一层即网络中的下一个隐藏层或输出层。所述网络的每一层依据参数的相应集合的当前值从所接收的输入生成输出。
传统上,一些神经网络***串行地计算推理。也就是说,当针对多个输入计算推理时,神经网络***能够在处理下一个输入之前经由所述神经网络的每一层来处理每个输入,以针对所述输入生成输出。
发明内容
总体上,该说明书描述了一种计算神经网络推理的专用硬件电路。
总体上,该说明书中所描述主题的一个创新方面能够以方法来体现,所述方法包括针对多个输入中的每个生成相应的神经网络输出的动作,其中所述生成包括经由多个神经网络层中的每个处理每个输入,以针对所述输入生成相应的神经网络输出,其中所述神经网络层被按顺序布置,并且其中每个神经网络层具有相应批大小,所述方法包括,针对每个神经网络层:接收要在所述神经网络层进行处理的多个输入;从所述多个输入形成输入的一个或多个批,每个批具有达到所述神经网络层的相应的批大小的数个输入;选择输入的所述一个或多个输入批中的数个进行处理,其中所述一个或多个批中的数个中的输入的计数大于或等于所述顺序中的后续层的相应的相关联批大小;以及对输入的所述一个或多个批中的数个进行处理以生成相应的神经网络层输出。
实施方式可以包括以下特征中的一个或多个。所述相应批大小至少基于权重重用值,所述权重重用值表示:在要长于所述权重输入从存储器的加载时间的在矩阵计算单元使用所述权重输入的输出值计算时间内,权重输入需要被重复使用的次数。其中所述权重重用值至少基于存储所述权重输入的存储器的时钟速率。每个批大小至少基于所述权重重用值除以权重输入针对相应层被重复使用的次数。所述多个神经网络层在矩阵处理单元被处理,其中对输入的一个或多个批中的数个进行处理包括使用所述矩阵计算单元针对每个输入计算累加值。所述权重重用值基于所述矩阵计算单元内的算术运算单元的数量。每个输入对应于不同的图像资源。从一个或多个层输出形成批以便在后续层进行处理。针对每个输出生成相对应的推理。
该说明书中所描述主题的特定实施例能够被实施从而实现以下优势中的一种或多种。特殊用途的硬件电路能够通过对多个独立输入重复使用给定层的权重输入,来有效地执行具有多个层的神经网络的计算。特别地,所述权重输入被多次重复使用而使得多次重复使用所述权重输入的计算时间大于从存储器访问新的权重输入的摄取时间,由此使得所述电路中的吞吐量最大化并且避免所述电路的失速(stalling)。所述电路即使在权重输入在每个层以不同次数被重复使用的情况下也能够有效地执行计算。
该说明书的主题的一个或多个实施例的细节在附图和以下描述中给出。所述主题的其它特征、方面和优势将由于该描述、附图和权利要求而是显而易见的。
附图说明
图1是用于针对神经网络的给定层执行计算的示例方法的流程图。
图2示出了示例神经网络处理***。
图3示出了包括矩阵计算单元的示例架构。
图4示出了包括脉动矩阵的cell的示例架构。
图5是用于针对多个层执行神经网络计算的示例方法的流程图。
图6示出了具有多个层的示例神经网络以及每个层的批大小。
各图中同样的附图标记和指示表示同样的要素。
具体实施方式
具有多个层的神经网络能够被用来计算推理。例如,在给定输入的情况下,神经网络能够针对所述输入计算推理。神经网络通过经由所述神经网络的每个层处理输入来计算该推理。特别地,神经网络的层能够按照顺序布置,每个都具有相应的权重集合。每个层接收输入并且依据所述层的权重集合对所述输入进行处理从而生成输出。所述输出能够被用作下一个神经网络层处的输入。
因此,为了从所接收的计算计算推理,神经网络接收输入并且按顺序经由每个神经网络层对其进行处理从而生成推理,其中来自一个神经网络层的输出被作为输入提供至下一个神经网络层。针对神经网络层的数据输入,例如针对神经网络的输入或者针对神经网络的所述顺序中所述层以下的层的输出,能够被称作所述层的激励输入。
在一些实施方式中,神经网络的层以有向图结构进行布置。也就是说,任何特定层都能够接收多个输入、多个输出,或者它们二者。神经网络的层还能够被布置为使得层的输出能够作为输入被送回先前层。
图1是用于使用专用硬件电路针对神经网络的给定层执行计算的示例处理100的流程图。为了方便,将关于执行方法100的具有一个或多个电路的***对方法100进行描述。方法100能够针对神经网络的每个层执行以便从所接收的输入计算推理。
所述***针对给定层接收权重输入的集合(步骤102)以及激励输入的集合(步骤104)。所述权重输入的集合和激励输入的集合能够分别从所述专用硬件电路的动态存储器和统一缓冲器接收。在一些实施方式中,所述权重输入的集合和激励输入的集合都能够从统一缓冲器接收。
所述***使用所述专用硬件电路的矩阵乘法单元从所述权重输入和激励输入生成累加值(步骤106)。在一些实施方式中,所述累加值是所述权重输入的集合和激励输入的集合的点积。也就是说,针对一个权重集合,所述***能够将每个权重输入与每个激励输入相乘并且将乘积相加在一起从而形成累加值。所述***随后能够计算其它权重集合与其它激励输入集合的点积。
所述***能够使用所述专用硬件电路的矢量计算单元从所述累加值生成层输出(步骤108)。在一些实施方式中,所述矢量计算单元对所述累加值应用激励函数。所述层的输出能够被存储在统一缓冲器中以便用作针对神经网络中的后续层的输入,或者能够被用来确定推理。所述***在所接收的输入已经经由神经网络的每个层进行了处理从而针对所接收的输入生成了推理时,完成对所述神经网络的处理。
图2示出了用于执行神经网络计算的示例专用集成电路200。***200包括主机接口202。主机接口202能够接收包括用于神经网络计算的配置信息的指令。所述配置信息能够包括以下的至少一个或多个:应当对多少层进行处理,针对所述层中每个层的权重输入的相对应集合,激励输入的初始集合,即针对要从其计算推理的神经网络的输入,每个层的相对应输入和输出大小,神经网络计算的步幅值,以及所要处理的层的类型,例如卷积层或完全连接层。
主机接口202能够向定序器206发送指令,所述定序器206将所述指令转换为控制电路执行神经网络计算的低阶(low level)控制信号。在一些实施方式中,所述控制信号调整(regulate)电路中的数据流,例如权重输入的集合和激励输入的集合如何流过所述电路。定序器206能够向统一缓冲器208、矩阵计算单元212和矢量计算单元214发送控制信号。在一些实施方式中,定序器206还向直接存储器访问引擎204和动态存储器210发送控制信号。在一些实施方式中,定序器206是生成时钟信号的处理器。定序器206能够使用所述时钟信号的时序在适当时间向电路200的每个组件发送控制信号。在一些其它实施方式中,主机接口202送入来自外部处理器的时钟信号。
主机接口202能够将权重输入的集合以及激励输入的初始集合发送至直接存储器访问引擎204。直接存储器访问引擎204能够将激励输入的集合存储在统一缓冲器208。在一些实施方式中,直接存储器访问将权重存储至可以作为存储器单元的动态存储器210。在一些实施方式中,所述动态存储器位于所述电路之外。
统一缓冲器208是存储器缓冲器。其能够被用来存储来自直接存储器访问引擎204的激励输入的集合以及来自矢量计算单元214的输出。直接存储器访问引擎204还能够从统一缓冲器208读取矢量计算单元214的输出。
动态存储器210和统一缓冲器208能够将权重输入的集合和激励输入的集合分别发送至矩阵计算单元212。在一些实施方式中,矩阵计算单元212是二维脉动矩阵。矩阵计算单元212也可以是一维脉动矩阵,或者能够执行例如乘法和加法的算术运算的其它电路。在一些实施方式中,矩阵计算单元212是通用矩阵处理器。
矩阵计算单元212能够对权重输入和激励输入进行处理并且向矢量计算单元214提供输出的矢量。在一些实施方式中,矩阵计算单元将输出的矢量发送至统一缓冲器208,所述统一缓冲器208将所述输出的矢量发送至矢量计算单元214。所述矢量计算单元能够对输出的矢量进行处理并且将经处理的输出的矢量存储至统一缓冲器。例如,矢量计算单元214能够对矩阵计算单元的输出,例如累加值的矢量,应用非线性函数以生成激励值。在一些实施方式中,矢量计算单元214生成规一化(normalized)值、合并值(pooled value),或者它们二者。经处理的输出的矢量能够被用作矩阵计算单元212的激励输入,例如用于在神经网络的后续层中使用。下文将参考图3和图4更为详细地对矩阵计算单元212进行描述。
图3示出了包括矩阵计算单元的示例架构300。所述矩阵计算单元是二维脉动阵列306。阵列306包括多个cell 304。在一些实施方式中,脉动阵列306的第一维度320对应于cell的列,并且脉动阵列306的第二维度320对应于cell的行。所述脉动阵列能够具有比列更多的行,比行更多的列,或者相等数量的列和行。
在所图示的示例中,值加载器302将激励输入发送至阵列306的行,并且权重摄取器接口308将权重输入发送至阵列306的列。然而,在一些其它实施方式中,激励输入被传输至阵列306的列而权重输入则被传输至行。
值加载器302能够从例如图2的统一缓冲器208的统一缓冲器接收激励输入。每个值加载器能够将相对应的激励输入发送至阵列306的不同的最左侧cell。所述最左侧cell可以是沿阵列306的最左侧列的cell。例如,值加载器312能够将激励输入发送至cell 314。所述值加载器还能够将激励输入发送至相邻的值加载器,并且所述激励输入能够在阵列306的另一个最左侧cell使用。这允许激励输入被转移以便在阵列306的另一个特定cell中使用。
权重摄取器接口308能够从例如图2的动态存储器210的存储器单元接收权重输入。权重摄取器接口308能够将相对应的权重输入发送至阵列306的不同的最上方cell。最上方cell能够是沿阵列306的最上方的行的cell。例如,权重摄取器接口308能够将权重输入发送至cell314和316。
在一些实施方式中,例如图2的主机接口202的主机接口沿一个维度将激励输入贯穿整个阵列306转移,例如转移至右侧,同时沿另一个维度将权重输入贯穿整个阵列306转移,例如转移至底部。例如,在一个时钟周期内,cell 314的激励输入能够转移至处于cell314右侧的cell 316中的激励寄存器。类似地,cell 316中的权重输入能够转移至处于cell314下方的cell 318处的权重寄存器。
在每个时钟周期上,每个cell能够对给定权重输入和给定激励输入进行处理以生成累加输出。所述累加输出也能够沿给定权重输入相同的维度被送至相邻cell。以下参考图4进一步对个体cell进行描述。
所述累加输出能够沿与权重输入相同的列被例如送往阵列306中的列的底部。在一些实施方式中,在每一列的底部,阵列306能够包括累加器单元310,所述累加器单元310在利用具有比列更多的权重输入的层或者具有比行更多的激励输入的层执行计算时,存储并累加来自每一列的累加输出。在一些实施方式中,每个累加器单元存储多个并行累加值。这将参考图6进一步描述。累加器单元310能够对每个累加输出进行累加以生成最终累加值。所述最终累加值能够被传输至矢量计算单元。在一些实施方式中,累加器单元310在处理具有比列更少的权重输入的层或者具有比行更少的激励输入的层时,在并不执行任何累加的情况下,将累加值送至矢量计算单元。
图4示出了例如图3的脉动阵列306的脉动阵列内的cell的示例架构400。
所述cell能够包括存储激励输入的激励寄存器406。根据cell在脉动阵列内的位置,所述激励寄存器能够从左侧相邻cell即位于给定cell左侧的相邻cell,或者从统一缓冲器,接收激励输入。所述cell可以包括存储权重输入的权重寄存器402。根据cell在脉动阵列内的位置,所述权重输入能够从顶部相邻cell或者从权重摄取器接口进行传输。所述cell还可以包括和输入(sum in)寄存器404。和输入寄存器404能够存储来自顶部相邻寄存器的累加值。乘法电路408能够被用来将来自权重寄存器402的权重输入与来自激励寄存器406的激励输入进行相乘。乘法电路408能够将乘积输出至求和电路410。
求和电路410能够对所述乘积以及来自和输入寄存器404中的累加值进行求和,从而生成新的累加值。求和电路410随后能够将所述新的累加值发送至位于底部相邻cell中的另一个和输入寄存器。所述新的累加值能够被用作所述底部相邻cell中的求和的运算对象。
所述cell还能够将权重输入和激励输入转移至相邻cell以便进行处理。例如,权重寄存器402能够将权重输入发送至底部相邻cell中的另一个权重寄存器。激励寄存器406能够将激励输入发送至右侧相邻cell中的另一个激励寄存器。所述权重输入和激励输入因此都能够被阵列中的其它cell在后续时钟周期中重复使用。
在一些实施方式中,所述cell还包括控制寄存器。所述控制寄存器能够存储确定所述cell是否应当将权重输入或激励输入转移至相邻cell的控制信号。在一些实施方式中,转移权重输入或激励输入占用一个或多个时钟周期。所述控制信号还能够确定激励输入或权重输入是否被传输至乘法电路408,或者能够确定乘法电路408是否对激励和权重输入进行运算。所述控制信号还能够例如使用线路而被送至一个或多个相邻cell。
在一些实施方式中,权重被预先转移至权重路径寄存器412中。权重路径寄存器412能够例如从顶部相邻cell接收权重输入,并且基于控制信号将权重输入传输至权重寄存器402。权重寄存器402能够静态存储权重输入而使得在激励输入在多个时钟周期内例如通过激励寄存器406被传输至cell时,所述权重输入保留在cell内而并不被传输至相邻cell。因此,所述权重输入能够例如使用乘法电路408被应用于多个激励输入,并且相应累加值能够被传输至相邻cell。
在一些实施方式中,经由神经网络的每个层对一个神经网络输入进行处理,以针对所述神经网络输入生成神经网络输出。然而,在一些实施方式中,所述电路一次性地经由神经网络的层处理多个神经网络输入,以针对输入生成神经网络输出,由此提高电路的利用率。
针对神经网络的特定层的输入能够被称作激励输入的集合。因此,神经网络输入能够是针对第一层的激励输入。所述第一层能够生成有待被第二层处理的输出,并且所述输出能够被称作针对所述第二层的激励输入的集合。
在一些实施方式中,不同于电路通过将激励输入从第一层发送至神经网络的最后层以生成推理来对激励输入的一个集合进行处理,所述电路能够在第一层处理激励输入的多个集合,例如如以上图3中所描述的针对激励输入的每个集合生成累加值,随后在第二层对激励输入的多个集合进行处理,等等。给定层处的激励输入的多个集合能够构成输入的一个或多个批。在一些实施方式中,给定层的各批在所述电路处理后续层的各批之前被处理。所述电路能够通过针对批中的每个输入生成累加值来处理一个批,所述每个输入可以是激励输入的独立集合。
在一些实施方式中,为了在针对给定神经网络层执行计算的同时使得吞吐量最大化,能够使得所述电路在给定神经网络层的权重输入被加载于脉动阵列中的同时,对多个独立激励输入进行处理。也就是说,所述权重输入能够随多个激励输入被重复使用。特别地,例如使用图2的矩阵计算单元212,所述电路通过使用权重输入和不同激励输入计算累加值而重复使用权重输入。作为说明,所述激励输入能够来自于多个不同的图像资源或多个音频样本。这将在下文参考图6进一步描述。
所述电路具有处理速度以及它能够访问存储器的速度。通常,所述处理速度比存储器访问速度更快。通过重复使用权重并且由此利用电路的处理速度,所述电路能够在从存储器访问要在后续计算中使用的权重输入的同时,并行地对所述脉动阵列的cell加以利用。
所述电路能够针对神经网络的每个层从电路的权重重用值确定对权重重用多少次。这能够由所述电路上针对硬件进行编译的软件或者由硬件来确定。在一些实施方式中,所述权重重用值是,在不同激励输入下重复使用权重输入数次的计算时间大于或等于从存储器访问新的权重输入的摄取时间之前,所述电路能够重复使用权重输入的次数。因此,所述权重重用值能够指示所述电路应当重复使用权重输入多少次,以使得利用率最大化且使得存储器访问等待时间最小化。
所述权重重用值能够基于以下的一个或多个:例如图2的动态存储器210的存储权重输入的存储器的时钟速率;例如图2的矩阵计算单元212的电路内的算术单元的数量;以及例如图2的统一缓冲器208和动态存储器210的存储器中的通道数量。所述权重重用值能够被用来确定神经网络的每个层的相应批大小。批大小能够被称作有效批大小,即允许层以产生最为有效数量的权重重用的方式进行操作的批大小。所述批大小是要在层进行处理而使得电路中的脉动矩阵得以被最大化的输入的数量。在一些实施方式中,给定层的批大小是权重重用值除以权重输入在层被重复使用的次数的上限值。权重输入被重复使用的次数能够直接对应于在执行累加计算时电路的脉动阵列的cell中所存储的激励输入的数量。这是因为在加载新的激励输入集合的同时权重输入能够保留在cell中,即“被暂停”。当新的激励输入集合被加载而权重输入被原地冷冻时,所述电路能够再次重复使用权重输入来计算与新的激励输入集合的卷积。下文将参考图6进一步对示例进行描述。
图5是用于针对多个层执行神经网络计算的示例方法的示图500。所述方法能够例如使用图2的主机202而由专用硬件电路来执行,或者由一个或多个处理器、固件、片外处理器来执行,或者由被配置为控制所述电路的一些其它软件处理来执行。
所述电路能够在每个神经网络层处进行处理期间接收层输入的集合以便由所述层进行处理(步骤502)。所述层输入的集合能够来自于例如图2的统一缓冲器208的存储器,或者来自于之前层,即所述输入集合是从网络中的之前层所生成的输出,并且如上文参考图2所描述的,使用所述输出作为输入集合能够由主机202来管理。每个输入可以是激励输入的集合,并且能够从独立的神经网络输入所生成。
针对给定神经网络层,所述***能够从所述输入集合形成输入的一个或多个批(步骤504)。如以上所描述的,每个神经网络层具有相关联的批大小。层处的每个所形成批包括并不超过所述层的批大小的多个输入。每个神经网络层的批输入能够被确定为所述神经网络的配置。在一些实施方式中,每个神经网络层的批大小在编译神经网络模型以便在电路上执行时进行计算。由于给定层的批大小能够在层处的处理开始前被计算,所述批内的输入数量能够基于给定层的批大小而形成。
作为示例,如果有24个图像需要由神经网络进行处理,并且所述神经网络的第一层具有批大小8,则电路能够形成8个图像的3个批,即将24个图像划分为8个输入的3个批。针对每个批,所述电路能够通过针对层重复使用权重输入的特定集合而对批中的8个不同图像进行处理。所述电路随后能够(1)在后续层处理一个或多个批,或者(2)在所述层使用权重输入的特定集合处理8个不同图像资源的另一个批。所述电路基于神经网络中其它层的批大小来确定以(1)还是(2)继续处理,这将在下文的步骤506以及参考图6进一步描述。
针对给定神经网络层,所述电路能够选择一个或多个批中的多个进行处理(步骤506)。在一些实施方式中,选择数量使得一个或多个批中的所述数量中的输入的计数大于或等于后续层的相对应批大小。例如,如果当前层必须处理均具有5个输入的3个批,并且后续层的批大小为10,则所述电路能够选择所述3个批中的2个批进行处理。所述2个被选择的批具有总共10个输入,即2*5,这等于后续层的相对应批大小,即10。在一些实施方式中,剩余的第三批将在电路中的脉动阵列的后续回合中进行处理。下文将参考图6进一步描述又另一个示例。
所述电路能够例如使用脉动阵列来处理所选择数量的输入批以针对所选择批中的每个输入生成相应层输出(步骤508)。所述电路能够通过在针对每个输入计算累加值时重复使用权重输入来处理每个所选择的输入批。如上文所描述的,所述权重输入被应用于多个独立输入,原因在于所述权重输入在新的激励输入集合被加载的同时能够保留在cell中,即“被暂停”。
作为说明,批次能够具有两个输入——激励输入的集合A1以及激励输入的集合A2。所述电路能够通过在从存储器取得权重输入的集合W2之前将权重输入的集合W1应用于这两个集合A1和A2来重复使用集合W1,其中集合W2是用于后续层的权重的集合,或者,如果层具有比要由电路的脉动阵列所处理的更多权重,则权重的下一个子集用于所述层。在另一个示例中,如果存在8个均有待处理的5个输入的批,即总共40个输入,并且电路选择了4个批进行处理,则所述电路能够对4个批内的输入,即总共20个输入,进行处理以生成相应层的输出,即总共20个层输出。这将在下文参考图6进一步描述。
在对所选择数量的批进行处理之后,所述电路能够在所述层处理第二数量的批或者继续在后续层处理一个或多个批。这将在下文参考图6进一步描述。
虽然该方法经被描述为在处理神经网络的电路上实施,但是该方法也能够在例如中央处理器(CPU)或图形处理器(GPU)的处理器上实施。例如,所述处理器能够在从存储器检索权重的同时以一定次数重复使用权重值,所述存储器例如动态随机访问存储器(DRAM)。
图6示出了具有多个层的示例神经网络600以及每个层的批大小。如以上所描述的,给定层的批大小是权重重用值除以权重输入在层处被重复使用的次数的上限值。所述上限函数能够对数量进行处理并且返回不小于所述数量的最小整数。权重输入被重复使用的次数能够直接对应于电路的脉动阵列的cell中所存储的激励输入的数量。例如,电路的权重重用值可以是150。层1 602处理170×170个输入。所述170×170个激励输入中的每个可以被存储在脉动阵列的cell中。因此,层1 602的批大小是CEIL(1500/(170*170))=1。层2 604的批大小是CEIL(1500/(28*28))=2。使用相同计算,层3-5 606-610具有批大小8,并且层6 612具有批大小32。在一些实施方式中,批大小被取整为最接近的2的幂。
作为说明,层1具有1个输入的批大小,而层2具有2个输入的批大小。所述电路例如能够接收10个输入以便在层1进行处理,例如总共10个不同图像。
所述电路能够确定出自于层1处的十个当中的两个批,即总共2个输入,应当被处理。在一些实施方式中,所述电路通过将层2处的批大小除以层1的批大小来确定该数量,即2/1=2。通过处理单一输入的两个批,所述电路处理两个输入,这等于层2的批大小,即2。所述电路能够处理这两个批以从这两个输入生成两个层输出,例如通过计算累加值的两个矢量——每个图像产生一个。每个层输出能够作为输入以便输入至后续层。所述电路能够形成两个输入的批,例如累加值的两个矢量,以便在层2处进行处理。所述批能够被存储在统一缓冲器中。
所述电路能够确定在层2处的四个批应当被处理。通过处理大小为2的四个批,所述电路对8个输入进行处理,这等于层3处的批大小,即8。所述电路能够处理这四个批以从所述8个输入生成八个层输出。随后,所述电路能够形成8个输入的批以便在层3进行处理。
所述电路能够继续直至输入已经在神经网络的所有层得到处理。例如,由于层3-5具有批大小8,所以所述电路能够确定在层3-5中的每个处的8个输入的一个批应当被处理。类似地,所述电路能够确定在层5处的均具有8个输入的四个批应当被处理,由此形成能够在层6进行处理的32个输入的批。针对每个输入,层6能够生成能够被用于推理的一个或多个层输出。
在一些实施方式中,所述电路例如使用运算电路来计算跨神经网络中的所有层的批大小的最小公倍数。所述电路随后能够在处理后续层之前在每个层对等于或大于所述最小公倍数的最小输入数量进行处理。换句话说,所述电路能够基于所述最小公倍数来确定(1)在后续层处理一个批还是(2)在当前层处理另一个批。例如,层1-6 602-612的批大小的最小公倍数是32。在层1处理一个批之后,所述电路能够确定层1仅生成了1个输出,其小于最小公倍数32。因此,所述电路能够确定在层1处理另一个批,在层1已经总共生成了2个输出。所述电路能够继续生成输出直至已经在层1生成了32个输出,即所述最小公倍数。随后,所述电路能够继续在后续层处理批。在一些实施方式中,每个层输出被存储在统一缓冲器中,例如图2的统一缓冲器208。
作为说明,所述电路能够选择32个批进行处理,这在层1总共为32个输入。所述电路随后能够在层2选择总共32个输入的16个批,随后在层3选择4个批以便处理总共32个输入,随后在层4选择4个批以便处理总共32个输入,随后在层5选择4个批以便处理总共32个输入,最后在层6选择1个批以便处理总共32个输入。
在一些实施方式中,在特定层,所述电路基于***参数而处理数量大于所述最小公倍数的输入,所述***参数例如是用户所提供的参数。在一些实施方式中,所述电路处理数量能够被后续层的批大小整除的输入。在一些其它实施方式中,所述电路接收指令以处理大量输入,并且所述电路在继续后续数生成输出之前对输入的批进行处理从而使得在特定层所生成输出的数量最大化。所述电路能够限制在特定层所生成的输出数量,使得所生成输出的数量能够被后续层的批大小整除。
该说明书中所描述的主题和功能操作的实施例能够以数字电子电路来实施,以有形体现的计算机软件或固件来实施,以包括该说明书中所公开的结构及其结构等同物的计算机硬件来实施,或者以它们中一个或多个的组合来实施。该说明书中所公开主题的实施例能够被实施为一个或多个计算机程序,即在有形的非瞬态程序载体上进行编码的、用于由数据处理装置执行或者控制其操作的一个或多个计算机程序指令模块。替选地或附加地,该程序指令能够被在人工生成的传播信号上进行编码,例如机器生成的电、光学或电磁信号,其被生成以对信息进行编码,用于传输至适当接收器装置而由数据处理装置来执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器设备,或者它们中一个或多个的组合。
术语“数据处理装置”包含用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机,或者多个处理器或计算机。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***,或者它们中的一个或多个的组合的代码。
计算机程序(也被称作或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)能够以任意形式的编程语言进行编写,包括编译或解释语言,或者声明或过程语言,并且其能够以任意形式进行部署,包括作为独立程序或者作为适于在计算环境中使用的模块、组件、子程序或其它单元。计算机程序可以对应于文件***中的文件,但是并非需要如此。程序能够被存储在保存有例如标记语言文档中所存储的一个或多个脚本的其它程序或数据的文件的一部分中,存储在专用于所讨论程序的单个文件中,或者存储在多个协同文件中,例如存储一个或多个模块、子程序或代码部分的文件。计算机程序可以被部署为在一台计算机或多台计算机上执行,所述多台计算机位于一个地点或者跨多个地点分布并且通过通信网络进行互连。
该说明书中所描述的处理和逻辑流程能够由一个或多个可编程计算机来实施,所述可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来实行功能。所述处理和逻辑流程还能够由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路所执行,并且装置也能够被实施为所述专用逻辑电路。
适于执行计算机程序的处理器包括,例如能够基于通用和专用的微处理器或者它们二者,以及任意其它类型的中央处理器。通常,中央处理器将从只读存储器或随机访问存储器或者其二者接收指令和数据。计算机的必要部件是用于执行或进行指令的中央处理器以及用于存储指令和数据的一个或多个存储器。通常,计算机还将包括用于存储数据的一个或多个大型存储设备,或者操作性地耦合到所述大型存储设备,或者其二者,所述大型存储设备例如磁、磁光盘或光盘。然而,计算机不是必需具有这样的设备。此外,计算机可以嵌入另一个设备之中,仅举出几个示例,所述设备例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位***(GPS)接收器,或者便携式存储设备,例如通用串行总线(USB)闪存。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以被专用逻辑电路补充或者结合于其中。
为了发送与用户的交互,该说明书中所描述主题的实施例可以在具有显示设备以及键盘和指示设备的计算机上实施,所述显示设备例如CRT(阴极射线管)或LCD(液晶显示器)监视器,用于向用户显示信息,并且所述指示设备例如用户能够通过其向计算机发送输入的鼠标或轨迹球。也可以使用其它类型的设备来提供与用户的交互;例如提供给用户的反馈可以是任意形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任意形式被接收,包括声音、语音或触觉输入。此外,计算机能够通过向用户所使用的设备发送文档以及从所述设备接收文档来与用户进行交互;例如,通过响应于从用户的客户端设备上的web浏览器接收到请求而向所述web浏览器发送网页。
该说明书所描述主题的实施例可以在计算***中实施,所述计算***包括例如作为数据服务器的后端组件;或者包括例如应用服务器的中间件组件;或者包括前端组件,例如具有用户能够通过其与该说明书中所描述主题的实施方式进行交互的图形用户界面或Web浏览器的客户端计算机;或者一个或多个这样的后端、中间件或前端组件的任意组合。所述***的组件能够通过例如通信网络的任意形式或介质的数字数据通信来进行互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
计算***可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过通信网络进行交互。客户端和服务器的关系通过在各自计算机上运行并且彼此具有客户端-服务器关系的计算机程序所建立。
虽然该说明书包含许多具体实施细节,但是这些并不应当被理解为对任何发明以及所要求保护的内容的范围进行限制,而是作为特定于特定发明的特定实施例的特征的描述。该说明书中以单独实施例为场境进行描述的一定特征也能够在单个实施例中以组合形式来实施。相反,以单个实施例为场境进行描述的各种特征也能够单独或以任意适当子组合在多个实施例中实施。此外,虽然特征在上文中可以被描述为以一定组合进行工作并且甚至最初要求如此,但是来自所要求组合的一个或多个特征在一些情况下可以脱离该组合,并且所要求的组合可以针对子组合或子组合的变化。
类似地,虽然操作在图中以特定顺序进行描绘,但是这并不应当被理解为要求这样的操作以所示出的特定顺序或以连续顺序来执行,或者所有所图示的操作都要被执行以实现所期望的结果。在一定情况下,多任务和并行处理可能是有利的。此外,以上所描述实施例中的各种***模块和组件的划分并不应当被理解为在所有实施例中都要求这样的划分,并且应当理解的是,所描述的程序组件和***通常在单个软件产品中集成在一起或者被封装到多个软件产品中。
已经对该主题的特定实施例进行了描述。其它实施例处于以下权利要求的范围之内。例如,权利要求中所引用的动作可以以不同顺序来执行并且仍然实现所期望的结果。作为一个示例,附图中所描绘的处理并非必然要求所示出的特定顺序或连续顺序以实现所期望的结果。在一些实施方式中,多任务和并行处理可能是有利的。
Claims (27)
1.一种用于针对多个输入中的每个生成相应的神经网络输出的方法,其中所述生成包括经由多个神经网络层中的每个处理每个输入以针对所述输入生成相应的神经网络输出,其中所述神经网络层以有向图结构进行布置,并且其中每个神经网络层具有相应批大小,所述方法包括,针对所述神经网络层的每个:
接收要在所述神经网络层处进行处理的多个输入;
从所述多个输入形成输入的一个或多个批,每个批具有等于所述神经网络层的相应批大小的数个输入;
选择输入的所述一个或多个批中的数个进行处理,其中所述一个或多个批中的数个的输入的计数大于、小于或等于在所述有向图结构中的后续层的相应相关联批大小;以及
对输入的所述一个或多个批中的数个进行处理以生成相应的神经网络层输出。
2.根据权利要求1所述的方法,其中所述相应批大小至少基于权重重用值,所述权重重用值表示在将要长于所述权重输入从存储器的加载时间的、在矩阵计算单元处使用所述权重输入的输出值计算时间内,权重输入需要被重复使用的次数。
3.根据权利要求2所述的方法,其中所述权重重用值至少基于存储所述权重输入的所述存储器的时钟速率。
4.根据权利要求2或3所述的方法,其中每个批大小至少基于所述权重重用值除以针对所述相应层的权重输入被重复使用的次数。
5.根据权利要求2至4中的任一项所述的方法,其中所述多个神经网络层在矩阵处理单元被处理,其中对输入的所述一个或多个批中的数个进行处理包括使用所述矩阵计算单元针对每个输入计算累加值。
6.根据之前任一项权利要求所述的方法,其中每个输入对应于不同的图像资源。
7.根据权利要求1至5中的任一项所述所述的方法,其中每个输入对应于音频样本。
8.根据之前任一项权利要求所述的方法,进一步包括从所述一个或多个层输出形成批用于在所述后续层处进行处理。
9.根据之前任一项权利要求所述的方法,进一步包括针对每个输出,生成相对应的推理。
10.一种用于针对多个输入中的每个生成相应的神经网络输出的***,其中所述生成包括经由多个神经网络层中的每个处理每个输入以针对所述输入生成相应的神经网络输出,其中所述神经网络层以有向图结构进行布置,并且其中每个神经网络层具有相应批大小,所述***包括:
一个或多个计算机;以及
耦合至所述一个或多个计算机并且具有存储于其上的指令的计算机可读介质,当被所述一个或多个计算机执行时,所述指令使得所述一个或多个计算机针对所述神经网络层中的每个执行以下操作,所述操作包括:
接收要在所述神经网络层处进行处理的多个输入;
从所述多个输入形成输入的一个或多个批,每个批具有等于所述神经网络层的相应批大小的数个输入;
选择输入的所述一个或多个输入批中的数个进行处理,其中所述一个或多个批中的数个中的所述输入的计数大于、小于、或等于所述有向图结构中的后续层的相应相关联批大小;以及
对输入的所述一个或多个输入批中的数个进行处理以生成相应的神经网络层输出。
11.根据权利要求10所述的***,其中所述相应批大小至少基于权重重用值,所述权重重用值表示在将要长于所述权重输入从存储器的加载时间的、在矩阵计算单元处使用所述权重输入的输出值计算时间内,权重输入需要被重复使用的次数。
12.根据权利要求11所述的***,其中所述权重重用值至少基于存储所述权重输入的所述存储器的时钟速率。
13.根据权利要求11或12所述的***,其中每个批大小至少基于所述权重重用值除以针对相应层的权重输入被重复使用的次数。
14.根据权利要求11至13中的任一项所述的***,其中所述多个神经网络层在矩阵处理单元处被处理,其中对输入的所述一个或多个批中的数个进行处理包括使用所述矩阵计算单元针对每个输入计算累加值。
15.根据权利要求10至14中的任一项所述的***,其中每个输入对应于不同的图像资源。
16.根据权利要求10至14中的任一项所述的***,其中每个输入对应于音频样本。
17.根据权利要求10至16中的任一项所述的***,进一步包括从一个或多个层输出形成批用于在所述后续层进行处理。
18.根据权利要求10至17中的任一项所述的***,进一步包括针对每个输出生成相对应的推理。
19.一种具有存储于其上的指令的计算机可读介质,当被一个或多个计算机执行时,所述指令使得所述一个或多个计算机执行用于针对多个输入中的每个生成相应的神经网络输出的操作,其中所述生成包括经由多个神经网络层中的每个层来处理每个输入,以针对所述输入生成相应的神经网络输出,其中所述神经网络层以有向图结构进行布置,并且其中每个神经网络层具有相应批大小,所述操作包括,针对每个神经网络层:
接收要在所述神经网络层处进行处理的多个输入;
从所述多个输入形成输入的一个或多个批,每个批具有等于所述神经网络层的相应批大小的数个输入;
选择输入的所述一个或多个输入批中的数个进行处理,其中所述一个或多个批中的数个的所述输入的计数大于、小于、或等于所述有向图结构中的后续层的相应相关联批大小;以及
对输入的所述一个或多个批中的数个进行处理以生成相应的神经网络层输出。
20.根据权利要求19所述的计算机可读介质,其中所述相应批大小至少基于权重重用值,所述权重重用值表示在将要长于所述权重输入从存储器的加载时间的、在矩阵计算单元处使用所述权重输入的输出值计算时间内,权重输入需要被重复使用的次数。
21.根据权利要求20所述的计算机可读介质,其中所述权重重用值至少基于存储所述权重输入的所述存储器的时钟速率。
22.根据权利要求20或21所述的计算机可读介质,其中每个批大小至少基于所述权重重用值除以针对相应层的权重输入被重复使用的次数。
23.根据权利要求20至22中的任一项所述的计算机可读介质,其中所述多个神经网络层在矩阵处理单元处被处理,其中对输入的所述一个或多个输入批中的数个进行处理包括使用所述矩阵计算单元针对每个输入计算累加值。
24.根据权利要求19至23中的任一项所述的计算机可读介质,其中每个输入对应于不同的图像资源。
25.根据权利要求19至23中的任一项所述的计算机可读介质,其中每个输入对应于音频样本。
26.根据权利要求19至25中的任一项所述的计算机可读介质,进一步包括从所述一个或多个层输出形成批用于在所述后续层处进行处理。
27.根据权利要求19至26中的任一项所述的计算机可读介质,进一步包括针对每个输出生成相对应的推理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011246313.7A CN112465131A (zh) | 2015-05-21 | 2016-05-03 | 神经网络处理器中的批处理 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562165020P | 2015-05-21 | 2015-05-21 | |
US62/165,020 | 2015-05-21 | ||
US14/844,431 | 2015-09-03 | ||
US14/844,431 US10083395B2 (en) | 2015-05-21 | 2015-09-03 | Batch processing in a neural network processor |
PCT/US2016/030515 WO2016186823A1 (en) | 2015-05-21 | 2016-05-03 | Batch processing in a neural network processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011246313.7A Division CN112465131A (zh) | 2015-05-21 | 2016-05-03 | 神经网络处理器中的批处理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107454965A true CN107454965A (zh) | 2017-12-08 |
CN107454965B CN107454965B (zh) | 2020-12-01 |
Family
ID=55967450
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680020154.4A Active CN107454965B (zh) | 2015-05-21 | 2016-05-03 | 神经网络处理器中的批处理 |
CN202011246313.7A Pending CN112465131A (zh) | 2015-05-21 | 2016-05-03 | 神经网络处理器中的批处理 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011246313.7A Pending CN112465131A (zh) | 2015-05-21 | 2016-05-03 | 神经网络处理器中的批处理 |
Country Status (11)
Country | Link |
---|---|
US (5) | US10083395B2 (zh) |
EP (2) | EP4235449A3 (zh) |
JP (5) | JP6640243B2 (zh) |
KR (6) | KR102610083B1 (zh) |
CN (2) | CN107454965B (zh) |
DE (2) | DE202016107476U1 (zh) |
DK (1) | DK3298547T3 (zh) |
GB (2) | GB2600031B (zh) |
HK (1) | HK1245463A1 (zh) |
TW (2) | TWI591549B (zh) |
WO (1) | WO2016186823A1 (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628799A (zh) * | 2018-04-17 | 2018-10-09 | 上海交通大学 | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 |
CN108777153A (zh) * | 2018-05-25 | 2018-11-09 | 华中科技大学 | 一种多端输入突触器件其可塑性调制方法 |
CN109919321A (zh) * | 2019-02-01 | 2019-06-21 | 京微齐力(北京)科技有限公司 | 单元具有本地累加功能的人工智能模块及***芯片 |
CN110447044A (zh) * | 2017-05-19 | 2019-11-12 | 谷歌有限责任公司 | 调度神经网络处理 |
CN111133456A (zh) * | 2017-09-14 | 2020-05-08 | 赛灵思公司 | 在集成电路中实现神经网络的***和方法 |
CN111465943A (zh) * | 2017-12-12 | 2020-07-28 | 亚马逊技术股份有限公司 | 芯片上计算网络 |
CN111860801A (zh) * | 2019-04-30 | 2020-10-30 | 百度(美国)有限责任公司 | 神经网络方法、神经网络***和计算机可读介质 |
CN112465131A (zh) * | 2015-05-21 | 2021-03-09 | 谷歌有限责任公司 | 神经网络处理器中的批处理 |
CN112789627A (zh) * | 2018-09-30 | 2021-05-11 | 华为技术有限公司 | 一种神经网络处理器、数据处理方法及相关设备 |
CN112837208A (zh) * | 2019-11-22 | 2021-05-25 | 百度(美国)有限责任公司 | 改进ai引擎mac利用率的数据格式变换方法 |
CN113159307A (zh) * | 2018-06-05 | 2021-07-23 | 光子智能股份有限公司 | 光电计算*** |
CN113196233A (zh) * | 2018-12-19 | 2021-07-30 | ams有限公司 | 用模拟神经元的单个物理层实现多层神经网络 |
WO2021237755A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 神经网络调度方法及装置 |
WO2021244045A1 (zh) * | 2020-05-30 | 2021-12-09 | 华为技术有限公司 | 一种神经网络的数据处理方法及装置 |
WO2022033241A1 (zh) * | 2020-08-10 | 2022-02-17 | 腾讯科技(深圳)有限公司 | 对象的处理方法及装置、存储介质和电子设备 |
CN114895638A (zh) * | 2018-06-22 | 2022-08-12 | 应用材料公司 | 将图形处理单元用于基板路由及吞吐量建模 |
US11741345B2 (en) | 2017-12-12 | 2023-08-29 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
Families Citing this family (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417555B2 (en) * | 2015-05-29 | 2019-09-17 | Samsung Electronics Co., Ltd. | Data-optimized neural network traversal |
US20170153892A1 (en) * | 2015-11-30 | 2017-06-01 | Intel Corporation | Instruction And Logic For Programmable Fabric Hierarchy And Cache |
US10037490B2 (en) | 2016-12-13 | 2018-07-31 | Google Llc | Performing average pooling in hardware |
US10521488B1 (en) | 2016-12-30 | 2019-12-31 | X Development Llc | Dynamic partitioning |
US10248613B2 (en) * | 2017-01-10 | 2019-04-02 | Qualcomm Incorporated | Data bus activation in an electronic device |
US10824934B2 (en) * | 2017-01-12 | 2020-11-03 | Texas Instruments Incorporated | Methods and apparatus for matrix processing in a convolutional neural network |
US10896367B2 (en) | 2017-03-07 | 2021-01-19 | Google Llc | Depth concatenation using a matrix computation unit |
US9691019B1 (en) * | 2017-03-07 | 2017-06-27 | Google Inc. | Depth concatenation using a matrix computation unit |
US10909447B2 (en) | 2017-03-09 | 2021-02-02 | Google Llc | Transposing neural network matrices in hardware |
KR102414583B1 (ko) * | 2017-03-23 | 2022-06-29 | 삼성전자주식회사 | 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법 |
CN107085562B (zh) * | 2017-03-23 | 2020-11-03 | 中国科学院计算技术研究所 | 一种基于高效复用数据流的神经网络处理器及设计方法 |
US10387298B2 (en) * | 2017-04-04 | 2019-08-20 | Hailo Technologies Ltd | Artificial neural network incorporating emphasis and focus techniques |
US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
CN109034381B (zh) | 2017-06-09 | 2022-01-28 | 宏达国际电子股份有限公司 | 训练任务优化***、方法及其非暂态电脑可读媒体 |
CN107146616B (zh) * | 2017-06-13 | 2020-05-08 | Oppo广东移动通信有限公司 | 设备控制方法及相关产品 |
CN109284130B (zh) * | 2017-07-20 | 2021-03-23 | 上海寒武纪信息科技有限公司 | 神经网络运算装置及方法 |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US11157287B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system with variable latency memory access |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
TWI687873B (zh) * | 2017-08-09 | 2020-03-11 | 美商谷歌有限責任公司 | 用於加速神經網路之計算單元 |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11620490B2 (en) * | 2017-10-17 | 2023-04-04 | Xilinx, Inc. | Multi-layer neural network processing by a neural network accelerator using host communicated merged weights and a package of per-layer instructions |
JP6901633B2 (ja) | 2017-10-27 | 2021-07-14 | グーグル エルエルシーGoogle LLC | カプセルニューラルネットワーク |
CN107818367B (zh) * | 2017-10-30 | 2020-12-29 | 中国科学院计算技术研究所 | 用于神经网络的处理***和处理方法 |
KR102586173B1 (ko) | 2017-10-31 | 2023-10-10 | 삼성전자주식회사 | 프로세서 및 그 제어 방법 |
US20200210818A1 (en) * | 2017-11-02 | 2020-07-02 | Tdk Corporation | Array device including neuromorphic element and neural network system |
WO2019090325A1 (en) * | 2017-11-06 | 2019-05-09 | Neuralmagic, Inc. | Methods and systems for improved transforms in convolutional neural networks |
KR20190051697A (ko) | 2017-11-07 | 2019-05-15 | 삼성전자주식회사 | 뉴럴 네트워크의 디컨벌루션 연산을 수행하는 장치 및 방법 |
KR102424962B1 (ko) | 2017-11-15 | 2022-07-25 | 삼성전자주식회사 | 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 |
US20190156214A1 (en) | 2017-11-18 | 2019-05-23 | Neuralmagic Inc. | Systems and methods for exchange of data in distributed training of machine learning algorithms |
CN107844828B (zh) * | 2017-12-18 | 2021-07-30 | 南京地平线机器人技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108108811B (zh) * | 2017-12-18 | 2021-07-30 | 南京地平线机器人技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
EP3729340A4 (en) * | 2017-12-18 | 2021-12-29 | Mythic, Inc. | Systems and methods for mapping matrix calculations to a matrix multiply accelerator |
CN108345934B (zh) * | 2018-01-16 | 2020-11-03 | 中国科学院计算技术研究所 | 一种用于神经网络处理器的激活装置及方法 |
EP3735638A4 (en) * | 2018-01-24 | 2021-03-17 | Alibaba Group Holding Limited | DEEP LEARNING ACCELERATOR SYSTEM AND PROCEDURES FOR IT |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11551064B2 (en) | 2018-02-08 | 2023-01-10 | Western Digital Technologies, Inc. | Systolic neural network engine capable of forward propagation |
US10796198B2 (en) | 2018-02-08 | 2020-10-06 | Western Digital Technologies, Inc. | Adjusting enhancement coefficients for neural network engine |
US11423300B1 (en) * | 2018-02-09 | 2022-08-23 | Deepmind Technologies Limited | Selecting actions by reverting to previous learned action selection policies |
CN108364061B (zh) * | 2018-02-13 | 2020-05-05 | 北京旷视科技有限公司 | 运算装置、运算执行设备及运算执行方法 |
US11709672B2 (en) | 2018-02-13 | 2023-07-25 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
EP3651073B1 (en) | 2018-02-13 | 2021-10-27 | Shanghai Cambricon Information Technology Co., Ltd | Computation device and method |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
CN110162162B (zh) | 2018-02-14 | 2023-08-18 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
KR102487535B1 (ko) * | 2018-02-20 | 2023-01-12 | 삼성전자주식회사 | 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치 |
US12008466B1 (en) * | 2018-03-23 | 2024-06-11 | Amazon Technologies, Inc. | Processor with control flow |
US11188814B2 (en) * | 2018-04-05 | 2021-11-30 | Arm Limited | Systolic convolutional neural network |
US11783174B2 (en) * | 2018-05-04 | 2023-10-10 | Apple Inc. | Splitting of input data for processing in neural network processor |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
US10832133B2 (en) | 2018-05-31 | 2020-11-10 | Neuralmagic Inc. | System and method of executing neural networks |
US11449363B2 (en) | 2018-05-31 | 2022-09-20 | Neuralmagic Inc. | Systems and methods for improved neural network execution |
US11216732B2 (en) | 2018-05-31 | 2022-01-04 | Neuralmagic Inc. | Systems and methods for generation of sparse code for convolutional neural networks |
US10963787B2 (en) | 2018-05-31 | 2021-03-30 | Neuralmagic Inc. | Systems and methods for generation of sparse code for convolutional neural networks |
EP3825841A1 (en) | 2018-06-27 | 2021-05-26 | Shanghai Cambricon Information Technology Co., Ltd | Method and device for parallel computation of a network model |
DE102018115902A1 (de) | 2018-07-01 | 2020-01-02 | Oliver Bartels | SIMD-Prozessor mit CAM zur Operandenauswahl nach Mustererkennung |
US11138497B2 (en) * | 2018-07-17 | 2021-10-05 | Macronix International Co., Ltd | In-memory computing devices for neural networks |
CN109002879B (zh) * | 2018-07-23 | 2021-09-03 | 山东浪潮科学研究院有限公司 | 神经网络模型的可视化建模方法和装置 |
CN110865950B (zh) * | 2018-08-28 | 2021-01-12 | 中科寒武纪科技股份有限公司 | 数据预处理方法、装置、计算机设备和存储介质 |
US11966583B2 (en) | 2018-08-28 | 2024-04-23 | Cambricon Technologies Corporation Limited | Data pre-processing method and device, and related computer device and storage medium |
CN112654968A (zh) * | 2018-08-29 | 2021-04-13 | 高通股份有限公司 | 用于机器学习加速的架构的方法、装置和*** |
US11703939B2 (en) | 2018-09-28 | 2023-07-18 | Shanghai Cambricon Information Technology Co., Ltd | Signal processing device and related products |
WO2020072274A1 (en) | 2018-10-01 | 2020-04-09 | Neuralmagic Inc. | Systems and methods for neural network pruning with accuracy preservation |
WO2020073925A1 (zh) * | 2018-10-09 | 2020-04-16 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
WO2020073923A1 (zh) * | 2018-10-09 | 2020-04-16 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
KR20200043169A (ko) | 2018-10-17 | 2020-04-27 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 방법 및 장치 |
KR20200051278A (ko) | 2018-11-05 | 2020-05-13 | 삼성전자주식회사 | 인공 신경망에서의 작업 관리 방법 및 이를 포함하는 시스템 |
JP7315317B2 (ja) | 2018-11-09 | 2023-07-26 | 株式会社Preferred Networks | プロセッサおよびプロセッサのデータ転送方法 |
KR102451519B1 (ko) * | 2018-11-20 | 2022-10-07 | 삼성전자주식회사 | 룩업 테이블 기반의 비트-시리얼 처리 요소를 포함하는 심층 신경망 가속기 |
KR20200061164A (ko) * | 2018-11-23 | 2020-06-02 | 삼성전자주식회사 | 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서 |
KR20200066953A (ko) | 2018-12-03 | 2020-06-11 | 삼성전자주식회사 | Pim을 채용하는 반도체 메모리 장치 및 그 동작 방법 |
US10990525B2 (en) * | 2018-12-12 | 2021-04-27 | Mipsology SAS | Caching data in artificial neural network computations |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
US11544559B2 (en) | 2019-01-08 | 2023-01-03 | Neuralmagic Inc. | System and method for executing convolution in a neural network |
US10789510B2 (en) * | 2019-01-11 | 2020-09-29 | Google Llc | Dynamic minibatch sizes |
US11461653B2 (en) * | 2019-01-23 | 2022-10-04 | StradVision, Inc. | Learning method and learning device for CNN using 1xK or Kx1 convolution to be used for hardware optimization, and testing method and testing device using the same |
US11783176B2 (en) | 2019-03-25 | 2023-10-10 | Western Digital Technologies, Inc. | Enhanced storage device memory architecture for machine learning |
US10929058B2 (en) | 2019-03-25 | 2021-02-23 | Western Digital Technologies, Inc. | Enhanced memory device architecture for machine learning |
US11847554B2 (en) | 2019-04-18 | 2023-12-19 | Cambricon Technologies Corporation Limited | Data processing method and related products |
CN111832739B (zh) | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
WO2020248424A1 (zh) | 2019-06-12 | 2020-12-17 | 上海寒武纪信息科技有限公司 | 一种神经网络的量化参数确定方法及相关产品 |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
WO2021026225A1 (en) | 2019-08-08 | 2021-02-11 | Neuralmagic Inc. | System and method of accelerating execution of a neural network |
EP4020321A4 (en) | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
KR20210030653A (ko) * | 2019-09-10 | 2021-03-18 | 주식회사 모빌린트 | 복수 개의 코어를 갖는 연산 장치 |
US11842169B1 (en) | 2019-09-25 | 2023-12-12 | Amazon Technologies, Inc. | Systolic multiply delayed accumulate processor architecture |
TWI765336B (zh) * | 2019-10-08 | 2022-05-21 | 國立清華大學 | 適用於卷積神經網路之記憶體優化實現之區塊式推論方法及其系統 |
US12026604B2 (en) | 2019-11-11 | 2024-07-02 | NextVPU (Shanghai) Co., Ltd. | Memory pre-allocation for forward calculation in a neural network |
CN112783640B (zh) * | 2019-11-11 | 2023-04-04 | 上海肇观电子科技有限公司 | 预先分配内存的方法与设备、电路、电子设备及介质 |
US11467806B2 (en) | 2019-11-27 | 2022-10-11 | Amazon Technologies, Inc. | Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range |
US11816446B2 (en) | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
TWI727521B (zh) * | 2019-11-27 | 2021-05-11 | 瑞昱半導體股份有限公司 | 動態語音辨識方法及其裝置 |
US11586932B2 (en) * | 2020-03-10 | 2023-02-21 | International Business Machines Corporation | Model training with variable batch sizing and gradient checkpoint segments |
US11620830B2 (en) * | 2020-03-31 | 2023-04-04 | Ford Global Technologies, Llc | Context dependent transfer learning adaptation to achieve fast performance in inference and update |
US11308027B1 (en) | 2020-06-29 | 2022-04-19 | Amazon Technologies, Inc. | Multiple accumulate busses in a systolic array |
US11422773B1 (en) | 2020-06-29 | 2022-08-23 | Amazon Technologies, Inc. | Multiple busses within a systolic array processing element |
US11308026B1 (en) * | 2020-06-29 | 2022-04-19 | Amazon Technologies, Inc. | Multiple busses interleaved in a systolic array |
US11687831B1 (en) | 2020-06-30 | 2023-06-27 | Cadence Design Systems, Inc. | Method, product, and apparatus for a multidimensional processing array for hardware acceleration of convolutional neural network inference |
US11676068B1 (en) | 2020-06-30 | 2023-06-13 | Cadence Design Systems, Inc. | Method, product, and apparatus for a machine learning process leveraging input sparsity on a pixel by pixel basis |
US11651283B1 (en) | 2020-06-30 | 2023-05-16 | Cadence Design Systems, Inc. | Method, product, and apparatus for a machine learning process using dynamic rearrangement of sparse data and corresponding weights |
US11823018B1 (en) * | 2020-06-30 | 2023-11-21 | Cadence Design Systems, Inc. | Method, product, and apparatus for a machine learning process using weight sharing within a systolic array having reduced memory bandwidth |
US11615320B1 (en) | 2020-06-30 | 2023-03-28 | Cadence Design Systems, Inc. | Method, product, and apparatus for variable precision weight management for neural networks |
US20220036163A1 (en) * | 2020-07-29 | 2022-02-03 | Apple Inc. | Chained neural engine write-back architecture |
JP7358312B2 (ja) * | 2020-08-25 | 2023-10-10 | 株式会社東芝 | 記憶装置およびニューラルネットワーク装置 |
KR20220027500A (ko) * | 2020-08-27 | 2022-03-08 | 에스케이하이닉스 주식회사 | 가속 장치, 데이터 저장 장치, 데이터 처리 시스템 및 가속 장치의 동작방법 |
US11556757B1 (en) | 2020-12-10 | 2023-01-17 | Neuralmagic Ltd. | System and method of executing deep tensor columns in neural networks |
KR20220090104A (ko) | 2020-12-22 | 2022-06-29 | 삼성전자주식회사 | 컨벌루션 연산을 위한 데이터 전송 방법, 페처 및 컨벌루션 연산 장치 |
US20220318013A1 (en) * | 2021-03-25 | 2022-10-06 | Intel Corporation | Supporting 8-bit floating point format operands in a computing architecture |
CN115204355A (zh) * | 2021-04-14 | 2022-10-18 | 蒂普爱可斯有限公司 | 能够重新使用数据的神经处理单元及其方法 |
US11880682B2 (en) | 2021-06-30 | 2024-01-23 | Amazon Technologies, Inc. | Systolic array with efficient input reduction and extended array performance |
KR102590993B1 (ko) * | 2021-09-03 | 2023-10-19 | 한국전자기술연구원 | 적응형 배치 프로세싱 방법 및 시스템 |
US11714556B2 (en) * | 2021-09-14 | 2023-08-01 | quadric.io, Inc. | Systems and methods for accelerating memory transfers and computation efficiency using a computation-informed partitioning of an on-chip data buffer and implementing computation-aware data transfer operations to the on-chip data buffer |
US11960982B1 (en) | 2021-10-21 | 2024-04-16 | Neuralmagic, Inc. | System and method of determining and executing deep tensor columns in neural networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422348A2 (en) * | 1989-10-10 | 1991-04-17 | Hnc, Inc. | Two-dimensional systolic array for neural networks, and method |
CN1150847A (zh) * | 1994-05-02 | 1997-05-28 | 摩托罗拉公司 | 使用神经网络的计算机和使用该神经网络的方法 |
US20050044053A1 (en) * | 2003-08-21 | 2005-02-24 | Moreno Pedro J. | Method and apparatus for object identification, classification or verification |
US20140142929A1 (en) * | 2012-11-20 | 2014-05-22 | Microsoft Corporation | Deep neural networks training for speech and pattern recognition |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014235A (en) | 1987-12-15 | 1991-05-07 | Steven G. Morton | Convolution memory |
US5136717A (en) | 1988-11-23 | 1992-08-04 | Flavors Technology Inc. | Realtime systolic, multiple-instruction, single-data parallel computer system |
US5337395A (en) | 1991-04-08 | 1994-08-09 | International Business Machines Corporation | SPIN: a sequential pipeline neurocomputer |
US5146543A (en) | 1990-05-22 | 1992-09-08 | International Business Machines Corp. | Scalable neural array processor |
JPH04290155A (ja) | 1991-03-19 | 1992-10-14 | Fujitsu Ltd | 並列データ処理方式 |
US5903454A (en) | 1991-12-23 | 1999-05-11 | Hoffberg; Linda Irene | Human-factored interface corporating adaptive pattern recognition based controller apparatus |
US5278945A (en) * | 1992-01-10 | 1994-01-11 | American Neuralogical, Inc. | Neural processor apparatus |
JPH0652132A (ja) * | 1992-07-28 | 1994-02-25 | Mitsubishi Electric Corp | 並列演算半導体集積回路装置およびそれを用いたシステム |
JPH06203005A (ja) * | 1992-10-27 | 1994-07-22 | Eastman Kodak Co | 高速区分化ニューラルネットワーク及びその構築方法 |
US5517667A (en) * | 1993-06-14 | 1996-05-14 | Motorola, Inc. | Neural network that does not require repetitive training |
US5799134A (en) | 1995-03-13 | 1998-08-25 | Industrial Technology Research Institute | One dimensional systolic array architecture for neural network |
KR0152710B1 (ko) * | 1995-12-21 | 1998-10-15 | 양승택 | AT-Bus에 장착하기 위한 병렬 신경망 보드의 제어회로 |
US5812993A (en) | 1996-03-07 | 1998-09-22 | Technion Research And Development Foundation Ltd. | Digital hardware architecture for realizing neural network |
US6038337A (en) | 1996-03-29 | 2000-03-14 | Nec Research Institute, Inc. | Method and apparatus for object recognition |
JPH11177399A (ja) | 1997-12-15 | 1999-07-02 | Mitsubishi Electric Corp | クロック遅延回路およびこれを用いた発振回路、位相同期回路、クロック生成回路 |
GB9902115D0 (en) | 1999-02-01 | 1999-03-24 | Axeon Limited | Neural networks |
US6917703B1 (en) * | 2001-02-28 | 2005-07-12 | Nevengineering, Inc. | Method and apparatus for image analysis of a gabor-wavelet transformed image using a neural network |
US20020143720A1 (en) * | 2001-04-03 | 2002-10-03 | Anderson Robert Lee | Data structure for improved software implementation of a neural network |
JP4314017B2 (ja) * | 2002-11-06 | 2009-08-12 | キヤノン株式会社 | 階層処理装置 |
US7634137B2 (en) | 2005-10-14 | 2009-12-15 | Microsoft Corporation | Unfolded convolution for fast feature extraction |
WO2008067676A1 (en) | 2006-12-08 | 2008-06-12 | Medhat Moussa | Architecture, system and method for artificial neural network implementation |
US8184696B1 (en) | 2007-09-11 | 2012-05-22 | Xilinx, Inc. | Method and apparatus for an adaptive systolic array structure |
JP5376920B2 (ja) | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
KR101108987B1 (ko) * | 2009-03-05 | 2012-01-31 | 한국전자통신연구원 | 공간 분할을 이용한 게임 캐릭터의 패턴 학습 장치 및 방법 |
US8442927B2 (en) | 2009-07-30 | 2013-05-14 | Nec Laboratories America, Inc. | Dynamically configurable, multi-ported co-processor for convolutional neural networks |
TWI525558B (zh) | 2011-01-17 | 2016-03-11 | Univ Nat Taipei Technology | Resilient high - speed hardware reverse transfer and feedback type neural network system |
SG182933A1 (en) * | 2011-01-19 | 2012-08-30 | Agency Science Tech & Res | A data structure and a method for using the data structure |
US8924455B1 (en) | 2011-02-25 | 2014-12-30 | Xilinx, Inc. | Multiplication of matrices using systolic arrays |
US9147155B2 (en) * | 2011-08-16 | 2015-09-29 | Qualcomm Incorporated | Method and apparatus for neural temporal coding, learning and recognition |
US9443190B2 (en) * | 2011-11-09 | 2016-09-13 | Qualcomm Incorporated | Methods and apparatus for neural pattern sequence completion and neural pattern hierarchical replay by invoking replay of a referenced neural pattern |
JP5906061B2 (ja) * | 2011-11-15 | 2016-04-20 | Kddi株式会社 | 学習装置、学習方法、プログラム |
TW201331855A (zh) | 2012-01-19 | 2013-08-01 | Univ Nat Taipei Technology | 具自由回饋節點的高速硬體倒傳遞及回饋型類神經網路 |
US9524730B2 (en) | 2012-03-30 | 2016-12-20 | Ohio State Innovation Foundation | Monaural speech filter |
US9418334B2 (en) * | 2012-12-06 | 2016-08-16 | Nuance Communications, Inc. | Hybrid pre-training of deep belief networks |
US9811775B2 (en) | 2012-12-24 | 2017-11-07 | Google Inc. | Parallelizing neural networks during training |
US9190053B2 (en) | 2013-03-25 | 2015-11-17 | The Governing Council Of The Univeristy Of Toronto | System and method for applying a convolutional neural network to speech recognition |
CN104143327B (zh) * | 2013-07-10 | 2015-12-09 | 腾讯科技(深圳)有限公司 | 一种声学模型训练方法和装置 |
KR20150016089A (ko) * | 2013-08-02 | 2015-02-11 | 안병익 | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
US10019985B2 (en) * | 2013-11-04 | 2018-07-10 | Google Llc | Asynchronous optimization for sequence training of neural networks |
JP6203005B2 (ja) | 2013-11-14 | 2017-09-27 | 三菱電機株式会社 | 通信装置 |
CN104035751B (zh) | 2014-06-20 | 2016-10-12 | 深圳市腾讯计算机***有限公司 | 基于多图形处理器的数据并行处理方法及装置 |
EP3064130A1 (en) | 2015-03-02 | 2016-09-07 | MindMaze SA | Brain activity measurement and feedback system |
US20160267111A1 (en) | 2015-03-11 | 2016-09-15 | Microsoft Technology Licensing, Llc | Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays |
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
-
2015
- 2015-09-03 US US14/844,431 patent/US10083395B2/en active Active
-
2016
- 2016-05-03 KR KR1020237018341A patent/KR102610083B1/ko active IP Right Grant
- 2016-05-03 KR KR1020177027872A patent/KR102106144B1/ko active IP Right Grant
- 2016-05-03 KR KR1020237002538A patent/KR102540114B1/ko active IP Right Grant
- 2016-05-03 KR KR1020207011889A patent/KR102362157B1/ko active IP Right Grant
- 2016-05-03 JP JP2017550720A patent/JP6640243B2/ja active Active
- 2016-05-03 CN CN201680020154.4A patent/CN107454965B/zh active Active
- 2016-05-03 KR KR1020227004246A patent/KR102493196B1/ko active IP Right Grant
- 2016-05-03 WO PCT/US2016/030515 patent/WO2016186823A1/en active Application Filing
- 2016-05-03 EP EP23169823.4A patent/EP4235449A3/en active Pending
- 2016-05-03 EP EP16722484.9A patent/EP3298547B1/en active Active
- 2016-05-03 KR KR1020237041445A patent/KR20230165890A/ko active Application Filing
- 2016-05-03 CN CN202011246313.7A patent/CN112465131A/zh active Pending
- 2016-05-03 DE DE202016107476.2U patent/DE202016107476U1/de active Active
- 2016-05-03 DK DK16722484.9T patent/DK3298547T3/da active
- 2016-05-03 GB GB2118188.8A patent/GB2600031B/en active Active
- 2016-05-03 GB GB1715438.6A patent/GB2553053B/en active Active
- 2016-05-03 DE DE112016002292.1T patent/DE112016002292T5/de not_active Withdrawn
- 2016-05-20 TW TW105115859A patent/TWI591549B/zh active
- 2016-05-20 TW TW106111273A patent/TWI622939B/zh active
- 2016-12-22 US US15/389,345 patent/US9842293B2/en active Active
-
2018
- 2018-04-03 HK HK18104416.8A patent/HK1245463A1/zh unknown
- 2018-09-24 US US16/139,258 patent/US11216726B2/en active Active
-
2019
- 2019-12-25 JP JP2019234606A patent/JP6840827B2/ja active Active
-
2021
- 2021-02-17 JP JP2021023284A patent/JP7031033B2/ja active Active
- 2021-04-09 US US17/226,256 patent/US11227216B2/en active Active
-
2022
- 2022-01-14 US US17/575,799 patent/US20220138577A1/en active Pending
- 2022-02-22 JP JP2022025744A patent/JP7286829B2/ja active Active
-
2023
- 2023-05-24 JP JP2023085256A patent/JP2023109933A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0422348A2 (en) * | 1989-10-10 | 1991-04-17 | Hnc, Inc. | Two-dimensional systolic array for neural networks, and method |
CN1150847A (zh) * | 1994-05-02 | 1997-05-28 | 摩托罗拉公司 | 使用神经网络的计算机和使用该神经网络的方法 |
US20050044053A1 (en) * | 2003-08-21 | 2005-02-24 | Moreno Pedro J. | Method and apparatus for object identification, classification or verification |
US20140142929A1 (en) * | 2012-11-20 | 2014-05-22 | Microsoft Corporation | Deep neural networks training for speech and pattern recognition |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112465131A (zh) * | 2015-05-21 | 2021-03-09 | 谷歌有限责任公司 | 神经网络处理器中的批处理 |
CN110447044A (zh) * | 2017-05-19 | 2019-11-12 | 谷歌有限责任公司 | 调度神经网络处理 |
CN110447044B (zh) * | 2017-05-19 | 2023-10-10 | 谷歌有限责任公司 | 调度神经网络处理 |
CN111133456A (zh) * | 2017-09-14 | 2020-05-08 | 赛灵思公司 | 在集成电路中实现神经网络的***和方法 |
CN111133456B (zh) * | 2017-09-14 | 2023-09-05 | 赛灵思公司 | 在集成电路中实现神经网络的***和方法 |
CN111465943A (zh) * | 2017-12-12 | 2020-07-28 | 亚马逊技术股份有限公司 | 芯片上计算网络 |
CN111465943B (zh) * | 2017-12-12 | 2023-10-31 | 亚马逊技术股份有限公司 | 一种集成电路和用于神经网络处理的方法 |
US11741345B2 (en) | 2017-12-12 | 2023-08-29 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
CN108628799A (zh) * | 2018-04-17 | 2018-10-09 | 上海交通大学 | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 |
CN108628799B (zh) * | 2018-04-17 | 2021-09-14 | 上海交通大学 | 可重构的单指令多数据脉动阵列结构、处理器及电子终端 |
CN108777153B (zh) * | 2018-05-25 | 2021-01-26 | 华中科技大学 | 一种多端输入突触器件及其可塑性调制方法 |
CN108777153A (zh) * | 2018-05-25 | 2018-11-09 | 华中科技大学 | 一种多端输入突触器件其可塑性调制方法 |
CN113159307A (zh) * | 2018-06-05 | 2021-07-23 | 光子智能股份有限公司 | 光电计算*** |
CN114895638A (zh) * | 2018-06-22 | 2022-08-12 | 应用材料公司 | 将图形处理单元用于基板路由及吞吐量建模 |
CN112789627A (zh) * | 2018-09-30 | 2021-05-11 | 华为技术有限公司 | 一种神经网络处理器、数据处理方法及相关设备 |
CN112789627B (zh) * | 2018-09-30 | 2023-08-22 | 华为技术有限公司 | 一种神经网络处理器、数据处理方法及相关设备 |
CN113196233A (zh) * | 2018-12-19 | 2021-07-30 | ams有限公司 | 用模拟神经元的单个物理层实现多层神经网络 |
CN109919321A (zh) * | 2019-02-01 | 2019-06-21 | 京微齐力(北京)科技有限公司 | 单元具有本地累加功能的人工智能模块及***芯片 |
CN111860801A (zh) * | 2019-04-30 | 2020-10-30 | 百度(美国)有限责任公司 | 神经网络方法、神经网络***和计算机可读介质 |
CN111860801B (zh) * | 2019-04-30 | 2024-05-31 | 百度(美国)有限责任公司 | 神经网络方法、神经网络***和计算机可读介质 |
CN112837208A (zh) * | 2019-11-22 | 2021-05-25 | 百度(美国)有限责任公司 | 改进ai引擎mac利用率的数据格式变换方法 |
WO2021237755A1 (zh) * | 2020-05-29 | 2021-12-02 | 华为技术有限公司 | 神经网络调度方法及装置 |
WO2021243489A1 (zh) * | 2020-05-30 | 2021-12-09 | 华为技术有限公司 | 一种神经网络的数据处理方法及装置 |
WO2021244045A1 (zh) * | 2020-05-30 | 2021-12-09 | 华为技术有限公司 | 一种神经网络的数据处理方法及装置 |
WO2022033241A1 (zh) * | 2020-08-10 | 2022-02-17 | 腾讯科技(深圳)有限公司 | 对象的处理方法及装置、存储介质和电子设备 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107454965A (zh) | 神经网络处理器中的批处理 | |
KR102412937B1 (ko) | 합성곱 계층 가속 장치, 그것을 포함하는 임베디드 시스템 및 그것의 동작 방법 | |
CN108073983B (zh) | 在硬件中执行核心跨越 | |
CN107454966A (zh) | 用于神经网络处理器的预取权重 | |
CN110447044A (zh) | 调度神经网络处理 | |
TW201706917A (zh) | 用於類神經網路計算的旋轉資料 | |
KR102440627B1 (ko) | 신경망들에서의 다수의 경로들의 부분 활성화 |
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: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1245463 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |