CN115461757A - 具有单独存储器存取连接的深度学习加速器和随机存取存储器 - Google Patents
具有单独存储器存取连接的深度学习加速器和随机存取存储器 Download PDFInfo
- Publication number
- CN115461757A CN115461757A CN202180024971.8A CN202180024971A CN115461757A CN 115461757 A CN115461757 A CN 115461757A CN 202180024971 A CN202180024971 A CN 202180024971A CN 115461757 A CN115461757 A CN 115461757A
- Authority
- CN
- China
- Prior art keywords
- random access
- matrix
- memory
- access memory
- interface
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 147
- 238000013135 deep learning Methods 0.000 title claims abstract description 127
- 238000013528 artificial neural network Methods 0.000 claims abstract description 188
- 239000011159 matrix material Substances 0.000 claims abstract description 115
- 238000012545 processing Methods 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims description 119
- 230000004044 response Effects 0.000 claims description 5
- 229910052710 silicon Inorganic materials 0.000 claims description 3
- 239000010703 silicon Substances 0.000 claims description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims description 2
- 239000000872 buffer Substances 0.000 description 29
- 210000002569 neuron Anatomy 0.000 description 18
- 238000013507 mapping Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 210000004027 cell Anatomy 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000004913 activation Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000946 synaptic effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009510 drug design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- 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/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- 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
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- 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/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2209—Concurrent read and write
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Memory System (AREA)
Abstract
描述了与深度学习加速器和存储器相关的系统、装置和方法。集成电路可经配置以执行具有矩阵操作数的指令且经配置有:随机存取存储器,其经配置以存储可由所述深度学习加速器执行的指令且存储人工神经网络的矩阵;所述随机存取存储器与所述深度学习加速器之间的连接;到中央处理单元的存储器控制器的第一接口;以及到直接存储器存取控制器的第二接口。在所述深度学习加速器正使用所述随机存取存储器处理对所述人工神经网络的当前输入以从所述人工神经网络产生当前输出的同时,所述直接存储器存取控制器可同时将下一输入加载到所述随机存取存储器中;且同时,所述中央处理单元可同时从所述随机存取存储器检索先前输出。
Description
相关申请案
本申请案要求2020年4月9日提交且名称为“具有单独存储器存取连接的深度学习加速器和随机存取存储器(DEEP LEARNING ACCELERATOR AND RANDOM ACCESS MEMORYWITH SEPARATE MEMORY ACCESS CONNECTIONS)”的第16/844,993号美国专利申请案的优先权,所述美国专利申请案的全部公开内容特此以引用的方式并入本文中。
技术领域
本文公开的至少一些实施例大体上涉及集成电路装置,且更具体地但不限于具有用于人工神经网络(ANN)的加速器的集成电路装置,所述ANN例如是通过机器学习和/或深度学习配置的ANN。
背景技术
人工神经网络(ANN)使用神经元网络来处理到所述网络的输入,且产生从所述网络的输出。
举例来说,网络中的每一神经元接收一组输入。到神经元的输入中的一些可以是网络中的某些神经元的输出;且到神经元的输入中的一些可以是提供到神经网络的输入。网络中的神经元当中的输入/输出关系表示网络中的神经元连接性。
举例来说,每一神经元可分别针对其输入具有偏置、激活函数和一组突触权重。激活函数可以呈阶跃函数、线性函数、对数S型(log-sigmoid)函数等形式。网络中的不同神经元可以具有不同激活函数。
举例来说,每一神经元可产生其输入与其偏置的加权和,且接着产生作为加权和的函数的输出,所述输出是使用神经元的激活函数计算出的。
ANN的输入与输出之间的关系一般来说由ANN模型限定,所述ANN模型包含表示网络中的神经元的连接性的数据,以及每一神经元的偏置、激活函数和突触权重。基于给定ANN模型,计算装置可经配置以从到网络的给定输入集合计算网络的输出。
举例来说,可基于相机输入产生到ANN网络的输入;且来自ANN网络的输出可为例如事件或对象等项目的识别。
一般来说,可使用监督方法来训练ANN,其中调整ANN中的参数以最小化或减少与相应输入相关联或由相应输入产生的已知输出与通过将输入应用于ANN而产生的所计算输出之间的误差。监督学习/训练方法的实例包含强化学习和具有误差校正的学习。
替代地或组合地,可使用无监督方法来训练ANN,其中由给定一组输入产生的精确输出在训练完成之前是未知的。可训练ANN将项分类成多个类别,或将数据点分类成集群。
可以采用多种训练算法用于复杂的机器学习/训练范例。
深度学习使用机器学习的多个层以从输入数据逐渐地提取特征。举例来说,较低层可经配置以识别图像中的边缘;且较高层可经配置以基于使用较低层检测到的边缘识别图像中所捕获的项目,例如人脸、物件、事件等。深度学习可经由人工神经网络(ANN)实施,例如深度神经网络、深度信念网络、递归神经网络和/或卷积神经网络。
深度学习已应用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医疗图像处理、游戏等。
附图说明
实施例是借助于实例而非限制在附图的图中来说明的,在附图中相似参考指示类似元件。
图1示出根据一个实施例的具有经配置的深度学习加速器和随机存取存储器的集成电路装置。
图2示出根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元。
图3示出根据一个实施例的经配置以执行矩阵-向量运算的处理单元。
图4示出根据一个实施例的经配置以执行向量-向量运算的处理单元。
图5示出根据一个实施例的经配置以向经训练的人工神经网络自主地应用输入的深度学习加速器和随机存取存储器。
图6示出根据一个实施例的使深度学习加速器和随机存取存储器配置有单独存储器存取连接的集成电路装置。
图7示出根据一个实施例的在集成电路装置中实施的方法。
具体实施方式
本文公开的至少一些实施例提供通用集成电路装置,其经配置以用减少的能量消耗和计算时间执行人工神经网络(ANN)的计算。集成电路装置包含深度学习加速器(DLA)和随机存取存储器。集成电路装置可经配置有单独连接以用于对随机存取存储器的同时存取。
深度学习加速器(DLA)包含一组通用可编程硬件计算逻辑,其经专门化和/或优化以执行并行向量和/或矩阵计算,包含但不限于向量和/或者矩阵的乘法和累加。
此外,深度学习加速器(DLA)可包含一或多个算术逻辑单元(ALU)以对整数二进制数执行算术和逐位运算。
深度学习加速器(DLA)可经由一组指令进行编程,以执行人工神经网络(ANN)的计算。
对向量和矩阵运算的深度学习加速器(DLA)的粒度对应于可在由深度学习加速器(DLA)执行一个指令期间在其上操作的向量/矩阵的最大单元。在对向量/矩阵操作数执行预定义操作的指令期间,深度学习加速器(DLA)可以并行操作向量/矩阵操作数的元素,以减少与存储器/数据存取相关联的执行时间和/或能量消耗。对深度学习加速器(DLA)的粒度的向量/矩阵操作数的操作可用作构建块以对较大大小的向量/矩阵实施计算。
典型/实际人工神经网络(ANN)的实施涉及具有大于深度学习加速器(DLA)的操作粒度的大小的向量/矩阵操作数。为了使用深度学习加速器(DLA)实施此类人工神经网络(ANN),涉及较大大小的向量/矩阵操作数的计算可分解为深度学习加速器(DLA)的粒度的向量/矩阵操作数的计算。深度学习加速器(DLA)可以通过指令进行编程,以执行涉及大型向量/矩阵操作数的计算。举例来说,在响应于指令而操控深度学习加速器(DLA)的粒度的向量和矩阵时的深度学习加速器(DLA)的原子计算能力可经编程以在人工神经网络(ANN)中实施计算。
在一些实施方案中,深度学习加速器(DLA)不具有典型中央处理单元(CPU)的一些逻辑运算能力。然而,深度学习加速器(DLA)可经配置有充足逻辑单元以处理提供到人工神经网络(ANN)的输入数据且根据针对深度学习加速器(DLA)产生的一组指令产生人工神经网络(ANN)的输出。因此,深度学习加速器(DLA)可在中央处理单元(CPU)或另一处理器的极少帮助或无帮助的情况下执行人工神经网络(ANN)的计算。任选地,常规通用处理器还可经配置为深度学习加速器(DLA)的部分以执行无法使用深度学习加速器(DLA)的向量/矩阵处理单元有效地实施的操作,和/或无法由深度学习加速器(DLA)的向量/矩阵处理单元执行的操作。
典型人工神经网络(ANN)可以标准格式(例如,开放神经网络交换(ONNX))描述/指定。编译器可用于将人工神经网络(ANN)的描述转换成用于深度学习加速器(DLA)的一组指令以执行人工神经网络(ANN)的计算。编译器可优化所述一组指令以改进在实施人工神经网络(ANN)时的深度学习加速器(DLA)的性能。
深度学习加速器(DLA)可具有经配置以存储向量/矩阵操作数以及向量/矩阵运算的结果的本地存储器,例如寄存器、缓冲器和/或高速缓冲存储器。寄存器中的中间结果可在深度学习加速器(DLA)中作为用于后续向量/矩阵运算的操作数进行管线化/移位,以减少存取存储器/数据中的时间和能量消耗,且因此加速实施典型人工神经网络(ANN)时的向量/矩阵运算的典型图案。深度学习加速器(DLA)中的寄存器、缓冲器和/或高速缓冲存储器的容量通常不足以保持用于实施典型人工神经网络(ANN)的计算的整个数据集。因此,耦合到深度学习加速器(DLA)的随机存取存储器经配置以提供用于实施典型人工神经网络(ANN)的改进的数据存储能力。举例来说,深度学习加速器(DLA)从随机存取存储器加载数据和指令且将结果存储回到随机存取存储器中。
深度学习加速器(DLA)与随机存取存储器之间的通信带宽经配置以优化或最大化深度学习加速器(DLA)的计算能力的利用。举例来说,可在深度学习加速器(DLA)与随机存取存储器之间提供高通信带宽,使得可将向量/矩阵操作数从随机存取存储器加载到深度学习加速器(DLA)中,且在大致等于深度学习加速器(DLA)的时间的时间段内将结果存储回到随机存取存储器中,以对向量/矩阵操作数执行计算。深度学习加速器(DLA)的粒度可经配置以增加由深度学习加速器(DLA)执行的计算的量与向量/矩阵操作数的大小之间的比率,使得深度学习加速器(DLA)与随机存取存储器之间的数据存取业务可减少,这可降低对深度学习加速器(DLA)与随机存取存储器之间的通信带宽的要求。因此,可减少或消除在数据/存储器存取方面的瓶颈。
在至少一些实施例中,提供多个连接以允许不同装置并行地存取随机存取存储器以用于不同目的。举例来说,随机存取存储器可包含经配置以存储对人工神经网络(ANN)的输入的部分和经配置以存储来自人工神经网络(ANN)的输出的另一部分。到随机存取存储器的一个连接可由中央处理单元(CPU)或另一处理器使用以存取来自人工神经网络(ANN)的输出,同时到随机存取存储器的另一连接可由直接存储器存取(DMA)控制器使用以将用于人工神经网络(ANN)的输入数据存储到随机存取存储器中。
举例来说,中央处理单元(CPU)可设置直接存储器存取(DMA)控制器以将待由人工神经网络(ANN)处理的输入数据写入到随机存取存储器的输入区中。直接存储器存取(DMA)控制器将一组输入写入到输入区中的完成可触发深度学习加速器(DLA)执行指令以实施人工神经网络(ANN)。所述指令的执行导致输入与人工神经网络(ANN)的矩阵组合以产生输出。输出经配置以存储于随机存取存储器的另一区中以用于中央处理单元(CPU)。
任选地,人工神经网络(ANN)的模型数据可存储于随机存取存储器的又一区中。模型数据可包含识别人工神经元的神经连接性和突触权重、人工神经网络(ANN)中的人工神经元的状态和/或性质的矩阵。模型数据可进一步包含用于深度学习加速器(DLA)实施人工神经网络(ANN)的计算的指令。举例来说,编译器可将人工神经网络(ANN)的描述转换为存储于随机存取存储器中的模型数据。
在模型数据存储于随机存取存储器中且直接存储器存取(DMA)控制器经配置以将输入数据写入到随机存取存储器中之后,深度学习加速器(DLA)和直接存储器存取(DMA)控制器可使用人工神经网络(ANN)处理输入数据而无需来自中央处理单元(CPU)的帮助。人工神经网络(ANN)的输出自动存储于随机存取存储器中。在直接存储器存取(DMA)控制器将输入数据提供到深度学习加速器(DLA)的同时,中央处理单元(CPU)可经由单独连接存取随机存取存储器。
举例来说,到人工神经网络(ANN)的输入数据流可以一系列输入数据集合的形式配置。每一输入数据集合是用于在一时隙期间对人工神经网络(ANN)的输入集合。在深度学习加速器(DLA)正在从当前输入集合计算输出的同时,直接存储器存取(DMA)控制器可将下一输入集合存储到随机存取存储器中;且中央处理单元(CPU)可同时从随机存取存储器检索针对先前输入集合产生的输出。
因此,准备和处理对人工神经网络(ANN)的输入数据的任务可从中央处理单元(CPU)卸载。深度学习加速器(DLA)、随机存取存储器和直接存储器存取(DMA)控制器的组合可充当结果从人工神经网络(ANN)到中央处理单元(CPU)的独立供应者。中央处理单元(CPU)可在需要输出时检索输出集合。中央处理单元(CPU)可当不需要来自人工神经网络(ANN)的输出时指示直接存储器存取(DMA)控制器暂停其在向人工神经网络(ANN)供应输入时的操作。随后,当需要来自人工神经网络(ANN)的输出时,中央处理单元(CPU)可指示直接存储器存取(DMA)控制器恢复其将输入数据加载到随机存取存储器中的操作。
图1示出根据一个实施例的具有经配置的深度学习加速器(103)和随机存取存储器(105)的集成电路装置(101)。
在图1中的深度学习加速器(103)包含处理单元(111)、控制单元(113)和本地存储器(115)。当向量和矩阵操作数在本地存储器(115)中时,控制器单元(113)可使用处理单元(111)以根据指令执行向量和矩阵运算。此外,控制器单元(113)可通过存储器接口(117)和高速/带宽连接(119)从随机存取存储器(105)加载指令和操作数。
集成电路装置(101)经配置以利用存储器控制器接口(107)的引脚或触点围封在集成电路封装内。
存储器控制器接口(107)经配置以支持标准存储器存取协议,使得集成电路装置(101)以与不具有深度学习加速器(DLA)(103)的常规随机存取存储器装置相同的方式表现为典型存储器控制器。举例来说,集成电路装置(101)外部的存储器控制器可使用标准存储器存取协议通过存储器控制器接口(107)存取集成电路装置(101)中的随机存取存储器(105)。
集成电路装置(101)经配置有在围封于集成电路装置(101)内的随机存取存储器(105)与深度学习加速器(DLA)(103)之间的高带宽连接(119)。连接(119)的带宽高于随机存取存储器(105)与存储器控制器接口(107)之间的连接(109)的带宽。
在一个实施例中,存储器控制器接口(107)和存储器接口(117)两者经配置以经由同一组总线或电线存取随机存取存储器(105)。因此,用以存取随机存取存储器(105)的带宽在存储器接口(117)与存储器控制器接口(107)之间共享。替代地,存储器控制器接口(107)和存储器接口(117)经配置以经由单独一组总线或电线存取随机存取存储器(105)。任选地,随机存取存储器(105)可包含可经由连接(119)同时存取的多个区段。举例来说,当存储器接口(117)正存取随机存取存储器(105)的区段时,存储器控制接口(107)可同时存取随机存取存储器(105)的另一区段。举例来说,不同区段可配置于不同集成电路裸片和/或存储器单元的不同平面/排组上;且可并行存取不同区段以增加存取随机存取存储器(105)时的处理量。举例来说,存储器控制器接口(107)经配置以一次存取预定大小的一个数据单元;且存储器接口(117)经配置以一次存取多个数据单元,每一数据单元为相同预定大小。
在一个实施例中,随机存取存储器(105)和集成电路装置(101)配置于不同集成电路裸片上,所述不同集成电路裸片配置于同一集成电路封装内。此外,随机存取存储器(105)可配置于允许同时并行存取多个数据元素的一或多个集成电路裸片上。
在一些实施方案中,可经由连接(119)并行存取的向量或矩阵的数据元素的数目对应于对向量或矩阵操作的深度学习加速器(DLA)的粒度。举例来说,当处理单元(111)可并行地在数个向量/矩阵元素上操作时,连接(119)经配置以经由连接(119)并行地加载或存储相同数目或数目的倍数的元素。
任选地,可基于深度学习加速器(DLA)(103)的处理速度来配置连接(119)的数据存取速度。举例来说,在一定量的数据和指令已经加载到本地存储器(115)中之后,控制单元(113)可使用处理单元(111)执行指令以对数据进行操作以产生输出。在用以产生输出的处理的时间周期内,连接(119)的存取带宽允许将相同量的数据和指令加载到本地存储器(115)中以用于下一操作,且将相同量的输出存储回到随机存取存储器(105)。举例来说,虽然控制单元(113)使用本地存储器(115)的一部分处理数据且产生输出,但存储器接口(117)可将先前操作的输出从本地存储器(115)的另一部分卸载到随机存取存储器(105)中,且将操作数数据和指令加载到所述本地存储器的另一部分中。因此,深度学习加速器(DLA)的利用率和性能不因连接(119)的带宽而受限或降低。
随机存取存储器(105)可用于存储人工神经网络(ANN)的模型数据且用于缓冲人工神经网络(ANN)的输入数据。模型数据不频繁地改变。模型数据可包含由用于深度学习加速器(DLA)的编译器产生的输出以实施人工神经网络(ANN)。模型数据通常包含在人工神经网络(ANN)的描述中使用的矩阵和针对深度学习加速器(DLA)(103)产生的指令,以基于深度学习加速器(DLA)(103)的粒度的向量/矩阵运算来执行人工神经网络(ANN)的向量/矩阵运算。指令不仅对人工神经网络(ANN)的向量/矩阵运算进行操作,而且对人工神经网络(ANN)的输入数据进行操作。
在一个实施例中,当在随机存取存储器(105)中加载或更新输入数据时,深度学习加速器(DLA)(103)的控制单元(113)可自动地执行人工神经网络(ANN)的指令以产生人工神经网络(ANN)的输出。将输出存储到随机存取存储器(105)中的预定义区域中。深度学习加速器(DLA)(103)可经执行指令而无需来自中央处理单元(CPU)的帮助。因此,可减少或消除用于深度学习加速器(DLA)(103)与集成电路装置(101)外部的处理器(例如,中央处理单元(CPU))之间的协调的通信。
任选地,可经由互补金属氧化物半导体(CMOS)实施深度学习加速器(DLA)(103)的逻辑电路。举例来说,随机存取存储器(105)的存储器单元的阵列(CUA)下的CMOS技术可用于实施深度学习加速器(DLA)(103)的逻辑电路,包含处理单元(111)和控制单元(113)。替代地,随机存取存储器(105)的存储器单元阵列中的CMOS技术可用于实施深度学习加速器(DLA)(103)的逻辑电路。
在一些实施方案中,深度学习加速器(DLA)(103)和随机存取存储器(105)可实施于单独集成电路裸片上,且使用用于增加深度学习加速器(DLA)(103)与随机存取存储器(105)之间的数据带宽的硅穿孔(TSV)进行连接。举例来说,深度学习加速器(DLA)(103)可形成于现场可编程门阵列(FPGA)或专用集成电路(ASIC)的集成电路裸片上。
替代地,深度学习加速器(DLA)(103)和随机存取存储器(105)可配置于单独集成电路封装中且经由用于并行通信的印刷电路板(PCB)上的多个点到点连接进行连接,且因此增加数据传送带宽。
随机存取存储器(105)可为易失性存储器或非易失性存储器,或易失性存储器与非易失性存储器的组合。非易失性存储器的实例包含快闪存储器、基于与非(NAND)逻辑门形成的存储器单元、或非(NOR)逻辑门、相变存储器(PCM)、磁性存储器(MRAM)、电阻式随机存取存储器、交叉点存储装置和存储器装置。交叉点存储器装置可以使用无晶体管存储器元件,所述无晶体管存储器元件中的每一个具有在一起堆叠成列的存储器单元和选择器。存储器元件列经由在垂直方向上铺设的两个线路排布来连接,其中在层中的一个方向上铺设的一个排布的线路位于存储器元件列上方,且另一层的线路在另一方向上铺设且位于存储器元件列下方。可个别地在两个层中的每一层上的一个线路的交叉点处选择每一存储器元件。交叉点存储器装置是快速且非易失性的,且可用作通用存储器池以用于处理和存储。非易失性存储器的另外的实例包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电子可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
举例来说,非易失性存储器可经配置以实施随机存取存储器(105)的至少一部分。随机存取存储器(105)中的非易失性存储器可用于存储人工神经网络(ANN)的模型数据。因此,在集成电路装置(101)断电并重启之后,不必将人工神经网络(ANN)的模型数据重新加载到集成电路装置(101)中。此外,非易失性存储器可为可编程/可重写的。因此,可更新或替换集成电路装置(101)中的人工神经网络(ANN)的模型数据以实施更新人工神经网络(ANN)或另一人工神经网络(ANN)。
深度学习加速器(DLA)(103)的处理单元(111)可包含向量-向量单元、矩阵-向量单元和/或矩阵-矩阵单元。下文结合图2到4论述经配置以执行向量-向量运算、矩阵-向量运算和矩阵-矩阵运算的单元的实例。
图2示出根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元(121)。举例来说,图2的矩阵-矩阵单元(121)可用作图1的深度学习加速器(DLA)(103)的处理单元(111)中的一个。
在图2中,矩阵-矩阵单元(121)包含多个内核缓冲器(131到133)和多个映射排组(151到153)。映射排组(151到153)中的每一个存储矩阵操作数的一个向量,所述矩阵操作数具有分别存储于映射排组(151到153)中的多个向量;且内核缓冲器(131到133)中的每一个存储另一矩阵操作数的一个向量,所述另一矩阵操作数具有分别存储于内核缓冲器(131到133)中的多个向量。矩阵-矩阵单元(121)经配置以使用并行操作的多个矩阵-向量单元(141到143)对两个矩阵操作数的元素执行乘法和累加运算。
纵横开关(123)将映射排组(151到153)连接到矩阵-向量单元(141到143)。存储于映射排组(151到153)中的相同矩阵操作数经由纵横开关(123)提供到矩阵-向量单元(141到143)中的每一个;且矩阵-向量单元(141到143)并行地从映射排组(151到153)接收数据元素。内核缓冲器(131到133)中的每一个连接到矩阵-向量单元(141到143)中的相应一个,且将向量操作数提供到相应矩阵-向量单元。矩阵-向量单元(141到143)同时操作以计算存储于映射排组(151到153)中的相同矩阵操作数乘以存储于内核缓冲器(131到133)中的对应向量的运算。举例来说,矩阵-向量单元(141)对存储于映射排组(151到153)中的矩阵操作数和存储于内核缓冲器(131)中的向量操作数执行乘法运算,而矩阵-向量单元(143)同时对存储于映射排组(151到153)中的矩阵操作数和存储于内核缓冲器(133)中的向量操作数执行乘法运算。
在图2中的矩阵-向量单元(141到143)中的每一个可以如图3中所示的方式实施。
图3示出根据一个实施例的经配置以执行矩阵-向量运算的处理单元(141)。举例来说,图3的矩阵-向量单元(141)可用作图2的矩阵-矩阵单元(121)中的矩阵-向量单元中的任一个。
在图3中,映射排组(151到153)中的每一个以类似于图2的映射排组(151到153)的方式存储矩阵操作数的一个向量,所述矩阵操作数具有分别存储于映射排组(151到153)中的多个向量。图3中的纵横开关(123)将向量从映射排组(151)分别提供到向量-向量单元(161到163)。存储于内核缓冲器(131)中的相同向量提供到向量-向量单元(161到163)。
向量-向量单元(161到163)同时操作以计算分别存储于映射排组(151到153)中的对应向量操作数乘以存储于内核缓冲器(131)中的相同向量操作数的运算。举例来说,向量-向量单元(161)对存储于映射排组(151)中的向量操作数和存储于内核缓冲器(131)中的向量操作数执行乘法运算,而向量-向量单元(163)同时对存储于映射排组(153)中的向量操作数和存储于内核缓冲器(131)中的向量操作数执行乘法运算。
当图3的矩阵-向量单元(141)实施于图2的矩阵-矩阵单元(121)中时,矩阵-向量单元(141)可使用矩阵-矩阵单元(121)的映射排组(151到153)、纵横开关(123)和内核缓冲器(131)。
图3中的向量-向量单元(161到163)中的每一个可以如图4中所说明的方式实施。
图4示出根据一个实施例的经配置以执行向量-向量运算的处理单元(161)。举例来说,图4的向量-向量单元(161)可用作图3的矩阵-向量单元(141)中的向量-向量单元中的任一个。
在图4中,向量-向量单元(161)具有多个乘累加(MAC)单元(171到173)。乘累加(MAC)单元(171到173)中的每一个可接收两个数字作为操作数,执行这两个数字的乘法,且将乘法的结果与乘累加(MAC)单元中维持的总和相加。
向量缓冲器(181和183)中的每一个存储数字的列表。各自来自向量缓冲器(181和183)中的一个的一对数字可作为输入提供到乘累加(MAC)单元(171到173)中的每一个。乘累加(MAC)单元(171到173)可并行地从向量缓冲器(181和183)接收多对数字,且并行地执行乘累加(MAC)运算。来自乘累加(MAC)单元(171到173)的输出存储到移位寄存器(175)中;且累加器(177)计算移位寄存器(175)中的结果的总和。
当图4的向量-向量单元(161)实施于图3的矩阵-向量单元(141)中时,向量-向量单元(161)可使用映射排组(例如,151或153)作为一个向量缓冲器(181),且使用矩阵-向量单元(141)的内核缓冲器(131)作为另一向量缓冲器(183)。
向量缓冲器(181和183)可具有相同长度以存储相同数目/计数的数据元素。所述长度可等于向量-向量单元(161)中的乘累加(MAC)单元(171到173)的计数或所述计数的倍数。当向量缓冲器(181和183)的长度是乘累加(MAC)单元(171到173)的计数的倍数时,等于乘累加(MAC)单元(171到173)的计数的数目的输入对可在每一迭代中作为输入从向量缓冲器(181和183)提供到乘累加(MAC)单元(171到173);且向量缓冲器(181和183)通过多个迭代将其元素馈送到乘累加(MAC)单元(171到173)中。
在一个实施例中,深度学习加速器(DLA)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以供矩阵-矩阵单元(121)使用随机存取存储器(105)的部分作为映射排组(151到153)和内核缓冲器(131到133)。
在另一实施例中,映射排组(151到153)和内核缓冲器(131到133)实施于深度学习加速器(DLA)(103)的本地存储器(115)的一部分中。在当前操作循环中矩阵-矩阵单元(121)正使用实施于深度学习加速器(DLA)(103)的本地存储器(115)的不同部分中的映射排组(151到153)和内核缓冲器(131到133)执行计算的同时,深度学习加速器(DLA)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以将矩阵-矩阵单元(121)的下一操作循环的矩阵操作数加载到本地存储器(115)的另一部分中。
图5示出根据一个实施例的经配置以向经训练的人工神经网络自主地应用输入的深度学习加速器和随机存取存储器。
已通过机器学习(例如,深度学习)训练的人工神经网络(ANN)(201)可用标准格式(例如,开放神经网络交换(ONNX))描述。用标准格式描述经训练的ANN(201)会识别人工神经元及其连接性的性质。
在图5中,通过产生用于深度学习加速器(DLA)(103)的指令(205)和对应于人工神经元及其连接性的性质的矩阵(207),深度学习加速器(DLA)编译器(203)转换经训练的ANN(201)。由DLA编译器(203)从经训练的ANN(201)产生的指令(205)和矩阵(207)可存储于用于深度学习加速器(DLA)(103)的随机存取存储器(105)中。
举例来说,随机存取存储器(105)和深度学习加速器(DLA)(103)可以如图1的集成电路装置(101)中的方式经由高带宽连接(119)而连接。图5的基于指令(205)和矩阵(207)的自主计算可实施于图1的集成电路装置(101)中。替代地,随机存取存储器(105)和深度学习加速器(DLA)(103)可配置于具有平行延伸的多个点对点串行总线以实施连接(119)的印刷电路板上。
在图5中,在DLA编译器(203)的结果存储于随机存取存储器(105)中之后,应用经训练的ANN(201)以处理对经训练的ANN(201)的输入(211)以产生经训练的ANN(213)的对应输出(213)可以通过随机存取存储器(105)中的输入(211)的存在或在随机存取存储器(105)中提供的另一指示来触发。
作为响应,深度学习加速器(DLA)(103)执行指令(205)以组合输入(211)和矩阵(207)。指令(205)的执行可包含针对深度学习加速器(DLA)(103)的一个或多个矩阵-矩阵单元(例如,121)的映射排组(151到153)产生映射矩阵。
在一些实施例中,到ANN(211)的输入呈初始映射矩阵的形式。可从随机存取存储器(105)检索初始映射矩阵的部分作为存储于矩阵-矩阵单元(121)的映射排组(151到153)中的矩阵操作数。替代地,DLA指令(205)还包含用于深度学习加速器(DLA)(103)从输入(211)产生初始映射矩阵的指令。
根据DLA指令(205),深度学习加速器(DLA)(103)将矩阵操作数加载到其矩阵-矩阵单元(121)的内核缓冲器(131到133)和映射排组(151到153)中。矩阵-矩阵单元(121)对矩阵操作数执行矩阵计算。举例来说,DLA指令(205)根据深度学习加速器(DLA)(103)的计算粒度(例如,作为矩阵操作数在矩阵-矩阵单元(121)中加载的矩阵的大小/维度)将经训练的ANN(201)的矩阵计算分解,且将输入特征映射应用于一层人工神经元的内核以产生输出作为用于下一层人工神经元的输入。
在根据指令(205)执行的经训练的ANN(201)的计算的完成之后,深度学习加速器(DLA)(103)即刻在随机存取存储器(105)中的预定义位置或在随机存取存储器(105)中提供以触发计算的指示中指定的位置存储ANN(201)的输出(213)。
当图5的技术实施于图1的集成电路装置(101)中时,连接到存储器控制器接口(107)的外部装置可将输入(211)写入到随机存取存储器(105)中,且触发由深度学习加速器(DLA)(103)将输入(211)应用于经训练的ANN(201)的自主计算。在一时间周期之后,输出(213)在随机存取存储器(105)中可用;且外部装置可经由集成电路装置(101)的存储器控制器接口(107)读取输出(213)。
举例来说,随机存取存储器(105)中的预定义位置可经配置以存储触发深度学习加速器(DLA)(103)对指令(205)的自主执行的指示。所述指示可任选地包含随机存取存储器(105)内的输入(211)的位置。因此,在处理输入(211)的指令(205)的自主执行期间,外部装置可检索在指令(205)的前一运行期间产生的输出,和/或存储另一组输入以用于指令(205)的下一运行。
任选地,随机存取存储器(105)中的又一预定义位置可经配置以存储指令(205)的当前运行的进展状态的指示。此外,所述指示可包含指令(205)的当前运行的完成时间的预测(例如,基于指令(205)的先前运行而估计)。因此,外部装置可在合适的时间窗口检查完成状态以检索输出(213)。
在一些实施例中,随机存取存储器(105)经配置有足够容量以存储多组输入(例如,211)和输出(例如,213)。每一组可在随机存取存储器(105)中在预定时隙/区域中配置。
深度学习加速器(DLA)(103)可自主地执行指令(205)以根据存储于随机存取存储器(105)中的矩阵(207)从输入(211)产生输出(213),而无需来自位于集成电路装置(101)外部的处理器或装置的帮助。
在根据一个实施例的方法中,可使用计算装置(例如,101)到存储器控制器的接口(107)存取计算装置(例如,101)的随机存取存储器(103)。计算装置(例如,101)可具有经配置以至少对矩阵操作数执行计算的处理单元(例如,111),所述矩阵操作数例如存储于映射排组(151到153)中的矩阵操作数和存储于内核缓冲器(131到133)中的矩阵操作数。
举例来说,计算装置(例如,101)可围封于集成电路封装内;且一组连接可将接口(107)连接到位于集成电路封装外部的存储器控制器。
可通过接口(107)将可由处理单元(例如,111)执行的指令(205)写入到随机存取存储器(105)中。
可通过接口(107)将人工神经网络(201)的矩阵(207)写入到随机存取存储器(105)中。矩阵(207)识别人工神经网络(201)的性质和/或状态。
任选地,随机存取存储器(105)的至少一部分是非易失性的且经配置以存储指令(205)和人工神经网络(201)的矩阵(07)。
可通过接口(107)将对人工神经网络的第一输入(211)写入到随机存取存储器(105)中。
在随机存取存储器(105)中提供指示以致使处理单元(111)开始指令(205)的执行。响应于所述指示,处理单元(111)执行将第一输入(211)与人工神经网络(201)的矩阵(207)组合的指令以从人工神经网络(201)产生第一输出(213)且将第一输出(213)存储于随机存取存储器(105)中。
举例来说,所述指示可为随机存取存储器(105)中的第一输入(211)的地址;且所述指示可存储于随机存取存储器(105)中的预定位置以造成用于由所述地址识别的输入(211)的指令(205)的执行的发起。任选地,所述指示还可包含用于存储输出(213)的地址。
可通过接口(107)从随机存取存储器(105)读取第一输出(213)。
举例来说,计算装置(例如,101)可具有形成于第一集成电路裸片上的深度学习加速器(103)和形成于一或多个第二集成电路裸片上的随机存取存储器(105)。第一集成电路裸片与所述一或多个第二集成电路裸片之间的连接(119)可包含硅穿孔(TSV)以提供用于存储器存取的高带宽。
举例来说,可使用编译器(203)将人工神经网络(201)的描述转换为指令(205)和矩阵(207)。存储于随机存取存储器(105)中的指令(205)和矩阵(207)以及深度学习加速器(103)的组合提供人工神经网络(201)的自主实施方案,其可将对人工神经网络(201)的输入(211)自动转换为其输出(213)。
举例来说,在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第一输入(211)产生第一输出(213)的时间周期期间,可通过接口(107)将对人工神经网络(201)的第二输入写入到随机存取存储器(105)中的替代位置。在随机存取存储器(105)中存储第一输出(213)之后,可在随机存取存储器中提供指示以致使深度学习加速器(103)再次开始指令的执行且从第二输入产生第二输出。
在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第二输入产生第二输出的时间周期期间,可通过接口(107)从随机存取存储器(105)读取第一输出(213);且可将另一输入写入到随机存取存储器中以代替第一输入(211)或在不同位置写入。可针对一系列输入重复所述过程。
深度学习加速器(103)可包含可对两个矩阵操作数执行指令的至少一个矩阵-矩阵单元(121)。所述两个矩阵操作数可为第一矩阵和第二矩阵。两个矩阵中的每一个具有多个向量。矩阵-矩阵单元(121)可包含经配置以并行地操作的多个矩阵-向量单元(141到143)。矩阵-向量单元(141到143)中的每一个经配置以与其它矩阵-向量单元并行地对第一矩阵和来自第二矩阵的一个向量进行操作。此外,矩阵-向量单元(141到143)中的每一个可具有经配置以并行地操作的多个向量-向量单元(161到163)。向量-向量单元(161到163)中的每一个经配置以与其它向量-向量单元并行地对来自第一矩阵的向量和对应矩阵-向量单元的共同向量操作数进行操作。此外,向量-向量单元(161到163)中的每一个可具有经配置以并行地操作的多个乘累加单元(171到173)。
除处理单元(111)之外,深度学习加速器(103)还可具有本地存储器(115)和控制单元(113)。控制单元(113)可从随机存取存储器(105)加载指令(205)和矩阵操作数(例如,207)以供处理单元(111)执行。本地存储器可高速缓存由矩阵-矩阵单元使用的矩阵操作数。连接(119)可经配置有在其中矩阵-矩阵单元对两个其它矩阵操作数执行操作的时间周期期间足以将一组矩阵操作数从随机存取存储器(105)加载到本地存储器(115)的带宽。此外,在所述时间周期期间,带宽足以将在先前指令执行中由矩阵-矩阵单元(121)产生的结果从本地存储器(115)存储到随机存取存储器(105)。
图6示出根据一个实施例的使深度学习加速器(103)和随机存取存储器(105)配置有单独存储器存取连接的集成电路装置(101)。
例如,图6的集成电路装置(101)的深度学习加速器(103)、随机存取存储器(105)和连接(119)可以类似于图1和/或图5所示的方式配置。
图6的集成电路装置(101)具有可用于同时存取随机存取存储器(105)的两个外部接口(106和107)。
举例来说,随机存取存储器(105)可具有可同时且彼此独立地存取的至少两个部分。此类部分可配置于单独集成电路裸片上,或形成于同一集成电路裸片上的存储器单元的单独平面或块中。一个部分经配置以存储对人工神经网络(ANN)(201)的输入(211);且另一部分经配置以存储来自人工神经网络(ANN)(201)的输出(213)。所述两个外部接口(106和107)经配置有到分别用于输入(211)和输出(213)的部分的单独连接(108和109)。因此,集成电路(101)外部的不同装置可使用集成电路装置(101)的单独外部接口(106和107)同时存取其随机存取存储器(105)。
例如,中央处理单元(CPU)的存储器控制器可以连接到CPU存储器接口(107)以读取人工神经网络(ANN)(201)的先前输出,而直接存储器存取(DMA)控制器可以连接到DMA控制器接口(106)以同时写入人工神经网络(ANN)(201)的下一输入。
在一个实施例中,连接(108和109)具有单独的总线或电线集合。因此,外部接口(106和107)在存取随机存取存储器(105)的用于输入(211)和输出(213)的不同部分时并不共享总线或电线。替代地,存取控制器经配置以使用用于接口(106和107)的单独缓冲器且使用高带宽连接(119)以在随机存取存储器(1050与用于接口(106和107)的缓冲器之间传送数据,使得接口(106和107)可同时服务于写入和读取请求。由于连接(119)的带宽大体上高于由到集成电路装置(101)的外部接口(106和107)的连接(108和109)使用的带宽,因此所述带宽的小部分可分配给连接(108和109)。举例来说,接口(106和107)可连接到深度学习加速器(DLA)(103)的存储器接口(117)以经由连接(119)存取随机存取存储器(105)。
任选地,深度学习加速器(DLA)(103)的存储器接口(117)、到中央处理单元(CPU)的存储器控制器的接口(107)和接口(106)可配置成同时存取随机存取存储器(105)。
举例来说,随机存取存储器(105)可经配置有多组输入/输出存储器。每一组可选择性地经配置以服务于存储器接口(117)或服务于外部接口(106和107)。当选择一组输入/输出存储器以服务于存储器接口(117)时,连接(119)允许深度学习加速器(DLA)(103)存取存储于所述组中的输入(例如,211)且将来自人工神经网络(ANN)(201)的输出(例如,213)存储到所述组。当选择一组输入/输出存储器以服务于外部接口(106和107)时,可通过单独外部接口(106和107)同时存取不同存储器区中的输入(例如,211)和输出(例如,213)。虽然分配一组输入/输出存储器用于深度学习加速器(DLA)(103)处理一组输入(例如,211)且产生对应一组输出(例如,213),但可使一或多组输入/输出存储器对外部接口(106和107)同时可存取。
图7示出根据一个实施例的在集成电路装置中实施的方法。举例来说,图7的方法可实施于图6的集成电路装置(101)中。然而,图7的方法也可实施于类似于图5中示出但配置于印刷电路板上的替代封装的计算装置中。
在框301处,集成电路装置(101)存储人工神经网络(201)的矩阵(207)和指令(205)。指令(205)可由围封于集成电路装置(101)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)。
集成电路装置(101)或者印刷电路板上的替代封装的计算装置具有随机存取存储器。
在框303处,围封于集成电路装置(101)内的随机存取存储器(105)存储对人工神经网络(201)的第一输入。
在框305处,致使或使用所述至少一个处理单元(111)执行指令(205)以从存储于随机存取存储器(105)中的第一输入产生第一输出。第一输出存储于随机存取存储器(105)中。
在框307处,围封于集成电路装置(101)内的随机存取存储器(105)进一步存储对人工神经网络(201)的第二输入。
在框309处,致使或使用所述至少一个处理单元(111)执行指令(205)以从存储于随机存取存储器(105)中的第二输入产生第二输出。
在框311处,所述至少一个处理单元(111)执行指令(205)以从第二输入产生第二输出。
在所述至少一个处理单元(111)正执行指令(205)以从第二输入产生第二输出的同时,框313和315中的操作可并行地执行。
在框313处,外部装置(例如,直接存储器存取控制器)通过集成电路装置(101)的第一接口(106)将对人工神经网络(201)的第三输入写入到集成电路装置(101)中的随机存取存储器(105)中。
在框315处,另一外部装置(例如,中央处理单元)通过集成电路装置(101)的第二接口(107)且在第三输入的写入的同时从随机存取存储器(105)读取第一输出。
例如,第三输入的写入可通过连接到直接存储器存取控制器的第一接口(106)执行;并且第一输出的读取可通过连接到中央处理单元的第二接口(107)执行。
举例来说,集成电路装置(101)可围封于集成电路封装内,且具有带有处理单元(111)、控制单元(113)和本地存储器(115)的深度学习加速器(103)。处理单元(111)至少包含经配置以执行具有两个矩阵操作数的指令的矩阵-矩阵单元(121)。矩阵-矩阵单元(121)包含经配置以并行地操作的多个矩阵-向量单元(141到143)。矩阵-向量单元(141到143)中的每一个包含经配置以并行地操作的多个向量-向量单元(161到163)。向量-向量单元(161到163)中的每一个包含经配置以并行地操作的多个乘累加单元(171到173)。
例如,编译器(203)可用于将人工神经网络(201)的描述转换成指令(205)和矩阵(207)以使用深度学习加速器(103)实施人工神经网络(101)。
在一个实施方案中,通过第二接口(107)读取第一输出、通过第一接口(106)写入第三输入、深度学习加速器(103)读取第二输入的一部分以及深度学习加速器(103)将第二输出的一部分写入随机存取存储器可以并行且同时执行。
举例来说,随机存取存储器(105)可具有能够同时且彼此独立地使用的多个部分。第一部分经配置以存储来自人工神经网络(201)的第一输出;第二部分经配置以存储对人工神经网络(201)的第三输入;第三部分经配置以存储来自人工神经网络(201)的第二输出;且第四部分经配置以存储对人工神经网络(201)的第二输入。当第三和第四部分由深度学习加速器103)用于执行指令(205)时,第一接口和第二接口可同时分别连接到第一部分和第二部分。
举例来说,不同部分可配置于可并行地彼此独立操作的单独集成电路裸片(或平面或块)上。第一接口和第二接口可不共享到第一部分和第二部分的连接。
集成电路装置(101)可以围封在单个集成电路封装内,其中第一组连接器配置成将第一接口(106)耦合到直接存储器存取控制器,且第二组连接器配置成将第二接口(107)耦合到中央处理单元。
在一些实施方案中,深度学习加速器(103)具有存储器接口(117),其具有到随机存取存储器(105)的高带宽连接(119);并且第一接口(106)和第二接口(107)经由深度学习加速器(117)的存储器接口(117)连接到随机存取存储器(105)。
本公开包含执行上文所描述的方法的方法和设备,包含执行这些方法的数据处理系统,以及含有在数据处理系统上执行时使所述系统执行这些方法的指令的计算机可读媒体。
典型数据处理系统可包含互连件(例如总线和系统核心逻辑),其互连微处理器和存储器。微处理器通常耦合到高速缓冲存储器。
互连件将一或多个微处理器和存储器互连在一起,并且还将其经由一或多个输入/输出(I/O)控制器互连到一或多个I/O装置。I/O装置可包含显示装置和/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描器、摄像机和所属领域中已知的其它装置。在一个实施例中,在数据处理系统是服务器系统时,I/O装置中的一些(例如打印机、扫描器、鼠标和/或键盘)是任选的。
互连件可包含通过各种桥、控制器和/或适配器彼此连接的一个或多个总线。在一个实施例中,I/O控制器包含用于控制USB(通用串行总线)外围装置的USB适配器,和/或用于控制IEEE-1394外围装置的IEEE-1394总线适配器。
存储器可以包含以下各项中的一或多个:ROM(只读存储器)、易失性RAM(随机存取存储器)以及诸如硬盘驱动器、闪存之类的非易失存储器等等。
易失性RAM通常实施为要求持续功率以便刷新或维持存储器中的数据的动态RAM(DRAM)。非易失性存储器通常是磁性硬盘驱动器、磁性光盘驱动器、光盘驱动器(例如,DVDRAM),或即使在从系统移除电力之后也维持数据的其它类型的存储器系统。非易失性存储器也可为随机存取存储器。
非易失性存储器可为与数据处理系统中的其余组件直接耦合的本地装置。还可使用远离系统的非易失性存储器,例如通过例如调制解调器或以太网接口的网络接口耦合到数据处理系统的网络存储装置。
在本公开中,一些功能和操作被描述为由软件代码执行或由软件代码引起以简化描述。然而,这种表达也用于表示所述功能是由例如微处理器的处理器执行代码/指令产生。
替代地或组合地,如此处所描述的功能及操作可使用具有或不具有软件指令的专用电路实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用并无软件指令的硬接线电路系统或结合软件指令实施实施例。因此,技术既不限于硬件电路系统和软件的任何具体组合,也不限于由数据处理系统执行的指令的任何特定来源。
虽然一个实施例可实施于全功能计算机及计算机系统中,但各种实施例能够分布为多种形式的计算产品,且能够不论实际上用于实现分布的机器或计算机可读媒体的特定类型如何都适用。
所公开的至少一些方面可至少部分体现于软件中。也就是说,这些技术可响应于其处理器(例如微处理器)执行存储器(例如ROM、易失性RAM、非易失性存储器、高速缓冲存储器或远程存储装置)中所含的指令序列而在计算机系统或其它数据处理系统中执行。
经执行以实施实施例的例程可实施为操作系统或特定应用程序、组件、程序、对象、模块或称作“计算机程序”的指令序列的部分。计算机程序通常包含计算机中的各种存储器及存储装置中在各种时间处的一或多个指令集,且所述指令集在由计算机中的一或多个处理器读取及执行时导致计算机执行必需操作以执行涉及各种方面的元件。
机器可读媒体可用于存储当由数据处理系统执行时使系统执行各种方法的软件和数据。可执行软件和数据可存储于包含例如ROM、易失性RAM、非易失性存储器和/或高速缓冲存储器的各处。此软件和/或数据的部分可以存储在这些存储装置中的任何一个中。此外,数据和指令可从集中式服务器或对等网络获得。数据和指令的不同部分可在不同时间且在不同通信会话中或同一通信会话中从不同集中式服务器和/或对等网络获得。可在执行应用程序之前获得全部数据和指令。或者,可动态地、及时地在需要执行时获得数据和指令的部分。因此,并不要求数据及指令在特定时刻全部处于机器可读媒体上。
计算机可读媒体的实例包含但不限于非暂时性的可记录和不可记录类型的媒体,例如易失性和非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、快闪存储器装置、软性和其它可装卸式磁盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(CDROM)、数字多功能盘(DVD)等),以及其它。计算机可读媒体可存储指令。
指令还可体现在数字和模拟通信链路中以用于电学、光学、声学或其它形式的传播信号,例如载波、红外信号、数字信号等。然而,例如载波、红外信号、数字信号等的传播信号并非有形机器可读媒体且不能经配置以存储指令。
大体来说,机器可读媒体包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式提供(即,存储和/或发射)信息的任何机构。
在各种实施例中,硬接线电路系统可与软件指令组合使用以实施技术。因此,技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
以上描述和图式是说明性的,并且不应理解为限制性的。描述许多具体细节以提供透彻理解。然而,在某些情况下,不描述众所周知的或常规的细节以免混淆描述。本公开中对一个或一实施例的参考未必参考同一实施例;并且此类参考意味着至少一个。
在前述说明书中,已参考本公开的具体示范性实施例描述了本公开。将显而易见的是,可在不脱离如所附权利要求书中阐述的更广精神和范围的情况下进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (20)
1.一种装置,其包括:
至少一个处理单元,其经配置以执行具有矩阵操作数的指令;
随机存取存储器,其经配置以存储能够由所述至少一个处理单元执行的指令且存储人工神经网络的矩阵;
控制单元,其经配置以从所述随机存取存储器加载所述指令以供所述至少一个处理单元执行;以及
至少两个接口,其经配置以由所述装置外部的至少两个装置同时存取所述随机存取存储器。
2.根据权利要求1所述的装置,其中所述至少两个接口包含经配置以连接到中央处理单元的第一接口以及经配置以连接到不同于所述中央处理单元的控制器的存储器控制器的第二接口。
3.根据权利要求2所述的装置,其中所述随机存取存储器包含经配置以存储来自所述人工神经网络的第一输出的第一部分以及经配置以存储对所述人工神经网络的第三输入的第二部分;且
其中所述第一接口和所述第二接口分别连接到所述第一部分和第二部分。
4.根据权利要求3所述的装置,其中所述第一部分和所述第二部分形成于单独集成电路裸片上;且
其中所述第一接口和所述第二接口不共享到所述第一部分和所述第二部分的连接。
5.根据权利要求3所述的装置,其中所述随机存取存储器进一步包含经配置以存储来自所述人工神经网络的第二输出的第三部分以及经配置以存储对所述人工神经网络的第二输入的第四部分;且在所述指令的执行期间,所述至少处理单元经配置以使用所述第二输入产生所述第二输出。
6.根据权利要求5所述的装置,其中在所述指令的执行期间,所述第一接口和所述第二接口具有分别对所述第一部分和所述第二部分的并行存取,同时所述至少处理单元基于存储于所述第四部分中的所述第二输入产生所述第二输出且将所述第二输出存储到所述第三部分中。
7.根据权利要求5所述的装置,其中响应于在所述随机存取存储器中提供的指示,所述控制单元经配置以发起所述指令的执行以对所述人工神经网络应用第二输入,从所述人工神经网络产生所述第二输出,且将所述第二输出存储于所述第三部分中。
8.根据权利要求7所述的装置,其进一步包括:
集成电路封装,其经配置以围封所述装置;以及
第一组连接器,其经配置以将所述第一接口耦合到所述中央处理单元;以及
第二组连接器,其经配置以将所述第二接口耦合到不同于所述中央处理单元的所述控制器的所述存储器控制器。
9.根据权利要求8所述的装置,其中深度学习加速器配置于围封于所述装置内的现场可编程门阵列(FPGA)或专用集成电路(ASIC)的集成电路裸片上;且所述深度学习加速器包含所述控制单元、所述至少一个处理单元和本地存储器。
10.根据权利要求9所述的装置,其中所述至少一个处理单元包含经配置以对指令的两个矩阵操作数进行操作的矩阵-矩阵单元;
其中所述矩阵-矩阵单元包含经配置以并行地操作的多个矩阵-向量单元;
其中所述多个矩阵-向量单元中的每一个包含经配置以并行地操作的多个向量-向量单元;且
其中所述多个向量-向量单元中的每一个包含经配置以并行地操作的多个乘累加单元。
11.根据权利要求10所述的装置,其中所述随机存取存储器和所述深度学习加速器形成于单独集成电路裸片上且通过硅穿孔(TSV)连接。
12.根据权利要求11所述的装置,其中所述随机存取存储器包含经配置以存储所述指令和所述人工神经网络的所述矩阵的非易失性存储器。
13.根据权利要求11所述的装置,其中所述深度学习加速器包含到所述随机存取存储器的存储器接口;且所述第一接口和所述第二接口经由所述深度学习加速器的所述存储器接口连接到所述随机存取存储器。
14.一种方法,其包括:
在集成电路装置中存储人工神经网络的矩阵和能够由围封于所述集成电路装置内的至少一个处理单元执行以使用所述矩阵实施所述人工神经网络的指令;
在围封于所述集成电路装置内的随机存取存储器中存储对所述人工神经网络的第一输入;
致使所述至少一个处理单元执行所述指令以从存储于所述随机存取存储器中的所述第一输入产生第一输出;
在围封于所述集成电路装置内的所述随机存取存储器中存储对所述人工神经网络的第二输入;
致使所述至少一个处理单元执行所述指令以从存储于所述随机存取存储器中的所述第二输入产生第二输出;
在其中所述至少一个处理单元正执行所述指令以从所述第二输入产生所述第二输出的时间周期期间,通过所述集成电路装置的第一接口将对所述人工神经网络的第三输入写入到所述集成电路装置中的所述随机存取存储器中;以及
通过所述集成电路装置的第二接口且在所述第三输入的所述写入的同时从所述随机存取存储器读取所述第一输出。
15.根据权利要求14所述的方法,其中通过连接到直接存储器存取控制器的所述第一接口执行所述第三输入的所述写入;且通过连接到中央处理单元的所述第二接口执行所述第一输出的所述读取。
16.根据权利要求15所述的方法,其中所述集成电路装置围封于集成电路封装内且具有带有处理单元、控制单元和本地存储器的深度学习加速器;所述处理单元至少包含经配置以执行具有两个矩阵操作数的指令的矩阵-矩阵单元;所述矩阵-矩阵单元包含经配置以并行地操作的多个矩阵-向量单元;所述矩阵-向量单元中的每一个包含经配置以并行地操作的多个向量-向量单元;且所述向量-向量单元中的每一个包含经配置以并行地操作的多个乘累加单元。
17.根据权利要求16所述的方法,其进一步包括:
将所述人工神经网络的描述转换为所述指令和所述矩阵。
18.根据权利要求17所述的方法,其中所述第一输出的所述读取、所述第三输入的所述写入、所述深度学习加速器读取所述第二输入的一部分以及所述深度学习加速器将所述第二输出的一部分写入到所述随机存取存储器中是并行地执行的。
19.一种设备,其包括:
随机存取存储器;
现场可编程门阵列(FPGA)或专用集成电路(ASIC),其包括:
用以存取所述随机存取存储器的存储器接口;
控制单元;以及
至少一个处理单元,其经配置以对在所述FPGA或ASIC中执行的指令的两个矩阵操作数进行操作;
第一接口,其经配置以用于中央处理单元的存储器控制器存取所述随机存取存储器的第一部分;以及
第二接口,其经配置以用于直接存储器存取控制器存取所述随机存取存储器的第二部分;
其中所述第一接口和所述第二接口经配置以向所述中央处理单元和所述直接存储器存取控制器提供对所述随机存取存储器的同时存取。
20.根据权利要求19所述的设备,其中所述随机存取存储器包含经配置以存储人工神经网络的模型数据的非易失性存储器;所述模型数据包含能够由所述FPGA或ASIC执行的指令;所述中央处理单元经配置以使用所述第一接口检索来自所述人工神经网络的输出;且所述直接存储器存取控制器经配置以使用所述第二接口对所述人工神经网络提供输入。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/844,993 | 2020-04-09 | ||
US16/844,993 US11887647B2 (en) | 2020-04-09 | 2020-04-09 | Deep learning accelerator and random access memory with separate memory access connections |
PCT/US2021/025018 WO2021206974A1 (en) | 2020-04-09 | 2021-03-30 | Deep learning accelerator and random access memory with separate memory access connections |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115461757A true CN115461757A (zh) | 2022-12-09 |
Family
ID=78006870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180024971.8A Pending CN115461757A (zh) | 2020-04-09 | 2021-03-30 | 具有单独存储器存取连接的深度学习加速器和随机存取存储器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11887647B2 (zh) |
EP (1) | EP4133420A4 (zh) |
KR (1) | KR20220164021A (zh) |
CN (1) | CN115461757A (zh) |
WO (1) | WO2021206974A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11726784B2 (en) | 2020-04-09 | 2023-08-15 | Micron Technology, Inc. | Patient monitoring using edge servers having deep learning accelerator and random access memory |
US11355175B2 (en) | 2020-04-09 | 2022-06-07 | Micron Technology, Inc. | Deep learning accelerator and random access memory with a camera interface |
US11874897B2 (en) | 2020-04-09 | 2024-01-16 | Micron Technology, Inc. | Integrated circuit device with deep learning accelerator and random access memory |
US11461651B2 (en) | 2020-04-09 | 2022-10-04 | Micron Technology, Inc. | System on a chip with deep learning accelerator and random access memory |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815456A (en) * | 1996-06-19 | 1998-09-29 | Cirrus Logic, Inc. | Multibank -- multiport memories and systems and methods using the same |
US7251376B2 (en) | 2003-08-29 | 2007-07-31 | Canadian Space Agency | Data compression engines and real-time wideband compressor for multi-dimensional data |
EP1728211A2 (en) | 2004-03-12 | 2006-12-06 | Aureon Laboratories, Inc. | Systems and methods for treating, diagnosing and predicting the occurrence of a medical condition |
US7873812B1 (en) * | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US20060230213A1 (en) | 2005-03-29 | 2006-10-12 | Via Technologies, Inc. | Digital signal system with accelerators and method for operating the same |
US10754764B2 (en) | 2018-04-22 | 2020-08-25 | Sas Institute Inc. | Validation sets for machine learning algorithms |
WO2009103156A1 (en) | 2008-02-20 | 2009-08-27 | Mcmaster University | Expert system for determining patient treatment response |
US8131659B2 (en) | 2008-09-25 | 2012-03-06 | Microsoft Corporation | Field-programmable gate array based accelerator system |
NZ572036A (en) | 2008-10-15 | 2010-03-26 | Nikola Kirilov Kasabov | Data analysis and predictive systems and related methodologies |
US8458377B2 (en) | 2010-03-05 | 2013-06-04 | Lsi Corporation | DMA engine capable of concurrent data manipulation |
US8712039B2 (en) | 2011-04-06 | 2014-04-29 | Certicom Corp. | Efficient implementation of hash algorithm on a processor |
US9199122B2 (en) | 2012-10-09 | 2015-12-01 | Kc Holdings I | Personalized avatar responsive to user physical state and context |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US11126549B2 (en) | 2016-03-31 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Processing in-memory architectures for performing logical operations |
US11055063B2 (en) | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
GB2553783B (en) * | 2016-09-13 | 2020-11-04 | Advanced Risc Mach Ltd | Vector multiply-add instruction |
US10127495B1 (en) | 2017-04-14 | 2018-11-13 | Rohan Bopardikar | Reducing the size of a neural network through reduction of the weight matrices |
CN107679620B (zh) | 2017-04-19 | 2020-05-26 | 赛灵思公司 | 人工神经网络处理装置 |
CN107679621B (zh) | 2017-04-19 | 2020-12-08 | 赛灵思公司 | 人工神经网络处理装置 |
GB2563878B (en) * | 2017-06-28 | 2019-11-20 | Advanced Risc Mach Ltd | Register-based matrix multiplication |
US20190027018A1 (en) | 2017-07-21 | 2019-01-24 | Accenture Global Solutions Limited | Artificial intelligence based service control and home monitoring |
US10542889B2 (en) | 2017-08-14 | 2020-01-28 | Amrita Vishwa Vidyapeetham | Systems, methods, and devices for remote health monitoring and management |
US11204747B1 (en) | 2017-10-17 | 2021-12-21 | Xilinx, Inc. | Re-targetable interface for data exchange between heterogeneous systems and accelerator abstraction into software instructions |
US10515135B1 (en) | 2017-10-17 | 2019-12-24 | Xilinx, Inc. | Data format suitable for fast massively parallel general matrix multiplication in a programmable IC |
TW201926147A (zh) | 2017-12-01 | 2019-07-01 | 阿比特電子科技有限公司 | 電子裝置、加速器、適用於神經網路運算的加速方法及神經網路加速系統 |
US10803379B2 (en) | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
CN111712186A (zh) | 2017-12-20 | 2020-09-25 | 医鲸股份有限公司 | 用于辅助心血管疾病的诊断的方法和装置 |
US10885314B2 (en) | 2018-01-22 | 2021-01-05 | Kneron Inc. | Face identification system and face identification method with high security level and low power consumption |
US10545559B2 (en) | 2018-02-20 | 2020-01-28 | Apical Limited | Data processing system and method |
US20190286973A1 (en) | 2018-03-14 | 2019-09-19 | Microsoft Technology Licensing, Llc | Hardware accelerated neural network subgraphs |
US10698730B2 (en) | 2018-04-03 | 2020-06-30 | FuriosaAI Co. | Neural network processor |
KR102589968B1 (ko) | 2018-04-17 | 2023-10-16 | 삼성전자주식회사 | 3 차원 적층 구조를 갖는 뉴로모픽 회로 및 이를 포함하는 반도체 장치 |
US10387122B1 (en) | 2018-05-04 | 2019-08-20 | Olsen Ip Reserve, Llc | Residue number matrix multiplier |
US10754649B2 (en) | 2018-07-24 | 2020-08-25 | Apple Inc. | Computation engine that operates in matrix and vector modes |
US11321087B2 (en) | 2018-08-29 | 2022-05-03 | Cerebras Systems Inc. | ISA enhancements for accelerated deep learning |
CN112703533A (zh) | 2018-09-17 | 2021-04-23 | 诺基亚通信公司 | 对象跟踪 |
US11188825B2 (en) | 2018-10-15 | 2021-11-30 | International Business Machines Corporation | Mixed-precision deep-learning with multi-memristive devices |
US10678479B1 (en) | 2018-11-29 | 2020-06-09 | Amazon Technologies, Inc. | Registers for restricted memory |
US20200183837A1 (en) | 2018-12-07 | 2020-06-11 | Samsung Electronics Co., Ltd. | Dataflow accelerator architecture for general matrix-matrix multiplication and tensor computation in deep learning |
EP3899811A4 (en) | 2018-12-18 | 2022-09-28 | Movidius Ltd. | NERVE NETWORK COMPRESSION |
US10929503B2 (en) * | 2018-12-21 | 2021-02-23 | Intel Corporation | Apparatus and method for a masked multiply instruction to support neural network pruning operations |
US10978382B2 (en) | 2019-01-30 | 2021-04-13 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit package and method |
US11961007B2 (en) | 2019-02-06 | 2024-04-16 | Qualcomm Incorporated | Split network acceleration architecture |
WO2020167616A1 (en) | 2019-02-13 | 2020-08-20 | Apple Inc. | Apparatus and method for session initiated protocol (sip) registration procedure for access network bitrate recommendation (anbr) capability signaling |
WO2020172494A1 (en) | 2019-02-22 | 2020-08-27 | Neureality Ltd. | Directed and interconnected grid dataflow architecture |
US11630770B2 (en) | 2019-07-11 | 2023-04-18 | Meta Platforms Technologies, Llc | Systems and methods for reading and writing sparse data in a neural network accelerator |
US20210012178A1 (en) | 2019-07-11 | 2021-01-14 | Facebook Technologies, Llc | Systems, methods, and devices for early-exit from convolution |
US11675998B2 (en) | 2019-07-15 | 2023-06-13 | Meta Platforms Technologies, Llc | System and method for performing small channel count convolutions in energy-efficient input operand stationary accelerator |
WO2021016931A1 (zh) | 2019-07-31 | 2021-02-04 | 华为技术有限公司 | 一种集成芯片以及处理传感器数据的方法 |
US11494608B2 (en) | 2019-08-14 | 2022-11-08 | Intel Corporation | Methods and apparatus to tile walk a tensor for convolution operations |
US11334399B2 (en) | 2019-08-15 | 2022-05-17 | Intel Corporation | Methods and apparatus to manage power of deep learning accelerator systems |
US11500959B2 (en) | 2019-08-16 | 2022-11-15 | Google Llc | Multiple output fusion for operations performed in a multi-dimensional array of processing units |
US11687341B2 (en) | 2019-08-29 | 2023-06-27 | Intel Corporation | Multi-variate strided read operations for accessing matrix operands |
US11366979B2 (en) | 2019-11-14 | 2022-06-21 | Alibaba Group Holding Limited | Using selected components of frequency domain image data in artificial intelligence tasks |
TWI728556B (zh) | 2019-11-18 | 2021-05-21 | 財團法人工業技術研究院 | 神經元電路及類神經網路晶片 |
US20210192287A1 (en) | 2019-12-18 | 2021-06-24 | Nvidia Corporation | Master transform architecture for deep learning |
CN111240743B (zh) | 2020-01-03 | 2022-06-03 | 格兰菲智能科技有限公司 | 人工智能集成电路 |
US20210279629A1 (en) | 2020-03-05 | 2021-09-09 | oneFiveFIFTY LLC | Machine learning and computer-based generation of standard work matrices for improving execution of a standard work |
US11726784B2 (en) | 2020-04-09 | 2023-08-15 | Micron Technology, Inc. | Patient monitoring using edge servers having deep learning accelerator and random access memory |
US11355175B2 (en) | 2020-04-09 | 2022-06-07 | Micron Technology, Inc. | Deep learning accelerator and random access memory with a camera interface |
US11874897B2 (en) | 2020-04-09 | 2024-01-16 | Micron Technology, Inc. | Integrated circuit device with deep learning accelerator and random access memory |
US20210320967A1 (en) | 2020-04-09 | 2021-10-14 | Micron Technology, Inc. | Edge Server with Deep Learning Accelerator and Random Access Memory |
US11461651B2 (en) | 2020-04-09 | 2022-10-04 | Micron Technology, Inc. | System on a chip with deep learning accelerator and random access memory |
US11500811B2 (en) | 2020-06-12 | 2022-11-15 | Alibaba Group Holding Limited | Apparatuses and methods for map reduce |
US11544548B2 (en) | 2021-05-24 | 2023-01-03 | Rebellions Inc. | Processing element and neural processing device including same |
-
2020
- 2020-04-09 US US16/844,993 patent/US11887647B2/en active Active
-
2021
- 2021-03-30 WO PCT/US2021/025018 patent/WO2021206974A1/en unknown
- 2021-03-30 EP EP21784297.0A patent/EP4133420A4/en active Pending
- 2021-03-30 CN CN202180024971.8A patent/CN115461757A/zh active Pending
- 2021-03-30 KR KR1020227038422A patent/KR20220164021A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
EP4133420A4 (en) | 2024-04-24 |
US11887647B2 (en) | 2024-01-30 |
EP4133420A1 (en) | 2023-02-15 |
US20210319822A1 (en) | 2021-10-14 |
WO2021206974A1 (en) | 2021-10-14 |
KR20220164021A (ko) | 2022-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11874897B2 (en) | Integrated circuit device with deep learning accelerator and random access memory | |
US11887647B2 (en) | Deep learning accelerator and random access memory with separate memory access connections | |
US11942135B2 (en) | Deep learning accelerator and random access memory with a camera interface | |
CN115552420A (zh) | 具有深度学习加速器和随机存取存储器的芯片上系统 | |
US20220188606A1 (en) | Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device | |
CN116134452A (zh) | 具有集成随机存取存储器的深度学习加速器中的优化传感器融合 | |
CN116210006A (zh) | 用于深度学习加速器和随机存取存储器的智能低功率模式 | |
CN116569182A (zh) | 具有用以优化经生成以用于在人工神经网络的深度学习加速器上执行的指令的人工神经网络的编译器 | |
US20220147808A1 (en) | Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network | |
US20220044102A1 (en) | Fault tolerant artificial neural network computation in deep learning accelerator having integrated random access memory | |
CN116097273A (zh) | 由深度学习加速器与集成随机存取存储器进行的协作式传感器数据处理 | |
CN115943387A (zh) | 具有深度学习加速器及随机存取存储器的集成传感器装置 | |
CN116601645A (zh) | 经由编译器发现深度学习加速器的硬件特性以用于优化 | |
US20220147809A1 (en) | Deep learning accelerators with configurable hardware options optimizable via compiler | |
US20220147811A1 (en) | Implement the computation of an artificial neural network using multiple deep learning accelerators | |
CN117255997A (zh) | 使用人工神经网络的深度学习加速器的目标检测 | |
CN116097282A (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 |