CN116134452A - 具有集成随机存取存储器的深度学习加速器中的优化传感器融合 - Google Patents
具有集成随机存取存储器的深度学习加速器中的优化传感器融合 Download PDFInfo
- Publication number
- CN116134452A CN116134452A CN202180050107.5A CN202180050107A CN116134452A CN 116134452 A CN116134452 A CN 116134452A CN 202180050107 A CN202180050107 A CN 202180050107A CN 116134452 A CN116134452 A CN 116134452A
- Authority
- CN
- China
- Prior art keywords
- sensors
- matrix
- memory
- random access
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4983—Multiplying; Dividing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/03—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
- H01L25/04—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
- H01L25/065—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L25/0657—Stacked arrangements of devices
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2225/00—Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
- H01L2225/03—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
- H01L2225/04—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
- H01L2225/065—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L2225/06503—Stacked arrangements of devices
- H01L2225/06541—Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2225/00—Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
- H01L2225/03—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
- H01L2225/04—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
- H01L2225/065—All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L2225/06503—Stacked arrangements of devices
- H01L2225/06582—Housing for the assembly, e.g. chip scale package [CSP]
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/18—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Control Of Throttle Valves Provided In The Intake System Or In The Exhaust System (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
描述与深度学习加速器及存储器相关的系统、装置及方法。例如,一种集成电路装置可经配置以执行具有矩阵操作数的指令,且经配置有随机存取存储器。所述随机存取存储器经配置以存储分别来自多个传感器的多个输入、人工神经网络的参数及可由深度学习加速器执行以执行矩阵计算以产生所述人工神经网络的输出的指令,所述输出包含单独地使用所述传感器产生的第一输出及使用所述传感器的组合产生的第二输出。
Description
相关申请案
本申请案主张2020年8月6日申请的且标题为“具有集成随机存取存储器的深度学习加速器中的优化传感器融合(OPTIMIZED SENSOR FUSION IN DEEP LEARNINGACCELERATOR WITH INTEGRATED RANDOM ACCESS MEMORY)”的序列号为16/987,090的美国专利申请案的优先权,所述申请案的全部公开内容特此以引用的方式并入本文中。
技术领域
本文公开的至少一些实施例大体上涉及传感器融合,且更特定来说(但不限于)涉及经由用于人工神经网络(ANN)(例如通过机器学习及/或深度学习配置的ANN)的加速器实施的传感器融合。
背景技术
人工神经网络(ANN)使用神经元网络来处理到网络的输入且从网络产生输出。
举例来说,网络中的每一神经元接收一组输入。到神经元的输入中的一些可为网络中某些神经元的输出;且到神经元的输入中一些可为提供到神经网络的输入。网络中神经元当中的输入/输出关系代表网络中的神经元连接性。
举例来说,每一神经元针对其输入可分别具有偏倚、激活函数及一组突触权重。激活函数可呈阶跃函数、线性函数、对数S型函数等的形式。网络中的不同神经元可具有不同激活函数。
举例来说,每一神经元可产生其输入与其偏倚的加权和,且接着产生使用神经元的激活函数来计算的随加权和而变的输出。
ANN的输入与输出之间的关系通常由ANN模型定义,所述ANN模型包含代表网络中神经元的连接性以及每一神经元的偏倚、激活函数以及突触权重的数据。基于给定ANN模型,计算装置可经配置以从到网络的一组给定输入计算网络的输出。
举例来说,可基于相机输入产生到ANN网络的输入;且来自ANN网络的输出可为对项目的识别,所述项目例如事件或对象。
一般来说,可使用监督方法来训练ANN,其中ANN中的参数经调整以最小化或减小与相应输入相关联或源自相应输入的已知输出与经由将输入应用于ANN产生的计算输出之间的误差。监督学习/训练方法的实例包含强化学习及具有误差校正的学习。
替代地或组合地,可使用无监督方法来训练ANN,其中在训练完成之前不知晓从一组给定输入产生的准确输出。ANN可经训练以将项目分类为多个类别,或者将数据点分类为集群。
可将多个训练算法用于复杂的机器学习/训练范例。
深度学习使用多层机器学习逐步从输入数据提取特征。举例来说,较低层可经配置以识别图像中的边缘;且较高层可经配置以基于使用较低层检测到的边缘来识别图像中捕获的项目,例如人脸、对象、事件等。深度学习可经由人工神经网络(ANN)实施,例如深度神经网络、深度信念网络、递归神经网络及/或卷积神经网络。
深度学习已应用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医学图像处理、游戏等。
附图说明
在附图的图式中通过实例而非限制的方式说明实施例,其中相似参考指示类似元件。
图1展示具有根据一个实施例配置的深度学习加速器及随机存取存储器的集成电路装置。
图2展示根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元。
图3展示根据一个实施例的经配置以执行矩阵-向量运算的处理单元。
图4展示根据一个实施例的经配置以执行向量-向量运算的处理单元。
图5展示根据一个实施例的经配置以自主地将输入应用于经训练人工神经网络的深度学习加速器及随机存取存储器。
图6到8说明在根据一些实施例配置的深度学习加速器及随机存取存储器中实施的传感器融合。
图9展示根据一个实施例的传感器融合的方法。
具体实施方式
本文公开的至少一些实施例提供一种集成电路,其经配置以使用人工神经网络(ANN)以减少的能量消耗及计算时间执行传感器融合。集成电路包含深度学习加速器(DLA)及随机存取存储器。随机存取存储器具有经配置以分别从多个传感器接收传感器数据的多个部分。随机存取存储器包含经配置以存储用于深度学习加速器(DLA)的指令的另外部分。所述指令具有矩阵操作数,且经配置以由深度学习加速器(DLA)执行,以实施人工神经网络(ANN)的矩阵计算。可由编译器从人工神经网络(ANN)的描述产生指令来处理多个传感器的传感器数据。训练人工神经网络(ANN)中的至少一者以基于多于一个传感器的传感器数据来产生输出。可由编译器通过减少或消除人工神经网络(ANN)中的重叠处理及/或通过协调单独地从不同传感器导出的中间结果的时序来优化指令。从人工神经网络(ANN)组合来自多个传感器的输入数据产生的传感器融合结果可推动更高级别的智能预测。
深度学习加速器(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)与随机存取存储器之间的通信带宽要求。因此,可减少或消除数据/存储器存取中的瓶颈。
传感器融合使用来自多个传感器的输入来产生推断。例如,雷达、激光雷达、感测人眼可见光及/或红外光的相机及/或经由超声波进行感测的成像装置可用于使用不同技术及/或不同频率范围产生代表对象及/或项目的场景的图像数据。雷达图像、激光雷达图像、相机图像及超声波图像在不同条件下各自具有优点及缺点。基于雷达图像、激光雷达图像、相机图像及/或超声波图像的组合的对象识别及/或辨识可通过利用不同传感器的优势及由不同传感器提供的额外信息而更准确。
不同人工神经网络可用于单独地处理不同图像传感器的输入数据。另外人工神经网络可用于一起处理不同图像传感器的输入数据。另外人工神经网络可接收来自分别针对不同图像传感器配置的不同人工神经网络的中间处理结果作为输入。人工神经网络的组合可被编译成大型人工神经网络,其不仅单独地从个别图像传感器的输入产生推断,而且作为整体从自图像传感器的传感器数据导出的输出产生推断。与来自图像传感器的组合传感器数据的更准确输出相比,可更快地产生来自个别图像传感器的传感器数据的较不准确输出。在一些例子中,从图像传感器中的一者的传感器数据辨识的输出(例如,特征、识别及/或分类)可用于简化或辅助其它图像传感器的传感器数据的处理。
当将各种人工神经网络的描述作为输入提供到编译器时,编译器可通过减少重叠计算及/或协调从不同人工神经网络产生输出的时序来产生一组组合的优化指令。
图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)。因此,在存储器接口(117)与存储器控制器接口(107)之间共享用以存取随机存取存储器(105)的带宽。替代地,存储器控制器接口(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))之间进行协调的通信。
任选地,深度学习加速器(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展示根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元。例如,图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展示根据一个实施例的经配置以执行矩阵-向量运算的处理单元。例如,图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展示根据一个实施例的经配置以执行向量-向量运算的处理单元。例如,图4的向量-向量单元(161)可用作图3的矩阵-向量单元(141)中的向量-向量单元中的任一者。
在图4中,向量-向量单元(161)具有多个乘法-累加单元(171到173)。乘法-累加单元(例如173)中的每一者可接收两个数字作为操作数,执行两个数字的乘法,且将乘法结果与保持在乘法-累加(MAC)单元中的和相加。
向量缓冲器(181及183)中的每一者存储数字列表。可向乘法-累加单元(171到173)中的每一者提供各自来自向量缓冲器(181及183)中的一者的一对数字作为输入。乘法-累加单元(171到173)可并行地从向量缓冲器(181及183)接收多对数字,且并行地执行乘法-累加(MAC)运算。来自乘法-累加单元(171到173)的输出被存储到移位寄存器(175)中;且累加器(177)计算移位寄存器(175)中的结果的和。
当图4的向量-向量单元(161)在图3的矩阵-向量单元(141)中实施时,向量-向量单元(161)可使用映射存储体(例如,151或153)作为一个向量缓冲器(181),且使用矩阵-向量单元(141)的内核缓冲器(131)作为另一向量缓冲器(183)。
向量缓冲器(181及183)可具有相同长度以存储相同数目/计数的数据元素。长度可等于向量-向量单元(161)中的乘法-累加单元(171到173)的计数或是其倍数。当向量缓冲器(181及183)的长度是乘法-累加单元(171到173)的计数的倍数时,可在每次迭代中将数目等于乘法-累加单元(171到173)的计数的输入对从向量缓冲器(181及183)作为输入提供到乘法-累加单元(171到173);且向量缓冲器(181及183)通过多次迭代将其元素馈送到乘法-累加单元(171到173)中。
在一个实施例中,深度学习加速器(DLA)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以供矩阵-矩阵单元(121)将随机存取存储器(105)的部分用作映射存储体(151到153)及内核缓冲器(131到133)。
在另一实施例中,映射存储体(151到153)及内核缓冲器(131到133)在深度学习加速器(DLA)(103)的本地存储器(115)的一部分中实施。深度学习加速器(DLA)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以将矩阵-矩阵单元(121)的下一操作循环的矩阵操作数加载到本地存储器(115)的另一部分中,而矩阵-矩阵单元(121)正使用在深度学习加速器(DLA)(103)的本地存储器(115)的不同部分中实施的映射存储体(151到153)及内核缓冲器(131到133)在当前操作循环中执行计算。
图5展示根据一个实施例的经配置以自主地将输入应用于经训练人工神经网络的深度学习加速器及随机存取存储器。
已通过机器学习(例如,深度学习)训练的人工神经网络(ANN)(201)可以标准格式(例如,开放神经网络交换(ONNX))进行描述。以标准格式描述经训练人工神经网络(ANN)(201)识别人工神经元及其连接性的性质。
在图5中,深度学习加速器(DLA)编译器(203)通过产生用于深度学习加速器(DLA)(103)的指令(205)及对应于人工神经元及其连接性的性质的矩阵(207)来转换经训练人工神经网络(ANN)(201)。由DLA编译器(203)从经训练人工神经网络(ANN)(201)产生的指令(205)及矩阵(207)可存储在深度学习加速器(DLA)(103)的随机存取存储器(105)中。
例如,随机存取存储器(105)及深度学习加速器(DLA)(103)可经由高带宽连接(119)以与图1的集成电路装置(101)相同的方式连接。基于指令(205)及矩阵(207)的图5的自主计算可在图1的集成电路装置(101)中实施。替代地,随机存取存储器(105)及深度学习加速器(DLA)(103)可配置在具有并行延伸的多个点对点串行总线以实施连接(119)的印刷电路板上。
在图5中,在将DLA编译器(203)的结果存储在随机存取存储器(105)中之后,可通过随机存取存储器(105)中输入(211)的存在或随机存取存储器(105)中提供的另一指示触发应用经训练人工神经网络(ANN)(201)来处理到经训练人工神经网络(ANN)(201)的输入(211)以产生经训练人工神经网络(ANN)(201)的对应输出(213)。
作为响应,深度学习加速器(DLA)(103)执行指令(205)以组合输入(211)与矩阵(207)。指令(205)的执行可包含为深度学习加速器(DLA)(103)的一或多个矩阵-矩阵单元(例如,121)的映射存储体(151到153)产生映射矩阵。
在一些实施例中,到人工神经网络(ANN)(201)的输入是以初始映射矩阵的形式。初始映射矩阵的部分可作为存储在矩阵-矩阵单元(121)的映射存储体(151到153)中的矩阵操作数从随机存取存储器(105)检索。替代地,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)的指示。所述指示可任选地包含输入(211)在随机存取存储器(105)内的位置。因此,在自主执行指令(205)以处理输入(211)期间,外部装置可检索在指令(205)的上一次运行期间产生的输出,及/或存储用于指令(205)的下一次运行的另一组输入。
任选地,随机存取存储器(105)中的另一预定义位置可经配置以存储指令(205)的当前运行的进度状态的指示。此外,指示可包含指令(205)的当前运行的完成时间的预测(例如,基于指令(205)的先前运行来估计)。因此,外部装置可在合适时间窗口检查完成状态以检索输出(213)。
在一些实施例中,随机存取存储器(105)配置有足够容量来存储多组输入(例如,211)及输出(例如,213)。可在随机存取存储器(105)中的预定槽/区域中配置每一组。
深度学习加速器(DLA)(103)可自主地执行指令(205)以根据存储在随机存取存储器(105)中的矩阵(207)从输入(211)产生输出(213),而不需要来自位于集成电路装置(101)外部的处理器或装置的帮助。
在根据一个实施例的方法中,可使用计算装置(例如101)到存储器控制器的接口(107)来存取计算装置(例如101)的随机存取存储器(105)。计算装置(例如101)可具有经配置以至少对矩阵操作数执行计算的处理单元(例如111),所述矩阵操作数例如存储在映射存储体(151到153)中的矩阵操作数及存储在内核缓冲器(131到133)中的矩阵操作数。
例如,计算装置(例如101)可围封在集成电路封装内;且一组连接可将接口(107)连接到位于集成电路封装外部的存储器控制器。
可通过接口(107)将可由处理单元(例如111)执行的指令(205)写入随机存取存储器(105)。
人工神经网络(201)的矩阵(207)可通过接口(107)写入随机存取存储器(105)中。矩阵(207)识别人工神经网络(201)的性质及/或状态。
任选地,随机存取存储器(105)的至少一部分是非易失性的,且经配置以存储人工神经网络(201)的指令(205)及矩阵(07)。
到人工神经网络的第一输入(211)可通过接口(107)写入随机存取存储器(105)中。
在随机存取存储器(105)中提供指示以致使处理单元(111)开始执行指令(205)。响应于所述指示,处理单元(111)执行指令以将第一输入(211)与人工神经网络(201)的矩阵(207)组合以从人工神经网络产生第一输出(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)可自动地将到人工神经网络(201)的输入(211)转换为其输出(213)。
例如,在深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第一输入(211)产生第一输出(213)的时间段期间,到人工神经网络(201)的第二输入可在替代位置处通过接口(107)写入随机存取存储器(105)中。在第一输出(213)被存储在随机存取存储器(105)中之后,可在随机存取存储器中提供指示以致使深度学习加速器(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)。
深度学习加速器(103)除处理单元(111)之外还可具有本地存储器(115)及控制单元(113)。控制单元(113)可从随机存取存储器(105)加载指令(205)及矩阵操作数(例如矩阵(207))用于由处理单元(111)执行。本地存储器可高速缓存由矩阵-矩阵单元使用的矩阵操作数。连接(119)可配置有足够的带宽以在矩阵-矩阵单元对两个其它矩阵操作数执行操作的时间段期间将一组矩阵操作数从随机存取存储器(105)加载到本地存储器(115)。此外,在所述时间段期间,带宽足以将由矩阵-矩阵单元(121)在先前指令执行中产生的结果从本地存储器(115)存储到随机存取存储器(105)。
图6到8说明在根据一些实施例配置的深度学习加速器及随机存取存储器中实施的传感器融合。
在图6中,随机存取存储器(RAM)(105)包含经配置以接受到人工神经网络(ANN)(201)的输入(211)的一部分。随机存取存储器(RAM)(105)的部分被划分成多个槽以用于接受来自不同类型的传感器(例如雷达、激光雷达、相机及/或超声波成像装置)的输入。
例如,槽中每一者可经配置以接受来自预定义类型的传感器的输入。例如,可为来自传感器A的输入(221)(例如,代表雷达图像或激光雷达图像)预留到人工神经网络(ANN)(201)的输入(211)的槽;且可为来自传感器B的输入(223)(例如,代表相机图像或超声波图像)预留到人工神经网络(ANN)(201)的输入(211)的另一槽。
在一些实施方案中,哪个槽用于什么类型的传感器数据在随机存取存储器(RAM)(105)中动态指定。例如,随机存取存储器(RAM)(105)中的槽可最初用于存储来自传感器A的输入(221)(例如,代表雷达图像或激光雷达图像),且随后经重新分配以存储来自传感器B的输入(223)(例如,代表相机图像或超声波图像)。例如,来自传感器A的输入(221)可包含识别其输入类型(例如,雷达图像流)的数据;且来自传感器B的输入(223)可包含识别其输入类型(例如,相机图像流)的数据。
由DLA编译器(203)产生的DLA指令(205)可经配置以基于针对槽指定的输入(例如221)的类型来将传感器输入(例如221)动态地应用于人工神经网络(ANN)(201)的对应输入神经元。输入神经元对应于如经由DLA指令(205)识别的矩阵(207)的预定部分。
替代地,随机存取存储器(RAM)(105)中的输入槽可预先分配给预定类型的传感器。例如,在启动过程期间,识别连接到集成电路装置(101)的传感器接口(227)的传感器的类型。槽分别分配给传感器以存储其输入(例如223)。
来自人工神经网络(ANN)(201)的输出(213)可包含分别从不同传感器的输入(221、…、223)导出的输出,例如从雷达图像辨识的输出、从激光雷达图像辨识的输出、从相机图像辨识的输出等。
此外,来自人工神经网络(ANN)(201)的输出(213)可包含从输入(221、…、223)的传感器融合产生的输出,例如从雷达图像、激光雷达图像、相机图像及/或超声波图像等的组合辨识的一或多个对象的识别或分类。
例如,执行DLA指令(205)产生雷达图像特征、激光雷达图像特征、相机图像特征。此外,执行DLA指令(205)产生基于雷达图像特征、激光雷达图像特征、相机图像特征等的组合识别或辨识的传感器融合特征。
例如,执行DLA指令(205)产生分别从雷达图像、激光雷达图像、相机图像确定的对象的识别。从雷达图像特征确定对象的雷达识别;从激光雷达图像特征确定对象的激光雷达识别;从相机图像特征确定相机识别。此外,执行DLA指令(205)产生基于雷达图像、激光雷达图像、相机图像等的组合识别或辨识的对象的传感器融合识别。例如,可从雷达图像特征、激光雷达图像特征、相机图像特征等的组合来确定对象的传感器融合识别。
在图6中,不同传感器使用存储器控制器接口(107)将输入(221、…、223)写入随机存取存储器(RAM)(105)中。例如,主机系统、处理器或直接存储器存取(DMA)控制器可使用存储器控制器接口(107)来将代表不同传感器的输入(221、…、223)存储到随机存取存储器(RAM)(105)中的相应槽中。主机系统或处理器可使用存储器控制器接口(107)从人工神经网络(ANN)(201)检索输出(213)。
替代地,可提供一或多个传感器接口以允许一或多个传感器将输入(例如221)流式传输到随机存取存储器(RAM)(105)中。传感器接口可独立于主机系统/处理器使用存储器控制器接口(107)来存取来自人工神经网络(ANN)(201)的输出(213)而使用,如在图7中所说明。
在图7中,提供一或多个传感器接口(227)以允许一或多个传感器装置将输入(221、…、223)写入随机存取存储器(RAM)(105)中。例如,雷达、激光雷达及相机可将雷达图像、激光雷达图像及相机图像的并行流写入随机存取存储器(RAM)(105)中。例如,一个传感器(例如雷达)可使用到专用传感器接口(例如227)的串行连接来将其输入(例如221)写入随机存取存储器(RAM)(105)中;且另一传感器(例如,相机或激光雷达)可使用到另一专用接口的另一串行连接来将其输入(例如223)写入随机存取存储器(RAM)(105)中。输入(例如,雷达图像及相机图像)可同时写入随机存取存储器(RAM)(105)中。
图7说明其中连接(109及229)将存储器控制器接口(107)及传感器接口(227)直接连接到随机存取存储器(RAM)(105)的实例。替代地,连接(109)及连接(229)可经配置以通过深度学习加速器(DLA)(103)与随机存取存储器(RAM)(105)之间的存储器接口(117)及/或高带宽连接(119)间接地将存储器控制器接口(107)及传感器接口(227)连接到随机存取存储器(RAM)(105)。
图8的集成电路装置(101)包含中央处理单元(CPU)(225)。中央处理单元(CPU)(225)可像典型的主机系统/处理器那样执行指令。因此,随机存取存储器(RAM)(105)不仅能够存储用于由深度学习加速器(DLA)(103)执行的DLA指令(205),而且能够存储用于由中央处理单元(CPU)(225)执行的应用程序(235)的指令。
图8的集成电路装置(101)具有一或多个输入/输出接口(237)。传感器(231、…、233)可通过一或多个输入/输出接口(237)将其输入流式传输到随机存取存储器(RAM)(105)中。例如,传感器A(231)可将来自传感器A的传感器输入(221)(例如,代表雷达图像或相机图像)流式传输到随机存取存储器(RAM)(105)中(例如,以提供雷达图像或相机图像);且传感器B(233)可将来自传感器B的传感器输入(223)流式传输到随机存取存储器(RAM)(105)中(例如,以提供激光雷达图像或超声波图像)。
此外,在中央处理单元(CPU)(225)中运行的应用程序(235)可使用输入/输出接口(237)来产生警报、音频/视频输出、网络通信信号及/或用于外围装置的控制命令。
图8说明其中连接(109及229)将存储器控制器接口(228)及输入/输出接口(237)直接连接到随机存取存储器(RAM)(105)的实例。替代地,连接(109)及连接(229)可经配置以经由深度学习加速器(DLA)(103)与随机存取存储器(RAM)(105)之间的存储器接口(117)及高带宽连接(119)间接地将存储器控制器(228)及输入/输出接口(237)连接到随机存取存储器(RAM)(105)。在其它实施方案中,输入/输出接口(237)经由存储器控制器(228)、中央处理单元(CPU)(225)或另一控制器来存取随机存取存储器(RAM)(105)。
例如,输入/输出接口(237)可经配置以支持到例如雷达、激光雷达、相机、显示装置等的外围装置的串行连接。例如,输入/输出接口(237)可包含外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、移动行业处理器接口(MIPI)及/或相机接口等。
图9展示根据一个实施例的传感器融合的方法。例如,图9的方法可在图1、图6、图7、图8的集成电路装置(101)及/或图5的系统中实施。
在框301处,将代表人工神经网络(201)的参数的第一数据被存储到装置(例如101)的随机存取存储器(105)中。例如,参数可包含使用机器学习及/或深度学习技术训练的人工神经网络(201)的内核及映射矩阵(207)。
在框303处,将代表可执行以实施人工神经网络(201)的矩阵计算的指令(例如205)的第二数据存储到装置(例如101)的随机存取存储器(105)中。矩阵计算使用存储在随机存取存储器(105)中的至少第一数据来实施。
在框305处,装置(例如101)的至少一个接口分别从多个传感器接收代表多个输入的第三数据。
例如,至少一个接口可包含图6到8中所说明的存储器控制器接口(107)、图7中所说明的传感器接口(227)及/或图8中所说明的输入/输出接口(237)。
例如,多个输入可包含图6到8中所说明的输入(221、…、223);且多个传感器可包含图8中所说明的传感器(231、…、233)。
例如,至少一个接口可包含经配置以从多个传感器(例如231、…、233)并行接收多个输入(例如221、…、223)的多个接口。多个串行连接可将多个接口分别连接到多个传感器(例如231、…、233)。
在框307处,至少一个接口将代表分别来自多个传感器的多个输入的第三数据存储到装置的随机存取存储器(105)中。
在框309处,装置(例如101)的至少一个处理单元(111)执行由第二数据代表的指令(例如205)以实施具有多个第一部分及第二部分的人工神经网络(201)的矩阵计算。
在框311处,装置(例如101)通过处理分别来自多个传感器的多个输入而根据人工神经网络(201)的多个第一部分来产生分别对应于多个传感器的第一输出。
在框313处,装置(例如101)通过处理来自多个传感器的多个输入的组合来根据人工神经网络(201)的第二部分来产生第二输出。
例如,来自多个传感器中的每一者的输入可包含同一对象的图像数据;第一输出包含分别使用多个传感器确定的对象的识别或分类;且第二输出包含使用多个传感器的组合确定的对象的识别或分类。
例如,人工神经网络(201)的第一部分产生第一输出,其包含从分别来自多个传感器的多个输入辨识的特征。人工神经网络(201)的第二部分产生第二输出,其包含使用第一输出中的特征的组合确定的对象的识别或分类。
例如,多个传感器可包含至少两个成像装置,例如雷达成像装置、激光雷达成像装置、超声波成像装置、数码相机等。
任选地,集成电路装置(101)可进一步包含中央处理单元,其经配置以执行存储在随机存取存储器(105)中的应用程序(235)的指令。装置的接口经配置以基于人工神经网络(201)的输出(213)来提供由中央处理单元(225)产生的应用程序(235)的输出。例如,应用程序(235)的输出可提供到外围装置,例如显示装置、控制元件、计算机网络等。
本公开包含执行上文描述的方法的方法及设备,其包含执行这些方法的数据处理系统,以及含有指令的计算机可读媒体,所述指令当在数据处理系统上执行时致使系统执行这些方法。
典型数据处理系统可包含互连件(例如,总线及系统核心逻辑),其将微处理器与存储器互连。微处理器通常耦合到高速缓冲存储器。
互连件将微处理器与存储器互连在一起,且还经由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)、闪存装置、软盘及其它可卸除磁盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(CDROM)、数字多功能磁盘(DVD)等)等。计算机可读媒体可存储指令。
指令还可体现在用于电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)的数字及模拟通信链路中。然而,传播信号(例如,载波、红外信号、数字信号等)不是有形机器可读媒体且未配置以存储指令。
一般来说,机器可读媒体包含以机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)可存取的形式提供(即,存储及/或传输)信息的任何机制。
在各种实施例中,可将硬连线电路系统与软件指令结合使用以实施技术。因此,技术既不限于硬件电路系统与软件的任何特定组合,也不限于针对由数据处理系统执行的指令的任何特定源。
上文描述及图式是说明性的,且不应解释为限制性的。描述众多特定细节以提供透彻理解。然而,在某些情况下,为避免使描述不清楚,未描述众所周知或常规的细节。在本公开中对一个或一实施例的参考不一定是对同一实施例的参考;且,此类参考意指至少一个。
在前述说明书中,已经参考本公开的特定示范性实施例描述本公开。显而易见的是,在不脱离所附权利要求书所阐述的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
Claims (20)
1.一种方法,其包括:
在装置中,接收分别来自多个传感器的多个输入;
由所述装置通过处理分别来自所述多个传感器的所述多个输入使用人工神经网络的多个第一部分来产生分别对应于所述多个传感器的多个第一输出;以及
由所述装置通过处理来自所述多个传感器的所述多个输入的组合来根据所述人工神经网络的第二部分来产生第二输出,所述人工神经网络的所述第二部分经配置以减少与所述人工神经网络的所述第一部分的重叠处理。
2.根据权利要求1所述的方法,其中所述装置包含多个接口;且所述接收包含分别经由所述多个接口与所述多个所述传感器之间的多个串行连接来并行地接收来自所述多个传感器的所述多个输入。
3.根据权利要求2所述的方法,其进一步包括:
向所述装置的随机存取存储器写入应用程序的指令;
由所述装置的中央处理单元执行所述应用程序的所述指令,以基于所述人工神经网络的至少一个输出来产生应用程序输出;以及
经由所述至少一个接口将所述应用程序输出传达到外围装置。
4.根据权利要求3所述的方法,其中所述多个传感器包含至少两个成像装置;且所述第一输出包含从分别来自所述多个传感器的所述多个输入辨识的特征;且所述第二输出包含使用所述第一输出中的所述特征的组合确定的对象的识别或分类。
5.根据权利要求4所述的方法,其中来自所述多个传感器中的每一者的输入包含所述对象的图像数据;所述第一输出包含分别使用所述多个传感器确定的所述对象的识别或分类。
6.一种装置,其包括:
随机存取存储器;
至少一个接口,其经配置以接收分别来自多个传感器的多个输入;以及
至少一个处理单元,其与所述随机存取存储器及所述至少一个接口耦合且经配置以执行具有矩阵操作数的指令以实施人工神经网络的矩阵计算,所述人工神经网络具有多个第一部分及第二部分,所述多个所述第一部分经配置以处理分别来自所述多个传感器的所述多个输入以产生分别对应于所述多个传感器的第一输出,且所述第二部分经配置以处理所述多个输入的组合以产生第二输出,其中所述人工神经网络的所述第二部分经配置以减少与所述人工神经网络的所述第一部分的重叠处理。
7.根据权利要求6所述的装置,其中所述至少一个接口包含多个接口,所述多个接口经配置以并行地接收来自所述多个传感器的所述多个输入。
8.根据权利要求7所述的装置,其中所述多个接口经配置以分别经由多个串行连接来连接到所述多个传感器。
9.根据权利要求8所述的装置,其中来自所述多个传感器中的每一者的输入包含对象的图像数据;所述第一输出包含分别使用所述多个传感器确定的所述对象的识别或分类;且所述第二输出包含使用所述多个传感器的组合确定的所述对象的识别或分类。
10.根据权利要求8所述的装置,其中所述第一输出包含从分别来自所述多个传感器的所述多个输入辨识的特征;且所述第二输出包含使用所述第一输出中的所述特征的组合确定的对象的识别或分类。
11.根据权利要求8所述的装置,其中所述多个传感器包含至少两个成像装置。
12.根据权利要求8所述的装置,其进一步包括:
中央处理单元,其经配置以执行存储在所述随机存取存储器中的应用程序的指令。
13.根据权利要求12所述的装置,其进一步包括:
接口,其经配置以基于所述人工神经网络的所述第二输出来提供由所述中央处理单元产生的所述应用程序的输出。
14.根据权利要求13所述的装置,其进一步包括:
实施深度学习加速器的现场可编程门阵列(FPGA)或专用集成电路(ASIC)的集成电路裸片,所述深度学习加速器包括所述至少一个处理单元,及经配置以从所述随机存取存储器加载所述指令用于执行的控制单元。
15.根据权利要求14所述的装置,其中所述至少一个处理单元包含经配置以对指令的两个矩阵操作数进行操作的矩阵-矩阵单元;
其中所述矩阵-矩阵单元包含经配置以并行操作的多个矩阵-向量单元;
其中所述多个矩阵-向量单元中的每一者包含经配置以并行操作的多个向量-向量单元;且
其中所述多个向量-向量单元中的每一者包含经配置以并行操作的多个乘法-累加单元。
16.根据权利要求15所述的装置,其中所述随机存取存储器及所述深度学习加速器形成在单独集成电路裸片上且通过穿硅通路(TSV)连接;且所述装置进一步包括:
集成电路封装,其经配置以围封至少所述随机存取存储器及所述深度学习加速器。
17.一种设备,其包括:
存储器,其经配置以存储代表人工神经网络的参数的第一数据、代表能够执行以使用存储在所述存储器中的至少所述第一数据来实施所述人工神经网络的矩阵计算的第二数据,及代表分别来自多个传感器的多个输入的第三数据;
至少一个接口,其经配置以接收代表分别来自所述多个传感器的所述多个输入的所述第三数据且将所述第三数据存储到所述存储器中;
到所述存储器的连接;以及
现场可编程门阵列(FPGA)或专用集成电路(ASIC),其具有:
存储器接口,其经配置以经由所述连接来存取所述存储器;以及
至少一个处理单元,其经配置以执行具有矩阵操作数的指令以实施所述人工神经网络的所述矩阵计算,所述人工神经网络具有多个第一部分及第二部分,所述多个所述第一部分经配置以处理分别来自所述多个传感器的所述多个输入以产生分别对应于所述多个传感器的第一输出,且所述第二部分经配置以处理所述多个输入的组合以产生第二输出。
18.根据权利要求17所述的设备,其中所述至少一个接口经配置以经由所述FPGA或ASIC的所述存储器接口及所述到所述存储器的连接来存取所述存储器。
19.根据权利要求18所述的设备,其进一步包括:
中央处理单元,其经配置以执行存储在所述存储器中的应用程序的指令,所述中央处理单元经配置以经由所述FPGA或ASIC的所述存储器接口及所述到所述存储器的连接来存取所述存储器。
20.根据权利要求19所述的设备,其进一步包括:
所述多个传感器包含至少两个成像装置,其中所述第二输出包含第二输出包含在由所述至少两个成像装置产生的图像中捕获的对象的识别或分类。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/987,090 US20220044107A1 (en) | 2020-08-06 | 2020-08-06 | Optimized sensor fusion in deep learning accelerator with integrated random access memory |
US16/987,090 | 2020-08-06 | ||
PCT/US2021/042703 WO2022031446A1 (en) | 2020-08-06 | 2021-07-22 | Optimized sensor fusion in deep learning accelerator with integrated random access memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116134452A true CN116134452A (zh) | 2023-05-16 |
Family
ID=80114577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180050107.5A Pending CN116134452A (zh) | 2020-08-06 | 2021-07-22 | 具有集成随机存取存储器的深度学习加速器中的优化传感器融合 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220044107A1 (zh) |
CN (1) | CN116134452A (zh) |
WO (1) | WO2022031446A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11720417B2 (en) | 2020-08-06 | 2023-08-08 | Micron Technology, Inc. | Distributed inferencing using deep learning accelerators with integrated random access memory |
KR20230144891A (ko) * | 2022-04-08 | 2023-10-17 | 네이버 주식회사 | 트랜스포머 기반 언어 서비스 가속화를 위한 저비용 다중 fpga 가속 시스템 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6792396B2 (en) * | 2002-03-28 | 2004-09-14 | Ge Medical Systems Information Technologies, Inc. | Interface device and method for a monitoring network |
US10909462B2 (en) * | 2015-05-21 | 2021-02-02 | Tata Consultancy Services Limited | Multi-dimensional sensor data based human behaviour determination system and method |
US10671068B1 (en) * | 2016-09-21 | 2020-06-02 | Apple Inc. | Shared sensor data across sensor processing pipelines |
US10410115B2 (en) * | 2017-04-28 | 2019-09-10 | Intel Corporation | Autonomous machines through cloud, error corrections, and predictions |
JP6523379B2 (ja) * | 2017-07-25 | 2019-05-29 | ファナック株式会社 | 情報処理装置 |
US11205114B2 (en) * | 2018-03-19 | 2021-12-21 | Intel Corporation | Multi-layer neural networks using symmetric tensors |
WO2021257609A2 (en) * | 2020-06-16 | 2021-12-23 | Groq, Inc. | Deterministic near-compute memory for deterministic processor and enhanced data movement between memory units and processing units |
-
2020
- 2020-08-06 US US16/987,090 patent/US20220044107A1/en active Pending
-
2021
- 2021-07-22 WO PCT/US2021/042703 patent/WO2022031446A1/en active Application Filing
- 2021-07-22 CN CN202180050107.5A patent/CN116134452A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220044107A1 (en) | 2022-02-10 |
WO2022031446A1 (en) | 2022-02-10 |
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 | |
US11461651B2 (en) | System on a chip with deep learning accelerator and random access memory | |
US11942135B2 (en) | Deep learning accelerator and random access memory with a camera interface | |
CN116134452A (zh) | 具有集成随机存取存储器的深度学习加速器中的优化传感器融合 | |
CN116569182A (zh) | 具有用以优化经生成以用于在人工神经网络的深度学习加速器上执行的指令的人工神经网络的编译器 | |
CN116635936A (zh) | 用于支持集成电路装置中的深度学习加速器的存储器配置 | |
CN115843367A (zh) | 具有深度学习加速器和随机存取存储器的可移除式存储装置中的视频压缩 | |
WO2022098495A1 (en) | Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network | |
CN116601645A (zh) | 经由编译器发现深度学习加速器的硬件特性以用于优化 | |
CN116210006A (zh) | 用于深度学习加速器和随机存取存储器的智能低功率模式 | |
US20230161936A1 (en) | Integrated Sensor Device with Deep Learning Accelerator and Random Access Memory | |
CN116097273A (zh) | 由深度学习加速器与集成随机存取存储器进行的协作式传感器数据处理 | |
CN116569178A (zh) | 具有可经由编译器优化的可配置硬件选项的深度学习加速器 | |
CN116097272A (zh) | 具有集成随机存取存储器的深度学习加速器中的容错人工神经网络计算 | |
US20220147811A1 (en) | Implement the computation of an artificial neural network using multiple deep learning accelerators | |
US11720417B2 (en) | Distributed inferencing using deep learning accelerators with integrated random access memory | |
CN117255997A (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 |