一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有摄像头接口的深度学习加速器及随机存取存储器的制作方法

2022-12-06 22:32:49 来源:中国专利 TAG:

具有摄像头接口的深度学习加速器及随机存取存储器
1.相关申请案
2.本技术案主张2020年4月9日申请且标题为“深度学习加速器及具有摄像头接口的随机存取存储器(deep learning accelerator and random access memory with a camera interface)”的序列号为16/844,997的美国专利申请案的优先权,所述美国专利申请案的全部公开内容特此以引用方式并入本文中。
技术领域
3.本文中公开的至少一些实施例大体上涉及集成电路装置,且更特定来说但不限于,涉及具有用于人工神经网络(ann)的加速器的集成电路装置,例如通过机器学习及/或深度学习配置的ann。


背景技术:

4.人工神经网络(ann)使用神经元网络来处理网络的输入且从网络产生输出。
5.举例来说,网络中的每一神经元接收一组输入。神经元的一些输入可为网络中某些神经元的输出;且神经元的一些输入可为提供到神经网络的输入。网络中神经元之间的输入/输出关系表示网络中的神经元连通性。
6.举例来说,每一神经元可具有分别用于其输入的偏置、激活函数及一组突触权重。激活函数可呈阶跃函数、线性函数、对数-s形函数等的形式。网络中的不同神经元可具有不同激活函数。
7.举例来说,每一神经元可产生其输入及其偏置的加权和且接着产生使用神经元的激活函数计算的作为加权和的函数的输出。
8.ann的输入与输出之间的关系一般由ann模型定义,ann模型包含表示网络中神经元的连通性的数据以及每一神经元的偏置、激活函数及突触权重。基于给定ann模型,计算装置可经配置以从网络的一组给定输入计算网络的输出。
9.举例来说,ann网络的输入可基于摄像头输入产生;且来自ann网络的输出可为例如事件或对象的项目的识别。
10.一般来说,ann可使用监督式方法训练,其中ann中的参数经调整以最小化或减小与相应输入相关联或由相应输入导致的已知输出与经由将输入应用于ann产生的计算输出之间的误差。监督式学习/训练方法的实例包含强化学习及具有误差校正的学习。
11.替代地或组合地,ann可使用无监督方法训练,其中由一组给定输入导致的准确输出在训练完成之前是未知的。ann可经训练以将项目分类成多个类别或将数据点分类成集群。
12.多种训练算法可用于复杂机器学习/训练范例。
13.深度学习使用多个机器学习层来逐步从输入数据提取特征。举例来说,较低层可经配置以识别图像中的边缘;且较高层可经配置以基于使用较低层检测到的边缘识别在图像中捕捉的项目,例如人脸、对象、事件等。深度学习可经由人工神经网络(ann)实施,例如
深度神经网络、深度信念网络、循环神经网络及/或卷积神经网络。
14.深度学习已应用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医学图像处理、游戏等。
附图说明
15.附图中通过实例而非限制来说明实施例,其中相同参考元件符号指示类似元件。
16.图1展示具有根据一个实施例配置的深度学习加速器及随机存取存储器的集成电路装置。
17.图2展示根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元。
18.图3展示根据一个实施例的经配置以执行矩阵-向量运算的处理单元。
19.图4展示根据一个实施例的经配置以执行向量-向量运算的处理单元。
20.图5展示根据一个实施例的经配置以自主地将输入应用于经训练人工神经网络的深度学习加速器及随机存取存储器。
21.图6展示根据一个实施例的具有经配置有单独存储器存取连接的深度学习加速器及随机存取存储器的集成电路装置。
22.图7展示根据一个实施例的具有含摄像头接口的深度学习加速器及随机存取存储器的集成电路装置。
23.图8展示根据一个实施例的实施于集成电路装置中的方法。
具体实施方式
24.本文中公开的至少一些实施例提供经配置以用减少能耗及计算时间执行人工神经网络(ann)的计算的通用集成电路装置。集成电路装置包含深度学习加速器(dla)及随机存取存储器。集成电路装置可经配置有用于并发存取随机存取存储器的单独连接。集成电路装置可具有经配置以直接从一或多个摄像头接收图像数据作为实施于集成电路装置中的人工神经网络(ann)的输入的摄像头接口。
25.深度学习加速器(dla)包含一组通用可编程硬件计算逻辑,其经专门化及/或优化以执行并行向量及/或矩阵计算,包含(但不限于)向量及/或矩阵的乘法及累加。
26.此外,深度学习加速器(dla)可包含用于对整数二进制数执行算术及逐位运算的一或多个算术-逻辑单元(alu)。
27.深度学习加速器(dla)可经由一组指令编程以执行人工神经网络(ann)的计算。
28.对向量及矩阵操作的深度学习加速器(dla)的粒度对应于可在由深度学习加速器(dla)执行一个指令期间操作的向量/矩阵的最大单位。在用于对向量/矩阵操作数进行预定义操作的指令的执行期间,向量/矩阵操作数的元素可由深度学习加速器(dla)并行操作以减少与存储器/数据存取相关联的执行时间及/或能耗。对深度学习加速器(dla)的粒度的向量/矩阵操作数进行的操作可用作用于对更大大小的向量/矩阵实施计算的构建块。
29.典型/实际人工神经网络(ann)的实施涉及具有大于深度学习加速器(dla)的操作粒度的大小的向量/矩阵操作数。为了使用深度学习加速器(dla)实施此人工神经网络(ann),涉及大向量/矩阵操作数的计算可分解为深度学习加速器(dla)的粒度的向量/矩阵操作数的计算。深度学习加速器(dla)可经由指令编程以实施涉及大向量/矩阵操作数的计
算。举例来说,深度学习加速器(dla)响应于指令而操纵深度学习加速器(dla)的粒度的向量及矩阵的原子计算能力可经编程以在人工神经网络(ann)中实施计算。
30.在一些实施方案中,深度学习加速器(dla)缺少典型中央处理单元(cpu)的一些逻辑运算能力。然而,深度学习加速器(dla)可经配置有足够逻辑单元来处理提供到人工神经网络(ann)的输入数据且根据针对深度学习加速器(dla)产生的一组指令产生人工神经网络(ann)的输出。因此,深度学习加速器(dla)可执行人工神经网络(ann)的计算,很少或无需来自中央处理单元(cpu)或另一处理器的帮助。任选地,常规通用处理器还可经配置为深度学习加速器(dla)的部分以执行使用深度学习加速器(dla)的向量/矩阵处理单元无法高效实施及/或无法由深度学习加速器(dla)的向量/矩阵处理单元执行的操作。
31.典型人工神经网络(ann)可以标准格式(例如开放神经网络交换(onnx))描述/指定。编译器可用于将人工神经网络(ann)的描述转换成一组指令以使深度学习加速器(dla)执行人工神经网络(ann)的计算。编译器可优化指令组以在实施人工神经网络(ann)时改进深度学习加速器(dla)的性能。
32.深度学习加速器(dla)可具有经配置以存储向量/矩阵操作数及向量/矩阵运算结果的本地存储器,例如寄存器、缓冲器及/或高速缓存。寄存器中的中间结果可作为操作数在深度学习加速器(dla)中管线化/移位用于后续向量/矩阵运算以减少存取存储器/数据的时间及能耗且因此在实施典型人工神经网络(ann)时加速典型模式的向量/矩阵运算。深度学习加速器(dla)中寄存器、缓冲器及/或高速缓存的容量通常不足以保存用于实施典型人工神经网络(ann)的计算的整个数据集。因此,耦合到深度学习加速器(dla)的随机存取存储器经配置以提供经改进数据存储容量来实施典型人工神经网络(ann)。举例来说,深度学习加速器(dla)从随机存取存储器加载数据及指令且将结果存储回到随机存取存储器中。
33.深度学习加速器(dla)与随机存取存储器之间的通信带宽经配置以优化或最大化深度学习加速器(dla)的计算功率的利用。举例来说,可在深度学习加速器(dla)与随机存取存储器之间提供高通信带宽,使得向量/矩阵操作数可在约等于深度学习加速器(dla)对向量/矩阵操作数执行计算的时间的一时段内从随机存取存储器加载到深度学习加速器(dla)中且将结果存储回到随机存取存储器中。深度学习加速器(dla)的粒度可经配置以增大由深度学习加速器(dla)执行的计算量与向量/矩阵操作数的大小之间的比率,使得深度学习加速器(dla)与随机存取存储器之间的数据存取业务可减少,其可降低对深度学习加速器(dla)与随机存取存储器之间的通信带宽的要求。因此,可减小或消除数据/存储器存取的瓶颈。
34.在至少一些实施例中,提供多个连接来允许不同装置出于不同目的并行存取随机存取存储器。举例来说,随机存取存储器可包含经配置以存储人工神经网络(ann)的输入的一部分及经配置以存储来自人工神经网络(ann)的输出的另一部分。到随机存取存储器的一个连接可由中央处理单元(cpu)或另一处理器用于存取来自人工神经网络(ann)的输出,同时并发地,到随机存取存储器的另一连接可由直接存储器存取(dma)控制器用于将人工神经网络(ann)的输入数据存储到随机存取存储器中。
35.举例来说,中央处理单元(cpu)可设置直接存储器存取(dma)控制器将由人工神经网络(ann)处理的输入数据写入到随机存取存储器的输入区中。直接存储器存取(dma)控制
器将一组输入写入到输入区中完成可触发深度学习加速器(dla)执行指令以实施人工神经网络(ann)。指令的执行导致输入与人工神经网络(ann)的矩阵的组合产生输出。输出经配置以存储于用于中央处理单元(cpu)的随机存取存储器的另一区中。
36.任选地,人工神经网络(ann)的模型数据可存储于随机存取存储器的另一区中。模型数据可包含识别人工神经网络(ann)中人工神经元的神经连通性及突触权重、人工神经元的状态及/或性质的矩阵。模型数据可进一步包含使深度学习加速器(dla)实施人工神经网络(ann)的计算的指令。举例来说,编译器可将人工神经网络(ann)的描述转换成存储于随机存取存储器中的模型数据。
37.在模型数据存储于随机存取存储器中且直接存储器存取(dma)控制器经配置以将输入数据写入到随机存取存储器中之后,深度学习加速器(dla)及直接存储器存取(dma)控制器可使用人工神经网络(ann)处理输入数据,无需来自中央处理单元(cpu)的帮助。人工神经网络(ann)的输出自动存储于随机存取存储器中。中央处理单元(cpu)可经由单独连接存取随机存取存储器,同时直接存储器存取(dma)控制器将输入数据提供到深度学习加速器(dla)。
38.举例来说,人工神经网络(ann)的输入数据流可经配置为呈输入数据集序列的形式。每一输入数据集用于在一时隙期间到人工神经网络(ann)的一组输入。当深度学习加速器(dla)从当前输入组计算输出时,直接存储器存取(dma)控制器可将下一组输入存储到随机存取存储器中;且中央处理单元(cpu)可并发地从随机存取存储器检索针对前一组输入产生的输出。
39.因此,人工神经网络(ann)的输入数据的准备及处理任务可从中央处理单元(cpu)卸载。深度学习加速器(dla)、随机存取存储器及直接存储器存取(dma)控制器的组合可用作结果从人工神经网络(ann)到中央处理单元(cpu)的独立供应器。当需要输出时,中央处理单元(cpu)可一次检索一组输出。当无需来自人工神经网络(ann)的输出时,中央处理单元(cpu)可指示直接存储器存取(dma)控制器暂停其将输入供应到人工神经网络(ann)的操作。随后,当需要来自人工神经网络(ann)的输出时,中央处理单元(cpu)可指示直接存储器存取(dma)控制器恢复其将输入数据加载到随机存取存储器中的操作。
40.人工神经网络(ann)可用于处理传感器数据,例如图像。举例来说,数字摄像头可用于产生图像用于计算机视觉及/或自主驾驶、飞行、导航等。举例来说,一些传感器数据可转换成图像形式以供人工神经网络(ann)处理。举例来说,雷达、激光雷达、超声扫描仪、医疗成像设备等可产生图像来供人工神经网络(ann)分析以辨识及/或分类特征、对象、疾病等。
41.具有深度学习加速器及随机存取存储器的集成电路装置可经配置以包含摄像头接口来获取图像数据作为实施于集成电路装置中的人工神经网络(ann)的输入。
42.举例来说,摄像头接口可根据移动行业处理器接口(mipi)协议实施以从图像传感器、摄像头或可产生图像的另一装置(例如雷达、激光雷达、超声扫描仪、医疗成像设备)接收图像数据。举例来说,移动行业处理器接口(mipi)协议可包含支持摄像头命令接口控制摄像头或成像装置的操作。摄像头接口允许具有深度学习加速器及随机存取存储器的集成电路装置控制接收图像数据作为由人工神经网络(ann)处理的输入。摄像头或图像传感器/产生器可使其输入数据作为图像串流传输到随机存取存储器的输入区中。集成电路装置根
据人工神经网络(ann)自动转换输入数据且将来自人工神经网络(ann)的输出存储于随机存取存储器中。由于集成电路装置无缝获取图像数据且将其转换成人工神经网络(ann)输出,因此可显著减少到中央处理单元的数据业务。
43.摄像头接口允许集成电路装置与图像产生器组合为自动供应随机存取存储器中来自人工神经网络(ann)的智能结果的智能传感器单元。一旦中央处理单元配置集成电路装置操作,则获取输入数据及执行涉及人工神经网络(ann)的计算的计算任务可从中央处理单元(cpu)卸载。
44.任选地,原始传感器/图像数据可在一时段内以循环方式缓冲于随机存取存储器中,使得根据需要,中央处理单元(cpu)还可在所述时段内存取原始传感器数据。
45.图1展示具有根据一个实施例配置的深度学习加速器(103)及随机存取存储器(105)的集成电路装置(101)。
46.图1中的深度学习加速器(103)包含处理单元(111)、控制单元(113)及本地存储器(115)。当向量及矩阵操作数在本地存储器(115)中时,控制器单元(113)可使用处理单元(111)根据指令执行向量及矩阵运算。此外,控制器单元(113)可通过存储器接口(117)及高速/高带宽连接(119)从随机存取存储器(105)加载指令及操作数。
47.集成电路装置(101)经配置以围封于具有用于存储器控制器接口(107)的引脚或触点的集成电路封装内。
48.存储器控制器接口(107)经配置以支持标准存储器存取协议,使得集成电路装置(101)以相同于没有深度学习加速器(dla)(103)的常规随机存取存储器装置的方式呈现为典型存储器控制器。举例来说,集成电路装置(101)外部的存储器控制器可使用标准存储器存取协议通过存储器控制器接口(107)存取集成电路装置(101)中的随机存取存储器(105)。
49.集成电路装置(101)在围封于集成电路装置(101)内的随机存取存储器(105)与深度学习加速器(dla)(103)之间配置有高带宽连接(119)。连接(119)的带宽高于随机存取存储器(105)与存储器控制器接口(107)之间的连接(109)的带宽。
50.在一个实施例中,存储器控制器接口(107)及存储器接口(117)两者经配置以经由同一组总线或电线存取随机存取存储器(105)。因此,用于存取随机存取存储器(105)的带宽共享于存储器接口(117)与存储器控制器接口(107)之间。替代地,存储器控制器接口(107)及存储器接口(117)经配置以经由单独总线或电线组存取随机存取存储器(105)。任选地,随机存取存储器(105)可包含可经由连接(119)并发地存取的多个区段。举例来说,当存储器接口(117)存取随机存取存储器(105)的一区段时,存储器控制接口(107)可并发地存取随机存取存储器(105)的另一区段。举例来说,不同区段可经配置于存储器胞元的不同集成电路裸片及/或不同平面/存储体上;且不同区段可经并行存取以增加存取随机存取存储器(105)的处理量。举例来说,存储器控制器接口(107)经配置以一次存取预定大小的一个数据单位;且存储器接口(117)经配置以一次存取各自具有相同预定大小的多个数据单位。
51.在一个实施例中,随机存取存储器(105)及集成电路装置(101)经配置于配置于同一集成电路封装内的不同集成电路裸片上。此外,随机存取存储器(105)可经配置于允许并发地并行存取多个数据元素的一或多个集成电路裸片上。
52.在一些实施方案中,可经由连接(119)并行存取的向量或矩阵的数据元素的数目对应于对向量或矩阵操作的深度学习加速器(dla)的粒度。举例来说,当处理单元(111)可并行地对数个向量/矩阵元素进行操作时,连接(119)经配置以并行地经由连接(119)加载或存储相同数目个或所述数目的倍数个元素。
53.任选地,连接(119)的数据存取速度可基于深度学习加速器(dla)(103)的处理速度进行配置。举例来说,在一定量的数据及指令加载到本地存储器(115)中之后,控制单元(113)可执行指令以使用处理单元(111)对数据进行操作以产生输出。在用于产生输出的处理的时段内,连接(119)的存取带宽允许相同量的数据及指令加载到本地存储器(115)中用于下一操作且允许相同量的输出存储回到随机存取存储器(105)。举例来说,当控制单元(113)使用本地存储器(115)的部分处理数据且产生输出时,存储器接口(117)可将前一操作的输出从本地存储器(115)的另一部分卸载到随机存取存储器(105)中且将操作数数据及指令加载到本地存储器(115)的另一部分中。因此,深度学习加速器(dla)的利用及性能不因连接(119)的带宽而受限或降低。
54.随机存取存储器(105)可用于存储人工神经网络(ann)的模型数据且缓冲人工神经网络(ann)的输入数据。模型数据不会频繁改变。模型数据可包含由深度学习加速器(dla)的编译器产生以实施人工神经网络(ann)的输出。模型数据通常包含用于人工神经网络(ann)的描述中的矩阵及针对深度学习加速器(dla)(103)产生以基于深度学习加速器(dla)(103)的粒度的向量/矩阵运算来执行人工神经网络(ann)的向量/矩阵运算的指令。指令不仅在人工神经网络(ann)的向量/矩阵运算上操作,而且在人工神经网络(ann)的输入数据上操作。
55.在一个实施例中,当输入数据加载或更新于随机存取存储器(105)中时,深度学习加速器(dla)(103)的控制单元(113)可自动执行人工神经网络(ann)的指令以产生人工神经网络(ann)的输出。输出存储到随机存取存储器(105)中的预定义区中。深度学习加速器(dla)(103)可执行指令,无需来自中央处理单元(cpu)的帮助。因此,可减少或消除用于深度学习加速器(dla)(103)与集成电路装置(101)外部的处理器(例如中央处理单元(cpu))之间的协调的通信。
56.任选地,深度学习加速器(dla)(103)的逻辑电路可经由互补金属氧化物半导体(cmos)实施。举例来说,随机存取存储器(105)的存储器胞元的阵列下cmos(cua)技术可用于实施深度学习加速器(dla)(103)的逻辑电路,包含处理单元(111)及控制单元(113)。替代地,随机存取存储器(105)的存储器胞元的阵列中cmos技术可用于实施深度学习加速器(dla)(103)的逻辑电路。
57.在一些实施方案中,深度学习加速器(dla)(103)及随机存取存储器(105)可实施于单独集成电路裸片上且使用穿硅通路(tsv)连接以增大深度学习加速器(dla)(103)与随机存取存储器(105)之间的数据带宽。举例来说,深度学习加速器(dla)(103)可形成于现场可编程门阵列(fpga)或专用集成电路(asic)的集成电路裸片上。
58.替代地,深度学习加速器(dla)(103)及随机存取存储器(105)可经配置于单独集成电路封装中且经由印刷电路板(pcb)上的多个点到点连接来连接以进行并行通信且因此增大数据传送带宽。
59.随机存取存储器(105)可为易失性存储器或非易失性存储器或易失性存储器与非
易失性存储器的组合。非易失性存储器的实例包含快闪存储器、基于与非(nand)逻辑门、或非(nor)逻辑门形成的存储器胞元、相变存储器(pcm)、磁性存储器(mram)、电阻随机存取存储器、交叉点存储装置及存储器装置。交叉点存储器装置可使用无晶体管存储器元件,其中的每一者具有一起堆叠为一列的存储器胞元及选择器。存储器元件列经由在垂直方向上运行的两个电线铺层连接,其中一个铺层的电线在一个方向上运行于位于存储器元件列上方的层中,且另一铺层的电线在另一方向上运行且位于存储器元件列下方。可在两个层中的每一者上的一个电线的交叉点处个别选择每一存储器元件。交叉点存储器装置是快速及非易失性的且可用作用于处理及存储的统一内存池。非易失性存储器的另外实例包含只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)及电可擦除可编程只读存储器(eeprom)存储器等。易失性存储器的实例包含动态随机存取存储器(dram)及静态随机存取存储器(sram)。
60.举例来说,非易失性存储器可经配置以实施随机存取存储器(105)的至少一部分。随机存取存储器(105)中的非易失性存储器可用于存储人工神经网络(ann)的模型数据。因此,在集成电路装置(101)断电且重启之后,无需将人工神经网络(ann)的模型数据重新加载到集成电路装置(101)中。此外,非易失性存储器可为可编程/可重写的。因此,集成电路装置(101)中人工神经网络(ann)的模型数据可经更新或取代以实施更新人工神经网络(ann)或另一人工神经网络(ann)。
61.深度学习加速器(dla)(103)的处理单元(111)可包含向量-向量单元、矩阵-向量单元及/或矩阵-矩阵单元。经配置以执行向量-向量运算、矩阵-向量运算及矩阵-矩阵运算的单元的实例将在下文结合图2到4论述。
62.图2展示根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元(121)。举例来说,图2的矩阵-矩阵单元(121)可用作图1的深度学习加速器(dla)(103)的处理单元(111)中的一者。
63.在图2中,矩阵-矩阵单元(121)包含多个内核缓冲器(131到133)及多个映射存储体(151到153)。映射存储体(151到153)中的每一者存储具有分别存储于映射存储体(151到153)中的多个向量的矩阵操作数的一个向量;且内核缓冲器(131到133)中的每一者存储具有分别存储于内核缓冲器(131到133)中的多个向量的另一矩阵操作数的一个向量。矩阵-矩阵单元(121)经配置以使用并行操作的多个矩阵-向量单元(141到143)对两个矩阵操作数的元素执行乘法及累加运算。
64.交叉开关(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)中的向量操作数执行乘法运算。
65.图2中的矩阵-向量单元(141到143)中的每一者可以图3中说明的方式实施。
66.图3展示根据一个实施例的经配置以执行矩阵-向量运算的处理单元(141)。举例来说,图3的矩阵-向量单元(141)可用作图2的矩阵-矩阵单元(121)中的矩阵-向量单元中的任何者。
67.在图3中,映射存储体(151到153)中的每一者以类似于图2的映射存储体(151到153)的方式存储具有分别存储于映射存储体(151到153)中的多个向量的矩阵操作数的一个向量。图3中的交叉开关(123)将向量分别从映射存储体(151)提供到向量-向量单元(161到163)。存储于内核缓冲器(131)中的同一向量提供到向量-向量单元(161到163)。
68.向量-向量单元(161到163)并发地操作以计算分别存储于映射存储体(151到153)中的对应向量操作数乘以存储于内核缓冲器(131)中的相同向量操作数的运算。举例来说,向量-向量单元(161)对存储于映射存储体(151)中的向量操作数及存储于内核缓冲器(131)中的向量操作数执行乘法运算,同时向量-向量单元(163)并发地对存储于映射存储体(153)中的向量操作数及存储于内核缓冲器(131)中的向量操作数执行乘法运算。
69.当图3的矩阵-向量单元(141)实施于图2的矩阵-矩阵单元(121)中时,矩阵-向量单元(141)可使用矩阵-矩阵单元(121)的映射存储体(151到153)、交叉开关(123)及内核缓冲器(131)。
70.图3中的向量-向量单元(161到163)中的每一者可以图4中说明的方式实施。
71.图4展示根据一个实施例的经配置以执行向量-向量运算的处理单元(161)。举例来说,图4的向量-向量单元(161)可用作图3的矩阵-向量单元(141)中的向量-向量单元中的任何者。
72.在图4中,向量-向量单元(161)具有多个乘累加(mac)单元(171到173)。乘累加(mac)单元(171到173)中的每一者可接收两个数作为操作数,执行两个数的乘法,且将乘法的结果加到保存于乘累加(mac)单元中的总和。
73.向量缓冲器(181及183)中的每一者存储数字列表。各自来自向量缓冲器(181及183)中的一者的一对数字可作为输入提供到乘累加(mac)单元(171到173)中的每一者。乘累加(mac)单元(171到173)可并行地从向量缓冲器(181及183)接收多对数字且并行地执行乘累加(mac)运算。来自乘累加(mac)单元(171到173)的输出存储到移位寄存器(175)中;且累加器(177)计算移位寄存器(175)中结果的总和。
74.当图4的向量-向量单元(161)实施于图3的矩阵-向量单元(141)中时,向量-向量单元(161)可使用映射存储体(例如151或153)作为一个向量缓冲器(181)且使用矩阵-向量单元(141)的内核缓冲器(131)作为另一向量缓冲器(183)。
75.向量缓冲器(181及183)可具有相同长度以存储相同数目/计数的数据元素。长度可等于向量-向量单元(161)中乘累加(mac)单元(171到173)的计数或为所述计数的倍数。当向量缓冲器(181及183)的长度是乘累加(mac)单元(171到173)的计数的倍数时,等于乘累加(mac)单元(171到173)的计数的输入对数可在每一迭代中作为输入从向量缓冲器(181及183)提供到乘累加(mac)单元(171到173);且向量缓冲器(181及183)通过多次迭代将其元素馈送到乘累加(mac)单元(171到173)中。
76.在一个实施例中,深度学习加速器(dla)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以使矩阵-矩阵单元(121)使用随机存取存储器(105)的部分作为映
射存储体(151到153)及内核缓冲器(131到133)。
77.在另一实施例中,映射存储体(151到153)及内核缓冲器(131到133)实施于深度学习加速器(dla)(103)的本地存储器(115)的部分中。深度学习加速器(dla)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以将矩阵-矩阵单元(121)的下一运算循环的矩阵操作数加载到本地存储器(115)的另一部分中,同时矩阵-矩阵单元(121)在当前运算循环中使用实施于深度学习加速器(dla)(103)的本地存储器(115)的不同部分中的映射存储体(151到153)及内核缓冲器(131到133)执行计算。
78.图5展示根据一个实施例的经配置以自主地将输入应用于经训练人工神经网络的深度学习加速器及随机存取存储器。
79.可以标准格式(例如开放神经网络交换(onnx))描述已通过机器学习(例如深度学习)训练的人工神经网络(ann)(201)。以标准格式描述经训练ann(201)识别人工神经元及其连通性的性质。
80.在图5中,深度学习加速器(dla)编译器(203)通过产生用于深度学习加速器(dla)(103)的指令(205)及对应于人工神经元及其连通性的性质的矩阵(207)来转换经训练ann(201)。由dla编译器(203)从经训练ann(201)产生的指令(205)及矩阵(207)可存储于用于深度学习加速器(dla)(103)的随机存取存储器(105)中。
81.举例来说,随机存取存储器(105)及深度学习加速器(dla)(103)可以如同图1的集成电路装置(101)的方式经由高带宽连接(119)连接。基于指令(205)及矩阵(207)的图5的自主计算可实施于图1的集成电路装置(101)中。替代地,随机存取存储器(105)及深度学习加速器(dla)(103)可经配置于具有平行运行以实施连接(119)的多个点到点串行总线的印刷电路板上。
82.在图5中,在dla编译器(203)的结果存储于随机存取存储器(105)中之后,用于处理经训练ann(201)的输入(211)以产生经训练ann(213)的对应输出(213)的经训练ann(201)的应用可由随机存取存储器(105)中输入(211)的存在或提供于随机存取存储器(105)中的另一指示触发。
83.作为响应,深度学习加速器(dla)(103)执行指令(205)以组合输入(211)与矩阵(207)。指令(205)的执行可包含产生映射矩阵用于深度学习加速器(dla)(103)的一或多个矩阵-矩阵单元(例如121)的映射存储体(151到153)。
84.在一些实施例中,ann的输入(211)呈初始映射矩阵的形式。初始映射矩阵的部分可作为存储于矩阵-矩阵单元(121)的映射存储体(151到153)中的矩阵操作数从随机存取存储器(105)检索。替代地,dla指令(205)还包含使深度学习加速器(dla)(103)从输入(211)产生初始映射矩阵的指令。
85.根据dla指令(205),深度学习加速器(dla)(103)将矩阵操作数加载到其矩阵-矩阵单元(121)的内核缓冲器(131到133)及映射存储体(151到153)中。矩阵-矩阵单元(121)对矩阵操作数执行矩阵计算。举例来说,dla指令(205)根据深度学习加速器(dla)(103)的计算粒度(例如作为矩阵操作数加载于矩阵-矩阵单元(121)中的矩阵的大小/维数)来分解经训练ann(201)的矩阵计算且将输入特征映射应用于一层人工神经元的内核以产生输出作为下一层人工神经元的输入。
86.在根据指令(205)执行经训练ann(201)的计算完成之后,深度学习加速器(dla)
(103)将ann(201)的输出(213)存储于随机存取存储器(105)中的预定义位置或提供于随机存取存储器(105)中用于触发计算的指示中指定的位置处。
87.当图5的技术实施于图1的集成电路装置(101)中时,连接到存储器控制器接口(107)的外部装置可将输入(211)写入到随机存取存储器(105)中且触发由深度学习加速器(dla)(103)将输入(211)应用于经训练ann(201)的自主计算。在一时段之后,输出(213)可用于随机存取存储器(105)中;且外部装置可经由集成电路装置(101)的存储器控制器接口(107)读取输出(213)。
88.举例来说,随机存取存储器(105)中的预定义位置可经配置以存储用于触发由深度学习加速器(dla)(103)自主执行指令(205)的指示。指示可任选地包含随机存取存储器(105)内输入(211)的位置。因此,在用于处理输入(211)的指令(205)的自主执行期间,外部装置可检索在指令(205)的前一运行期间产生的输出及/或存储另一组输入用于指令(205)的下一运行。
89.任选地,随机存取存储器(105)中的另一预定义位置可经配置以存储指令(205)的当前运行的进展状态的指示。此外,指示可包含指令(205)的当前运行的完成时间的预测(例如,基于指令(205)的前一运行来估计)。因此,外部装置可检查合适时间窗处的完成状态以检索输出(213)。
90.在一些实施例中,随机存取存储器(105)经配置有足够容量来存储多组输入(例如211)及输出(例如213)。每一组可经配置于随机存取存储器(105)中的预定槽/区域中。
91.深度学习加速器(dla)(103)可自主地执行指令(205)以根据存储于随机存取存储器(105)中的矩阵(207)从输入(211)产生输出(213),无需来自位于集成电路装置(101)外部的处理器或装置的帮助。
92.在根据一个实施例的方法中,计算装置(例如101)的随机存取存储器(103)可使用计算装置(例如101)到存储器控制器的接口(107)来存取。计算装置(例如101)可具有经配置以对矩阵操作数(例如存储于映射存储体(151到153)中的矩阵操作数及存储于内核缓冲器(131到133)中的矩阵操作数)执行至少计算的处理单元(例如111)。
93.举例来说,计算装置(例如101)可围封于集成电路封装内;且一组连接可将接口(107)连接到位于集成电路封装外部的存储器控制器。
94.可由处理单元(例如111)执行的指令(205)可通过接口(107)写入到随机存取存储器(105)中。
95.人工神经网络(201)的矩阵(207)可通过接口(107)写入到随机存取存储器(105)中。矩阵(207)识别人工神经网络(201)的性质及/或状态。
96.任选地,随机存取存储器(105)的至少一部分是非易失性的且经配置以存储指令(205)及人工神经网络(201)的矩阵(07)。
97.人工神经网络的第一输入(211)可通过接口(107)写入到随机存取存储器(105)中。
98.在随机存取存储器(105)中提供指示以致使处理单元(111)开始执行指令(205)。响应于指示,处理单元(111)执行指令以组合第一输入(211)与人工神经网络(201)的矩阵(207)以从人工神经网络(201)产生第一输出(213)且将第一输出(213)存储于随机存取存储器(105)中。
99.举例来说,指示可为第一输入(211)在随机存取存储器(105)中的地址;且指示可存储于随机存取存储器(105)中的预定位置处以致使对由地址识别的输入(211)启动指令(205)的执行。任选地,指示还可包含用于存储输出(213)的地址。
100.第一输出(213)可通过接口(107)从随机存取存储器(105)读取。
101.举例来说,计算装置(例如101)可具有形成于第一集成电路裸片上的深度学习加速器(103)及形成于一或多个第二集成电路裸片上的随机存取存储器(105)。第一集成电路裸片与一或多个第二集成电路裸片之间的连接(119)可包含用于提供存储器存取的高带宽的穿硅通路(tsv)。
102.举例来说,人工神经网络(201)的描述可使用编译器(203)转换成指令(205)及矩阵(207)。存储于随机存取存储器(105)及深度学习加速器(103)中的指令(205)与矩阵(207)的组合提供可自动将人工神经网络(201)的输入(211)转换成其输出(213)的人工神经网络(201)的自主实施。
103.举例来说,在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第一输入(211)产生第一输出(213)的时段期间,人工神经网络(201)的第二输入可通过接口(107)写入到随机存取存储器(105)中的替代位置处。在第一输出(213)存储于随机存取存储器(105)中之后,在随机存取存储器中可提供指示以致使深度学习加速器(103)再次开始执行指令且从第二输入产生第二输出。
104.在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第二输入产生第二输出的时段期间,第一输出(213)可通过接口(107)从随机存取存储器(105)读取;且另一输入可写入到随机存取存储器中以取代第一输入(211)或写入于不同位置处。可针对输入序列重复过程。
105.深度学习加速器(103)可包含可对两个矩阵操作数执行指令的至少一个矩阵-矩阵单元(121)。两个矩阵操作数可为第一矩阵及第二矩阵。两个矩阵中的每一者具有多个向量。矩阵-矩阵单元(121)可包含经配置以并行操作的多个矩阵-向量单元(141到143)。矩阵-向量单元(141到143)中的每一者经配置以与其它矩阵-向量单元并行地对第一矩阵及来自第二矩阵的一个向量进行操作。此外,矩阵-向量单元(141到143)中的每一者可具有经配置以并行操作的多个向量-向量单元(161到163)。向量-向量单元(161到163)中的每一者经配置以与其它向量-向量单元并行地对来自第一矩阵的向量及对应矩阵-向量单元的共同向量操作数进行操作。此外,向量-向量单元(161到163)中的每一者可具有经配置以并行操作的多个乘累加单元(171到173)。
106.除处理单元(111)之外,深度学习加速器(103)还可具有本地存储器(115)及控制单元(113)。控制单元(113)可从随机存取存储器(105)加载指令(205)及矩阵操作数(例如207)来供处理单元(111)执行。本地存储器可高速缓存由矩阵-矩阵单元使用的矩阵操作数。连接(119)可经配置有在其中矩阵-矩阵单元对另两个矩阵操作数执行运算的时段期间足以将一组矩阵操作数从随机存取存储器(105)加载到本地存储器(115)的带宽。此外,在时段期间,带宽足以将由矩阵-矩阵单元(121)在前一指令执行中产生的结果从本地存储器(115)存储到随机存取存储器(105)。
107.图6展示根据一个实施例的具有经配置有单独存储器存取连接的深度学习加速器(103)及随机存取存储器(105)的集成电路装置(101)。
108.举例来说,图6的集成电路装置(101)的深度学习加速器(103)、随机存取存储器(105)及连接(119)可以类似于图1及/或图5中说明的方式的方式进行配置。
109.图6的集成电路装置(101)具有可用于并发地存取随机存取存储器(105)的两个外部接口(106及107)。
110.举例来说,随机存取存储器(105)可具有可彼此并发且独立地存取的至少两个部分。此类部分可经配置于单独集成电路裸片上或形成于同一集成电路裸片上的存储器胞元的单独平面或块中。一个部分经配置以将输入(211)存储到人工神经网络(ann)(201);且另一部分经配置以存储来自人工神经网络(ann)(201)的输出(213)。两个外部接口(106及107)经配置有分别到用于输入(211)及输出(213)的部分的单独连接(108及109)。因此,集成电路(101)外部的不同装置可使用集成电路装置(101)的单独外部接口(106及107)来并发地存取其随机存取存储器(105)。
111.举例来说,中央处理单元(cpu)的存储器控制器可连接到cpu存储器接口(107)以从人工神经网络(ann)(201)读取先前输出,同时直接存储器存取(dma)控制器可连接到dma控制器接口(106)以并发地将下一输入写入到人工神经网络(ann)(201)。
112.在一个实施例中,连接(108及109)具有单独总线或电线组。因此,外部接口(106及107)在存取随机存取存储器(105)的不同部分的输入(211)及输出(213)时不共享总线或电线。替代地,存取控制器经配置以针对接口(106及107)使用单独缓冲器且针对接口(106及107)使用高带宽连接(119)在随机存取存储器(1050与缓冲器之间传送数据,使得接口(106及107)可并发地服务写入及读取请求。由于连接(119)的带宽基本上高于由连接(108及109)用于集成电路装置(101)的外部接口(106及107)的带宽,因此带宽的一小部分可分配给连接(108及109)。举例来说,接口(106及107)可连接到深度学习加速器(dla)(103)的存储器接口(117)以经由连接(119)存取随机存取存储器(105)。
113.任选地,深度学习加速器(dla)(103)的存储器接口(117)、中央处理单元(cpu)的存储器控制器的接口(107)及接口(106)可经配置以并发地存取随机存取存储器(105)。
114.举例来说,随机存取存储器(105)可经配置有多组输入/输出存储器。每一组可选择性经配置以服务存储器接口(117)或服务外部接口(106及107)。当选择一组输入/输出存储器来服务存储器接口(117)时,连接(119)允许深度学习加速器(dla)(103)存取存储于所述组中的输入(例如211)且将来自人工神经网络(ann)(201)的输出(例如213)存储到所述组。当选择一组输入/输出存储器来服务外部接口(106及107)时,不同存储器区中的输入(例如211)及输出(例如213)可由单独外部接口(106及107)并发地存取。虽然一组输入/输出存储器分配给深度学习加速器(dla)(103)以处理一组输入(例如211)且产生一组对应输出(例如213),但可使外部接口(106及107)并发地存取一或多组输入/输出存储器。
115.在根据一个实施例的方法中,集成电路装置(101)存储人工神经网络(201)的矩阵(207)及指令(205)。指令(205)可由围封于集成电路装置(101)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)。集成电路装置(101)或替代地印刷电路板上的封装计算装置具有随机存取存储器。
116.围封于集成电路装置(101)内的随机存取存储器(105)将第一输入存储到人工神经网络(201);且致使或使用至少一个处理单元(111)执行指令(205)以从存储于随机存取存储器(105)中的第一输入产生第一输出。第一输出存储于随机存取存储器(105)中。
117.随后,围封于集成电路装置(101)内的随机存取存储器(105)进一步将第二输入存储到人工神经网络(201);且致使或使用至少一个处理单元(111)执行指令(205)以从存储于随机存取存储器(105)中的第二输入产生第二输出。
118.当至少一个处理单元(111)执行指令(205)以从第二输入产生第二输出时,外部装置(例如直接存储器存取控制器)通过集成电路装置(101)的第一接口(106)将人工神经网络(201)的第三输入写入到集成电路装置(101)中的随机存取存储器(105)中。同时,另一外部装置(例如中央处理单元)通过集成电路装置(101)的第二接口(107)且与第三输入的写入并发地从随机存取存储器(105)读取第一输出。
119.举例来说,第三输入的写入可通过连接到直接存储器存取控制器的第一接口(106)执行;且第一输出的读取可通过连接到中央处理单元的第二接口(107)执行。
120.举例来说,集成电路装置(101)可围封于集成电路封装内且具有含处理单元(111)、控制单元(113)及本地存储器(115)的深度学习加速器(103)。处理单元(111)包含经配置以执行具有两个矩阵操作数的指令的至少一矩阵-矩阵单元(121)。矩阵-矩阵单元(121)包含经配置以并行操作的多个矩阵-向量单元(141到143)。矩阵-向量单元(141到143)中的每一者包含经配置以并行操作的多个向量-向量单元(161到163)。向量-向量单元(161到163)中的每一者包含经配置以并行操作的多个乘累加单元(171到173)。
121.举例来说,编译器(203)可用于将人工神经网络(201)的描述转换成指令(205)及矩阵(207)以使用深度学习加速器(103)实施人工神经网络(101)。
122.在一个实施方案中,通过第二接口(107)读取第一输出、通过第一接口(106)写入第三输入、深度学习加速器(103)读取第二输入的部分及深度学习加速器(103)将第二输出的部分写入到随机存取存储器中可并行及并发地执行。
123.举例来说,随机存取存储器(105)可具有能够彼此并发且独立地使用的多个部分。第一部分经配置以存储来自人工神经网络(201)的第一输出;第二部分经配置以存储人工神经网络(201)的第三输入;第三部分经配置以存储来自人工神经网络(201)的第二输出;且第四部分经配置以存储人工神经网络(201)的第二输入。当第三及第四部分由深度学习加速器103)用于执行指令(205)时,第一接口及第二接口可并发地分别连接到第一部分及第二部分。
124.举例来说,不同部分可经配置于可彼此独立地并行操作的单独集成电路裸片(或平面或块)上。第一接口及第二接口可不共享到第一部分及第二部分的连接。
125.集成电路装置(101)可围封于单个集成电路封装内,其中第一组连接器经配置以将第一接口(106)耦合到直接存储器存取控制器且第二组连接器经配置以将第二接口(107)耦合到中央处理单元。
126.在一些实施方案中,深度学习加速器(103)具有含到随机存取存储器(105)的高带宽连接(119)的存储器接口(117);且第一接口(106)及第二接口(107)经由深度学习加速器(117)的存储器接口(117)连接到随机存取存储器(105)。
127.图7展示根据一个实施例的具有含摄像头接口(221)的深度学习加速器(103)及随机存取存储器(105)的集成电路装置(101)。
128.举例来说,图7的集成电路装置(101)的深度学习加速器(103)、随机存取存储器(105)及连接(119)可以类似于图1、图5及/或图6中说明的方式的方式进行配置。
129.图7的集成电路装置(101)具有可并发地使用的至少两个外部接口(221及107),包含cpu存储器接口(107)及摄像头接口(221)。
130.图7的集成电路装置(101)中的cpu存储器接口(107)经配置以提供到中央处理单元(cpu)(225)的存储器控制器(227)的连接(229),类似于图6的集成电路装置(101)中的cpu存储器接口(107)。
131.在图7中,cpu存储器接口(107)实施于深度学习加速器(103)中。举例来说,cpu存储器接口(107)的逻辑电路可形成于深度学习加速器(103)的集成电路裸片上;且cpu存储器接口(107)使用深度学习加速器(103)的存储器接口(117)存取随机存取存储器(105)。
132.替代地,cpu存储器接口(107)可与深度学习加速器(103)分离且以图6中说明的方式实施。举例来说,如图6中说明,cpu存储器接口(107)可经配置以使用连接(109)存取随机存取存储器(105),连接(109)与深度学习加速器(103)与随机存取存储器(105)之间的连接(119)分离。图6的集成电路装置(101)还可经修改以具有以类似于cpu存储器接口(107)实施于图7的深度学习加速器(103)中的方式实施于深度学习加速器(dla)(103)中的cpu存储器接口(107)及/或dma存储器接口(106)的逻辑电路。
133.图7的集成电路装置(101)的摄像头接口(221)经配置以提供到含有或采用图像传感器或图像产生器(例如摄像头(223))、雷达、激光雷达、医疗成像设备等的一或多个装置的连接(228)。
134.举例来说,到摄像头(223)的连接(228)可根据移动行业处理器接口(mipi)协议标准实施,包含mipi摄像头串行接口(csi)协议。连接(228)可用于控制摄像头(223)(或另一图像产生器)的成像操作且从摄像头(223)(或另一图像产生器)获得图像数据作为人工神经网络(201)的输入(211)。在一个实施例中,连接(228)是根据支持高性能应用(包含1080p、4k、8k及更高视频及高分辨率摄影)的mipi csi-2标准的串行总线。
135.摄像头接口(221)可用于控制摄像头(223)产生图像数据的操作。举例来说,摄像头接口(221)可用于向摄像头(223)发送调整由摄像头(223)提供的图像数据的分辨率的命令。举例来说,经由摄像头接口(221)发送到摄像头(223)的命令可调整由摄像头(223)提供的图像数据的帧速率及/或曝光时间。举例来说,深度学习加速器(dla)(103)可使用摄像头接口(221)来开始或停止摄像头(223)捕捉及/或传送图像的操作。
136.在一些实施方案中,摄像头接口(221)可用于任选地发出数字放大关注区的命令且因此减少经由连接(228)传送的数据量及由集成电路装置(101)对从摄像头(223)接收的图像数据执行的计算量。
137.在一些实施方案中,摄像头接口(221)可用于任选地发出调整摄像头(223)的视角及/或视野的命令。
138.图7说明其中摄像头接口(221)配置于深度学习加速器(103)中的实施方案。举例来说,摄像头接口(221)的逻辑电路的至少一部分形成于深度学习加速器(103)的集成电路裸片上;且摄像头接口(107)可使用深度学习加速器(103)的存储器接口(117)存取随机存取存储器(105)。
139.举例来说,摄像头接口(221)可通过连接(228)从摄像头(223)接收图像且使图像数据缓冲于随机存取存储器(105)中作为人工神经网络(201)的输入(211)。一旦集成电路装置(101)获得一组图像数据作为输入(211),则深度学习加速器(103)可执行指令(205)以
依类似于图1、图5及/或图6的装置的方式产生输出(213)。
140.指令(205)可任选地包含使控制单元(113)操作摄像头接口(221)且经由连接(228)通过摄像头接口(221)从摄像头(223)获得图像数据作为人工神经网络(201)的输入(211)的指令。
141.在图7中,摄像头接口(221)经配置于深度学习加速器(103)中。替代地,摄像头接口(221)可与深度学习加速器(103)分离且经配置以依类似于dma控制器接口(106)与图6中的深度学习加速器(103)分离的方式使用与深度学习加速器(103)与随机存取存储器(105)之间的连接(119)分离的连接存取随机存取存储器(105)。
142.图6及图7的集成电路装置(101)可经修改以具有三个外部接口:cpu存储器接口(107)、dma控制器接口(106)及摄像头接口(221)。任选地,摄像头接口(221)可包含用于例如与中央处理单元(225)从随机存取存储器(105)检索输出(例如213)并行地将图像数据从摄像头(223)加载到随机存取存储器(105)中的直接存储器存取控制器。摄像头接口(221)及dma控制器接口(106)可任选地共享逻辑电路的部分用于支持直接存储器存取控制器的操作。
143.图8展示根据一个实施例的实施于集成电路装置中的方法。举例来说,图8的方法可实施于图7的集成电路装置(101)中。然而,图8的方法还可实施于类似于图5中说明的封装计算装置但配置于印刷电路板上的替代封装计算装置中。
144.在框301,集成电路装置(101)存储人工神经网络(201)的矩阵(207)及指令(205)。指令(205)可由围封于集成电路装置(101)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)的计算。集成电路装置(101)具有经配置以连接到存储器控制器(227)的第一接口(107)及经配置以连接到图像产生器(例如摄像头(223))、雷达、激光雷达、超声扫描仪或医疗成像设备的第二接口(221)。
145.举例来说,第二接口(221)实施摄像头命令接口协议及/或移动行业处理器接口(mipi)协议。举例来说,第二接口(221)经配置以根据移动行业处理器接口(mipi)摄像头串行接口(csi)协议经由串行总线连接(228)连接到摄像头(223)。
146.在框303,集成电路装置(101)经由第二接口(221)与图像产生器(例如223)通信以接收图像数据作为人工神经网络(201)的输入(221)。
147.在框305,集成电路装置(101)执行指令(205)以根据输入(211)从人工神经网络(201)产生输出(213)。
148.在框307,集成电路装置(101)将来自人工神经网络(201)的输出(213)存储于围封于集成电路装置(101)内的随机存取存储器(105)中。
149.在框309,集成电路装置(101)经由第一接口(107)将输出(213)提供到控制存储器控制器(227)的中央处理单元(225)。
150.举例来说,集成电路装置(101)可使来自图像产生器(例如223)的下一组图像数据经由第二接口(221)且作为人工神经网络(201)的输入缓冲到随机存取存储器(105)中,同时经由第一接口(107)且与所述缓冲并发地从随机存取存储器(105)提供先前根据来自图像产生器(例如223)的前一组图像数据从人工神经网络(201)产生的输出。
151.举例来说,集成电路装置(101)可围封于集成电路封装内。集成电路装置(101)具有含处理单元(111)、控制单元(113)及本地存储器(115)的深度学习加速器(103)。处理单
元(111)包含经配置以执行具有两个矩阵操作数的指令的至少一矩阵-矩阵单元(121);矩阵-矩阵单元(121)包含经配置以并行操作的多个矩阵-向量单元(141到143);矩阵-向量单元中的每一者包含经配置以并行操作的多个向量-向量单元(161到163);且向量-向量单元中的每一者包含经配置以并行操作的多个乘累加单元(171到173)。
152.举例来说,集成电路装置(101)可经由第二接口(221)向图像产生器(例如223)传输命令,其中命令指示图像产生器(例如223)调整由图像产生器(例如223)产生的图像数据的分辨率或帧速率。
153.举例来说,集成电路装置(101)可经由第二接口(221)向图像产生器(例如223)传输另一命令以指示图像产生器(例如223)调整由图像产生器(例如223)产生的图像数据的关注区、视角或视野。
154.本公开包含执行上述方法的方法及设备,其包含执行这些方法的数据处理系统及含有在执行于数据处理系统上时致使系统执行这些方法的指令的计算机可读媒体。
155.典型数据处理系统可包含使微处理器及存储器互连的互连件(例如总线及系统核心逻辑)。微处理器通常耦合到高速缓存存储器。
156.互连件使微处理器及存储器互连在一起且还经由i/o控制器使微处理器及存储器互连到输入/输出(i/o)装置。i/o装置可包含显示装置及/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机及所属领域中已知的其它装置。在一个实施例中,当数据处理系统是服务器系统时,例如打印机、扫描仪、鼠标及/或键盘的一些i/o装置是任选的。
157.互连件可包含通过各种桥接器、控制器及/或适配器彼此连接的一或多个总线。在一个实施例中,i/o控制器包含用于控制usb外围设备的usb(通用串行总线)适配器及/或用于控制ieee-1394外围设备的ieee-1394总线适配器。
158.存储器可包含以下中的一或多者:rom(只读存储器)、易失性ram(随机存取存储器)及非易失性存储器,例如硬盘、快闪存储器等。
159.易失性ram通常实施为需要持续电力来刷新或维持存储器中的数据的动态ram(dram)。非易失性存储器通常为磁性硬盘、磁性光驱、光驱(例如dvd ram)或即使在从系统移除电力之后仍维持数据的其它类型的存储器系统。非易失性存储器也可为随机存取存储器。
160.非易失性存储器可为直接耦合到数据处理系统中的剩余组件的本地装置。还可使用远离系统的非易失性存储器,例如通过网络接口(例如调制解调器或以太网接口)耦合到数据处理系统的网络存储装置。
161.在本公开中,将一些功能及操作描述为由软件代码执行或致使以简化描述。然而,此类表达还用于指定功能由例如微处理器的处理器执行代码/指令导致。
162.替代地或组合地,本文中描述的功能及操作可在用或不用软件指令的情况下使用专用电路系统实施,例如使用专用集成电路(asic)或现场可编程门阵列(fpga)。实施例可在不用软件指令的情况下或结合软件指令使用硬接线电路系统实施。因此,技术既不受限于硬件电路系统与软件的任何特定组合,也不受限于由数据处理系统执行的指令的任何特定来源。
163.虽然一个实施例可经实施于全功能计算机及计算机系统中,但各种实施例能够分
布为呈各种形式的计算产品且能够被应用,不论用于实际实现分布的特定类型的机器或计算机可读媒体为何。
164.所公开的至少一些方面可至少部分体现于软件中。即,技术可响应于其处理器(例如微处理器)执行存储器(例如rom、易失性ram、非易失性存储器、高速缓存或远程存储装置)中所含的指令序列而实施于计算机系统或其它数据处理系统中。
165.经执行以实施实施例的例程可实施为操作系统或特定应用程序、组件、程序、对象、模块或指令序列(称为“计算机程序”)的部分。计算机程序通常包含计算机中的各种存储器及存储装置中在各种时间设置且在由计算机中的一或多个处理器读取及执行时致使计算机执行用于执行涉及各个方面的元件所需的操作的一或多个指令。
166.机器可读媒体可用于存储在由数据处理系统执行时致使系统执行各种方法的软件及数据。可执行软件及数据可经存储于包含例如rom、易失性ram、非易失性存储器及/或高速缓存的各种位置中。此软件及/或数据的部分可经存储于这些存储装置中的任一者中。此外,可从集中式服务器或对等网络获得数据及指令。可在不同时间且在不同通信会话或相同通信会话中从不同集中式服务器及/或对等网络获得数据及指令的不同部分。可在执行应用程序之前完全获得数据及指令。替代地,可仅在需要用于执行时及时地动态获得数据及指令的部分。因此,不要求数据及指令在特定时刻完全在机器可读媒体上。
167.计算机可读媒体的实例包含(但不限于)非暂时性、可记录及非可记录型媒体,例如易失性及非易失性存储器装置、只读存储器(rom)、随机存取存储器(ram)、快闪存储器装置、软盘及其它可换磁盘、磁盘存储媒体、光学存储媒体(例如光盘只读存储器(cd rom)、数字多功能磁盘(dvd)等)等。计算机可读媒体可存储指令。
168.指令还可体现于用于电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)的数字及模拟通信链路中。然而,传播信号(例如载波、红外信号、数字信号等)不是有形机器可读媒体且无法经配置以存储指令。
169.一般来说,机器可读媒体包含提供(即,存储及/或传输)呈可由机器(例如计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式的信息的任何机构。
170.在各种实施例中,硬接线电路系统可结合软件指令用于实施技术。因此,技术既不受限于硬件电路系统与软件的任何特定组合,也不受限于由数据处理系统执行的指令的任何特定来源。
171.以上描述及图式仅供说明且不应被解释为限制。描述众多特定细节来提供充分理解。然而,在某些例子中,未描述众所周知或常规细节以免模糊描述。本公开中参考一个或一实施例不一定是参考相同实施例;且此类参考意味着至少一个。
172.在以上说明中,已参考本公开的特定示范性实施例描述本公开。应明白,可在不背离所附权利要求书中陈述的更广精神及范围的情况下对本公开做出各种修改。说明书及图式应相应地被视作意在说明而非限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献