CN115552421A - 具有深度学习加速器和随机存取存储器的边缘服务器 - Google Patents
具有深度学习加速器和随机存取存储器的边缘服务器 Download PDFInfo
- Publication number
- CN115552421A CN115552421A CN202180026173.9A CN202180026173A CN115552421A CN 115552421 A CN115552421 A CN 115552421A CN 202180026173 A CN202180026173 A CN 202180026173A CN 115552421 A CN115552421 A CN 115552421A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- matrix
- random access
- integrated circuit
- access memory
- 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
- 238000013135 deep learning Methods 0.000 title claims abstract description 181
- 238000013528 artificial neural network Methods 0.000 claims abstract description 269
- 238000012545 processing Methods 0.000 claims abstract description 199
- 239000011159 matrix material Substances 0.000 claims abstract description 134
- 238000000034 method Methods 0.000 claims abstract description 41
- 239000013598 vector Substances 0.000 claims description 126
- 230000004044 response Effects 0.000 claims description 17
- 230000002093 peripheral effect Effects 0.000 claims description 10
- 230000010267 cellular communication Effects 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 abstract description 31
- 239000000872 buffer Substances 0.000 description 34
- 238000013507 mapping Methods 0.000 description 26
- 210000002569 neuron Anatomy 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 210000004027 cell Anatomy 0.000 description 9
- 238000003860 storage Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 229910052710 silicon Inorganic materials 0.000 description 7
- 239000010703 silicon Substances 0.000 description 7
- 239000000758 substrate Substances 0.000 description 6
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 230000004913 activation Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000002059 diagnostic imaging Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 241000699670 Mus sp. Species 0.000 description 3
- 239000004020 conductor Substances 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000000946 synaptic effect Effects 0.000 description 3
- 238000002604 ultrasonography Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change 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
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009510 drug design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression 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
- 229910000679 solder Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- 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
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- 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/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
- 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/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
描述了与深度学习加速器和存储器相关的系统、装置和方法。边缘服务器可以使用具有以下的集成电路装置实施:深度学习加速器,其配置成执行具有矩阵操作数的指令;随机存取存储器,其配置成存储可由所述深度学习加速器执行的人工神经网络的第一指令和可由中央处理单元执行的服务器应用程序的第二指令;以及到计算机网络上的通信装置的接口。所述中央处理单元可以是所述集成电路装置的一部分,或者可以连接到所述集成电路装置。所述服务器应用程序可配置成基于所述人工神经网络的输出和经由总线或有线或无线局域网从一或多个本地装置接收到的输入,通过所述计算机网络提供服务。
Description
相关申请
本申请要求于2020年4月9日提交且标题为“具有深度学习加速器和随机存取存储器的边缘服务器(EDGE SERVER WITH DEEP LEARNING ACCELERATOR AND RANDOM ACCESSMEMORY)”的第16/845,007号美国专利申请的优先权,所述申请的全部公开内容特此以引用的方式并入本文中。
技术领域
本文公开的至少一些实施例大体上涉及边缘服务器,且更具体地但不限于使用具有用于人工神经网络(ANN)的加速器的集成电路装置实施的边缘服务器,所述ANN例如是通过机器学习和/或深度学习配置的ANN。
背景技术
人工神经网络(ANN)使用神经元网络来处理所述网络的输入,且产生所述网络的输出。
例如,网络中的每个神经元接收一组输入。神经元的一些输入可以是网络中某些神经元的输出;并且神经元的一些输入可以是提供给神经网络的输入。网络中神经元之间的输入/输出关系表示网络中的神经元连接性。
例如,每个神经元可针对其输入具有相应的偏置、激活函数和一组突触权重。激活函数可呈阶跃函数、线性函数、对数S型函数等形式。网络中的不同神经元可以具有不同的激活函数。
例如,每个神经元可产生其输入和其偏置的加权和,然后产生为加权和的函数的输出,所述输出是使用神经元的激活函数计算的。
ANN输入和输出之间的关系通常由ANN模型定义,所述ANN模型包含表示网络中神经元的连接性的数据,以及每个神经元的偏置、激活函数和突触权重。基于给定的ANN模型,计算装置可配置成从网络的一组给定输入计算网络的输出。
例如,可基于相机输入产生ANN网络的输入;并且ANN网络的输出可以是对例如事件或对象等事项的识别。
一般来说,ANN可以使用受监督方法训练,其中ANN中的参数经调整以最小化或减少与相应输入相关联或由相应输入产生的已知输出与经由向ANN应用输入所产生的计算出的输出之间的误差。受监督学习/训练方法的实例包含强化学习和错误校正学习。
替代地或组合地,可以使用无监督方法来训练ANN,其中由给定的一组输入产生的确切输出在训练完成之前是未知的。可以训练ANN,以将事项分类成多个类别,或将数据点分类成聚类。
可以将多个训练算法用于复杂机器学习/训练范例。
深度学习使用多层机器学习从输入数据中逐步提取特征。例如,较低层可配置成识别图像中的边缘;并且较高层可配置成基于使用较低层检测到的边缘来识别图像中捕获的项目,例如面部、对象、事件等。深度学习可以经由人工神经网络(ANN)实施,例如深度神经网络、深度信念网络、递归神经网络和/或卷积神经网络。
深度学习已应用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医学图像处理、游戏等。
附图说明
在附图的各图中作为实例而非限制示出了实施例,在附图中,相似的参考标号指示类似的元件。
图1示出根据一个实施例的具有经配置的深度学习加速器和随机存取存储器的集成电路装置。
图2示出根据一个实施例的配置成执行矩阵-矩阵操作的处理单元。
图3示出根据一个实施例的配置成执行矩阵-向量操作的处理单元。
图4示出根据一个实施例的配置成执行向量-向量操作的处理单元。
图5示出根据一个实施例的配置成向经过训练的人工神经网络自主地应用输入的深度学习加速器和随机存取存储器。
图6示出根据一个实施例的使深度学习加速器和随机存取存储器配置有单独的存储器存取连接的集成电路装置。
图7示出根据一个实施例的具有带相机接口的深度学习加速器和随机存取存储器的集成电路装置。
图8示出根据一个实施例的芯片上系统。
图9示出根据一个实施例的配置有边缘服务器的用户装置。
图10示出根据一个实施例实施的边缘服务器。
图11示出根据一个实施例的在边缘服务器中实施的方法。
具体实施方式
本文公开的至少一些实施例提供了一种通用集成电路装置,其配置成以减少的能量消耗和计算时间执行人工神经网络(ANN)的计算。集成电路装置包含深度学习加速器(DLA)和随机存取存储器。集成电路装置可配置有用于同时存取随机存取存储器的单独连接。集成电路装置可具有相机接口,其配置成直接从一或多个相机接收图像数据作为在集成电路装置中实施的人工神经网络(ANN)的输入。此外,集成电路装置可包含中央处理单元(225),以形成芯片上系统。这种集成电路装置可用于实施边缘服务器,以在靠近数据源的位置处处理数据。
深度学习加速器(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)可以执行人工神经网络(ANN)的计算,几乎不需要来自中央处理单元(CPU)或另一处理器的帮助。任选地,常规通用处理器也可以配置为深度学习加速器(DLA)的一部分,以执行不能使用深度学习加速器(DLA)的向量/矩阵处理单元有效实施的操作和/或不能由深度学习加速器(DLA)的向量/阵元处理单元执行的操作。
典型的人工神经网络(ANN)可以以标准格式(例如,开放式神经网络交换(ONNX))来描述/指定。编译器可用于将人工神经网络(ANN)的描述转换为一组指令,用于深度学习加速器(DLA)执行人工神经网络(ANN)的计算。编译器可以优化所述一组指令以提高深度学习加速器(DLA)在实施人工神经网络(ANN)时的性能。
深度学习加速器(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)的输出自动存储在随机存取存储器中。中央处理单元(CPU)可经由单独连接存取随机存取存储器,与此同时,直接存储器存取(DMA)控制器向深度学习加速器(DLA)提供输入数据。
例如,人工神经网络(ANN)的输入数据流可以一系列输入数据集的形式配置。每个输入数据集在一个时隙期间用于人工神经网络(ANN)的一组输入。当深度学习加速器(DLA)正在计算来自当前一组输入的输出时,直接存储器存取(DMA)控制器可以将下一组输入存储到随机存取存储器中;并且中央处理单元(CPU)可以同时从随机存取存储器中检索针对前一组输入产生的输出。
因此,准备和处理人工神经网络(ANN)的输入数据的任务可以从中央处理单元(CPU)卸载。深度学习加速器(DLA)、随机存取存储器和直接存储器存取(DMA)控制器的组合可以用作结果从人工神经网络(ANN)到中央处理单元(CPU)的独立供应者。中央处理单元(CPU)可以在需要输出时检索一组输出。当不需要人工神经网络(ANN)的输出时,中央处理单元(CPU)可以指示直接存储器存取(DMA)控制器暂停其向人工神经网络(ANN)供应输入的操作。随后,当需要人工神经网络(ANN)的输出时,中央处理单元(CPU)可以指示直接存储器存取(DMA)控制器恢复其将输入数据加载到随机存取存储器中的操作。
人工神经网络(ANN)可用于处理传感器数据,例如图像。例如,数码相机可用于产生图像,以用于计算机视觉和/或自主驾驶、飞行、导航等。例如,一些传感器数据可转换成图像形式以供人工神经网络(ANN)处理。例如,雷达、光达、超声扫描仪、医学成像设备等可产生图像,供人工神经网络(ANN)分析以辨识和/或分类特征、对象、疾病等。
具有深度学习加速器和随机存取存储器的集成电路装置可配置成包含相机接口,用于获取图像数据作为在集成电路装置中实施的人工神经网络(ANN)的输入。
例如,相机接口可以根据移动行业处理器接口(MIPI)协议来实施,以从图像传感器、相机或可以产生图像的另一装置(例如,雷达、光达、超声扫描仪、医疗成像设备)接收图像数据。例如,移动行业处理器接口(MIPI)协议可包含对相机命令接口的支持,以控制相机或成像装置的操作。相机接口允许具有深度学习加速器和随机存取存储器的集成电路装置控制图像数据作为输入的接收,以供人工神经网络(ANN)处理。相机或图像传感器/产生器可以将其输入数据作为图像流式传输到随机存取存储器的输入区域中。集成电路装置根据人工神经网络(ANN)自动转换输入数据,并将人工神经网络(ANN)的输出存储在随机存取存储器中。由于集成电路装置无缝地获取图像数据并将其转换为人工神经网络(ANN)输出,因此可以显著减少到中央处理单元的数据流量。
相机接口允许集成电路装置与图像产生器组合作为智能传感器单元,自动供应随机存取存储器中人工神经网络(ANN)的智能结果。一旦中央处理单元将集成电路装置配置成进行操作,那么可以从中央处理单元(CPU)卸载获取输入数据和执行涉及人工神经网络(ANN)的计算的计算任务。
任选地,原始传感器/图像数据可以以循环方式在随机存取存储器中缓冲一段时间,使得如果需要,中央处理单元(CPU)也可以在这一段时间内存取原始传感器数据。
中央处理单元(CPU)的逻辑电路还可集成到具有深度学习加速器(DLP)和随机存取存储器的集成电路装置中。中央处理单元(CPU)和深度学习加速器(DLP)可配置成共享集成电路装置中的随机存取存储器。因为集成电路装置具有中央处理单元(CPU)和随机存取存储器,所以集成电路装置可以形成芯片上系统,并且可配置成不具有到外部存储器总线的接口。
例如,在具有中央处理单元(CPU)的此类集成电路装置中,应用程序可以编程成在中央处理单元(CPU)中运行,其中在应用程序的运行实例中使用的逻辑存储器地址可以经由中央处理单元的存储器控制器映射到用于存取随机存取存储器的物理存储器地址。深度学习加速器(DLP)可以执行涉及人工神经网络(ANN)的一些或所有计算,并且可以将人工神经网络(ANN)的输出作为输入提供给在中央处理单元(CPU)中运行的应用程序。因此,集成电路装置可用于实施低成本、智能物联网(IoT),例如监控摄像头。
例如,一或多个传感器可以连接到集成电路装置的输入/输出接口,以将传感器数据作为输入提供给人工神经网络(ANN),所述ANN已经训练以产生推理结果。经过训练的人工神经网络(ANN)的描述可以使用编译器转换为一组指令和矩阵数据。在将指令和矩阵数据存储在随机存取存储器中之后,深度学习加速器(DLP)可以执行指令以将传感器数据和人工神经网络(ANN)的矩阵数据组合到中央处理单元的高级输入中。任选地,由深度学习加速器(DLP)执行的指令可包含对中央处理单元中执行的一或多个例程的调用。信号线可以在集成电路装置内实施以便于调用。因此,集成电路装置中的中央处理单元可以任选地在实施人工神经网络(ANN)时向深度学习加速器(DLP)提供服务。
将由中央处理单元执行的应用程序可以编程成从随机存取存储器读取由人工神经网络(ANN)产生的推理结果作为输入。因此,使用人工神经网络(ANN)处理传感器数据的细节可以从应用程序的编程中屏蔽。
具有随机存取存储器和深度学习加速器(DLP)以及任选的中央处理单元的集成电路装置可用于实施边缘服务器。边缘服务器可用于使用人工神经网络处理输入数据流并产生推理结果。边缘服务器可配置成在计算机网络中在接近输入数据产生器的位置处提供服务。例如,推理结果可供用户装置使用,并减少用户装置获得推理结果的时延。例如,推理结果可供配置在远离用户装置群的集中位置的服务器使用,从而减少到远程集中式服务器的数据流量。
例如,此类集成电路装置可以配置在网络通信装置上以实施边缘服务器。网络通信装置可以是网络接口卡、路由器、网络网关、物联网(IoT)中心、到有线计算机网络或互联网的无线存取点、蜂窝通信网络的基站等。边缘服务器可经由局域网、无线局域网(例如,WiFi)、无线个域网(例如,蓝牙)连接到用户装置,使得到边缘服务器的输入数据流量限于用户装置附近的局部区域。边缘服务器可进一步连接到服务用户装置的远程集中式服务器。一般来说,一些用户装置可以任选地直接连接到远程集中式服务器而不穿过任何边缘服务器;而其它用户装置可以经由它们的边缘服务器连接到远程集中式服务器。边缘服务器可已向本地区域的一或多个用户装置提供远程集中式服务器的至少一些服务,所述用户装置例如是连接到局域网、无线局域网(例如,WiFi)或无线个域网(例如,蓝牙)中的边缘服务器的用户装置。因此,边缘服务器的部署可以优化用户装置在计算机网络中获取服务和/或数据业务时的时延。
边缘服务器可用于智能地预处理来自用户装置的数据,根据从用户装置接收到的输入数据辨识事件和特征,并为远程集中式服务器产生智能的高级输入。边缘服务器可以通过使用人工神经网络(ANN)转换从用户装置接收到的输入数据来过滤远程集中式服务器的输入数据。人工神经网络(ANN)可以将大量输入数据减少为数据大小小于输入数据的经辨识事件和特征。可以在边缘服务器上丢弃未辨识事件和特征的输入数据。替代地,将未辨识事件和特征的输入数据传输到远程集中式服务器以进行进一步分析。基于进一步的分析,可以进一步训练人工神经网络(ANN)以辨识先前未辨识的事件和特征。然后,可以更新在边缘服务器中实施的人工神经网络(ANN),以提高其辨别事件和特征的能力,从而减少到远程集中式服务器的未来数据流量。
此外,边缘服务器中的存储器可以用作数据记录器,以将与经辨识事件和特征相关联的输入数据存储一段时间。因此,在一段时间内,当需要经辨识事件和特征的输入数据时,远程集中式服务器可以选择性地请求边缘服务器提供输入数据。
图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)并行加载或存储数目相同的或为所述数目的倍数的元素。
任选地,连接(119)的数据存取速度可以基于深度学习加速器(DLA)(103)的处理速度进行配置。例如,在一定量的数据和指令已经加载到本地存储器(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))之间的协调的通信。
任选地,深度学习加速器(DLA)(103)的逻辑电路可以经由互补金属氧化物半导体(CMOS)实施。例如,随机存取存储器(105)的存储器单元的阵列下CMOS(CUA)的技术可用于实施深度学习加速器(DLA)(103)的逻辑电路,包含处理单元(111)和控制单元(113)。替代地,随机存取存储器(105)的存储器单元的阵列中CMOS的技术可用于实施深度学习加速器(DLA)(103)的逻辑电路。
在一些实施方案中,深度学习加速器(DLA)(103)和随机存取存储器(105)可以在单独的集成电路裸片上实施,并且可以使用穿硅通孔(TSV)连接以增加深度学习加速器(DLA)(103)和随机存取存储器(105)之间的数据带宽。例如,深度学习加速器(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)分别存储具有多个向量存储在映射组(151到153)中的矩阵操作数的一个向量,方式与图2的映射组(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)的计数的倍数时,可以在每一迭代中从向量缓冲器(181和183)提供数目等于乘累加(MAC)单元(171到173)的计数的数对输入作为乘累加(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)编译器(203)通过产生对应于人工神经元特性及其连接性的用于深度学习加速器(DLA)(103)和矩阵(207)的指令(205)来转换经过训练的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)的输入(211)以产生经过训练的ANN(213)的对应输出(213)的经过训练的ANN(201)的应用程序可以通过随机存取存储器(105)中输入(211)的存在或随机存取存储器(105)中提供的另一指示而触发。
作为响应,深度学习加速器(DLA)(103)执行组合输入(211)和矩阵(207)的指令(205)。指令(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)将ANN(201)的输出(213)存储在随机存取存储器(105)中的预定义位置或在随机存取存储器(105)所提供的指示中指定的位置处以触发计算。
当图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)的随机存取存储器(103)可以使用计算装置(例如,101)到存储器控制器的接口(107)来存取。计算装置(例如,101)可具有配置成至少对矩阵操作数执行计算的处理单元(例如,111),所述矩阵操作数例如是存储在映射组(151到153)中的矩阵操作数和存储在内核缓冲器(131到133)中的矩阵操作数。
例如,计算装置(例如,101)可围封于集成电路封装内;且一组连接可将接口(107)连接到位于集成电路封装外部的存储器控制器。
可由处理单元(例如,111)执行的指令(205)可以通过接口(107)写入随机存取存储器(105)。
人工神经网络(201)的矩阵(207)可以通过接口(107)写入随机存取存储器(105)。矩阵(207)识别人工神经网络(201)的特性和/或状态。
任选地,随机存取存储器(105)的至少一部分是非易失性的,且配置成存储人工神经网络(201)的指令(205)和矩阵(07)。
人工神经网络的第一输入(211)可以通过接口(107)写入随机存取存储器(105)。
在随机存取存储器(105)中提供使处理单元(111)开始执行指令(205)的指示。响应于所述指示,处理单元(111)执行组合人工神经网络(201)的第一输入(211)与矩阵(207)的指令,以产生人工神经网络(201)的第一输出(213)并将第一输出(213)存储在随机存取存储器(105)中。
例如,所述指示可以是随机存取存储器(105)中第一输入(211)的地址;并且所述指示可以存储在随机存取存储器(105)中的预定位置,使得由所述地址识别的输入(211)的指令(205)开始执行。任选地,所述指示还可包含用于存储输出(213)的地址。
第一输出(213)可以通过接口(107)从随机存取存储器(105)读取。
例如,计算装置(例如,101)可具有在第一集成电路裸片上形成的深度学习加速器(103)和在一或多个第二集成电路裸片上形成的随机存取存储器(105)。第一集成电路裸片和所述一或多个第二集成电路裸片之间的连接(119)可包含穿硅通孔(TSV),用于提供用于存储器存取的高带宽。
例如,人工神经网络(201)的描述可以使用编译器(203)转换成指令(205)和矩阵(207)。存储在随机存取存储器(105)和深度学习加速器(103)中的指令(205)和矩阵(207)的组合提供了人工神经网络(201)的自主实施方案,它可以将人工神经网络(201)的输入(211)自动转换成其输出(213)。
例如,在深度学习加速器(103)执行根据人工神经网络(201)的矩阵(207)从第一输入(211)产生第一输出(213)的指令(205)的时间周期期间,人工神经网络(201)的第二输入可以通过接口(107)写入随机存取存储器(105)的替代性位置。在第一输出(213)存储在随机存取存储器(105)中之后,可以在随机存取存储器中提供使深度学习加速器(103)再次开始执行指令并从第二输入产生第二输出的指示。
在深度学习加速器(103)执行根据人工神经网络(201)的矩阵(207)从第二输入产生第二输出的指令(205)的时间周期期间,第一输出(213)可以通过接口(107)从随机存取存储器(105)读取;并且另一输入可以写入随机存取存储器以替换第一输入(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)配置有单独的到所述部分的连接(108和109)以分别用于输入(211)和输出(213)。因此,集成电路(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)时,不同存储器区域中的输入(例如,211)和输出(例如,213)可以由单独外部接口(106和107)同时存取。尽管一组输入/输出存储器被分配用于深度学习加速器(DLA)(103)以处理一组输入(例如,211)并产生对应的一组输出(例如,213),但是外部接口(106和107)可以同时存取一或多组输入/输出存储器。
在根据一个实施例的方法中,集成电路装置(101)存储人工神经网络(201)的矩阵(207)和指令(205)。指令(205)可由围封在集成电路装置(101)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)。集成电路装置(101)或者印刷电路板上的封装计算装置具有随机存取存储器。
围封在集成电路装置(101)内的随机存取存储器(105)存储人工神经网络(201)的第一输入;并且在从存储在随机存取存储器(105)中的第一输入产生第一输出时使得或使用所述至少一个处理单元(111)执行指令(205)。第一输出存储在随机存取存储器(105)中。
随后,围封在集成电路装置(101)内的随机存取存储器(105)进一步存储人工神经网络(201)的第二输入;并且在从存储在随机存取存储器(105)中的第二输入产生第二输出时使得或使用所述至少一个处理单元(111)执行指令(205)。
在所述至少一个处理单元(111)正在执行从第二输入产生第二输出的指令(205)时,外部装置(例如,直接存储器存取控制器)通过集成电路装置(101)的第一接口(106)将人工神经网络(201)的第三输入写入集成电路装置(101)中的随机存取存储器(105)。在相同时间,在写入第三输入的同时,另一外部装置(例如,中央处理单元)通过集成电路装置(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)。
图7示出根据一个实施例的具有带相机接口(221)的深度学习加速器(103)和随机存取存储器(105)的集成电路装置(101)。
例如,图7的集成电路装置(101)的深度学习加速器(103)、随机存取存储器(105)和连接(119)可以类似于图1、图5和/或图6所示的方式配置。
图7的集成电路装置(101)具有可同时使用的至少两个外部接口(221和107),包含CPU存储器接口(107)和相机接口(221)。
图7的集成电路装置(101)中的CPU存储器接口(107)配置成提供到中央处理单元(CPU)(225)的存储器控制器(227)的连接(229),类似于图6的集成电路装置(101)中的CPU存储器接口(107)。
在图7中,CPU存储器接口(107)在深度学习加速器(103)中实施。例如,CPU存储器接口(107)的逻辑电路可以在深度学习加速器(103)的集成电路裸片上形成;并且CPU存储器接口(107)使用深度学习加速器(103)的存储器接口(117)存取随机存取存储器(105)。
替代地,CPU存储器接口(107)可与深度学习加速器(103)分开,并且可以如图6中所示的方式实施。例如,如图6中所示,CPU存储器接口(107)可配置成使用与深度学习加速器(103)和随机存取存储器(105)之间的连接(119)分开的连接(109)存取随机存取存储器(105)。图6的集成电路装置(101)还可修改成具有在深度学习加速器(DLA)(103)中实施的CPU存储器接口(107)和/或DMA控制器接口(106)的逻辑电路,实施方式类似于CPU存储器接口(107)在图7的深度学习加速器(103)中实施的方式。
图7的集成电路装置(101)中的相机接口(221)配置成提供到含有或采用图像传感器或图像产生器的一或多个装置的连接(228),所述装置例如是相机(223)、雷达、光达、医学成像设备等。
例如,到相机(223)的连接(228)可以根据移动行业处理器接口(MIPI)协议(包含MIPI相机串行接口(CSI)协议)的标准来实施。连接(228)可用于控制相机(223)(或另一图像产生器)的成像操作,并从相机(223)(或另一图像产生器)获得图像数据作为人工神经网络(201)的输入(211)。在一个实施例中,连接(228)是根据MIPI CSI-2标准的串行总线,所述标准支持高性能应用,包含1080p、4K、8K及更高的视频和高分辨率摄影。
相机接口(221)可用于在产生图像数据时控制相机(223)的操作。例如,相机接口(221)可用于向相机(223)发送调整相机(223)所提供的图像数据的分辨率的命令。例如,经由相机接口(221)发送到相机(223)的命令可调整相机(223)所提供的图像数据的帧速率和/或曝光时间。例如,深度学习加速器(DLA)(103)可使用相机接口(221)开始或停止相机(223)捕获和/或传递图像的操作。
在一些实施方案中,相机接口(221)可用于任选地发出数字放大感兴趣区域的命令,并且因此减少通过连接(228)传递的数据量和集成电路装置(101)对从相机(223)接收的图像数据执行的计算量。
在一些实施方案中,相机接口(221)可用于任选地发出调整相机(223)的视点和/或视场的命令。
图7示出相机接口(221)配置在深度学习加速器(103)中的实施方案。例如,相机接口(221)的逻辑电路的至少一部分在深度学习加速器(103)的集成电路裸片上形成;并且相机接口(107)可使用深度学习加速器(103)的存储器接口(117)存取随机存取存储器(105)。
例如,相机接口(221)可通过连接(228)从相机(223)接收图像,并在随机存取存储器(105)中缓冲图像数据作为人工神经网络(201)的输入(211)。一旦集成电路装置(101)获得一组图像数据作为输入(211),深度学习加速器(103)就可执行产生输出(213)的指令(205),方式类似于图1、图5和/或图6的装置。
指令(205)可任选地包含控制单元(113)操作相机接口(221)并通过相机接口(221)经由连接(228)从相机(223)获得图像数据作为人工神经网络(201)的输入(211)的指令。
在图7中,相机接口(221)配置在深度学习加速器(103)中。替代地,相机接口(221)可以与深度学习加速器(103)分开且配置成使用与深度学习加速器(103)和随机存取存储器(105)之间的连接(119)分开的连接存取随机存取存储器(105),分开方式类似于图6中DMA控制器接口(106)与深度学习加速器(103)分开的方式。
图6和图7的集成电路装置(101)可修改成具有三个外部接口:CPU存储器接口(107)、DMA控制器接口(106)和相机接口(221)。任选地,相机接口(221)可包含直接存储器存取控制器,用于将图像数据从相机(223)加载到随机存取存储器(105)中,例如,与中央处理单元(225)从随机存取存储器(105)检索输出(例如,213)并行进行。相机接口(221)和DMA控制器接口(106)可任选地共享逻辑电路的一部分以支持直接存储器存取控制器的操作。
在根据一个实施例的方法中,集成电路装置(101)存储人工神经网络(201)的矩阵(207)和指令(205)。指令(205)可由围封在集成电路装置(101)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)的计算。集成电路装置(101)具有配置成连接到存储器控制器(227)的第一接口(107)和配置成连接到图像产生器的第二接口(221),所述图像产生器例如相机(223)、雷达、光达、超声扫描仪或医学成像设备。
例如,第二接口(221)实施相机命令接口协议和/或移动行业处理器接口(MIPI)协议。例如,第二接口(221)配置成根据移动行业处理器接口(MIPI)相机串行接口(CSI)协议经由串行总线连接(228)连接到相机(223)。
集成电路装置(101)经由第二接口(221)与图像产生器(例如,223)通信以接收图像数据作为人工神经网络(201)的输入(221)。
集成电路装置(101)执行根据输入(211)产生人工神经网络(201)的输出(213)的指令(205)。
集成电路装置(101)在围封于集成电路装置(101)内的随机存取存储器(105)中存储人工神经网络(201)的输出(213)。
集成电路装置(101)经由第一接口(107)将输出(213)提供到由存储器控制器(227)控制的中央处理单元(225)。
例如,集成电路装置(101)可经由第二接口(221)将图像产生器(例如,223)的下一组图像数据缓冲到随机存取存储器(105)中作为人工神经网络(201)的输入,同时经由第一接口(107)从随机存取存储器(105)提供先前根据来自图像产生器(例如,223)的前一组图像数据产生的人工神经网络(201)的输出,这与缓冲同时进行。
例如,集成电路装置(101)可以围封在集成电路封装内。集成电路装置(101)具有带处理单元(111)、控制单元(113)和本地存储器(115)的深度学习加速器(103)。处理单元(111)包含配置成执行具有两个矩阵操作数的指令的至少一矩阵-矩阵单元(121);矩阵-矩阵单元(121)包含配置成并行操作的多个矩阵-向量单元(141到143);矩阵-向量单元中的每一个包含配置成并行操作的多个向量-向量单元(161到163);并且向量-向量单元中的每一个包含配置成并行操作的多个乘累加单元(171到173)。
例如,集成电路装置(101)可经由第二接口(221)向图像产生器(例如,223)传输命令,其中所述命令指示图像产生器(例如,223)调整由图像产生器(例如,223)产生的图像数据的分辨率或帧速率。
例如,集成电路装置(101)可经由第二接口(221)向图像产生器(例如,223)传输另一命令以指示图像产生器(例如,223)调整由图像产生器(例如,223)产生的图像数据的感兴趣区域、视点或视场。
图8示出根据一个实施例的芯片上系统。
图8的系统封装于集成电路装置(101)中。图8的集成电路装置(101)具有深度学习加速器(103)、随机存取存储器(105)及深度学习加速器(103)与随机存取存储器(105)之间的连接(119),它们可以类似于图1、图5、图6和/或图7所示的方式配置。
图8的集成电路装置(101)进一步包含中央处理单元(CPU)(225)。中央处理单元(CPU)(225)可具有一或多个处理核心。当中央处理单元(CPU)(225)具有超过一个处理核心时,中央处理单元(CPU)(225)的多个处理核心可彼此独立地操作且并行地操作。
中央处理单元(225)具有存储器控制器(227)。连接(239)在集成电路装置(101)中设置于存储器控制器(227)和随机存取存储器(105)之间。例如,装置(101)的集成电路封装可包含衬底,用于支撑其中围封的集成电路裸片。衬底可在集成电路装置(101)内的各组件当中提供连接(239、238、119),所述组件例如是中央处理单元(225)、随机存取存储器(105)、深度学习加速器(103)和/或输入/输出接口(236)。例如,插入件可以固定到衬底上以提供连接(例如,239、238、119)和/或到集成电路装置(101)的连接器(例如,引脚或焊球)的连接。
随机存取存储器(105)的一部分可以预留以供中央处理单元(225)使用且因此不供深度学习加速器(103)使用。此部分可用于存储编程成由中央处理单元(225)执行的应用程序(215)和/或操作系统的指令。在应用程序(215)的执行期间分配和使用的逻辑存储器可以通过存储器控制器(227)和/或由中央处理单元(225)执行的操作系统映射到被预留用于中央处理单元(225)的随机存取存储器(105)的所述部分中的物理存储器。
随机存取存储器(105)的另一部分可以在中央处理单元(225)和深度学习加速器(103)之间共享。深度学习加速器(103)可将人工神经网络(201)的输出(213)写入共享部分;并且中央处理单元(225)可从共享部分读取输出(213)作为在中央处理单元(225)中运行/执行的应用程序(215)的输入。例如,配置用于输出(213)的共享部分对于中央处理单元(225)可以是只读的,对于深度学习加速器(103)可以是只写的。
随机存取存储器(105)的另一部分可用于缓冲人工神经网络(201)的输入(211),其由DLA指令(205)和矩阵(207)表示和/或实施。
集成电路装置(101)具有可用于从例如图像传感器、麦克风等的一或多个传感器接收传感器数据的输入/输出接口(236)。接收到的传感器数据可以作为人工神经网络(201)的输入(211)存储到随机存取存储器(105)的缓冲器部分中。
例如,输入/输出接口(236)可以是到外围总线的接口,例如通用串行总线(USB)、串行高级技术附件(SATA)总线、外围组件互连高速(PCIe)总线、小型计算机系统接口(SCSI)总线、光纤通道、串行连接的SCSI(SAS)总线或任何其它总线。
例如,输入/输出接口(236)可以是相机接口(221),例如,如图7中所示,且配置成从相机或图像产生器接收图像数据。
例如,输入/输出接口(236)可以是直接存储器存取控制器接口(106),例如,如图6中所示,且配置成从直接存储器存取控制器接收传感器数据。
中央处理单元(225)和/或深度学习加速器(103)可使用输入/输出接口(236)控制配置在总线上的传感器的操作并从传感器接收传感器数据。
额外外部装置可以连接到输入/输出接口(236)可存取的总线。此类装置可包含配置成通过有线或无线计算机连接通信的通信装置,例如有线或无线局域网、无线个域网、无线广域网、蜂窝通信网络和/或互联网。此类装置还可包含显示装置、监测器、触摸屏、扬声器、键盘、鼠标、触摸板和/或跟踪球等,以呈现应用程序(215)的用户界面。通过输入/输出接口(236),在中央处理单元(225)中执行的应用程序(215)可存取连接在总线上的装置。
输入/输出接口(236)具有到随机存取存储器(105)的输入部分的连接(238)。连接(238)可用于将输入(211)加载到随机存取存储器(105)中(例如,从传感器装置),这与中央处理单元(225)在读取输出(213)和/或执行应用程序(215)时存取随机存取存储器(105)并行进行。
中央处理单元(225)和深度学习加速器(103)可以在单独的集成电路裸片上形成。例如,深度学习加速器(103)可以在堆叠于随机存取存储器(105)的一或多个集成电路裸片上方的集成电路裸片上形成;并且中央处理单元(225)可以在堆叠于随机存取存储器(105)的所述一或多个集成电路裸片下方的另一集成电路裸片上形成。任选地,被预留用于中央处理单元(225)的随机存取存储器(105)的一部分可以配置于堆叠在中央处理单元(225)之下的另一集成电路裸片上。集成电路裸片可以使用穿硅通孔连接以提供连接(119和239)。
替代地,当中央处理单元(225)和深度学习加速器(103)的集成电路裸片的大小小于随机存取存储器(105)的集成电路裸片时,中央处理单元(225)和深度学习加速器(103)两者可以堆叠在随机存取存储器(105)的集成电路裸片上方(或之下)。
替代地,集成电路裸片配置有导线以提供连接;并且具有导线的集成电路裸片用作支撑中央处理单元(225)、深度学习加速器(103)和随机存取存储器(105)的集成电路裸片的衬底。从衬底集成电路裸片到堆叠在其上(和/或下面)的其它集成电路裸片的穿硅通孔(TSV)可用于提供连接(119、239和/或238)。任选地,输入/输出接口(236)的信号处理电路配置在衬底集成电路裸片中。
在一些实施方案中,随机存取存储器(105)包含配置成存储人工神经网络(201)的矩阵(207)和深度学习加速器(103)的指令(205)的非易失性存储器。例如,此类非易失性存储器可以配置在堆叠于深度学习加速器(103)上方的集成电路裸片中。
替代地,深度学习加速器(103)和中央处理单元(225)可以配置在同一集成电路裸片上。深度学习加速器(103)和中央处理单元(225)可以任选地针对存储器接口(117)和存储器控制器(227)共享电路和连接。此外,深度学习加速器(103)和中央处理单元(225)可共享配置成从随机存取存储器(105)加载指令的部分逻辑电路。在一些实施方案中,深度学习加速器(103)的矩阵/向量处理单元(111)被配置为中央处理单元(225)的矩阵/向量执行单元。
例如,中央处理单元(225)可具有配置成从随机存取存储器(105)加载指令(例如,215和/或205)以供执行的逻辑电路。矩阵/向量指令被调度给处理单元(111);并且其它指令被调度给中央处理单元(225)的算术逻辑单元(ALU)以供执行。处理单元(111)可具有从随机存取存储器(105)加载矩阵/向量操作数和/或将结果存储到随机存取存储器(105)的额外电路。因此,深度学习加速器(103)和中央处理单元(225)可彼此协作执行人工神经网络(201)的指令(205)。
在根据一个实施例的方法中,深度学习加速器(103)和中央处理单元(225)可基本上彼此独立地操作。深度学习加速器(103)根据人工神经网络从传感器数据产生推理结果;并且中央处理单元(225)运行可使用来自人工神经网络的推理结果的应用程序。推理结果可以基于传入的传感器数据流周期性地更新;并且运行中央处理单元(225)的应用程序可以使用从先前接收到的传感器数据产生的推理结果。
在所述方法中,集成电路装置(101)在其随机存取存储器(105)中存储人工神经网络(201)的矩阵(207)和可由围封在集成电路装置(101)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)的第一指令(205)。
通过到集成电路装置(101)外部的总线的接口(236),将传感器数据作为人工神经网络(201)的输入(211)加载到随机存取存储器(105)中。
所述至少一个处理单元(111)执行第一指令(205)以基于输入(211)产生人工神经网络(201)的输出(215)。
集成电路装置(101)在随机存取存储器(105)中存储人工神经网络(201)的输出(213)。
深度学习加速器(103)的操作可以针对对应于在不同时间窗中产生的传感器数据的多组输入(211)重复。在预定数目组的输出(213)存储在随机存取存储器(105)中之后,最早的一组输出可以被覆写以存储最新的一组输出。
在一些实施方案中,将下一组传感器数据加载到随机存取存储器(105)中和/或将从先前一组传感器数据产生的输出存储到随机存取存储器(105)中可与执行第一指令(205)以从当前一组传感器数据产生输出并行地执行。
此外,在所述方法中,集成电路装置(101)在其随机存取存储器(105)中存储经编程以供围封在集成电路装置(101)内的中央处理单元(225)执行的至少一个应用程序(215)的第二指令。
中央处理单元(225)执行使用人工神经网络(201)的输出(213)的所述至少一个应用程序(215)的第二指令。
中央处理单元(225)从随机存取存储器(105)读取人工神经网络(201)的输出(213)。
中央处理单元(225)在执行所述至少一个应用程序(215)时处理输出(213)。
中央处理单元(225)的操作可以针对多组输出(213)重复,所述输出是对应于在不同时间窗中产生的传感器数据的推理结果。
任选地,中央处理单元(225)可提供使深度学习加速器(103)开始或停止产生人工神经网络(201)的新的多组输出(213)的指示。
任选地,在执行第一指令(205)期间,深度学习加速器(103)可调用将在中央处理单元(225)中执行的例程。例如,此类例程可以在由中央处理单元(225)执行的操作系统中提供,或在应用程序(215)或另一应用程序中提供。例如,此类例程可提供不涉及两个矩阵/向量操作数和/或适用于在中央处理单元(225)的算术逻辑单元(ALU)中执行的服务。可以在深度学习加速器(103)和中央处理单元(225)之间配置信号线以促进此类调用。
在一些实施方案中,集成电路装置(101)具有使用穿硅通孔(TSV)连接的多个堆叠集成电路裸片。
例如,深度学习加速器(103)可以配置在第一集成电路裸片上,所述第一集成电路裸片具有所述至少一个处理单元(111)、控制单元(113)、配置成存储用于处理单元(111)的矩阵操作数的本地存储器(115),及到随机存取存储器(105)的存储器接口(117)。随机存取存储器(105)可以配置在至少一个第二集成电路裸片上。
中央处理单元(225)可以配置在第三集成电路裸片上。随机存取存储器(105)的所述至少一个第二集成电路裸片可以堆叠在第一集成电路裸片和第二集成电路裸片之间。深度学习加速器(103)的存储器接口(117)和中央处理单元(225)的存储器控制器(227)可以通过使用分开的多组穿硅通孔(TSV)连接到随机存取存储器(105)的所述至少一个第二集成电路裸片。
替代地,中央处理单元(225)可以配置在深度学习加速器(103)的第一集成电路上;并且中央处理单元(225)的存储器控制器(227)和深度学习加速器(103)的存储器接口(117)可以共享到随机存取存储器(105)的接口和/或共享从随机存取存储器(105)加载指令(205和215)的逻辑电路。
在一些实施方案中,第四集成电路裸片配置有导线。第一集成电路裸片中的深度学习加速器(103)、至少第二集成电路裸片中的随机存取存储器(105)和/或第三集成电路裸片(或第一集成电路裸片)中的中央处理单元(225)可以使用第四集成电路裸片中的导线并使用从第四集成电路裸片到其它集成电路裸片的穿硅通孔(TSV)连接。分开的多组穿硅通孔(TSV)可以从第四集成电路裸片及中央处理单元(225)、深度学习加速器(103)和随机存取存储器(105)的相应集成电路裸片中的导线连接。
任选地,集成电路装置(101)的接口(236)的电路也配置在第四集成电路裸片上以处理去往或来自总线的信号。例如,总线可以根据通用串行总线(USB)、串行高级技术附件(SATA)总线或外围组件互连高速(PCIe)的协议实施以用于到例如相机、麦克风、图像产生器等的一或多个传感器装置的连接。
图1和/或6-8的集成电路装置(101)可用于实施边缘服务器,如下文进一步论述。
图9示出根据一个实施例的配置有边缘服务器的用户装置(231)。例如,图9中所示的边缘服务器可以使用图8的集成电路装置(101)实施。
在图9中,集成电路装置(101)的随机存取存储器(105)存储服务器应用程序(216)的指令。集成电路装置(101)的中央处理单元(225)执行服务器应用程序(216)的指令以向用户装置(231)提供服务。
图9中所示的用户装置(231)具有微处理器(224)、传感器(223)、用户界面(232)、通信装置(234和235)和集成电路装置(101)。集成电路装置(101)用于通过在中央处理单元(225)中运行服务器应用程序(216)来实施边缘服务器。
例如,用户装置(231)可以是移动装置,例如智能手机、自主车辆、安保相机等。用户装置(231)可任选地具有多个子系统,所述子系统具有传感器数据产生器,如图像传感器、麦克风等。传感器数据产生器可将它们的传感器数据提供到集成电路装置(101)以使用一或多个人工神经网络进行处理。
用户装置(231)使用传感器(232)和/或用户界面(232)产生输入数据。输入数据作为人工神经网络(201)的输入(211)通过通信装置(234)和输入/输出接口(236)存储到随机存取存储器(105)中。
人工神经网络(201)的输出(213)可以经由输入/输出接口(236)和通信装置(234)提供给在微处理器(224)中运行的应用程序。例如,在微处理器(224)中运行的应用程序可查询在中央处理单元(225)中运行的服务器应用程序(215),以用于从输入(211)辨识的特征或事件的识别/分类。
另外或替代地,人工神经网络(201)的输出(213)可以经由输入/输出接口(236)和通信装置(235)提供给远程服务器/云。例如,来自通信装置(235)的通信连接可包含蜂窝通信网络和/或互联网。例如,通信装置(235)可以是调制解调器、无线电或射频(RF)链、用于有线或无线通信的收发器。
例如,输出(213)可以提供给远程服务器/云以启用服务器应用程序,所述服务器应用程序可能直接也可能不直接从用户装置(231)提供对输入的响应。
例如,在微处理器(224)中运行的应用程序可查询在实施于集成电路装置(101)中的边缘服务器中运行的服务器应用程序(216)。在一些例子中,服务器应用程序(216)可基于输出(213)提供针对查询的响应;并且服务器应用程序(216)不必为了针对查询的响应而另外与远程服务器/云通信。在其它例子中,服务器应用程序(216)利用远程服务器/云产生针对查询的响应。因此,服务器应用程序(216)向远程服务器/云提供输出(213)以向在微处理器(224)中运行的应用程序请求针对查询的响应。当输出(213)足以产生响应时,服务器应用程序(216)可将响应转发到在微处理器(224)中运行的应用程序。当远程服务器/云确定输出(213)不足且输入(211)将进行进一步处理以产生针对查询的响应时,远程服务器/云可请求服务器应用程序(216)将服务器应用程序(216)传输到服务器应用程序(216)。
在一些实施方案中,服务器应用程序(216)和远程服务器/云之间的通信和/或协作可以不由来自微处理器(224)的请求或查询驱动。例如,边缘服务器和远程服务器/云可配置成监测用户装置(231)的事件和/或周围环境,以便为用户装置(231)或另一装置产生警报、通知和/或指令。当深度学习加速器(103)存储在随机存取存储器(105)中的输出(213)包含成功识别事件、对象或特征时,服务器应用程序(216)和/或远程服务器/云可以处理所识别的事件、对象和/或特征,而无需进一步将输入(211)从集成电路装置(101)传送到远程服务器/云。否则,集成电路装置(101)可以任选地将输入(211)传输到远程服务器/云以供进一步分析。
图9示出使用单独的通信装置(234和235)与微处理器(224)通信并与远程服务器/云通信的实例。任选地,通过同一网络接口与微处理器(224)通信和与远程服务器/云通信可以共享同一通信装置。
此外,在一些例子中,人工神经网络的输入(211)可包含经由通信装置(235)从本地区域中的其它装置接收到的数据。例如,用户装置(231)可以是房屋建筑物中的物联网中心。例如,用户装置(231)可以是在房屋、建筑物或企业中或附近配置的路由器、存取点或基站。
图9示出使用在具有中央处理单元(225)方面类似于图8的集成电路装置的集成电路装置(101)实施边缘服务器的实例。替代地,可以使用类似于图7的集成电路装置的集成电路装置(101),其中微处理器(224)可用作中央处理单元(224)。
在另一替代性实施方案中,集成电路装置(101)的中央处理单元(225)可用于替换微处理器(224)。因此,用户装置(231)可配置成使用集成电路装置(101)的中央处理单元(225)的处理能力运行其应用程序(例如,215);并且微处理器(224)可以去除。
图10示出根据一个实施例实施的边缘服务器。
在图10中,边缘服务器配置在具有集成电路装置(101)的印刷电路板(241)上,所述集成电路装置在具有CPU存储器接口(107)方面类似于图7的集成电路装置。配置在印刷电路板(241)上的中央处理单元(225)连接到CPU存储器接口(107)以运行服务器应用程序(216)。
替代地,图7的中央处理单元(225)和集成电路装置(101)的组合可以替换为图8的包含中央处理单元(225)的集成电路装置(101)。
替代地,中央处理单元(225)可以替换为到计算机系统的存储器总线或外围总线的接口。因此,计算机系统的现有微处理器或中央处理单元(225)可用于在随机存取存储器(105)中运行服务器应用程序(216)。
图10的边缘服务器包含配置成通过计算机网络(243)与其它装置通信的通信装置(235)。例如,网络(243)可以是局域网、无线局域网(例如,WiFi)或无线个域网(例如,蓝牙)。网络(243)可以连接到本地用户装置(例如,231)以接收传感器数据。网络(243)可以经由互联网服务提供商、电信网络、蜂窝通信网络等进一步连接到远程服务器/云。
图10的边缘服务器可以添加到局部计算机网络中以用作远程服务器/云的代理,使得数据密集型计算的一部分可以在局部计算机网络处执行以产生人工神经网络的输出。
图11示出根据一个实施例的在边缘服务器中实施的方法。例如,图11的方法可以在图9和/或图10中所示的边缘服务器中实施。
在框301处,边缘服务器在配置于集成电路装置(101)中的随机存取存储器(105)中存储人工神经网络(201)的矩阵(207)、可由围封在集成电路装置(101)内的至少一个处理单元(111)执行的第一指令(205)及经编程以供中央处理单元(225)执行的服务器应用程序(216)的第二指令。第一指令(205)可由所述至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)。
任选地,中央处理单元(225)可以配置在集成电路装置(101)中,如图8和9中所示。
在框303处,边缘服务器将数据作为人工神经网络(201)的输入(211)加载到随机存取存储器(105)中。
例如,边缘服务器可从有线或无线局域网、无线个域网、外围总线或存储器总线接收来自一或多个用户装置(231)的传感器(233)的数据;并且数据可以作为人工神经网络(201)的输入(211)存储在随机存取存储器(105)中。
例如,边缘服务器可包含通信装置(235),其配置成使用局域网、无线局域网或无线个域网的协议与所述一或多个用户装置(231)通信以获得传感器数据。
在框305处,所述至少一个处理单元(111)执行第一指令(205)以响应于输入(211)而产生人工神经网络(201)的输出(213)。
在框307处,边缘服务器将人工神经网络(201)的输出(213)存储到随机存取存储器(105)中。
在框309处,中央处理单元(225)执行服务器应用程序(216)的第二指令以基于输出(213)通过计算机网络(243)提供服务。
例如,边缘服务器可作为配置在互联网上的远程计算机系统的代理提供服务。例如,远程计算机系统可以是集中式服务器或云计算基础设施。边缘服务器可通过电信网络、蜂窝通信网络或互联网或其任何组合与远程计算机系统通信。
例如,边缘服务器可以配置在具有网络接口卡、路由器、物联网中心、无线计算机网络存取点或蜂窝通信网络基站或其任何组合的电路系统的设备中。因为此类设备接近用户装置(231),边缘服务器在处理传感器数据时的计算可在接近传感器数据源的网络位置处进行。因此,数据传输时延可以减少。例如,边缘服务器的通信装置(235)可以耦合到所述设备的联网电路系统以提供本地用户装置(231)和远程计算机系统之间的服务。在一些实施方案中,边缘服务器配置在单独的集成电路板(241)上,使得边缘服务器可以添加到联网设备上。在其它实施方案中,边缘服务器可以配置为用户装置(231)的部分。例如,边缘服务器可以经由计算机联网连接端口添加到联网设备中,或经由例如根据通用串行总线(USB)、串行高级技术附件(SATA)总线或外围组件互连高速(PCIe)的协议配置的总线的总线添加到用户装置。
例如,在提供服务时,边缘服务器可将输出(213)传输到远程计算机系统,且因此避免或减少对传输输入(211)的需要。
例如,在提供服务时,只有在远程计算机系统确定输出(213)不足以用于服务且因此向边缘服务器请求数据时,边缘服务器才可将数据从本地用户装置(231)传输到远程计算机系统。
例如,在提供服务时,如果确定输出(213)或其它结果足以用于服务,那么边缘服务器可将输出(213)和/或其它结果提供到用户装置(231),而无需来自远程计算机系统的帮助。
例如,在中央处理单元(225)中执行的服务器应用程序(216)可配置成基于输出(213)产生警报、通知或针对查询的响应,或其任何组合,所述输出例如是事件、对象、特征等的识别。
本公开包含执行上述方法的方法和设备,包含执行这些方法的数据处理系统,以及含有在数据处理系统上执行时使所述系统执行这些方法的计算机可读媒体。
典型数据处理系统可包含互连件(例如,总线和系统核心逻辑),其将微处理器和存储器互连。微处理器通常耦合到高速缓存存储器。
互连件将微处理器和存储器互连在一起,并且经由I/O控制器将它们互连到输入/输出(I/O)装置。I/O装置可包含显示装置和/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机和本领域中已知的其它装置。在一个实施例中,当数据处理系统是服务器系统时,例如打印机、扫描仪、鼠标和/或键盘的一些I/O装置是任选的。
互连件可包含通过各种桥、控制器和/或适配器彼此连接的一或多个总线。在一个实施例中,I/O控制器包含用于控制通用串行总线(USB)外围设备的USB适配器,和/或用于控制IEEE-1394外围设备的IEEE-1394总线适配器。
存储器可包含以下中的一或多个:只读存储器(ROM)、易失性随机存取存储器(RAM),和非易失性存储器,例如硬盘驱动器、快闪存储器等。
易失性RAM通常实施为动态RAM(DRAM),它需要持续供电才能刷新或维持存储器中的数据。非易失性存储器通常是磁性硬盘驱动器、磁性光盘驱动器、光盘驱动器(例如,DVD-RAM)或其它类型的存储器系统,这些存储器系统即使在系统断电后也能维持数据。非易失性存储器也可以是随机存取存储器。
非易失性存储器可以是直接耦合到数据处理系统中的其余组件的本地装置。也可以使用远离系统的非易失性存储器,例如通过诸如调制解调器或以太网接口的网络接口耦合到数据处理系统的网络存储装置。
在本公开中,为了简化描述,将一些功能和操作描述为由软件代码执行或由软件代码引起。然而,这样的表达也用于指定功能是由处理器(例如,微处理器)执行代码/指令产生的。
替代地或组合地,这里所描述的功能和操作可以使用具有或不具有软件指令的专用电路系统来实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。实施例可以使用不具有软件指令的硬接线电路系统实施,或者与软件指令结合来实施。因此,这些技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
尽管一个实施例可以在全功能计算机和计算机系统中实施,但是各种实施例能够以各种形式分布为计算产品,并且不论实际上用于实现分布的机器或计算机可读媒体的特定类型如何都能够适用。
所公开的至少一些方面可以至少部分地体现在软件中。也就是说,可以响应于计算机系统或其它数据处理系统的处理器(例如,微处理器)执行包含在存储器(例如,ROM、易失性RAM、非易失性存储器、高速缓存或远程存储装置)中的指令序列,在计算机系统或其它数据处理系统中执行技术。
为实施实施例而执行的例程可以作为操作系统或特定应用、组件、程序、对象、模块或称为“计算机程序”的指令序列的一部分来实施。计算机程序通常包含在计算机的各种存储器和存储装置中在不同时间设置的一或多个指令,所述指令在由计算机中的一或多个处理器读取和执行时使计算机执行执行涉及各个方面的要素所需的操作。
机器可读媒体可用于存储软件和数据,在由数据处理系统执行时,这些软件和数据使系统执行各种方法。可执行软件和数据可以存储在各种地方,包含例如ROM、易失性RAM、非易失性存储器和/或高速缓存。此软件和/或数据的部分可以存储在这些存储装置中的任何一个中。此外,可以从集中式服务器或对等网络获得数据和指令。数据和指令的不同部分可以在不同时间并在不同通信会话或同一通信会话中从不同的集中式服务器和/或对等网络获得。在执行应用之前,可以完整地获得数据和指令。可替代地,当需要执行时,可以动态地、及时地获得部分数据和指令。因此,不要求数据和指令在特定时刻全部位于机器可读媒体上。
计算机可读媒体的实例包含但不限于非暂时性、可记录和不可记录类型的媒体,例如易失性和非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、快闪存储器装置、软磁盘和其它可装卸式磁盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(CD ROM)、数字多功能盘(DVD)等),等等。计算机可读媒体可存储指令。
这些指令还可以在用于电、光、声或其它形式的传播信号的数字和模拟通信链路中体现,例如载波、红外信号、数字信号等。然而,例如载波、红外信号、数字信号等等的传播信号不是有形的机器可读媒体,也不配置成存储指令。
一般来说,机器可读媒体包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式提供(即,存储和/或传输)信息的任何机制。
在各种实施例中,硬接线电路系统可与软件指令组合使用以实施技术。因此,技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
以上描述和附图是说明性的,且不应被解释为限制性的。描述了许多具体细节,以提供透彻的理解。然而,在某些情况下,为了避免模糊描述,没有描述众所周知的或常规的细节。对本公开中的一个或某一实施例的引用不一定是对同一实施例的引用;并且这种引用意味着至少一个。
在前述说明书中,已经参考本公开的具体示例性实施例描述了本公开。显而易见的是,在不背离所附权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被视为说明性的而不是限制性的。
Claims (20)
1.一种设备,其包括:
收发器;
中央处理单元,其耦合到所述收发器;
至少一个处理单元,其与所述收发器耦合且配置成执行具有矩阵操作数的指令;随机存取存储器,其配置成存储:
人工神经网络的矩阵;
能够由所述至少一个处理单元执行以实施所述人工神经网络的指令;以及
服务器应用程序,其经编程以供所述中央处理单元执行,以使用所述人工神经网络通过连接到所述收发器的计算机网络提供服务;以及
集成电路封装,其至少围封所述至少一个处理单元和所述随机存取存储器。
2.根据权利要求1所述的设备,其中所述集成电路封装进一步围封所述中央处理单元。
3.根据权利要求2所述的设备,其中所述收发器配置成使用局域网、无线局域网或无线个域网的协议与一或多个装置通信。
4.根据权利要求3所述的设备,其中所述收发器配置成存储从所述一或多个装置接收到的数据作为所述人工神经网络的输入;所述至少一个处理单元配置成执行所述指令以产生输出并将所述输出存储在所述随机存取存储器中;并且在所述中央处理单元中执行的所述服务器应用程序基于所述输出提供所述服务。
5.根据权利要求4所述的设备,其中在所述中央处理单元中执行的所述服务器应用程序配置成将所述输出提供到所述一或多个装置。
6.根据权利要求5所述的设备,其中在所述中央处理单元中执行的所述服务器应用程序配置成基于所述输出产生警报、通知或针对查询的响应或其任何组合。
7.根据权利要求6所述的设备,其中在所述中央处理单元中执行的所述服务器应用程序配置成通过电信网络、蜂窝通信网络或互联网或其任何组合将所述输出传输到计算机系统。
8.根据权利要求1所述的设备,其进一步包括:
网络接口卡、路由器、物联网中心、无线计算机网络存取点或蜂窝通信网络基站或其任何组合的电路系统;
其中所述收发器耦合到所述电路系统。
9.根据权利要求1所述的设备,其进一步包括:
印刷电路板,其中围封在所述集成电路封装内的电路系统和所述收发器经由所述印刷电路板连接;
端口,其配置在所述印刷电路板上且适于连接到局域网。
10.根据权利要求1所述的设备,其进一步包括:
一或多个传感器,其配置成提供数据作为所述人工神经网络的输入;以及
用户界面。
11.根据权利要求9所述的设备,其进一步包括:
到配置在主机装置中的总线的接口。
12.根据权利要求11所述的设备,其中所述总线符合通用串行总线(USB)、串行高级技术附件(SATA)总线或外围组件互连高速(PCIe)的协议。
13.根据权利要求1所述的设备,其中所述至少一个处理单元包含配置成对指令的两个矩阵操作数进行操作的矩阵-矩阵单元;
其中所述矩阵-矩阵单元包含配置成并行操作的多个矩阵-向量单元;
其中所述多个矩阵-向量单元中的每一个包含配置成并行操作的多个向量-向量单元;且
其中所述多个向量-向量单元中的每一个包含配置成并行操作的多个乘累加单元。
14.一种方法,其包括:
在配置于集成电路装置中的随机存取存储器中存储:
人工神经网络的矩阵,
能够由围封在所述集成电路装置内的至少一个处理单元执行以使用所述矩阵实施所述人工神经网络的第一指令,以及
经编程以供中央处理单元执行的服务器应用程序的第二指令;
将数据作为所述人工神经网络的输入加载到所述随机存取存储器中;
通过所述至少一个处理单元执行所述第一指令以响应于所述输入产生所述人工神经网络的输出;
将所述人工神经网络的所述输出存储到所述随机存取存储器中;以及
通过所述中央处理单元执行所述服务器应用程序的所述第二指令,以基于所述输出通过计算机网络提供服务。
15.根据权利要求14所述的方法,其中所述中央处理单元配置在所述集成电路装置中;且所述方法进一步包括:
从局域网接收所述数据作为所述人工神经网络的所述输入;以及
作为配置在互联网上的计算机系统的代理提供所述服务。
16.根据权利要求15所述的方法,其中所述集成电路装置具有带处理单元、控制单元和本地存储器的深度学习加速器;所述处理单元包含配置成执行具有两个矩阵操作数的指令的至少一矩阵-矩阵单元;所述矩阵-矩阵单元包含配置成并行操作的多个矩阵-向量单元;所述矩阵-向量单元中的每一个包含配置成并行操作的多个向量-向量单元;且所述向量-向量单元中的每一个包含配置成并行操作的多个乘累加单元。
17.根据权利要求15所述的方法,其进一步包括:
在提供所述服务时将所述输出传输到所述计算机系统。
18.根据权利要求17所述的方法,其进一步包括:
响应于所述计算机系统的请求,将所述数据传输到所述计算机系统。
19.一种系统,其包括:
印刷电路板;
调制解调器,其连接到所述印刷电路板且适于连接到计算机网络;
中央处理单元,其具有连接到所述印刷电路板且与所述调制解调器耦合的至少一个算术逻辑单元(ALU);
现场可编程门阵列(FPGA)或专用集成电路(ASIC),其具有配置成对能够在所述FPGA或ASIC中执行的指令的两个矩阵操作数进行操作的至少一个处理单元;以及
随机存取存储器,其耦合到所述中央处理单元和所述FPGA或ASIC且配置成存储:
人工神经网络的矩阵;
能够由所述FPGA或ASIC执行以实施所述人工神经网络的指令;以及
服务器应用程序,其能够由所述中央处理单元执行以使用所述人工神经网络通过所述计算机网络经由所述调制解调器提供服务。
20.根据权利要求19所述的设备,其进一步包括:
集成电路封装,其配置成至少围封所述随机存取存储器和所述FPGA或ASIC。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/845,007 | 2020-04-09 | ||
US16/845,007 US20210320967A1 (en) | 2020-04-09 | 2020-04-09 | Edge Server with Deep Learning Accelerator and Random Access Memory |
PCT/US2021/026005 WO2021207234A1 (en) | 2020-04-09 | 2021-04-06 | Edge server with deep learning accelerator and random access memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115552421A true CN115552421A (zh) | 2022-12-30 |
Family
ID=78007341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180026173.9A Pending CN115552421A (zh) | 2020-04-09 | 2021-04-06 | 具有深度学习加速器和随机存取存储器的边缘服务器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210320967A1 (zh) |
EP (1) | EP4133423A4 (zh) |
KR (1) | KR20220164570A (zh) |
CN (1) | CN115552421A (zh) |
WO (1) | WO2021207234A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US11355175B2 (en) | 2020-04-09 | 2022-06-07 | Micron Technology, Inc. | Deep learning accelerator and random access memory with a camera interface |
US11726784B2 (en) | 2020-04-09 | 2023-08-15 | Micron Technology, Inc. | Patient monitoring using edge servers having deep learning accelerator and random access memory |
US11887647B2 (en) | 2020-04-09 | 2024-01-30 | Micron Technology, Inc. | Deep learning accelerator and random access memory with separate memory access connections |
US11574100B2 (en) * | 2020-06-19 | 2023-02-07 | Micron Technology, Inc. | Integrated sensor device with deep learning accelerator and random access memory |
US11720417B2 (en) | 2020-08-06 | 2023-08-08 | Micron Technology, Inc. | Distributed inferencing using deep learning accelerators with integrated random access memory |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7251376B2 (en) * | 2003-08-29 | 2007-07-31 | Canadian Space Agency | Data compression engines and real-time wideband compressor for multi-dimensional data |
US8131659B2 (en) * | 2008-09-25 | 2012-03-06 | Microsoft Corporation | Field-programmable gate array based accelerator system |
US8458377B2 (en) * | 2010-03-05 | 2013-06-04 | Lsi Corporation | DMA engine capable of concurrent data manipulation |
US11055063B2 (en) * | 2016-05-02 | 2021-07-06 | Marvell Asia Pte, Ltd. | Systems and methods for deep learning processor |
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 |
US20190286973A1 (en) * | 2018-03-14 | 2019-09-19 | Microsoft Technology Licensing, Llc | Hardware accelerated neural network subgraphs |
KR20200025200A (ko) * | 2018-08-29 | 2020-03-10 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 동작 방법 |
US20200226473A1 (en) * | 2019-01-15 | 2020-07-16 | BigStream Solutions, Inc. | Systems, apparatus, methods, and architectures for heterogeneous precision acceleration of quantized neural networks |
US11347477B2 (en) * | 2019-09-27 | 2022-05-31 | Intel Corporation | Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations |
-
2020
- 2020-04-09 US US16/845,007 patent/US20210320967A1/en active Pending
-
2021
- 2021-04-06 CN CN202180026173.9A patent/CN115552421A/zh active Pending
- 2021-04-06 EP EP21784489.3A patent/EP4133423A4/en active Pending
- 2021-04-06 KR KR1020227038763A patent/KR20220164570A/ko unknown
- 2021-04-06 WO PCT/US2021/026005 patent/WO2021207234A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP4133423A4 (en) | 2024-05-01 |
WO2021207234A1 (en) | 2021-10-14 |
KR20220164570A (ko) | 2022-12-13 |
EP4133423A1 (en) | 2023-02-15 |
US20210320967A1 (en) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210320967A1 (en) | Edge Server with Deep Learning Accelerator and Random Access Memory | |
US11461651B2 (en) | System on a chip with deep learning accelerator and random access memory | |
US20190180170A1 (en) | Multi-memory on-chip computational network | |
US11942135B2 (en) | Deep learning accelerator and random access memory with a camera interface | |
US11726784B2 (en) | Patient monitoring using edge servers having deep learning accelerator and random access memory | |
CN111465943B (zh) | 一种集成电路和用于神经网络处理的方法 | |
US11490135B2 (en) | Surveillance camera upgrade via removable media having deep learning accelerator and random access memory | |
US11887647B2 (en) | Deep learning accelerator and random access memory with separate memory access connections | |
WO2022031446A1 (en) | Optimized sensor fusion in deep learning accelerator with integrated random access memory | |
US20230161936A1 (en) | Integrated Sensor Device with Deep Learning Accelerator and Random Access Memory | |
US20220256077A1 (en) | Intelligent Digital Camera having Deep Learning Accelerator and Random Access Memory | |
US20220044101A1 (en) | Collaborative sensor data processing by deep learning accelerators with integrated random access memory | |
CN115943388A (zh) | 具有使用深度学习加速器和随机存取存储器实施的内置智能监测的可穿戴电子装置 | |
US11720417B2 (en) | Distributed inferencing using deep learning accelerators with integrated random access memory |
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 |