CN116348885A - 用于可部署推理系统的存储器映射的神经网络加速器 - Google Patents
用于可部署推理系统的存储器映射的神经网络加速器 Download PDFInfo
- Publication number
- CN116348885A CN116348885A CN202180066757.9A CN202180066757A CN116348885A CN 116348885 A CN116348885 A CN 116348885A CN 202180066757 A CN202180066757 A CN 202180066757A CN 116348885 A CN116348885 A CN 116348885A
- Authority
- CN
- China
- Prior art keywords
- neural network
- interface
- memory
- network processor
- processor system
- 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.)
- Pending
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种神经网络处理器系统,其包括至少一个神经网络处理核心、激活存储器、指令存储器和至少一个控制寄存器,神经网络处理核心被适配为实施神经网络计算、控制和通信原语。存储器映射被包括在内,存储器映射包括与激活存储器、指令存储器和至少一个控制寄存器中的每一个相对应的区域。另外,可操作地连接到神经网络处理器系统的接口被包括在内,该接口被适配为与主机通信并暴露存储器映射。
Description
技术领域
本公开的实施例涉及用于神经推理的系统,更具体地,涉及用于可部署推理系统的存储器映射的神经网络加速器。
发明内容
根据本公开的实施例,用于系统的方法和计算机程序产品包括:神经网络处理器系统,包括至少一个神经网络处理核心、激活存储器、指令存储器和至少一个控制寄存器,神经网络处理核心被适配为实施神经网络计算、控制和通信原语;存储器映射,包括与激活存储器、指令存储器和至少一个控制寄存器中的每一个相对应的区域;可操作地连接到神经网络处理器系统的接口,该接口被适配为与主机通信并暴露存储器映射。
根据本公开的实施例,神经网络处理器被配置为经由接口接收神经网络描述,经由接口接收输入数据,并且经由接口提供输出数据。在一些实施例中,神经网络处理器系统经由接口暴露API,该API包括用于经由接口接收神经网络描述、经由接口接收输入数据以及经由接口提供输出数据的方法。在一些实施例中,接口包括AXI、PCIe、USB、以太网或火线接口。
在一些实施例中,该系统还包括冗余神经网络处理核心,冗余神经网络处理核心被配置为与神经网络处理核心并行地计算神经网络模型。在一些实施例中,神经网络处理器系统被配置为提供神经网络模型的冗余计算,和/或被配置为提供硬件级冗余、软件级冗余和模型级冗余中的至少一个。在一些实施例中,神经网络处理器系统包括可编程固件,该可编程固件可配置为处理输入数据和输出数据。在一些实施例中,所述处理包括缓冲。在一些实施例中,神经网络处理器系统包括非易失性存储器。在一些实施例中,神经网络处理器系统被配置为存储配置或操作参数或程序状态。在一些实施例中,接口被配置用于实时操作或比实时操作更快的操作。在一些实施例中,接口通信地耦接到至少一个传感器或相机。在一些实施例中,该系统包括通过网络互连的多个如上所述的系统。在一些实施例中,提供了一种包括通过网络互连的多个如上所述的系统和多个计算节点的系统。在一些实施例中,该系统还包括多个不相交的存储器映射,每个存储器映射对应于多个如上所述的系统之一。
根据本公开的另一方面,提供了一种方法,包括:在神经网络处理器系统处经由接口从主机接收神经网络描述,神经网络处理器系统包括至少一个神经网络处理核心、激活存储器、指令存储器和至少一个控制寄存器,神经网络处理核心被适配为实施神经网络计算、控制和通信原语,接口可操作地连接到神经网络处理器系统;经由接口暴露存储器映射,存储器映射包括与激活存储器、指令存储器和至少一个控制寄存器中的每一个相对应的区域;经由接口在神经网络处理器系统处接收输入数据;基于神经网络模型根据输入数据计算输出数据;以及经由接口从神经网络处理器系统提供输出数据。在一些实施例中,神经网络处理器系统经由接口接收神经网络描述,经由接口接收输入数据,并且经由接口提供输出数据。在一些实施例中,神经网络处理器系统经由接口暴露API,该API包括用于经由接口接收神经网络描述、经由接口接收输入数据以及经由接口提供输出数据的方法。在一些实施例中,接口以实时速度或比实时速度更快的速度操作。
附图说明
图1示出了根据本公开的实施例的示例性存储器映射(MM)系统。
图2示出了根据本公开的实施例的示例性消息传递(MP)系统。
图3示出了根据本公开的实施例的神经核心。
图4示出了根据本公开的实施例的示例性推理处理单元(IPU)。
图5示出了根据本公开的实施例的多核推理处理单元(IPU)。
图6示出了根据本公开的实施例的神经核心和关联网络。
图7示出了根据本公开的实施例的主机系统于IPU之间的集成方法。
图8A-图8C示出了根据本公开的实施例的示例性冗余方法。
图9示出了根据本公开的实施例的存储器映射的神经推理引擎的系统架构。
图10示出了根据本公开的实施例的示例性运行时软件栈。
图11示出了根据本公开的实施例的示例性执行序列。
图12示出了根据本公开的实施例的神经推理设备的示例性集成。
图13示出了根据本公开的实施例的神经推理设备的示例性集成。
图14示出了根据本公开的实施例的其中神经推理设备经由PCIe桥与主机互连的示例性配置。
图15示出了根据本公开的实施例的暴露神经网络处理器系统中的存储器映射的方法的流程图。
图16描绘了根据本公开的实施例的计算节点。
具体实施方式
各种传统计算系统经由共享存储器/存储器映射(memory mapped,MM)范例在系统组件之间通信。相比之下,各种并行、分布式计算系统(诸如神经突触系统)经由消息传递(message passing,MP)范例相互通信。本公开提供了这两种类型的系统之间的有效接口。
人工神经元是一种数学函数,其输出是其输入的线性组合的非线性函数。如果一个神经元的输出是另一神经元的输入,则这两个神经元是相连接的。权重是对一个神经元的输出与另一神经元的输入之间的连接强度进行编码的标量值。
神经元通过将非线性激活函数应用于其输入的加权和(weighted sum)来计算其输出(称为激活)。加权和是通过将每个输入乘以对应的权重并累加乘积而计算出的中间结果。部分和(partial sum)是输入子集的加权和。可以通过累加一个或多个部分和来分阶段计算所有输入的加权和。
神经网络是一个或多个神经元的集合。神经网络通常被划分成称为层的神经元组。层是一个或多个神经元的集合,这一个或多个神经元都从相同的层接收输入且都向相同的层发送输出,并且通常执行类似的功能。输入层是从神经网络外部的源接收输入的层。输出层是向神经网络外部的目标发送输出的层。所有其他层都是中间处理层。多层神经网络是具有不止一层的神经网络。深度神经网络是具有许多层的多层神经网络。
张量是数值的多维阵列。张量块是张量中元素的连续子阵列。
每个神经网络层与参数张量V、权重张量W、输入数据张量X、输出数据张量Y和中间数据张量Z相关联。参数张量包含控制该层中神经元激活函数σ的所有参数。权重张量包含将输入连接到该层的所有权重。输入数据张量包含该层所使用的作为输入的所有数据。输出数据张量包含该层所计算的作为输出的所有数据。中间数据张量包含该层所产生的作为中间计算的任何数据,诸如部分和。
层的数据张量(输入、输出和中间)可以是3维的,其中前两个维度可以被解释为对空间位置进行编码,并且第三个维度可以被解释为对不同的特征进行编码。例如,当数据张量表示彩色图像时,前两个维度对图像内的垂直坐标和水平坐标进行编码,并且第三个维度对每个位置处的颜色进行编码。输入数据张量X的每个元素可以通过单独的权重连接到每个神经元,因此权重张量甲通常具有6个维度,以将输入数据张量的3个维度(输入行a、输入列b、输入特征c)与输出数据张量的3个维度(输出行i、输出列j、输出特征k)拼接起来。中间数据张量Z具有与输出数据张量Y相同的形状。参数张量V将3个输出数据张量维度与对激活函数σ的参数进行索引的附加维度o拼接起来。在一些实施例中,激活函数σ不需要附加参数,在这种情况下,附加维度是不必要的。然而,在一些实施例中,激活函数σ需要至少一个附加参数,其出现在维度o中。
层的输出数据张量Y的元素可以如等式1中计算,其中神经元激活函数σ由激活函数参数V[i,j,k,:]的向量配置,并且加权和Z[i,j,k]可以如等式2中计算。
Y[i,k,k]=σ(V[i,j,k,:];Z[i,j,k]) 等式1
为了标记简单,等式2中的加权和可以被称为输出,其等同于使用线性激活函数Y[i,j,k]=σ(Z[i,j,k])=Z[i,j,k],应当理解,当使用不同的激活函数时,适用相同的陈述而不失普遍性。
在各种实施例中,如上所述的对输出数据张量的计算被分解成更小的问题。然后,每个问题可以在一个或多个神经核心上解决,或者在传统多核心系统的一个或多个核心上并行解决。
从上面可以明显看出,神经网络是并行结构。给定层中的神经元接收来自一个或多个层的具有元素xi的输入X或者其他输入。每个神经元基于输入和具有元素wi的权重甲来计算其状态y∈Y。在各种实施例中,通过偏差b来调整输入的加权和,然后将结果传递给非线性F(·)。例如,单个神经元激活可以被表示为y=F(b+∑xiwi)。
因为给定层中的所有神经元接收来自相同层的输入并独立地计算它们的输出,所以神经元激活可以并行计算。由于整体神经网络的这一方面,在并行分布式核心中执行计算加速了整体计算。此外,在每个核心内,可以并行计算向量运算。即使有递归输入,例如当层投射回自身时,所有神经元仍然同时更新。实际上,递归连接被延迟以与该层的后续输入对齐。
参考图1,示出了示例性的存储器映射系统100。存储器映射101被分段,并且区域102-105被分配给各种系统组件。计算核心106-109(例如,一个或多个芯片上的处理器核心)连接到总线110。每个核心106-109连接到总线110,并且可以通过共享存储器111-112相互通信,共享存储器111-112对应于存储器映射102-103的可寻址区域。每个核心106-109可以通过存储器映射101的可寻址区域104与子系统113通信。类似地,每个核心106-109可以通过存储器映射101的可寻址区域105与外部系统114通信。
存储器映射(MM)地址与全局存储器映射(在本示例中是从0x00000000到0xFFFFFFFF)相关。
参考图2,示出了示例性消息传递(MP)系统200。多个核心201-209各自包括计算核心210、存储器211和通信接口212。核心201-209中的每一个通过网络213连接。通信接口212包括输入缓冲区214和输出缓冲区215,用于向/从网络213注入和接收分组。以这种方式,核心201-209可以通过传递消息来相互通信。
类似地,子系统216可以经由具有输入缓冲区218和输出缓冲区219的通信接口217连接到网络213。外部系统可以经由接口220连接到网络213。以这种方式,核心201-209可以通过传递消息与子系统和外部系统通信。
消息传递(MP)地址与核心的本地的网络地址相关。例如,单个核心可以通过其在芯片上的X、Y位置来识别,而本地地址可以用于单个核心的本地的缓冲区或存储器。
现在参考图3,描绘了根据本公开的实施例的神经核心。神经核心300是计算输出张量的一个块的可平铺(tileable)计算单元。神经核心300具有M个输入和N个输出。在各种实施例中,M=N。为了计算输出张量块,神经核将M×1输入张量块301与M×N权重张量块302相乘,并且将乘积累加成存储在1×N中间张量块303中的加权和。O×N参数张量块包含指定N个神经元激活函数中的每一个神经元激活函数的O个参数,这N个神经元激活函数被应用于中间张量块303以产生1×N输出张量块305。
多个神经核心可以平铺在神经核心阵列中。在一些实施例中,阵列是2维的。
神经网络模型是共同指定由神经网络执行的整个计算(包括神经元之间的连接图以及每个神经元的权重和激活函数参数)的常数集。训练是修改神经网络模型以执行所需功能的过程。推理是在不修改神经网络模型的情况下将神经网络应用于输入以产生输出的过程。
推理处理单元是一类执行神经网络推理的处理器。神经推理芯片是推理处理单元的特定物理实例。
参考图4,根据本公开的实施例示出了示例性推理处理单元(InferenceProcessing Unit,IPU)。IPU 400包括用于神经网络模型的存储器401。如上所述,神经网络模型可以包括要计算的神经网络的突触权重。IPU 400包括激活存储器402,激活存储器402可以是暂时性的。激活存储器402可以被划分成输入区域和输出区域,并且存储用于处理的神经元激活。IPU 400包括神经计算单元403,神经计算单元403加载有来自模型存储器401的神经网络模型。在每个计算步骤之前从激活存储器402提供输入激活。来自神经计算单元403的输出被写回到激活存储器402,用于在同一神经计算单元或另一神经计算单元上处理。
在各种实施例中,微引擎404被包括在IPU 400中。在这样的实施例中,IPU中的所有操作由微引擎指导。如下所述,在各种实施例中可以提供中央微引擎和/或分布式微引擎。全局微引擎可以被称为芯片微引擎,而本地微引擎可以被称为核心微引擎或本地控制器。在各种实施例中,微引擎包括一个或多个微引擎、微控制器、状态机、CPU或其他控制器。
参考图5,根据本公开的实施例示出了多核推理处理单元(IPU)。IPU 500包括用于神经网络模型和指令的存储器501。在一些实施例中,存储器501被划分成权重部分511和指令部分512。如上所述,神经网络模型可以包括要计算的神经网络的突触权重。IPU 500包括激活存储器502,激活存储器502可以是暂时性的。激活存储器502可以被划分成输入区域和输出区域,并且存储用于处理的神经元激活。
IPU 500包括神经核心503的阵列506。每个核心503包括计算单元533,计算单元533加载有来自模型存储器501的神经网络模型并且可操作用于执行向量计算。每个核心还包括本地激活存储器532。在每个计算步骤之前从本地激活存储器532提供输入激活。来自计算单元533的输出被写回到激活存储器532,用于在同一计算单元或另一计算单元上处理。
IPU 500包括一个或多个片上网络(network-on-chip,NoC)505。在一些实施例中,部分和NoC 551将核心503互连,并且在它们之间传输部分和。在一些实施例中,单独的参数分布NoC 552将核心503连接到存储器501,用于将权重和指令分发到核心503。应当理解,NoC 551和552的各种配置适于根据本公开的用途。例如,可以使用广播网络、行广播网络、树网络和交换网络。
在各种实施例中,全局微引擎504被包括在IPU 500中。在各种实施例中,本地核心控制器534被包括在每个核心503上。在这样的实施例中,操作方向在全局微引擎(芯片微引擎)与本地核心控制器(核心微引擎)之间共享。具体地,在511,由全局微引擎504将计算指令从模型存储器501加载到每个核心503上的神经计算单元533。在512,由全局微引擎504将参数(例如,神经网络/突触权重)从模型存储器501加载到每个核心503上的神经计算单元533。在513,由本地核心控制器534将神经网络激活数据从本地激活存储器532加载到每个核心503上的神经计算单元533。如上所述,激活被提供给由模型定义的特定神经网络的神经元,并且可以源自同一神经计算单元或另一神经计算单元,或者源自系统外部。在514,神经计算单元533按照本地核心控制器534的指导执行计算以生成输出神经元激活。具体地,计算包括将输入突触权重应用于输入激活。将会理解,各种方法可用于执行这样的计算,包括in silico树突以及向量乘法单元。在515,按照本地核心控制器534的指导将来自计算的结果存储在本地激活存储器532中。如上所述,这些阶段可以被流水线化,以便有效地利用每个核心上的神经计算单元。还应理解,根据给定神经网络的要求,可以将输入和输出从本地激活存储器532转移到全局激活存储器502。
相应地,本公开提供了推理处理单元(IPU)中操作的运行时控制。在一些实施例中,微引擎是集中式的(单个微引擎)。在一些实施例中,IPU计算是分布式的(由核心阵列执行)。在一些实施例中,操作的运行时控制是分层级的——中央微引擎和分布式微引擎都参与其中。
一个或多个微引擎指导IPU中所有操作的执行。每个微引擎指令对应于几个子操作(例如,地址生成、加载、计算、存储等)。在分布式情况下,核心微代码在核心微引擎(例如,534)上运行。核心微代码包括用于执行完整的单个张量运算的指令。例如,权重张量与数据张量之间的卷积。在单个核心的情况下,核心微代码包括用于对数据张量的本地存储的子集(以及部分和)执行单个张量运算的指令。芯片微代码在芯片微引擎(例如,504)上运行。微代码包括用于执行神经网络中所有张量运算的指令。
现在参考图6,示出了根据本公开的实施例的示例性神经核心和关联网络。可以如参考图3所描述那样体现的核心601通过网络602-604与附加核心互连。在该实施例中,网络602负责分发权重和/或指令,网络603负责分发部分和,并且网络604负责分发激活。然而,应当理解,本公开的各种实施例可以组合这些网络,或者进一步将它们分隔成多个附加网络。
输入激活(X)被分发到核心601,即经由激活网络604从核心外分发到激活存储器605。层指令被分发到核心601,即经由权重/指令网络602从核心外分发到指令存储器606。层权重(W)和/或参数被分发到核心601,即经由权重/指令网络602从核心外分发到权重存储器607和/或参数存储器608。
向量矩阵乘法(Vector Matrix Multiply,VMM)单元609从权重存储器607中读取权重矩阵(W)。向量矩阵乘法(VMM)单元609从激活存储器605中读取激活向量(V)。向量矩阵乘法(VMM)单元609然后计算向量矩阵乘法Z=XTW,并且将结果提供给向量-向量单元610。向量-向量单元610从部分和存储器611读取附加的部分和,并且经由部分和网络603从核心外接收附加的部分和。向量-向量单元610根据这些源部分和计算向量-向量运算。例如,各种部分和可以依次求和。所得的目标部分和被写入部分和存储器611,经由部分和网络603被发送到核心外,和/或被反馈以供向量-向量单元610进一步处理。
在对给定层的输入的所有计算完成之后,来自向量-向量单元610的部分和结果被提供给激活单元612,用于输出激活的计算。激活向量(Y)被写入激活存储器605。层激活(包括被写入激活存储器的结果)经由激活网络604从激活存储器605跨核心地重新分发。在接收时,它们被写入每个接收核心的本地激活存储器。在完成对给定帧的处理后,从激活存储器605中读取输出激活,并且经由网络604将其发送到核心外。
相应地,在操作中,核心控制微引擎(例如,613)协调核心的数据移动和计算。微引擎发出读取激活存储器地址操作,以将输入激活块加载到向量矩阵乘法单元中。微引擎发出读取权重存储器地址操作,以将权重块加载到向量矩阵乘法单元中。微引擎对向量矩阵乘法单元发出计算操作,使得向量矩阵乘法单元计算阵列计算部分和块。
微引擎发出部分和读取/写入存储器地址操作、向量计算操作或部分和通信操作中的一个或多个,以便进行以下操作中的一个或多个:从部分和源读取部分和数据;使用部分和算术单元进行计算;或者将部分和数据写入部分和目标。将部分和数据写入部分和目标可以包括经由部分和网络接口传送到核心外部或将部分和数据发送到激活算术单元。
微引擎发出激活函数计算操作,使得激活函数算术单元计算输出激活块。微引擎发出写入激活存储器地址,并且输出激活块经由激活存储器接口被写入激活存储器。
相应地,为给定的核心定义了各种源、目标、地址类型、计算类型和控制组件。
向量-向量单元610的源包括向量矩阵乘法(VMM)单元609、激活存储器605、来自参数存储器608的常数、部分和存储器611、来自先前周期的部分和结果(TGT部分和)以及部分和网络603。
向量-向量单元610的目标包括部分和存储器611、后续周期的部分和结果(SRC部分和)、激活单元612以及部分和网络603。
相应地,给定指令可以从激活存储器605读取或写入,从权重存储器607读取,或者从部分和存储器611读取或写入。由核心执行的计算操作包括VMM单元609的向量矩阵乘法、向量单元610的向量(部分和)运算以及激活单元612的激活函数。
控制操作包括程序计数器和循环和/或序列计数器。
因此,发出存储器操作以从权重存储器中的地址读取权重,从参数存储器中的地址读取参数,从激活存储器中的地址读取激活,以及向部分和存储器中的地址读取/写入部分和。发出计算操作以执行向量-矩阵乘法、向量-向量运算和激活函数。发出通信操作以选择向量-向量运算对象,在部分和网络上路由消息,并且选择部分和目标。层输出上的循环和层输入上的循环由指定程序计数器、循环计数器和序列计数器的控制操作来控制。
在各种实施例中,实施了使IPU(诸如上述IPU)能够借由存储器读取和写入来与主机通信的存储器映射架构。参考图7,示出了主机系统与IPU之间的集成的示例性方法。在701,主机准备用于推理的数据。在702,主机通知IPU数据准备好了。在703,IPU读取数据。在704,IPU对数据执行计算。在705,IPU通知主机计算结果准备好了。在706,主机读取结果。
参考图8A-图8C,示出了冗余的示例性方法。应当理解,诸如本文所述的那些神经形态系统可以同时处理来自多个传感器的数据。多个网络可以同时存在和运行。如本文所述,在各种实施例中,使用高速I/O接口来提供网络结果。
参考图8A,示出了直接/硬件冗余。在本示例中,同一模型运行了不止一次,并且对输出进行了比较。参考图8B,示出了模型冗余。在本示例中,运行不同数据和/或不同数据集合,并且应用统计模型(例如,模型之间的加权平均)以达到整体输出。参考图8C,示出了学徒验证。在本示例中,针对控制模型(或驱动器)来验证学徒模型。
本文描述的架构的低功率要求允许系统中的多个芯片运行冗余网络。类似地,冗余网络可以在芯片的分区上运行。此外,提供了快速和部分的可重新配置性以在驱动模式与测试模式之间进行切换,以便检测/定位/避免异常。
应当理解,本文阐述的推理处理单元可以被集成到各种形状因素中。例如,可以提供片上系统(system-on-chip,SoC)。SoC允许进行扩展以适应区域预算。这种方法允许与快速数据传输能力集成在管芯上。同样,与各种替代方案相比,SoC形状因素可能更容易且更便宜地进行封装。在另一示例中,可以提供系统级封装(system-in-package,SiP)。SiP方法将SoC组件与IPU管芯进行组合,并且支持不同工艺技术的集成。需要对现有组件进行最小的植入改变。
在另一示例中,提供了PCIe(或其他扩展卡)。在这种方法中,可以为每个组件施加独立的开发周期。这具有采用标准化高速接口和实现模块化集成的优点。这特别适合于早期原型和数据中心。类似地,可以提供电子控制单元(electronic control unit,ECU)。这符合汽车标准,包括针对安全和冗余的汽车标准。ECU模块适合于车内部署,但通常需要附加的R&D时间。
现在参考图9,示出了根据本公开的实施例的存储器映射的神经推理引擎的系统架构。神经推理引擎901(诸如上面进一步描述的)连接到系统互连902。主机903同样连接到系统互连902。
在各种实施例中,系统互连902符合高级微控制器总线架构(AdvancedMicrocontroller Bus Architecture,AMBA),诸如高级可扩展接口(Advanced eXtensibleInterface,AXI)。在各种实施例中,系统互连902是高速外围组件互连(PeripheralComponent Interconnect Express,PCIe)总线或其他PCI总线。应当理解,本领域中已知的各种其他总线架构也适用于本文阐述的用途。在每种情况下,系统互连902将主机903连接到神经推理引擎901,并且在主机的虚拟存储器中提供神经推理引擎的平面存储器映射的视图。
主机903包括应用904和API/驱动器905。在各种实施例中,API包括三个函数:configure(),其通过存储器映射将自含式神经网络程序复制到神经推理引擎901;push(),其通过存储器映射将输入数据复制到神经推理引擎901并且开始评估;以及pull(),其通过存储器映射从神经推理引擎901检索输出数据。
在一些实施例中,中断906由神经推理引擎901提供,以便向主机903发信号通知网络评估已经完成。
参考图10,示出了根据各种实施例的示例性运行时软件栈。在本示例中,提供库1001用于与神经推理引擎设备1002对接。提供API调用用于加载网络和用于存储器管理(包括用于存储器分配和释放、复制到存储器以及从存储器接收的标准函数)。
参考图11,示出了根据本公开的实施例的示例性执行序列。在本示例中,离线学习产生了网络定义文件nw.bin 111。在网络初始化1102期间,(例如,经由开放API调用)访问神经推理设备,并且加载网络定义文件1111。在运行时操作阶段1103期间,在神经推理设备上分配数据空间,并且将输入数据1131(例如,图像数据)复制到设备存储器缓冲区。执行一个或多个计算周期,如上面进一步详细阐述的。一旦计算周期完成,就可以(例如,经由rcvAPI调用)从设备接收输出。
神经推理设备可以是用于输入和输出的存储器映射,并且在没有主机指令并且不需要用于神经网络模型或中间激活的外部存储器的情况下执行其计算。这提供了流线型编程模型,其中简单地指示神经推理设备来计算神经网络,而不需要单独的指令来进行诸如矩阵乘法之类的分量运算。具体地,没有卷积到矩阵乘法的转换,因此不需要转换回来。同样,不需要为网络的每个新层发出新的调用。如上关于整体芯片设计所描述的,层间神经元激活从不离开芯片。使用这种方法,在运行时期间不需要加载新的网络模型参数。
参考图12,示出了神经推理设备1201的示例性集成。在本示例中,利用内部解码在数据路径上提供FIFO缓冲区。这提供了多通道DMA配置,而不需要多个主机。替代地,可以为多个AXI接口提供主设备,从而增加同时吞吐量。
在硬件侧,第一AXI从设备提供去往神经推理设备的激活存储器的FIFO接口。第二AXI从设备提供来自神经推理设备的激活存储器的FIFO接口。第三AXI从设备提供四个FIFO接口,一个去往指令存储器,一个来自指令存储器,一个去往参数/控制寄存器,一个来自参数/控制寄存器。
经由MC-DMA所指示,AXI主设备发起去往/来自神经推理数据路径的数据移动。多通道DMA控制器(Multi-Channel DMA Controller,MC-DMA)提供可以同时为多个AXI从设备执行数据移动的可编程DMA引擎。
为该集成场景构建的应用使用API例程进行任务(例如,sendTensor、recvTensor)。相应地,运行时库对于特定硬件实例是不可知的,而驱动器是为给定硬件配置构建的。
参考图13,示出了神经推理设备1301的示例性集成。在本示例中,使用了完全存储器映射的接口。
在硬件侧,第一AXI从设备提供去往神经推理设备的激活存储器的存储器映射的接口。第二AXI从设备提供来自神经推理设备的激活存储器的存储器映射的接口。第三AXI从设备提供存储器映射的接口,一个用于指令存储器,一个用于全局存储器,一个用于参数/控制寄存器。
经由MC-DMA所指示,AXI主设备发起去往/来自神经推理数据路径的数据移动。多通道DMA控制器(MC-DMA)提供可以同时为多个AXI从设备执行数据移动的可编程DMA引擎。
为该集成场景构建的应用使用API例程进行任务(例如,sendTensor、recvTensor)。相应地,运行时库对于特定的件实例是不可知的,而驱动器是为给定硬件配置构建的。
参考图14,示出了其中神经推理设备1401经由PCIe桥与主机互连的示例性配置。
在一些实施例中,在应用层中提供运行时。在这样的实施例中,应用将主要接口(例如,配置(Configure)、放置张量(Put Tensor)、获取张量(Get Tensor))暴露给其他应用。基本软件层经由PCIe驱动器与神经推理设备通信,以创建抽象层。然后,神经推理设备作为外围设备经由高速接口连接到系统。
在一些实施例中,提供了将主要接口(例如,配置(Configure)、放置张量(PutTensor)、获取张量(Get Tensor))暴露给其他AUTOSAR应用的运行时驱动器。然后,神经推理设备作为外围设备经由高速接口连接到系统。
如上所述的技术和布局实现了各种各样的多个神经推理设备模型。在一些实施例中,多个神经推理模块通过选定的高速接口与主机通信。在一些实施例中,多个神经推理芯片通过高速接口(有可能使用胶合逻辑)相互通信以及与主机通信。在一些实施例中,多个神经推理管芯通过专用接口(有可能(在芯片上或通过插入器)使用胶合逻辑)与主机或其他神经推理管芯通信。在一些实施例中,多个神经推理系统级封装通过高速接口相互通信和/或与管芯上的主机通信。示例性接口包括PCIe gen4/5、AXI4、SerDes和定制接口。
参考图15,用于在神经网络处理器系统处经由接口从主机接收1501神经网络描述的方法1500,神经网络处理器系统包括至少一个神经网络处理核心、激活存储器、指令存储器和至少一个控制寄存器,神经网络处理核心被适配为实施神经网络计算、控制和通信原语,该接口可操作地连接到神经网络处理器系统。该方法还包括1502经由接口暴露存储器映射,该存储器映射包括与激活存储器、指令存储器和至少一个控制寄存器中的每一个相对应的区域。该方法还包括1503经由接口在神经网络处理器系统处接收输入数据。该方法还包括1504基于神经网络模型根据输入数据计算输出数据。该方法还包括1505经由接口从神经网络处理器系统提供输出数据。在一些实施例中,该方法包括1506经由接口接收神经网络描述,经由接口接收输入数据,以及经由接口提供输出数据。
如上所述,在各种实施例中,提供了包括一个或多个神经推理芯片的存储器映射的神经推理引擎,神经推理芯片具有外围通信接口以与主机、传感器和/或其他推理引擎通信。在一些实施例中,每个神经推理芯片是存储器映射的,并且使用精简的通信API原语集,诸如:configure_network()、push_data()、pull_data()。在一些实施例中,可互换接口用于与神经推理引擎通信,例如:AXI、PCIe、USB、以太网、火线或无线。在一些实施例中,多个级别的硬件级冗余、软件级冗余和模型级冗余用于增加的系统产量和正确的系统操作。在一些实施例中,固件用于操纵和缓冲传入/传出数据以提高性能。在一些实施例中,运行时编程模型用于控制神经加速器芯片。在一些实施例中,硬件-固件-软件栈用于在神经推理引擎上实施多个应用。
在一些实施例中,系统通过结合板上非易失性存储器(诸如闪存或SD卡)以存储系统的配置和操作参数或者从先前状态恢复,而以独立模式进行操作。在一些实施例中,系统和通信基础设施的性能支持实时操作和与神经加速器芯片的通信。在一些实施例中,系统和通信基础设施的性能支持比实时操作更快的操作以及与神经加速器芯片的通信。
在一些实施例中,神经推理芯片、固件、软件和通信协议允许多个这样的系统排列成更大规模的系统(多芯片系统、多板系统、机架、数据中心等)。在一些实施例中,神经推理芯片和微处理器芯片组成了高能效、实时处理的混合云计算系统。在一些实施例中,神经推理芯片在基于传感器、神经、视频和/或语音的云系统和建模应用中使用。在一些实施例中,接口控制器用于与可以使用各种通信接口的其他云片段/主机通信。
在一些实施例中,固件和软件栈(包括驱动器)执行推理引擎/微处理器、推理引擎/主机和微处理器/主机交互。在一些实施例中,提供了执行与神经推理芯片的低级别交互的运行时API。在一些实施例中,提供了包括操作系统的软件栈,并且自动将工作负载和用户应用映射到系统的设备上并对其进行排序。
现在参考图16,示出了计算节点的示例的示意图。计算节点10只是合适的计算节点的一个示例,并不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,计算节点10能够被实施和/或执行上文阐述的任何功能。
在计算节点10中存在计算机系统/服务器12,计算机系统/服务器12可与许多其他通用或专用计算系统环境或配置一起操作。适用于计算机系统/服务器12的众所周知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、迷你计算机系统、大型计算机系统以及包括任何上述系统或设备的分布式云计算环境等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。通常,程序模块可以包括执行特定任务或实施特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地计算机系统存储介质和远程计算机系统存储介质中。
如图16所示,计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28以及将包括系统存储器28在内的各种系统组件耦接到处理器16的总线18。
总线18代表几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线架构中的任何一种的处理器或本地总线。作为示例而非限制,这样的架构包括工业标准架构(Industry StandardArchitecture,ISA)总线、微通道架构(Micro Channel Architecture,MCA)总线、增强型ISA(Enhanced ISA,EISA)总线、视频电子产品标准协会(Video Electronics StandardsAssociation,VESA)本地总线和外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机系统/服务器12通常包括各种计算机系统可读介质。这种介质可以是可由计算机系统/服务器12访问的任何可用介质,并且它包括易失性和非易失性的介质、可移动和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(random access memory,RAM)30和/或高速缓存存储器32。计算机系统/服务器12还可以包括其他可移动/不可移动的、易失性/非易失性的计算机系统存储介质。仅作为示例,存储系统34可以被提供用于从不可移动、非易失性的磁介质(未示出,通常被称为“硬盘驱动器”)读取和向其写入。虽然未示出,但是可以提供用于从可移动、非易失性的磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从可移动、非易失性的光盘(诸如CD-ROM、DVD-ROM或其他光学介质)读取或向其写入的光盘驱动器。在这种情况下,各自可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个具有一组(例如,至少一个)被配置为执行本发明的实施例的功能的程序模块的程序产品。
作为示例而非限制,具有一组(至少一个)程序模块42的程序/实用程序40以及操作系统、一个或多个应用程序、其他程序模块和程序数据可以被存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据或其某种组合中的每一个都可以包括联网环境的实施方式。程序模块42通常执行本文描述的本发明的实施例的功能和/或方法。
计算机系统/服务器12还可以与以下设备通信:一个或多个外部设备14(诸如键盘、定点设备、显示器24等);使用户能够与计算机系统/服务器12交互的一个或多个设备;和/或使计算机系统/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由输入/输出(I/O)接口22进行。此外,计算机系统/服务器12可以经由网络适配器20与一个或多个网络(诸如局域网(local area network,LAN)、通用广域网(wide area network,WAN)和/或公共网络(例如,互联网))通信。如图所示,网络适配器20经由总线18与计算机系统/服务器12的其他组件通信。应当理解,尽管未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据归档存储系统等。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有用于使得处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质。
计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机软磁盘、硬盘、随机存取存储器(RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread-only memory,EPROM)或闪存、静态随机存取存储器(static random access memory,SRAM)、便携式光盘只读存储器(compact disc read-only memory,CD-ROM)、数字多功能盘(digital versatile disk,DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡或其上记录有指令的凹槽中的凸起结构)以及前述各项的任何合适组合。如本文所使用的,计算机可读存储介质不应被解释为自身是瞬时信号,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应的计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者是以一种或多种编程语言(包括面向对象的编程语言(诸如Smalltalk、C++等)以及传统的过程编程语言(诸如“C”编程语言或类似的编程语言))的任何组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户计算机上执行,部分在用户计算机上执行,作为独立软件包,部分在用户计算机上执行且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一场景中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logicarray,PLA))可以通过利用计算机可读程序指令的状态信息执行计算机可读程序指令而使电子电路个性化,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将会理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框组合可以由计算机可读程序指令来实施。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实施流程图和/或框图的一个或多个框中指定的功能/动作的部件。这些计算机可读程序指令也可以被存储在计算机可读存储介质中,计算机可读存储介质可以指导计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括包含有实施流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令的制造品。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得一系列操作步骤在计算机、其他可编程装置或其他设备上执行,从而产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实施流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图说明了根据本发明各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这点上,流程图或框图中的每个框可以代表指令的模块、片段或部分,其包括用于实施指定的(多个)逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中标注的功能可以不按照图中标注的次序进行。例如,连续示出的两个框实际上可以基本上并发地执行,或者这些框有时可以以相反的次序执行,这取决于所涉及的功能。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框组合可以由基于专用硬件的系统来实施,该基于专用硬件的系统执行指定的功能或动作或者执行专用硬件和计算机指令的组合。
对本发明的各种实施例的描述是为了说明的目的而给出的,但并不旨在穷举或局限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择本文使用的术语是为了最好地解释实施例的原理、实际应用或对市场上发现的技术的技术改进,或者使本领域的其他普通技术人员能够理解本文公开的实施例。
Claims (20)
1.一种系统,包括:
神经网络处理器系统,包括:
至少一个神经网络处理核心、激活存储器、指令存储器和至少一个控制寄存器,所述神经网络处理核心被适配为实施神经网络计算、控制和通信原语;
存储器映射,包括与所述激活存储器、指令存储器和至少一个控制寄存器中的每一个相对应的区域,
可操作地连接到所述神经网络处理器系统的接口,所述接口被适配为与主机通信并暴露所述存储器映射。
2.根据权利要求1所述的系统,其中,所述神经网络处理器被配置为经由所述接口接收神经网络描述,经由所述接口接收输入数据,并且经由所述接口提供输出数据。
3.根据权利要求2所述的系统,其中,所述神经网络处理器系统经由所述接口暴露API,所述API包括用于经由所述接口接收所述神经网络描述、经由所述接口接收输入数据以及经由所述接口提供输出数据的方法。
4.根据权利要求1所述的系统,其中,所述接口包括AXI、PCIe、USB、以太网或火线接口。
5.根据权利要求1所述的系统,还包括冗余神经网络处理核心,所述冗余神经网络处理核心被配置为与所述神经网络处理核心并行地计算神经网络模型。
6.根据权利要求1所述的系统,其中,所述神经网络处理器系统被配置为提供神经网络模型的冗余计算。
7.根据权利要求1所述的系统,其中,所述神经网络处理器系统被配置为提供硬件级冗余、软件级冗余和模型级冗余中的至少一个。
8.根据权利要求2所述的系统,其中,所述神经网络处理器系统包括可编程固件,所述可编程固件可配置为处理所述输入数据和输出数据。
9.根据权利要求8所述的系统,其中,所述处理包括缓冲。
10.根据权利要求1所述的系统,其中,所述神经网络处理器系统包括非易失性存储器。
11.根据权利要求10所述的系统,其中,所述神经网络处理器系统被配置为存储配置或操作参数或程序状态。
12.根据权利要求1所述的系统,其中,所述接口被配置用于实时操作或比实时操作更快的操作。
13.根据权利要求1所述的系统,其中,所述接口通信地耦接到至少一个传感器或相机。
14.一种系统,包括通过网络互连的多个根据权利要求1所述的系统。
15.一种系统,包括通过网络互连的多个根据权利要求1所述的系统和多个计算节点。
16.根据权利要求15所述的系统,还包括多个不相交的存储器映射,每个存储器映射对应于所述多个根据权利要求1所述的系统之一。
17.一种方法,包括:
在神经网络处理器系统处经由接口从主机接收神经网络描述,
所述神经网络处理器系统包括至少一个神经网络处理核心、激活存储器、指令存储器和至少一个控制寄存器,所述神经网络处理核心被适配为实施神经网络计算、控制和通信原语,所述接口可操作地连接到所述神经网络处理器系统;
经由所述接口暴露存储器映射,所述存储器映射包括与所述激活存储器、指令存储器和至少一个控制寄存器中的每一个相对应的区域;
经由所述接口在所述神经网络处理器系统处接收输入数据;
基于所述神经网络模型根据所述输入数据计算输出数据;
经由所述接口从所述神经网络处理器系统提供所述输出数据。
18.根据权利要求17所述的方法,其中,所述神经网络处理器系统经由所述接口接收神经网络描述,经由所述接口接收输入数据,并且经由所述接口提供输出数据。
19.根据权利要求17所述的方法,其中,所述神经网络处理器系统经由所述接口暴露API,所述API包括用于经由所述接口接收所述神经网络描述、经由所述接口接收输入数据以及经由所述接口提供输出数据的方法。
20.根据权利要求17所述的方法,其中,所述接口以实时速度或比实时速度更快的速度操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/039,559 | 2020-09-30 | ||
US17/039,559 US20220101108A1 (en) | 2020-09-30 | 2020-09-30 | Memory-mapped neural network accelerator for deployable inference systems |
PCT/CN2021/108743 WO2022068343A1 (en) | 2020-09-30 | 2021-07-27 | Memory-mapped neural network accelerator for deployable inference systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116348885A true CN116348885A (zh) | 2023-06-27 |
Family
ID=80822029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180066757.9A Pending CN116348885A (zh) | 2020-09-30 | 2021-07-27 | 用于可部署推理系统的存储器映射的神经网络加速器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220101108A1 (zh) |
JP (1) | JP2023542852A (zh) |
CN (1) | CN116348885A (zh) |
DE (1) | DE112021004537T5 (zh) |
GB (1) | GB2614851A (zh) |
WO (1) | WO2022068343A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240024485A (ko) * | 2022-08-17 | 2024-02-26 | 삼성전자주식회사 | 모델들에 의하여 공통으로 이용되는 정보에 기반하여 모델들을 구동하기 위한 전자 장치 및 그 방법 |
CN117194051B (zh) * | 2023-11-01 | 2024-01-23 | 北京灵汐科技有限公司 | 脑仿真处理方法及装置、电子设备、计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4120070B1 (en) * | 2016-12-31 | 2024-05-01 | INTEL Corporation | Systems, methods, and apparatuses for heterogeneous computing |
CN107016175B (zh) * | 2017-03-23 | 2018-08-31 | 中国科学院计算技术研究所 | 适用神经网络处理器的自动化设计方法、装置及优化方法 |
KR102534917B1 (ko) * | 2017-08-16 | 2023-05-19 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
US20190180183A1 (en) * | 2017-12-12 | 2019-06-13 | Amazon Technologies, Inc. | On-chip computational network |
US20190272460A1 (en) * | 2018-03-05 | 2019-09-05 | Ye Tao | Configurable neural network processor for machine learning workloads |
US11556762B2 (en) * | 2018-04-21 | 2023-01-17 | Microsoft Technology Licensing, Llc | Neural network processor based on application specific synthesis specialization parameters |
US20210192314A1 (en) * | 2019-12-18 | 2021-06-24 | Nvidia Corporation | Api for recurrent neural networks |
CN115836281A (zh) * | 2020-07-31 | 2023-03-21 | 辉达公司 | 多格式图形处理单元对接板 |
-
2020
- 2020-09-30 US US17/039,559 patent/US20220101108A1/en active Pending
-
2021
- 2021-07-27 WO PCT/CN2021/108743 patent/WO2022068343A1/en active Application Filing
- 2021-07-27 GB GB2305735.9A patent/GB2614851A/en active Pending
- 2021-07-27 DE DE112021004537.7T patent/DE112021004537T5/de active Pending
- 2021-07-27 CN CN202180066757.9A patent/CN116348885A/zh active Pending
- 2021-07-27 JP JP2023515696A patent/JP2023542852A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112021004537T5 (de) | 2023-06-15 |
WO2022068343A1 (en) | 2022-04-07 |
GB202305735D0 (en) | 2023-05-31 |
US20220101108A1 (en) | 2022-03-31 |
JP2023542852A (ja) | 2023-10-12 |
GB2614851A (en) | 2023-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704565B2 (en) | Communication optimizations for distributed machine learning | |
AU2020346707B2 (en) | Video upsampling using one or more neural networks | |
US20240013338A1 (en) | Disaggregation of system-on-chip (soc) architecture | |
EP3754611A1 (en) | Cell image synthesis using one or more neural networks | |
CN111950695A (zh) | 使用一个或更多个神经网络进行语法迁移 | |
CN112330523A (zh) | 低精度机器学习操作的计算优化 | |
US11341369B2 (en) | Distributed batch normalization using partial populations | |
WO2021236527A1 (en) | Intelligent control and distribution of a liquid in a data center | |
CN114556424A (zh) | 使用一个或更多个神经网络的姿态确定 | |
US20210067735A1 (en) | Video interpolation using one or more neural networks | |
US20210103433A1 (en) | Kernel fusion for machine learning | |
US20230153949A1 (en) | Image generation using one or more neural networks | |
WO2022068343A1 (en) | Memory-mapped neural network accelerator for deployable inference systems | |
WO2022020179A1 (en) | Image generation using one or more neural networks | |
US20210232366A1 (en) | Dynamic directional rounding | |
CN115836281A (zh) | 多格式图形处理单元对接板 | |
CN114982393A (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 |