具有深度学习加速器和随机存取存储器的智能数码相机的制作方法

文档序号:33231831发布日期:2023-02-14 17:53阅读:63来源:国知局
具有深度学习加速器和随机存取存储器的智能数码相机的制作方法
具有深度学习加速器和随机存取存储器的智能数码相机
1.相关申请
2.本技术主张2020年6月19日申请且标题为“具有深度学习加速器和随机存取存储器的智能数码相机(intelligent digital camera having deep learning accelerator and random access memory)”的第16/906,224号美国专利申请,其全部公开内容由此以引用的方式并入本文中。
技术领域
3.本文所公开的至少一些实施例涉及数码相机,且更具体地但不限于由人工神经网络(ann)的集成加速器供电的智能数码相机,所述人工神经网络例如通过机器学习和/或深度学习配置的ann。


背景技术:

4.人工神经网络(ann)使用神经元网络来处理到网络的输入,且产生来自网络的输出。
5.举例来说,网络中的每一神经元接收一组输入。到神经元的一些输入可以是网络中的某些神经元的输出;且到神经元的一些输入可以是提供给神经网络的输入。所述网络中的神经元之间的输入/输出关系表示所述网络中的神经元连接性。
6.举例来说,每一神经元可分别针对其输入具有偏置、激活函数和一组突触权重。激活函数可呈阶跃函数、线性函数、对数s型(log-sigmoid)函数等形式。网络中的不同神经元可具有不同激活函数。
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至8示出根据一些实施例的具有经配置的深度学习加速器和随机存取存储器的数码相机。
22.图9示出根据一个实施例的实施于数码相机中的方法。
具体实施方式
23.本文所公开的至少一些实施例提供数码相机,其具有配置成用较少能量消耗和计算时间执行人工神经网络(ann)的计算的通用集成电路。集成电路包含深度学习加速器(dla)和随机存取存储器。数码相机中产生的图像数据大体上由数码相机中实施的人工神经网络消耗,以产生体积比图像数据小的智能输出。因此,可减小对存储由数码相机产生的图像数据的容量的要求和/或对数码相机与使用数码相机的计算系统之间的通信带宽的要求。举例来说,可训练人工神经网络(ann)以输出特定应用程序中所关注的所辨识事件、图案、特征或分类。所述输出可存储在数码相机的随机存取存储器中、用于产生从数码相机传输到独立计算系统的警告和/或用于选择性地保留和/或传输数码相机中产生的图像数据。
24.深度学习加速器(dla)包含一组通用可编程硬件计算逻辑,其经专门化和/或优化以执行并行向量和/或矩阵计算,包含但不限于向量和/或者矩阵的相乘和累加。
25.此外,深度学习加速器(dla)可包含一或多个算术逻辑单元(alu)以对整数二进制数执行算术和逐位运算。
26.深度学习加速器(dla)可经由一组指令进行编程,以执行人工神经网络(ann)的计算。
27.对向量和矩阵运算的深度学习加速器(dla)的粒度对应于可在由深度学习加速器(dla)执行一个指令期间对其进行操作的向量/矩阵的最大单元。在对向量/矩阵操作数执行预定义操作的指令期间,深度学习加速器(dla)可以并行操作向量/矩阵操作数的元素,以减少与存储器/数据存取相关联的执行时间和/或能量消耗。对深度学习加速器(dla)的粒度的向量/矩阵操作数的操作可用作构建块以对较大大小的向量/矩阵实施计算。
28.典型/实际人工神经网络(ann)的实施涉及具有大于深度学习加速器(dla)的操作粒度的大小的向量/矩阵操作数。为了使用深度学习加速器(dla)实施此类人工神经网络(ann),涉及较大大小的向量/矩阵操作数的计算可分解为深度学习加速器(dla)的粒度的向量/矩阵操作数的计算。深度学习加速器(dla)可以通过指令进行编程,以执行涉及大型向量/矩阵操作数的计算。举例来说,在响应于指令而操控深度学习加速器(dla)的粒度的向量和矩阵时的深度学习加速器(dla)的原子计算能力可经编程以在人工神经网络(ann)中实施计算。
29.在一些实施方案中,深度学习加速器(dla)不具有典型中央处理单元(cpu)的一些逻辑运算能力。然而,深度学习加速器(dla)可配置有充足逻辑单元以处理提供到人工神经网络(ann)的输入数据且根据针对深度学习加速器(dla)产生的一组指令产生人工神经网络(ann)的输出。因此,深度学习加速器(dla)可在中央处理单元(cpu)或另一处理器的极少帮助或无帮助的情况下执行人工神经网络(ann)的计算。任选地,常规通用处理器还可被配置为深度学习加速器(dla)的部分以执行无法使用深度学习加速器(dla)的向量/矩阵处理单元有效地实施的操作,和/或无法由深度学习加速器(dla)的向量/矩阵处理单元执行的操作。
30.典型人工神经网络(ann)可以标准格式(例如,开放神经网络交换(onnx))描述/指定。编译器可用于将人工神经网络(ann)的描述转换成用于深度学习加速器(dla)的一组指令以执行人工神经网络(ann)的计算。编译器可优化所述一组指令以改进深度学习加速器(dla)在实施人工神经网络(ann)时的性能。
31.深度学习加速器(dla)可具有存储向量/矩阵操作数以及向量/矩阵操作的结果的本地存储器,例如寄存器、缓冲器和/或高速缓存器。寄存器中的中间结果可在深度学习加速器(dla)中作为用于后续向量/矩阵操作的操作数进行管线化/移位,以减少存取存储器/数据中的时间和能量消耗,且因此加速实施典型人工神经网络(ann)时的向量/矩阵操作的典型图案。深度学习加速器(dla)中的寄存器、缓冲器和/或高速缓存器的容量通常不足以保持用于实施典型人工神经网络(ann)的计算的整个数据集。因此,耦合到深度学习加速器(dla)的随机存取存储器配置成提供用于实施典型人工神经网络(ann)的改进的数据存储能力。举例来说,深度学习加速器(dla)从随机存取存储器加载数据和指令且将结果存储回到随机存取存储器中。
32.深度学习加速器(dla)与随机存取存储器之间的通信带宽配置成优化或最大化深度学习加速器(dla)的计算能力的利用。举例来说,可在深度学习加速器(dla)与随机存取存储器之间提供高通信带宽,使得可将向量/矩阵操作数从随机存取存储器加载到深度学习加速器(dla)中,且在大致等于深度学习加速器(dla)的时间的时间周期内将结果存储回到随机存取存储器中,以对向量/矩阵操作数执行计算。深度学习加速器(dla)的粒度可配置成增加由深度学习加速器(dla)执行的计算的量与向量/矩阵操作数的大小之间的比率,使得深度学习加速器(dla)与随机存取存储器之间的数据存取业务可减少,这可降低对深度学习加速器(dla)与随机存取存储器之间的通信带宽的要求。因此,可减少或消除在数据/存储器存取方面的瓶颈。
33.数码相机可在连续操作的时间段内产生大量数据。将由数码相机产生的图像数据存储和/或上传到服务器、云平台或中央处理单元(cpu)以供处理需要大数据存储容量和/
或高通信带宽。
34.在至少一些实施例中,数码相机配置成具有深度学习加速器(dla)和随机存取存储器,所述随机存取存储器具有人工神经网络(ann)以用于对由数码相机捕捉的图像数据进行智能本地处理。
35.举例来说,为了减少数据存储需求和/或数据通信业务,在数码相机中实施的人工神经网络(ann)可将图像数据转换为特定应用程序所关注的推断结果,且因此消除存储和/或传送由数码相机的图像传感器捕捉的大部分或全部图像数据的需要。
36.举例来说,可训练人工神经网络(ann)以辨识在应用程序中可能受关注的图像中的物件和/或事件,且将图像转换为在由数码相机捕捉的图像中出现的物件和事件的描述或识别。物件和事件的描述或识别可用作图像中的内容的高级概述,所述高级概述可用作到计算机系统中运行的应用程序的输入,所述计算机系统使用数码相机作为输入装置。此类计算机系统可为移动计算机、智能手机、个人媒体播放器、个人计算机、服务器计算机或服务器计算机集群。与以图形方式呈现对应物件和事件的静态图像或视频图像相比,使用人工神经网络辨识的图像中的内容的此类高级概述使用显著较小量的数据存储容量和/或数据传输带宽。
37.任选地,在异常/例外情况或场景中的未辨识物件和/或事件的图像可传输到独立计算机系统以供进一步处理。举例来说,人类操作者可检测图像以识别在异常/例外情况或场景的图像中捕捉的物件和事件;且结果可用于进一步训练人工神经网络(ann)(例如,使用监督机器学习技术)以改进其识别物件和事件的能力。随后,可将经进一步训练的人工神经网络(ann)加载到数码相机中以进一步减少需要在数码相机外部存储和/或处理的数据。
38.任选地,数码相机可存储已转换成概述或描述的图像流持续预定时间段。可用展示物件和事件的图像的部分的概述或描述和识别来对图像流进行注释。在预定时间段内,接收概述或描述作为输入的应用程序可选择所关注的物件或事件并请求数码相机传输所述物件或事件的相关图像。
39.在一些应用中,数码相机配置成针对满足预定选择标准的物件和/或事件监测图像流。当在人工神经网络(ann)的输出中检测到此类物件和/或事件时,数码相机从图像流中选择代表性部分以用于存储和/或用于上传到独立计算机。通过由人工神经网络(ann)执行的分析,可将图像流中的信息压缩成概述,所述概述包含所关注物件的识别、物件的代表性图像和图像流中所捕捉的景物中的物件的活动的描述。关于未关注的所辨识物件的信息可减少和/或丢弃。图像流的此类概述可实现优于常规的有损或无损图像/视频压缩技术的压缩比;且在数码相机的许多应用中,此类概述可足够有用和/或比由数码相机的图像传感器产生的原始图像流更有用。
40.举例来说,代替将图像流传输到独立计算机系统以供处理,数码相机可将图像流中的内容的描述提供到计算机系统以供处理。所辨识图像的代表性图像可与描述一起传输,或在计算机系统发送对此类图像的请求时提供。此外,计算机系统可任选地请求数码相机传输帧或含有所关注的物件或事件的图像流的区段。
41.图像流中的内容的描述可呈物件、事件、特征、分类、图像中的位置、图像中的大小等的识别的形式。
42.举例来说,数码相机配置有图像传感器以监测用户的健康状况。具有深度学习加
速器和随机存取存储器的集成电路装置配置于数码相机中以在本地处理传感器数据。可自动丢弃确定不与健康问题相关联的用户的图像以减少存储大量原始图像数据的需要且保护用户的隐私。
43.可通过存储可由深度学习加速器(dla)执行的人工神经网络(ann)的模型来自定义数码相机以用于智能监测的特定应用。举例来说,可使用编译器根据人工神经网络(ann)的描述转换模型;且所述模型包含人工神经网络(ann)的权重/核矩阵以及具有矩阵操作数的指令,所述指令可由深度学习加速器(dla)执行以基于权重/核矩阵实施人工神经网络(ann)的计算。
44.举例来说,数码相机可配置于医疗设施中以监测患者的状况。不同患者可能具有不同健康问题,所述不同健康问题需要监测以检测不同症状的发作。因此,可通过安装经训练以用于检测与患者相关的症状的人工神经网络(ann)的模型来针对当前所监测的患者自定义数码相机。
45.在通过将模型存储于随机存取存储器中以执行人工神经网络(ann)的计算自定义数码相机之后,由数码相机中的图像传感器产生的原始图像数据作为输入提供到人工神经网络(ann);且人工神经网络(ann)的输出可用以产生警告、选择性地保留和/或上报传感器数据和/或提供为数码相机的主要输出。
46.举例来说,数码相机可包含无线收发器(例如,用于无线个域网的通信装置,例如蓝牙收发器,或用于无线局域网的通信装置,例如wifi收发器)。通过无线连接,可将人工神经网络(ann)的输出报告到独立计算机系统,例如智能手机、个人媒体播放器、移动计算机、个人计算机、物联网(iot)的集线器和/或服务器计算机。
47.替代地,数码相机可具有端口,以用于到独立计算机系统的有线连接以在某一时间段内报告人工神经网络(ann)的输出或下载数码相机中存储的输出。
48.举例来说,可训练人工神经网络(ann)以对图像是否受特定应用程序关注进行分类。人工神经网络(ann)的输出可用于选择性地存储图像数据以用于后续分析和/或下载。
49.举例来说,数码相机可将使用人工神经网络(ann)在数码相机本地产生的智能输出提供到计算机系统且不需要来自计算机系统的辅助。举例来说,数码相机可用于监测健康相关事件且在检测到此类事件时产生警告。举例来说,数码相机可用于监测与健康问题的诊断有关的指示且记录此类指示的出现和/或相关联数据以供进一步分析。举例来说,数码相机可用于监测用户的跌倒且在检测到用户跌倒时产生请求帮助的呼叫。举例来说,数码相机可用于检测数码相机的用户周围的物件的外观,且提供物件的识别以供进一步处理。举例来说,数码相机可用于检测用户的动作且将所述动作的识别提供到独立计算机(例如,智能手机、游戏控制台、个人媒体播放器、个人计算机、机顶盒),以控制独立计算机中的操作。
50.数码相机中的随机存取存储器可包含配置成将输入存储到人工神经网络(ann)的部分,以及配置成存储来自人工神经网络(ann)的输出的另一部分。由数码相机中的传感器产生的数据可以循环方式存储在随机存取存储器的输入部分中。因此,用于数码相机的操作的最新周期的原始传感器数据可在随机存取存储器的输入部分中找到。深度学习加速器(dla)可将输入部分中的数据实时地转换为存储在随机存取存储器的输出部分中的推断结果。
51.举例来说,到人工神经网络(ann)的图像数据流可以一系列输入数据集的形式配置。每一输入数据集是用于在时隙期间到人工神经网络(ann)的一组输入。在深度学习加速器(dla)正在根据当前的一组输入计算输出时,控制器可将下一组输入存储到随机存取存储器中;且控制器可同时从随机存取存储器检索针对先前的一组输入产生的输出。
52.因此,可在数码相机本地执行到人工神经网络(ann)的图像数据的准备和处理任务以减少传输到独立计算机系统的数据。此类布置可减少与从数码相机传输大量传感器数据相关联的电力消耗,且改进用于数码相机的用户的隐私保护。
53.此外,神经形态存储器可用于实施矩阵/向量相乘和求和的计算以减少深度学习加速器(dla)的电力消耗。
54.举例来说,可使用配置成经由模拟电路执行乘累加(mac)操作的忆阻器的纵横阵列来实施神经形态存储器。在纵横阵列中通过一组忆阻器穿过字线到位线的电流在位线中相加,其对应于累积运算。电流对应于施加在字线上的电压和与忆阻器的电阻相关联的参数的相乘,其对应于相乘运算。可将位线中的电流与阈值相比较以确定由位线表示的神经元是否在电流输入下激活。忆阻器阵列可分别连接到位线,且编程成具有对应于神经元的激活水平阈值的阈值。电流检测器可配置成用于连接到位线的输出的每一忆阻器,以确定位线中的电流电平是否对应于超出忆阻器的阈值的电平。
55.图1示出根据一个实施例的具有经配置的深度学习加速器(103)和随机存取存储器(105)的集成电路装置(101)。
56.在图1中的深度学习加速器(103)包含处理单元(111)、控制单元(113)和本地存储器(115)。当向量和矩阵操作数在本地存储器(115)中时,控制器单元(113)可使用处理单元(111)以根据指令执行向量和矩阵运算。此外,控制器单元(113)可通过存储器接口(117)和高速/带宽连接(119)从随机存取存储器(105)加载指令和操作数。
57.集成电路装置(101)配置成利用存储器控制器接口(107)的引脚或触点围封在集成电路封装内。
58.存储器控制器接口(107)配置成支持标准存储器存取协议,使得集成电路装置(101)以与不具有深度学习加速器(dla)(103)的常规随机存取存储器装置相同的方式表现为典型存储器控制器。举例来说,集成电路装置(101)外部的存储器控制器可使用标准存储器存取协议通过存储器控制器接口(107)存取集成电路装置(101)中的随机存取存储器(105)。
59.集成电路装置(101)配置有在围封于集成电路装置(101)内的随机存取存储器(105)与深度学习加速器(dla)(103)之间的高带宽连接(119)。连接(119)的带宽高于随机存取存储器(105)与存储器控制器接口(107)之间的连接(109)的带宽。
60.在一个实施例中,存储器控制器接口(107)和存储器接口(117)两者配置成经由同一组总线或电线存取随机存取存储器(105)。因此,用以存取随机存取存储器(105)的带宽在存储器接口(117)与存储器控制器接口(107)之间共享。替代地,存储器控制器接口(107)和存储器接口(117)配置成经由单独一组总线或电线存取随机存取存储器(105)。任选地,随机存取存储器(105)可包含可经由连接(119)同时存取的多个区段。举例来说,当存储器接口(117)正存取随机存取存储器(105)的区段时,存储器控制接口(107)可同时存取随机存取存储器(105)的另一区段。举例来说,不同区段可配置于不同集成电路裸片和/或存储
器单元的不同平面/排组上;且可并行存取不同区段以增加存取随机存取存储器(105)时的处理量。举例来说,存储器控制器接口(107)配置成一次存取预定大小的一个数据单元;且存储器接口(117)配置成一次存取多个数据单元,每一数据单元为相同预定大小。
61.在一个实施例中,随机存取存储器(105)和集成电路装置(101)配置于不同集成电路裸片上,所述不同集成电路裸片配置于同一集成电路封装内。此外,随机存取存储器(105)可配置于允许同时并行存取多个数据元素的一或多个集成电路裸片上。
62.在一些实施方案中,可经由连接(119)并行存取的向量或矩阵的数据元素的数目对应于对向量或矩阵操作的深度学习加速器(dla)的粒度。举例来说,当处理单元(111)可并行地在数个向量/矩阵元素上操作时,连接(119)配置成经由连接(119)并行地加载或存储相同数目或所述数目的倍数的元素。
63.任选地,可基于深度学习加速器(dla)(103)的处理速度来配置连接(119)的数据存取速度。举例来说,在一定量的数据和指令已经加载到本地存储器(115)中之后,控制单元(113)可使用处理单元(111)执行指令以对数据进行操作以产生输出。在用以产生输出的处理的时间周期内,连接(119)的存取带宽允许将相同量的数据和指令加载到本地存储器(115)中以用于下一操作,且将相同量的输出存储回到随机存取存储器(105)。举例来说,虽然控制单元(113)使用本地存储器(115)的一部分处理数据且产生输出,但存储器接口(117)可将先前操作的输出从本地存储器(115)的另一部分卸载到随机存取存储器(105)中,且将操作数数据和指令加载到所述本地存储器的另一部分中。因此,深度学习加速器(dla)的利用率和性能不因连接(119)的带宽而受限或降低。
64.随机存取存储器(105)可用于存储人工神经网络(ann)的模型数据且用于缓冲人工神经网络(ann)的输入数据。模型数据并不频繁地改变。模型数据可包含由用于深度学习加速器(dla)的编译器产生的输出以实施人工神经网络(ann)。模型数据通常包含在人工神经网络(ann)的描述中使用的矩阵和针对深度学习加速器(dla)(103)产生的指令,以基于深度学习加速器(dla)(103)的粒度的向量/矩阵操作来执行人工神经网络(ann)的向量/矩阵操作。指令不仅对人工神经网络(ann)的向量/矩阵操作进行操作,而且对人工神经网络(ann)的输入数据进行操作。
65.在一个实施例中,当在随机存取存储器(105)中加载或更新输入数据时,深度学习加速器(dla)(103)的控制单元(113)可自动地执行人工神经网络(ann)的指令以产生人工神经网络(ann)的输出。将输出存储到随机存取存储器(105)中的预定义区中。深度学习加速器(dla)(103)可执行指令而无需来自中央处理单元(cpu)的帮助。因此,可减少或消除用于深度学习加速器(dla)(103)与集成电路装置(101)外部的处理器(例如,中央处理单元(cpu))之间的协调的通信。
66.任选地,可经由互补金属氧化物半导体(cmos)实施深度学习加速器(dla)(103)的逻辑电路。举例来说,随机存取存储器(105)的存储器单元的阵列下cmos(cua)技术可用于实施深度学习加速器(dla)(103)的逻辑电路,包含处理单元(111)和控制单元(113)。替代地,随机存取存储器(105)的存储器单元阵列中的cmos技术可用于实施深度学习加速器(dla)(103)的逻辑电路。
67.在一些实施方案中,深度学习加速器(dla)(103)和随机存取存储器(105)可实施于单独集成电路裸片上,且使用用于增加深度学习加速器(dla)(103)与随机存取存储器
(105)之间的数据带宽的硅穿孔(tsv)进行连接。举例来说,深度学习加速器(dla)(103)可形成于现场可编程门阵列(fpga)或专用集成电路(asic)的集成电路裸片上。
68.替代地,深度学习加速器(dla)(103)和随机存取存储器(105)可配置于单独集成电路封装中且经由用于并行通信的印刷电路板(pcb)上的多个点到点连接进行连接,且因此增加数据传送带宽。
69.随机存取存储器(105)可为易失性存储器或非易失性存储器,或易失性存储器与非易失性存储器的组合。非易失性存储器的实例包含快闪存储器、基于与非(nand)逻辑门形成的存储器单元、或非(nor)逻辑门、相变存储器(pcm)、磁性存储器(mram)、电阻式随机存取存储器、交叉点存储器和存储器装置。交叉点存储器装置可以使用无晶体管存储器元件,所述无晶体管存储器元件中的每一个具有一起堆叠成列的存储器单元和选择器。存储器元件列经由在垂直方向上延伸的两个电线排布来连接,其中在层中的一个方向上延伸的一个排布的电线位于存储器元件列上方,且另一排布的电线在另一方向上延伸且位于存储器元件列下方。可个别地在两个层中的每一者上的一个电线的交叉点处选择每一存储器元件。交叉点存储器装置是快速且非易失性的,且可用作通用存储器池以用于处理和存储。非易失性存储器的其它实例包含只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)和电子可擦除可编程只读存储器(eeprom)存储器等。易失性存储器的实例包含动态随机存取存储器(dram)和静态随机存取存储器(sram)。
70.举例来说,非易失性存储器可配置成实施随机存取存储器(105)的至少一部分。随机存取存储器(105)中的非易失性存储器可用于存储人工神经网络(ann)的模型数据。因此,在集成电路装置(101)断电并重新启动之后,不必将人工神经网络(ann)的模型数据重新加载到集成电路装置(101)中。此外,非易失性存储器可为可编程/可重写的。因此,可更新或替换集成电路装置(101)中的人工神经网络(ann)的模型数据以实施更新人工神经网络(ann)或另一人工神经网络(ann)。
71.深度学习加速器(dla)(103)的处理单元(111)可包含向量-向量单元、矩阵-向量单元和/或矩阵-矩阵单元。下文结合图2至4论述配置成执行向量-向量操作、矩阵-向量操作和矩阵-矩阵操作的单元的实例。
72.图2示出根据一个实施例的配置成执行矩阵-矩阵操作的处理单元(121)。举例来说,图2的矩阵-矩阵单元(121)可用作图1的深度学习加速器(dla)(103)的处理单元(111)中的一个。
73.在图2中,矩阵-矩阵单元(121)包含多个内核缓冲器(131到133)和多个映射排组(151到153)。映射排组(151到153)中的每一个存储矩阵操作数的一个向量,所述矩阵操作数具有分别存储于映射排组(151到153)中的多个向量;且内核缓冲器(131到133)中的每一个存储另一矩阵操作数的一个向量,所述另一矩阵操作数具有分别存储于内核缓冲器(131到133)中的多个向量。矩阵-矩阵单元(121)配置成使用并行操作的多个矩阵-向量单元(141到143)对两个矩阵操作数的元素执行相乘和累加运算。
74.纵横开关(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)中的向量操作数执行相乘运算。
75.在图2中的矩阵-向量单元(141到143)中的每一个可以如图3中所示的方式实施。
76.图3示出根据一个实施例的配置成执行矩阵-向量操作的处理单元(141)。举例来说,图3的矩阵-向量单元(141)可用作图2的矩阵-矩阵单元(121)中的矩阵-向量单元中的任一个。
77.在图3中,映射排组(151到153)中的每一个以类似于图2的映射排组(151到153)的方式存储矩阵操作数的一个向量,所述矩阵操作数具有分别存储于映射排组(151到153)中的多个向量。图3中的纵横开关(123)将向量从映射排组(151)分别提供到向量-向量单元(161到163)。存储于内核缓冲器(131)中的相同向量提供到向量-向量单元(161到163)。
78.向量-向量单元(161到163)同时操作以计算分别存储于映射排组(151到153)中的对应向量操作数乘以存储于内核缓冲器(131)中的相同向量操作数的运算。举例来说,向量-向量单元(161)对存储于映射排组(151)中的向量操作数和存储于内核缓冲器(131)中的向量操作数执行相乘运算,而向量-向量单元(163)同时对存储于映射排组(153)中的向量操作数和存储于内核缓冲器(131)中的向量操作数执行相乘运算。
79.当图3的矩阵-向量单元(141)实施于图2的矩阵-矩阵单元(121)中时,矩阵-向量单元(141)可使用矩阵-矩阵单元(121)的映射排组(151到153)、纵横开关(123)和内核缓冲器(131)。
80.图3中的每一向量-向量单元(161到163)可以如图4中所示的方式实施。
81.图4示出根据一个实施例的配置成执行向量-向量操作的处理单元(161)。举例来说,图4的向量-向量单元(161)可用作图3的矩阵-向量单元(141)中的向量-向量单元中的任一个。
82.在图4中,向量-向量单元(161)具有多个乘累加(mac)单元(171到173)。乘累加(mac)单元(171到173)中的每一个可接收两个数字作为操作数,执行这两个数字的相乘,且将相乘的结果与乘累加(mac)单元中维持的总和相加。
83.向量缓冲器(181和183)中的每一个存储数字的列表。各自来自向量缓冲器(181和183)中的一个的一对数字可作为输入提供到乘累加(mac)单元(171到173)中的每一个。乘累加(mac)单元(171到173)可并行地从向量缓冲器(181和183)接收多对数字,且并行地执行乘累加(mac)运算。来自乘累加(mac)单元(171到173)的输出存储到移位寄存器(175)中;且累加器(177)计算移位寄存器(175)中的结果的总和。
84.当图4的向量-向量单元(161)实施于图3的矩阵-向量单元(141)中时,向量-向量单元(161)可使用映射排组(例如,151或153)作为一个向量缓冲器(181),且使用矩阵-向量单元(141)的内核缓冲器(131)作为另一向量缓冲器(183)。
85.向量缓冲器(181和183)可具有相同长度以存储相同数目/计数的数据元素。所述长度可等于向量-向量单元(161)中的乘累加(mac)单元(171到173)的计数或所述计数的倍
数。当向量缓冲器(181和183)的长度是乘累加(mac)单元(171到173)的计数的倍数时,等于乘累加(mac)单元(171到173)的计数的数目的输入对可在每一迭代中作为输入从向量缓冲器(181和183)提供到乘累加(mac)单元(171到173);且向量缓冲器(181和183)通过多个迭代将其元素馈送到乘累加(mac)单元(171到173)中。
86.在一个实施例中,深度学习加速器(dla)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以供矩阵-矩阵单元(121)使用随机存取存储器(105)的部分作为映射排组(151到153)和内核缓冲器(131到133)。
87.在另一实施例中,映射排组(151到153)和内核缓冲器(131到133)实施于深度学习加速器(dla)(103)的本地存储器(115)的一部分中。在当前操作循环中矩阵-矩阵单元(121)正使用实施于深度学习加速器(dla)(103)的本地存储器(115)的不同部分中的映射排组(151到153)和内核缓冲器(131到133)执行计算的同时,深度学习加速器(dla)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以将矩阵-矩阵单元(121)的下一操作循环的矩阵操作数加载到本地存储器(115)的另一部分中。
88.图5示出根据一个实施例的配置成自主地应用到经训练人工神经网络的输入的深度学习加速器和随机存取存储器。
89.已通过机器学习(例如,深度学习)训练的人工神经网络(ann)(201)可用标准格式(例如,开放神经网络交换(onnx))描述。用标准格式描述经训练ann(201)会识别人工神经元及其连接性的性质。
90.在图5中,通过产生用于深度学习加速器(dla)(103)的指令(205)和对应于人工神经元及其连接性的性质的矩阵(207),深度学习加速器(dla)编译器(203)转换经训练ann(201)。由dla编译器(203)根据经训练ann(201)产生的指令(205)和矩阵(207)可存储于用于深度学习加速器(dla)(103)的随机存取存储器(105)中。
91.举例来说,随机存取存储器(105)和深度学习加速器(dla)(103)可以如图1的集成电路装置(101)中的方式经由高带宽连接(119)而连接。图5的基于指令(205)和矩阵(207)的自主计算可实施于图1的集成电路装置(101)中。替代地,随机存取存储器(105)和深度学习加速器(dla)(103)可配置于具有平行延伸的多个点对点串行总线以实施连接(119)的印刷电路板上。
92.在图5中,在dla编译器(203)的结果存储于随机存取存储器(105)中之后,应用经训练的ann(201)以处理对经训练的ann(201)的输入(211)以产生经训练ann(213)的对应输出(213)可以通过随机存取存储器(105)中的输入(211)的存在或在随机存取存储器(105)中提供的另一指示来触发。
93.作为响应,深度学习加速器(dla)(103)执行指令(205)以组合输入(211)和矩阵(207)。指令(205)的执行可包含针对深度学习加速器(dla)(103)的一或多个矩阵-矩阵单元(例如,121)的映射排组(151到153)产生映射矩阵。
94.在一些实施例中,到ann(211)的输入呈初始映射矩阵的形式。可从随机存取存储器(105)检索初始映射矩阵的部分作为存储于矩阵-矩阵单元(121)的映射排组(151到153)中的矩阵操作数。替代地,dla指令(205)还包含用于深度学习加速器(dla)(103)根据输入(211)产生初始映射矩阵的指令。
95.根据dla指令(205),深度学习加速器(dla)(103)将矩阵操作数加载到其矩阵-矩
阵单元(121)的内核缓冲器(131到133)和映射排组(151到153)中。矩阵-矩阵单元(121)对矩阵操作数执行矩阵计算。举例来说,dla指令(205)根据深度学习加速器(dla)(103)的计算粒度(例如,作为矩阵操作数在矩阵-矩阵单元(121)中加载的矩阵的大小/维度)将经训练ann(201)的矩阵计算分解,且将输入特征映射应用于一层人工神经元的内核以产生输出作为用于下一层人工神经元的输入。
96.在根据指令(205)执行的经训练的ann(201)的计算的完成之后,深度学习加速器(dla)(103)即刻在随机存取存储器(105)中的预定义位置或在随机存取存储器(105)中提供以触发计算的指示中指定的位置存储ann(201)的输出(213)。
97.当图5的技术实施于图1的集成电路装置(101)中时,连接到存储器控制器接口(107)的外部装置可将输入(211)写入到随机存取存储器(105)中,且触发由深度学习加速器(dla)(103)将输入(211)应用于经训练ann(201)的自主计算。在某一时间周期之后,输出(213)在随机存取存储器(105)中可用;且外部装置可经由集成电路装置(101)的存储器控制器接口(107)读取输出(213)。
98.举例来说,随机存取存储器(105)中的预定义位置可配置成存储触发深度学习加速器(dla)(103)对指令(205)的自主执行的指示。所述指示可任选地包含随机存取存储器(105)内的输入(211)的位置。因此,在处理输入(211)的指令(205)的自主执行期间,外部装置可检索在指令(205)的前一运行期间产生的输出,和/或存储另一组输入以用于指令(205)的下一运行。
99.任选地,随机存取存储器(105)中的又一预定义位置可配置成存储指令(205)的当前运行的进展状态的指示。此外,所述指示可包含指令(205)的当前运行的完成时间的预测(例如,基于指令(205)的先前运行而估计)。因此,外部装置可在合适的时间窗口检查完成状态以检索输出(213)。
100.在一些实施例中,随机存取存储器(105)配置有足够容量以存储多组输入(例如,211)和输出(例如,213)。每一组可配置在随机存取存储器(105)中的预定时隙/区域中。
101.深度学习加速器(dla)(103)可自主地执行指令(205)以根据存储于随机存取存储器(105)中的矩阵(207)从输入(211)产生输出(213),而无需来自位于集成电路装置(101)外部的处理器或装置的帮助。
102.在根据一个实施例的方法中,可使用计算装置(例如,101)到存储器控制器的接口(107)存取计算装置(例如,101)的随机存取存储器(105)。计算装置(例如,101)可具有配置成至少对矩阵操作数执行计算的处理单元(例如,111),所述矩阵操作数例如存储于映射排组(151到153)中的矩阵操作数和存储于内核缓冲器(131到133)中的矩阵操作数。
103.举例来说,计算装置(例如,101)可围封于集成电路封装内;且一组连接可将接口(107)连接到位于集成电路封装外部的存储器控制器。
104.可由处理单元(例如,111)执行的指令(205)可通过接口(107)写入到随机存取存储器(105)中。
105.可通过接口(107)将人工神经网络(201)的矩阵(207)写入到随机存取存储器(105)中。矩阵(207)识别人工神经网络(201)的性质和/或状态。
106.任选地,随机存取存储器(105)的至少一部分是非易失性的且配置成存储指令(205)和人工神经网络(201)的矩阵(07)。
107.可通过接口(107)将对人工神经网络的第一输入(211)写入到随机存取存储器(105)中。
108.在随机存取存储器(105)中提供指示以使处理单元(111)开始指令(205)的执行。响应于所述指示,处理单元(111)执行将第一输入(211)与人工神经网络(201)的矩阵(207)组合的指令以从人工神经网络(201)产生第一输出(213)且将第一输出(213)存储于随机存取存储器(105)中。
109.举例来说,所述指示可为随机存取存储器(105)中的第一输入(211)的地址;且所述指示可存储于随机存取存储器(105)中的预定位置以引起用于由所述地址识别的输入(211)的指令(205)的执行的发起。任选地,所述指示还可包含用于存储输出(213)的地址。
110.第一输出(213)可通过接口(107)从随机存取存储器(105)读取。
111.举例来说,计算装置(例如,101)可具有形成于第一集成电路裸片上的深度学习加速器(103)和形成于一或多个第二集成电路裸片上的随机存取存储器(105)。第一集成电路裸片与一或多个第二集成电路裸片之间的连接(119)可包含硅穿孔(tsv)以提供用于存储器存取的高带宽。
112.举例来说,可使用编译器(203)将人工神经网络(201)的描述转换为指令(205)和矩阵(207)。存储于随机存取存储器(105)中的指令(205)和矩阵(207)以及深度学习加速器(103)的组合提供人工神经网络(201)的自主实施方案,其可将对人工神经网络(201)的输入(211)自动转换为其输出(213)。
113.举例来说,在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第一输入(211)产生第一输出(213)的时间周期期间,可通过接口(107)将对人工神经网络(201)的第二输入写入到随机存取存储器(105)中的替代位置。在随机存取存储器(105)中存储第一输出(213)之后,可在随机存取存储器中提供指示以使深度学习加速器(103)再次开始指令的执行且从第二输入产生第二输出。
114.在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第二输入产生第二输出的时间周期期间,可通过接口(107)从随机存取存储器(105)读取第一输出(213);且可将另一输入写入到随机存取存储器中以代替第一输入(211)或在不同位置写入。可针对一系列输入重复所述过程。
115.深度学习加速器(103)可包含可对两个矩阵操作数执行指令的至少一个矩阵-矩阵单元(121)。所述两个矩阵操作数可为第一矩阵和第二矩阵。两个矩阵中的每一个具有多个向量。矩阵-矩阵单元(121)可包含配置成并行地操作的多个矩阵-向量单元(141到143)。矩阵-向量单元(141到143)中的每一个配置成与其它矩阵-向量单元并行地对第一矩阵和来自第二矩阵的一个向量进行操作。此外,矩阵-向量单元(141到143)中的每一个可具有配置成并行地操作的多个向量-向量单元(161到163)。向量-向量单元(161到163)中的每一个配置成与其它向量-向量单元并行地对来自第一矩阵的向量和对应矩阵-向量单元的共同向量操作数进行操作。此外,向量-向量单元(161到163)中的每一个可具有配置成并行地操作的多个乘累加单元(171到173)。
116.除处理单元(111)之外,深度学习加速器(103)还可具有本地存储器(115)和控制单元(113)。控制单元(113)可从随机存取存储器(105)加载指令(205)和矩阵操作数(例如,207)以供处理单元(111)执行。本地存储器可高速缓存由矩阵-矩阵单元使用的矩阵操作
数。连接(119)可配置有在其中矩阵-矩阵单元对两个其它矩阵操作数执行操作的时间周期期间足以将一组矩阵操作数从随机存取存储器(105)加载到本地存储器(115)的带宽。此外,在所述时间周期期间,带宽足以将在先前指令执行中由矩阵-矩阵单元(121)产生的结果从本地存储器(115)存储到随机存取存储器(105)。
117.深度学习加速器(103)和随机存取存储器(105)可配置于数码相机中以将图像数据转换为由人工神经网络从图像数据辨识的内容的描述。举例来说,数码相机可用于监测用户或位置的情况和/或周围环境以产生警告和/或选择性地存储图像数据。
118.举例来说,数码相机可具有用于到独立计算机系统的有线或无线通信连接的收发器,所述独立计算机系统例如移动装置、智能手机、个人媒体播放器、个人计算机、机顶盒、物联网(iot)的集线器、服务器计算机等。数码相机可使用所述连接来提供由人工神经网络(201)识别的所辨识项目或事件的识别。独立计算机系统进一步处理识别以产生警告、提供显示、选择性地请求来自数码相机的图像数据和/或选择性地存储图像数据。
119.数码相机可经由通过收发器接收人工神经网络(201)的矩阵(207)和指令(205)且将其存储到随机存取存储器(105)中而被自定义、更新和/或升级。
120.经由执行指令(205)的深度学习加速器(103)实施的人工神经网络(201)将来自图像传感器的图像流转换成推断结果。转换改进了数码相机的输出的质量、降低了到计算机系统的连接的通信带宽要求和/或减少了计算机系统的计算工作负荷。
121.图6至8示出根据一些实施例的具有经配置的深度学习加速器(103)和随机存取存储器(105)的数码相机(191)。
122.图6、7或8中的数码相机(191)包含图像传感器(102)。图像传感器的实例包含电荷耦合装置(ccd)图像传感器和互补金属氧化物半导体(cmos)图像传感器。图像传感器(102)可形成于集成电路裸片上。
123.在图6中,集成电路装置(101)不仅包含深度学习加速器(103)和随机存取存储器(105),而且包含图像传感器(102)、控制器(107)和收发器(106)的逻辑电路。
124.举例来说,图像传感器(102)、控制器(107)和收发器(106)可形成于集成电路裸片上,所述集成电路裸片堆叠在随机存取存储器(105)的集成电路裸片上且与其连接。因此,由图像传感器(102)产生的图像数据可由控制器(107)存储到随机存取存储器(105)中,作为到使用深度学习加速器(103)实施的人工神经网络(201)的输入(211)。
125.替代地,图像传感器(102)可形成于与控制器(107)和/或收发器(106)分离的集成电路裸片上。
126.在一些实施方案中,图像传感器(102)含有状态机,所述状态机以循环方式将图像传感器(102)中产生的图像数据写入到用于到人工神经网络(201)的输入(211)的预定区域中。举例来说,一旦状态机被指示进行操作,图像传感器就捕捉图像帧、将图像存储在用于输入(211)的预定区域中的时隙中且捕捉图像的下一帧。后续帧存储在后续时隙中。当使用用于输入(211)的预定区域中的最后一个时隙时,状态机返回将后续帧存储在第一时隙中,其擦除/覆写预定区域中的最旧帧。接着将另一后续帧存储在含有最旧帧的后续时隙中。
127.在一些实施方案中,图像传感器(102)的状态机可通过一组硅穿孔(tsv)将图像数据写入到随机存取存储器(105),而不穿过控制器(107)。
128.图像传感器(102)可在集成电路装置(101)的顶部部分上配置有允许光穿过数码
相机(191)的镜头(227)到达图像传感器(102)的开口。集成电路装置(102)的连接器(例如,引脚或触点)可配置在集成电路装置(101)的底部或集成电路装置(101)的侧面。
129.图6的集成电路装置(101)具有控制器(107),所述控制器配置成经由集成电路装置(101)中的连接(104)控制图像传感器(102)的操作。可例如使用微控制器或定序器实施控制器(107),所述微控制器或定序器控制图像传感器(102)的操作的时序且将传感器数据/测量值加载到随机存取存储器(105)中。
130.任选地,控制器(107)可使用运行存储于随机存取存储器(105)中的应用程序(215)的微处理器实施为固件,以协图像传感器(102)、随机存取存储器(105)、深度学习加速器(103)和/或收发器(106)之间的操作。
131.在将一组图像数据存储到随机存取存储器(105)中作为到人工神经网络(201)的输入(211)之后,控制器(107)可使深度学习加速器(103)执行指令(205)且产生人工神经网络(201)的输出(213)。
132.举例来说,控制器(107)可通过在随机存取存储器(105)中的预定义位置处写入输入(211)的地址来指示深度学习加速器(103)开始指令(205)的执行。当深度学习加速器(103)处于闲置状态时,深度学习加速器(103)可周期性地读取存储在随机存取存储器(105)中的预定义位置处的地址。当从预定义位置检索到新和/或有效地址时,深度学习加速器(103)开始指令(205)的执行。任选地,在开始指令(205)的执行之后,深度学习加速器(103)可任选地清除、擦除或使先前存储在随机存取存储器(105)中的预定义位置处的地址失效。
133.替代地,控制器(107)配置成将信号或消息发送到深度学习加速器(103)以指示深度学习加速器(103)执行指令(205)。可使用不穿过随机存取存储器(105)的存储器单元的直接连接将信号或消息从控制器(107)传输到深度学习加速器(103)。
134.在一些实施方案中,控制器(107)和深度学习加速器(103)具有到随机存取存储器(105)的独立连接(109和119)。当控制器(107)和深度学习加速器(103)不存取随机存取存储器(105)的同一块或地址时,连接(109和119)可由控制器(107)和深度学习加速器(103)并行地使用以同时存取随机存取存储器(105)的不同部分。
135.在其它实施方案中,控制单元(113)和控制器(107)可在深度学习加速器(103)中共享其电路的至少一部分,且使用同一存储器接口(117)存取随机存取存储器(105)。
136.处理单元(111)的一部分可使用神经形态存储器(225)实施。举例来说,神经形态存储器(225)可包含配置成经由模拟电路执行乘累加(mac)操作的忆阻器的纵横阵列。举例来说,深度学习加速器(103)的向量-向量单元(例如161)中的乘累加单元(例如171或173)可使用忆阻器的纵横阵列来实施。所述忆阻器可在具有字线和位线的阵列中连接,所述字线和位线配置成将忆阻器定址为存储器单元。典型的忆阻器连接到阵列中的字线中的一个和位线中的一个。在纵横阵列中通过一组忆阻器穿过字线到位线的电流在位线中相加,其对应于累积运算。电流对应于施加在字线上的电压和与忆阻器的电阻相关联的参数的相乘,其对应于相乘运算。可将位线中的电流与阈值相比较以确定由位线表示的神经元是否在电流输入下激活。忆阻器阵列可分别连接到位线,且编程成具有对应于神经元的激活水平阈值的阈值。电流检测器可配置成用于连接到位线的输出的每一忆阻器,以确定位线中的电流电平是否对应于超出忆阻器的阈值的电平。神经形态存储器(225)可以类似于存储
器装置读取存储器单元阵列的方式执行乘累加(mac)操作,且因此具有低能量成本和高计算速度。
137.通过连接(108),控制器(107)操作图6的集成电路装置(101)的收发器(106),以通过有线连接(228)与独立计算机系统(223)通信。替代地或组合地,数码相机(191)包含用于无线连接(228)的收发器。
138.举例来说,收发器(106)可配置成根据用于局域网、外围总线、移动行业处理器接口、无线个域网或无线局域网的通信协议或物联网(iot)的通信协议通信。举例来说,收发器(106)可形成于射频(rf)互补金属氧化物半导体(cmos)集成电路芯片上。
139.举例来说,数码相机(191)可使用收发器(106)将人工神经网络(201)的输出(213)传输到计算机系统(223)。
140.举例来说,数码相机(191)可使用收发器(106)基于人工神经网络(201)的输出(213)将警告传输到计算机系统(223)。
141.收发器(106)可由数码相机(191)使用以从计算机系统(223)接收数据和/或指令,例如人工神经网络(201)的矩阵(207)和指令(205)。收发器(106)可由数码相机(191)使用以向计算机系统(223)报告、检索由深度学习加速器(103)计算的人工神经网络(201)的输出(213)。
142.任选地,计算机系统(223)可与数码相机(191)通信以请求数码相机(191)传输与输出(213)相关联的输入(211)。作为响应,收发器(106)将输入(211)传输到计算机系统(223),这允许计算机系统(223)选择性地分析到人工神经网络(201)的输入(211)。
143.替代地,数码相机(191)基于人工神经网络(201)的输出(213)自动选择用于传输到计算机系统(223)的输入(211)。
144.在一些实施方案中,数码相机(191)配置成将输出(213)报告到计算机系统(223)。举例来说,当深度学习加速器(103)完成一组输出(213)的计算时,控制器(107)产生报告输出(213)的可用性的消息。收发器(106)将消息传输到计算机系统(223)。作为响应,计算机系统(223)可任选地立即接受输出(213)的传输、请求输出(213)的传输在一时间段内的延迟或请求下一组输出(213)的产生的延缓。
145.在一些实施方案中,深度学习加速器(103)的控制单元(113)可包含控制器(107);且收发器(106)的逻辑电路可实施于深度学习加速器(103)的集成电路裸片上,如图7中所示。
146.在图7中,深度学习加速器(103)配置在集成电路裸片上;并且随机存取存储器(105)配置在一或多个集成电路裸片上。控制单元(113)不仅控制人工神经网络(201)的指令(205)的执行,而且控制收发器(106)与计算机系统(223)的通信以及图像传感器(102)的操作。
147.举例来说,控制单元(113)周期性地从传感器(102)检索图像数据且通过高带宽连接(119)将图像数据存储到随机存取存储器(105)中。
148.在一些实施方案中,图像传感器(102)围封在集成电路装置(101)的集成电路封装中(例如,如图6中所示)。
149.替代性地,图像传感器(102)可为围封深度学习加速器(103)和随机存取存储器(105)的集成电路封装外部的独立组件。
150.举例来说,图像传感器(102)以及具有深度学习加速器(103)和随机存取存储器(105)的集成电路装置(101)可安装在配置于数码相机(191)中的印刷电路板上。
151.图8的数码相机(191)具有衬底(229),所述衬底提供其组件之间的连接,所述组件例如深度学习加速器(103)、随机存取存储器(105)、图像传感器(102)、控制器(107)和收发器(106)。
152.在一些实施方案中,衬底(229)包含具有用于连接组件的电线的集成电路裸片。一些组件(例如,随机存取存储器(105)、深度学习加速器(103)、控制器(107)和/或收发器(106)的集成电路裸片)可经由硅穿孔(tsv)连接到衬底(229)的集成电路裸片。其它组件可经由线接合、裸片附接或另一技术连接到衬底(229)。
153.在一些实施方案中,衬底(229)进一步包含具有用于连接组件和其它组件的电线的印刷电路板,所述其它组件例如电源(例如,电池)、显示器、发光二极管(led)指示器等。
154.在一些实施方案中,收发器(106)和/或控制器(107)的逻辑电路配置在深度学习加速器(103)的集成电路裸片或另一集成电路裸片上。
155.图9示出根据一个实施例的实施于数码相机中的方法。举例来说,图9的方法可在图6、图7或图8的数码相机(191)中实施。
156.在框301处,数码相机(191)将人工神经网络(201)的矩阵(207)和指令(205)存储在其随机存取存储器(105)中,所述指令可由围封在数码相机(191)内的至少一个处理单元(111)执行以使用矩阵(207)实施人工神经网络(201)的计算。
157.举例来说,至少一个处理单元(111)可形成于实施深度学习加速器(103)的现场可编程门阵列(fpga)或专用集成电路(asic)的集成电路裸片上。深度学习加速器(103)可包含用于矩阵指令执行的至少一个处理单元(111)、用以缓冲矩阵操作数和结果的本地存储器(115)、可从随机存取存储器(105)加载指令(205)以用于执行的控制单元(113)以及用以存取随机存取存储器(105)的存储器接口(117)。
158.举例来说,集成电路封装配置成至少围封fpga或asic的集成电路裸片和随机存取存储器的一或多个集成电路裸片。
159.举例来说,随机存取存储器(105)和深度学习加速器(103)形成于独立集成电路裸片上且通过硅穿孔(tsv)连接。
160.举例来说,数码相机(191)可具有控制器(107)以操作收发器(106)。控制器(107)可与控制单元(113)分离,或集成在深度学习加速器(103)的控制单元内。
161.在框303处,数码相机(104)的图像传感器(102)产生捕捉数码相机(104)的视场的图像数据。
162.举例来说,图像传感器(102)可形成于集成电路裸片上,所述集成电路裸片堆叠于随机存取存储器(105)的一或多个集成电路裸片上,或深度学习加速器(103)的集成电路裸片上;且图像传感器中的电路可使用硅穿孔(tsv)从图像传感器(102)的集成电路裸片连接到随机存取存储器(105)或深度学习加速器(103)的集成电路裸片。
163.在框305处,图像传感器(102)将图像数据存储到集成在数码相机(191)中的随机存取存储器(105)中作为到人工神经网络(201)的输入(211)。
164.在框307处,至少一个处理单元(111)执行指令,以从将图像数据作为输入(211)的人工神经网络(201)计算输出(213)。
165.在框309处,数码相机(191)基于人工神经网络(201)的输出(213)产生在图像数据中捕捉的视场中的项目或事件的描述。
166.在框311处,数码相机(191)使用数码相机(191)的收发器(106)将描述传送到计算机系统(223)。
167.举例来说,人工神经网络(201)的输出(213)可包含物件、人或特征的识别、分类或类别。此外,人工神经网络(201)的输出(213)可包含物件、人或特征的位置和大小。基于识别、分类或类别和/或基于位置和大小产生提供到独立计算机系统(223)的描述。
168.举例来说,人工神经网络(201)的输出(213)可包含与物件、人或特征相关联的事件的识别;并且描述可包含事件的识别。
169.任选地,数码相机(191)的控制器(017)可(例如,经由将数码相机作为固件运行的应用程序(215)的指令)配置成控制收发器(106)基于人工神经网络(201)的输出(213)向计算机系统(223)提供从图像数据提取的物件、人或特征的代表性图像。
170.举例来说,收发器(106)可配置成根据无线个域网、无线局域网、有线局域网或串行外围总线的通信协议通信。
171.代表性图像可与描述一起传送到独立计算机系统(223)作为到独立计算机系统(223)的输入,或在计算系统(223)处理描述之后响应于来自计算机系统(223)的请求而传送。
172.任选地,数码相机(191)的控制器(017)可配置成基于人工神经网络(201)的输出(213)选择性地存储图像数据以用于传输到计算机系统(223)。
173.举例来说,应用程序(215)可配置成用于数码相机(191)基于计算机系统(223)中的描述的处理结果和/或基于人工神经网络(201)的输出(213)确定是否丢弃图像数据。
174.举例来说,应用程序(215)可配置成用于数码相机(191)基于计算机系统(223)中的描述的处理结果和/或基于人工神经网络(201)的输出(213)确定是否将图像数据的一部分从数码相机(191)传送到计算机系统(223)。
175.举例来说,可基于人工神经网络(201)的输出(213)中的项目或事件的识别而提取图像数据的所述部分;且项目或事件的识别可包含项目的大小和位置和/或其在数码相机的视场中捕捉的场景中的活动。
176.本公开包含执行上文所描述的方法和执行所述方法的设备,包含执行这些方法的数据处理系统,以及含有在数据处理系统上执行时使所述系统执行这些方法的指令的计算机可读媒体。
177.典型数据处理系统可包含互连件(例如总线和系统核心逻辑),其互连微处理器和存储器。微处理器通常耦合到高速缓存存储器。
178.互连件将微处理器和存储器互连在一起并且还经由i/o控制器将其互连到输入/输出(i/o)装置。i/o装置可包含显示装置和/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描器、摄像机和所属领域中已知的其它装置。在一个实施例中,在数据处理系统是服务器系统时,i/o装置中的一些(例如打印机、扫描器、鼠标和/或键盘)是任选的。
179.互连件可包含通过各种桥接器、控制器和/或适配器彼此连接的一或多个总线。在一个实施例中,i/o控制器包含用于控制通用串行总线(usb)外围装置的usb适配器,和/或
用于控制ieee-1394外围装置的ieee-1394总线适配器。
180.存储器可包含以下中的一或多者:只读存储器(rom)、易失性随机存取存储器(ram)和非易失性存储器,例如硬盘驱动器、快闪存储器等。
181.易失性ram通常被实施为动态ram(dram),其需要持续电力才能刷新或将数据维持在存储器中。非易失性存储器通常是磁性硬盘驱动器、磁性光盘驱动器、光盘驱动器(例如,dvd ram),或即使在从系统移除电源之后仍维持数据的其它类型的存储器系统。非易失性存储器还可为随机存取存储器。
182.非易失性存储器可以是与数据处理系统中的其它组件直接耦合的本地装置。也可使用远离系统的非易失性存储器,例如通过例如调制解调器或以太网接口的网络接口耦合到数据处理系统的网络存储装置。
183.在本公开中,一些功能和操作被描述为由软件代码执行或由软件代码引起以简化描述。然而,此类表达还用于指定所述功能是由例如微处理器的处理器执行代码/指令产生。
184.替代地或组合地,如此处所描述的功能和操作可使用具有或不具有软件指令的专用电路系统实施,例如使用专用集成电路(asic)或现场可编程门阵列(fpga)。可使用不具有软件指令或结合软件指令的硬接线电路实施实施例。因此,技术不限于硬件电路和软件的任何具体组合,也不限于由数据处理系统实行的指令的任何特定来源。
185.虽然一个实施例可实施于全功能计算机及计算机系统中,但各种实施例能够分布为多种形式的计算产品,且能够不论实际上用于实现分布的机器或计算机可读媒体的特定类型如何都适用。
186.所公开的至少一些方面可至少部分体现于软件中。也就是说,响应于其处理器(例如微处理器)执行存储器(例如rom、易失性ram、非易失性存储器、高速缓存器或远程存储装置)中所含有的指令序列,技术可进行于计算机系统或其它数据处理系统中。
187.经执行以实施实施例的例程可实施为操作系统或具体应用程序、组件、程序、对象、模块或被称作“计算机程序”的指令序列的部分。计算机程序通常包含计算机中的各种存储器和存储装置中在各种时间处的一或多个指令集,并且所述指令集在由计算机中的一或多个处理器读取和执行时使计算机执行必需操作以执行涉及各种方面的元件。
188.机器可读媒体可用于存储当由数据处理系统执行时使系统执行各种方法的软件和数据。可执行软件和数据可以被存储在各种位置中,包含例如rom、易失性ram、非易失性存储器和/或高速缓存器。此软件和/或数据的部分可存储在这些存储装置中的任一个中。另外,可以从集中式服务器或对等网络获得数据和指令。数据和指令的不同部分可在不同时间且在不同通信会话中或同一通信会话中从不同集中式服务器和/或对等网络获得。可以在执行应用程序之前完整地获取数据和指令。替代地,可动态地、及时地在需要执行时获得数据和指令的部分。因此,并不要求数据及指令在特定时刻全部在机器可读媒体上。
189.计算机可读媒体的实例包含但不限于非暂时性的可记录和不可记录类型的媒体,例如易失性和非易失性存储器装置、只读存储器(rom)、随机存取存储器(ram)、快闪存储器装置、软性和其它可移除式磁盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(cd rom)、数字多功能盘(dvd)等),以及其它。计算机可读媒体可以存储指令。
190.指令还可体现于用于电、光、声或其它形式的传播信号的数字和模拟通信链路中,
所述传播信号例如载波、红外信号、数字信号等。然而,例如载波、红外信号、数字信号等的传播信号不是有形的机器可读媒体,也不配置成存储指令。
191.一般来说,机器可读媒体包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一或多组处理器的任何装置等)存取的形式提供(即,存储和/或传输)信息的任何机制。
192.在各种实施例中,硬连线电路可与软件指令组合使用以实施各技术。因此,技术不限于硬件电路和软件的任何具体组合,也不限于由数据处理系统执行的指令的任何特定来源。
193.以上描述和图式是说明性的,并且不应理解为限制性的。描述了许多具体细节以提供透彻理解。然而,在某些例子中,不描述众所周知的或常规的细节以免使描述内容模糊不清。本公开中对一个或一实施例的参考未必参考同一实施例;并且此类参考意味着至少一个。
194.在前述说明书中,已参考本公开的特定实例实施例描述了本公开。将显而易见的是,可在不脱离如以下权利要求书中阐述的更广精神和范围的情况下进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1