Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

神经网络处理单元及包括该神经网络处理单元的片上系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:三星电子株式会社

摘要:一种神经网络处理单元及包括该神经网络处理单元的片上系统。所述神经网络处理单元可被配置为执行近似乘法运算并且所述片上系统可包括所述神经网络处理单元。所述神经网络处理单元可包括多个神经处理单元并可基于输入数据的一个或多个实例和多个权重执行计算。至少一个神经处理单元被配置为接收第一值和第二值并基于第一值和第二值执行近似乘法运算,并且还被配置为基于所述近似乘法运算的输出值执行随机舍入运算。

主权项:1.一种神经网络处理单元,被配置为基于输入数据的一个或多个实例和多个权重来执行计算,所述神经网络处理单元包括:控制器,被配置为输出用于控制至少一个神经处理单元的模式的控制信号,其中,所述至少一个神经处理单元被配置为:基于所述控制信号,在执行近似乘法运算的训练模式和执行一般乘法运算的推理模式中的一个模式下操作;多个神经处理单元,其中,所述多个神经处理单元中的至少一个神经处理单元被配置为:接收第一值和第二值并基于第一值和第二值执行所述近似乘法运算或所述一般乘法运算,其中,近似乘法运算表示部分地允许计算的结果值的误差的乘法运算;基于所述近似乘法运算的输出值执行随机舍入运算,其中,所述至少一个神经处理单元还被配置为:选择输入数据的所述一个或多个实例和所述多个神经处理单元中的一个神经处理单元的输出值中的一个元素,输出选择的一个元素作为第一值,其中,第二值包括所述多个权重中的至少一个权重。

全文数据:神经网络处理单元及包括该神经网络处理单元的片上系统本申请要求于2018年1月9日提交到韩国知识产权局的第10-2018-0002776号韩国专利申请的权益,所述韩国专利申请的公开通过引用全部包含于此。技术领域本发明构思涉及神经网络处理单元,更具体地讲,涉及包括近似乘法器的神经网络处理单元以及包括该神经网络处理单元的片上系统。背景技术神经网络表示模拟生物大脑的计算架构。近来,随着神经网络技术的发展,已经积极研究了各种类型的电子系统,以用于使用神经网络处理单元来分析输入数据并提取有效信息。神经网络处理单元利用相对大量的计算来处理复杂的输入数据。针对被配置为实时分析高质量输入并提取信息的神经网络处理单元,需要用于高效处理神经网络操作的技术。例如,低功率和高性能嵌入系统诸如,智能电话具有有限的资源。发明内容一些示例实施例提供一种神经网络处理单元,其中,所述神经网络处理单元被配置为能够在减少处理复杂输入数据所需的计算量的同时降低准确度的损失,从而提供可特别适合包括在低功率且高性能的嵌入系统包括智能的电话中的神经网络处理单元。本发明构思提供包括被配置为执行定点型训练计算的近似乘法器的神经网络处理单元以及包括该神经网络处理单元的片上系统。根据本发明构思的一方面,一种神经网络处理单元可被配置为基于输入数据的一个或多个实例和多个权重执行计算。所述神经网络处理单元可包括多个神经处理单元。所述多个神经处理单元中的至少一个神经处理单元可被配置为:接收第一值和第二值并基于第一值和第二值执行近似乘法运算,并且基于所述近似乘法运算的输出值执行随机舍入运算。根据本发明构思的另一方面,一种片上系统可包括一个或多个半导体知识产权核IP以及神经网络处理单元,其中,神经网络处理单元被配置为从所述一个或多个IP接收输入数据并基于输入数据和多个权重执行神经网络计算。神经网络处理单元可包括多个神经处理单元,其中,所述多个神经处理单元中的至少一个神经处理单元被配置为:接收第一值和第二值并对第一值和第二值执行近似乘法运算,并且基于近似乘法运算的输出值执行随机舍入运算以输出关于近似乘法运算的输出的后激活。根据本发明构思的另一方面,一种神经网络处理单元可用于在训练模式下基于训练数据的一个或多个实例和多个权重执行训练操作。所述神经网路处理单元可包括多个神经处理单元。所述多个神经处理单元中的至少一个神经处理单元可被配置为:在训练模式下,接收第一值和第二值并对第一值和第二值执行近似乘法运算,基于近似乘法运算的输出值和第三值执行加法运算,对近似乘法运算的输出值进行累加,并对基于所述累加输出的累加值执行随机舍入操作,以输出关于累加值的后激活。附图说明通过下面结合附图的详细描述,将更清楚地理解本发明构思的示例实施例,其中:图1是示出根据本公开的一些示例实施例的片上系统SoC的框图;图2是示出根据本公开的一些示例实施例的神经网络的示例的示图;图3是示出根据本公开的一些示例实施例的神经网络的训练处理的流程图。可参照图2来描述图3;图4是示出定点值的示例的示图;图5是示出根据本公开的一些示例实施例的神经网络处理单元的结构的示例的框图;图6是示出根据本公开的一些示例实施例的神经处理单元的详细结构的框图;图7是示出根据本公开的一些示例实施例的算术逻辑单元的框图;图8是示出根据本公开的一些示例实施例的激活函数单元的框图;图9和图10分别是示出根据本公开的一些示例实施例的神经网络处理单元的训练的流程图和示出根据本公开的一些示例实施例的随机舍入的示图;图11是示出根据本公开的一些示例实施例的算术逻辑单元的框图;图12是示出根据本公开的一些示例实施例的算术逻辑单元的框图;图13是示出根据本公开的一些示例实施例的移动计算装置的框图;图14示出根据一些示例实施例的车辆。具体实施方式在下文中,将参照附图详细地描述本发明构思的示例实施例。图1是示出根据本公开的一些示例实施例的片上系统SoC10的框图。参照图1,SoC10可包括多个知识产权IP和神经网络处理单元NPU100。SoC10可被设计为在半导体系统中执行各种功能,例如,SoC10可以是应用处理器。SoC10可基于神经网络实时分析输入数据并提取有效信息,并基于提取的信息,可确定安装有SoC10的电子装置的情况或控制安装有SoC10的电子装置的配置。例如,SoC10可用于无人机、机器人设备诸如,高级驾驶员辅助系统ADAS、自主车辆、智能电视TV、智能电话、医疗装置、移动装置、图像显示装置、测量装置、物联网IoT装置等,此外,SoC10可安装在各种种类的电子装置中的至少一种上。如在此使用的,将理解,IP例如,IP1、IP2和IP3表示作为一方的知识产权的硬件电路例如,集成电路的实例。如在此提及的,IP可被互换地称为半导体知识产权核、IP核和或IP块。SoC10可包括各种种类的IP。例如,IP可包括处理单元“处理电路的实例”,例如,CPU、专用集成电路、它们的一些组合等、包括在处理单元中的多个核、多格式编解码器MFC、视频模块例如,相机接口、联合图像专家组JPEG处理器、视频处理器或混频器、三维3D图形核、音频系统、驱动器、显示驱动器、易失性存储器、非易失性存储器、存储器控制器、输入和输出接口块或高速缓冲存储器。用于连接IP的大多数技术涉及基于系统总线的连接方法。例如,可使用先进精简指令集计算机RISC机器公司ARM的高级微控制器总线架构AMBA协议作为标准总线规范。AMBA协议的总线类型可包括高级高性能总线AHB、高级外围总线APB、高级可扩展接口AXI、AXI4、AXI一致性扩展ACE等。上述总线类型中的AXI是IP之间的接口协议并可提供多个出色的地址功能、数据交叉存取interleaving功能等。此外,其他类型的协议诸如,SONICsInc.的uNetwork、IBM的CoreConnect或OCP-IP的开放核心协议OpenCoreProtocol可被应用到系统总线。NPU100可生成神经网络,可训练或学习神经网络,可基于接收的输入数据执行计算并基于计算的结果生成信息信号,或者可重新训练神经网络。在一些示例实施例中,NPU100可基于定点来训练神经网络。这将在下面进行详细描述。将理解,NPU100可以是可执行存储在存储器例如,存储装置中的指令的程序的处理器例如,处理电路的实例和或可由可执行存储在存储器例如,存储装置中的指令的程序的处理器例如,处理电路的实例来实现。因此,在一些示例实施例中,如在此描述的NPU100可以是实现NPU100的功能的处理器。NPU100可经由系统总线从IP接收各种种类的输入数据,并因此可生成信息信号例如,基于输入数据执行神经网络计算以生成输出信号。由神经网络生成的信息信号可包括各种种类的识别信号诸如,语音识别信号、对象识别信号、图像识别信号和生物信息识别信号之一。例如,NPU100可接收包括在视频流中的帧数据作为输入数据,并可从帧数据生成关于包括在由帧数据表示的图像中的对象的识别信号。然而,本公开不限于此,NPU100可接收各种种类的输入数据并可根据输入数据生成识别数据。图2是示出根据本公开的一些示例实施例的神经网络1的示例的示图。如图2所示的神经网络可通过神经网络处理单元包括例如NPU100和或下面进一步描述的图13中所示的NPU1058实现。参照图2,神经网络1可具有包括输入层、隐藏层和输出层的结构。实现神经网络1的神经网络处理单元可基于接收的输入数据例如,I1和I2执行计算并可基于计算的结果生成输出数据例如,O1和O2。在一些示例实施例中,神经网络处理单元可被训练为通过基于输入数据执行的计算来实现神经网络1。对神经网络处理单元进行训练以实现神经网络在此可被称为“训练”神经网络。当神经网络1被训练时,输入数据可以是训练数据。神经网络1可以是深度神经网络DNN或包括两个或更多个隐藏层的n层神经网络。例如,如图2中所示,神经网络1可以是包括输入层2、第一隐藏层3、第二隐藏层4以及输出层5的DNN。DNN可包括但不限于:卷积神经网络CNN、循环神经网络RNN、深度信念网络、限制玻尔兹曼Boltzmann机等。当神经网络1具有DNN结构时,神经网络1包括可从中提取有效信息的多个层,因此,神经网络1可处理复杂的数据集。虽然神经网络1被示出为包括四层即,输入层2、第一隐藏层3、第二隐藏层4以及输出层5,但这仅是示例,神经网络1可包括更少的层或更多的层。此外,神经网络1可包括与图2中示出的结构不同的各种结构的层。包括在神经网络1中的输入层2、第一隐藏层3、第二隐藏层4以及输出层5中的每个可包括多个神经元。神经元可对应于被称为处理元件PE、单元或相似术语的多个人工节点。例如,如在图2中所示,输入层2可包括两个神经元节点,第一隐藏层3和第二隐藏层4中的每个可包括三个神经元节点。然而,这仅是示例,包括在神经网络1中的每个层可包括各种数量的神经元节点。在神经网络1中包括的每个层中包括的神经元可彼此连接以交换数据。一个神经元可从其他神经元接收数据并执行计算,并且可将计算的结果输出到其他神经元。每个神经元节点的输入和输出可被称为输入激活activation和输出激活。也就是说,激活可以是一个神经元的输出并且还可以是与包括在下一层中的神经元的输入对应的参数。每个神经元可基于从包括在之前层中的神经元接收的激活和权重来确定他们的激活。权重是用于计算每个神经元中的输出激活的参数,并且可以是被分配给神经元之间的连接关系的值。每个神经元可通过接收输入并输出激活的神经处理单元或PE来处理,并且每个神经元的输入-输出可被映射。例如,σ可以是激活函数,可以是从包括在第i-1层中的第k神经元到包括在第i层中的第j神经元的权重值。可以是包括在第i层中的第j神经元的偏置值,可以是第i层的第j神经元的激活换句话说,后激活post-activation。后激活可使用下面的等式1来计算。【等式1】如图2中所示,第一隐藏层3的第一神经元的后激活可被表示为此外,可根据等式1具有值换句话说,后激活可以是通过将激活函数应用到从之前的层接收的激活之和而获得的值。然而,等式1仅是用于解释神经网络1中用于处理数据的激活和权重的示例,但其不限于此。如上所述,在神经网络1中,许多数据集在多个互相连接的神经元之间交换,并且当它们穿过层时经历许多计算处理。通过这样的计算,神经网络1可被训练,并且权重和偏置可因此被优化。根据本公开的一些示例实施例的NPU可包括近似乘法器和或可被配置为实现近似乘法器,并且可被配置为基于定点型激活、权重和偏置来训练神经网络1。将在下面给出它们的详细描述。图3是示出根据本公开的一些示例实施例的神经网络的训练处理的流程图。可参照图2来描述图3。图3中示出的训练处理可通过神经网络处理单元包括NPU100和或在下面进一步描述的图13中示出的NPU1058来实现。参照图3,在操作S100中,可基于训练数据来执行神经网络1的计算,并且还可生成输出数据。换句话说,当训练数据作为输入数据I1和I2被应用到输入层2时,神经网络1可生成与训练数据对应的输出数据O1和O2。作为应用到神经网络1以用于学习的输入数据的训练数据可以是预先知道对应的目标值或标签的数据。可基于定点型激活、权重和偏置来训练神经网络1。在一些示例实施例中,可基于定点近似乘法器、定点加法器和定点舍入round器来计算每个神经元中的后激活。例如,可通过近似乘法器将之前层的后激活和权重一起近似地相乘,并对通过将多个近似的乘积相加获得的值执行舍入。例如,舍入器可执行随机舍入。在操作S200中,可基于与训练数据对应的输出数据来计算损失。例如,损失可表示与训练数据对应的目标值和与训练数据对应的输出数据之间的差。在操作S300中,可将损失向后传播给神经网络1,并且可确定每个神经元的参数。神经元的参数可包括提供神经网络计算的基础的各种种类的数据例如,权重、偏置等。随着神经网络1被反复训练,神经网络1的参数可被调整以针对给定输入计算更准确的输出。图4是示出定点值FX的示例的示图。参照图4,定点值FX可被划分为整数部分IL、小数点DP和小数部分FL。定点指的是通过使用小数点来表示具有固定位数的小数的表示法。整数部分IL可包括符号位SB。符号位SB可确定定点值FX的符号。整数部分IL可对应于指示定点值FX的整数的部分,小数部分FL可对应于指示定点值FX的小数的部分。小数点DP可表示用于在定点值FX的整数部分IL和小数部分FL之间进行区分的参考的点。例如,当定点值FX是8位定点值时,表示整数部分IL和小数部分FL的每个位可具有值1或0。表示整数部分IL的位可从符号位SB顺序地表示值-8、+4、+2和+1。此外,表示小数部分FL的位可基于小数点DP顺序地表示值+0.5、+0.25、+0.125和+0.0625。例如,当符号位SB是1时,整数部分IL的最高有效位表示的值是-8,其中,不管包括在整数部分IL和小数部分FL中的其他位的值如何,定点值FX表示的值都是负数。尽管图4示出8位定点值FX,但这仅是示例实施例,并且定点值FX可以是具有任何适当位数的定点值。此外,定点值FX可表示使用编码表示、反码系统和补码系统之一来表示负数。图5是示出根据本公开的一些示例实施例的NPU100的结构的示例的框图。例如,图5示出NPU100的详细结构。在下文中,将参照图1来描述图5。参照图5,NPU100可包括数据随机存取存储器数据RAM110、权重RAM120、控制器130和多个神经处理单元NP140-1至140-n。虽然未示出,但是NPU100还可包括定序器、多个寄存器、程序存储器等,在一些示例实施例中,控制器130、定序器、多个寄存器、程序存储器等可以是执行存储在存储器例如,存储装置中的指令的程序的处理器例如,处理电路的实例和或通过执行存储在存储器例如,存储装置中的指令的程序的处理器例如,处理电路的实例来实现。因此,在一些示例实施例中,如在此描述的控制器130、定序器、多个寄存器、程序存储器等可以是实现控制器130、定序器、多个寄存器、程序存储器等的功能的处理器。如在此描述的,神经处理单元140-1至140-n可均通过执行存储在存储器例如,存储装置中的指令的程序的处理器例如,处理电路的实例来实现。因此,在一些示例实施例中,如在此描述的控制器130、定序器、多个寄存器、程序存储器等可以是实现控制器130、定序器、多个寄存器、程序存储器等的功能的处理器。在一些示例实施例中,每个单独的神经处理单元140-1至140-n是被配置为实现各自神经处理单元的功能的单独的电路的实例。数据RAM110可存储一条或多条“实例”输入数据I并可将输入数据I应用到神经处理单元140-1至140-n。例如,输入数据I可从多个IP中的至少一个提供。此外,基于神经处理单元140-1至140-n的计算生成的输出数据O可被接收并存储。在一些示例实施例中,输入数据I和输出数据O可属于定点型。例如,在NPU100的训练模式或学习模式下例如,响应于NPU100在训练模式下操作,数据RAM110可存储训练数据例如,在训练模式下从一个或多个IP接收的训练数据并且可将训练数据作为输入数据I应用到神经处理单元140-1至140-n。例如,在NPU100的推理模式下例如,响应于NPU100在推理模式下操作,数据RAM110可存储用于NPU100的推理操作的数据并可将该数据作为输入数据I应用到神经处理单元140-1至140-n。当NPU100包括在片上系统例如,图1的10中时,数据RAM110可存储从包括在片上系统例如,图1的10中的各种IP输出的数据作为输入数据I。因此,NPU100可在训练模式下基于一条或多条“实例”训练数据和多个权重来执行训练操作。训练操作可包括定点型训练操作。权重RAM120可存储多个权重W并可将每个权重应用到对应的神经处理单元。换句话说,分别分配给神经处理单元140-1至140-n的权重W可被存储在权重RAM120中。例如,在NPU100的训练模式或学习模式下,权重RAM120可从神经处理单元140-1至140-n接收通过训练处理调整的权重W并可存储权重W。在一些示例实施例中,权重W可属于定点型。例如,数据RAM110和权重RAM120可以是动态RAMDRAM、静态RAMSRAM、同步DRAMSDRAM、相变RAMPRAM等。然而,本公开不限于此,并且数据RAM110和权重RAM120可被实现为各种种类的存储器。控制器130可对神经处理单元140-1至140-n执行总体控制操作。例如,控制器130可将用于控制包括在每个神经处理单元中的多路复用器的第一控制信号CTRL_1施加到神经处理单元140-1至140-n。此外,在一些示例实施例中,控制器130可将用于控制包括在每个神经处理单元中的近似乘法器的第二控制信号CTRL_2施加到神经处理单元140-1至140-n。例如,第二控制信号CTRL_2可以是近似乘法器的模式选择的基础。如在此描述的,用于控制神经处理单元140-1至140-n的元件例如,乘法器和或近似乘法器的模式的控制信号可以是被输出以控制至少一个神经处理单元140-1至140-n的模式的控制信号。神经处理单元140-1至140-n可分别被配置为作为包括在神经网络例如,图2的10的层例如,图2的2、3、4和5中的神经元进行操作。例如,神经处理单元140-1至140-n中的至少一些神经处理单元可对应于包括在输入层例如,图2的2中的神经元进行操作,从而,可接收输入数据I和权重W并因此输出激活。例如,神经处理单元140-1至140-n中的一些其他的神经处理单元可对应于包括在隐藏层例如,图2的3和4中的神经元进行操作,从而,可接收从包括在之前层中的神经元接收的激活和权重W并因此输出激活。例如,神经处理单元140-1至140-n中的其他神经处理单元可对应于包括在输出层例如,图2的5中的神经元进行操作,从而,可接收从包括在之前层中的神经元接收的激活和权重W并因此生成输出数据。在一些示例实施例中,神经处理单元140-1至140-n中的至少一个可包括近似乘法器和舍入器。重申,神经处理单元中的至少一个可被配置为实现近似乘法器和舍入器的功能。例如,神经处理单元140-1至140-n中的至少一个可经由近似乘法器基于在该至少一个神经处理单元接收的第一值例如,图6中的mo和第二值例如,W例如,对激活例如,图6中的I_A或I和权重W执行近似乘法运算。此外,神经处理单元140-1至140-n中的至少一个可经由舍入器基于近似乘法运算的输出例如,对多个近似相乘的值之和执行随机舍入“执行随机舍入运算”。虽然在一些示例实施例中未示出,但是NPU100还可包括时钟,并且神经处理单元140-1至140-n可在每个时钟周期期间执行计算操作。在一些示例实施例中,神经处理单元140-1至140-n可以以流水线方式操作。图6是示出根据本公开的一些示例实施例的神经处理单元140-m的详细的结构的框图。例如,图6中示出的神经处理单元140-m可以是图5的神经处理单元140-1至140-n之一。在下文中,将参照图5来描述图6。将理解,在一些示例实施例中,神经处理单元140-m的元件150m至180m中的一个或多个可通过神经处理单元的电路来实现。参照图6,神经处理单元140-m可包括算术逻辑单元ALU160m、累加器170m和激活函数单元AFU180m和或可被配置为实现ALU160m、累加器170m和AFU180m的功能。此外,神经处理单元140-m还可包括多路复用器150m和或可被配置为实现多路复用器150m的功能。多路复用器150m可接收输入数据I和输入激活A_I并且可基于第一控制信号CTRL_1可选地选择输入数据I和输入激活A_I之一并输出选择的那个作为第一值mo。例如,第一控制信号CTRL_1可由控制器130提供。在一些示例实施例中,输入数据I是从NPU100的数据RAM例如,数据RAM110输出的训练数据。例如,输入数据I可从数据RAM110提供。此外,输入激活A_I可从神经处理单元140-1至140-n之一提供。例如,基于包括与神经处理单元140-m对应的神经元的层,输入激活A_I可从与包括在之前层中的神经元对应的神经处理单元提供或者可从与包括在同一层中的神经元对应的神经处理单元提供。ALU160m可接收多条数据并因此可执行算术和逻辑运算。例如,ALU160可接收第一值mo和权重W,并可对第一值mo和权重W执行乘法运算。此外,ALU160m还可接收从累加器170m输出的累加值aco并可通过对关于第一值mo和权重W的乘法运算的结果和累加值aco执行加法运算来生成输出值alo。ALU160m可包括定点型装置。在一些示例实施例中,在NPU100的训练模式下例如,响应于NPU100在训练模式下操作,ALU160m可对第一值mo和权重W执行近似乘法运算。作为近似计算的一种的近似乘法运算可表示部分地允许计算的结果值的误差的乘法运算。此外,在NPU100的推理模式下,ALU160m可对第一值mo和权重W执行一般乘法运算。累加器170m可暂时地存储ALU160m的计算结果。详细地讲,累加器170m可包括接收并暂时存储ALU160m的输出值alo的寄存器。例如,累加器170m可包括多个触发器彼此相连接的配置。累加器170m可将暂时存储的输出值alo作为累加值aco输出到ALU160m或AFU180m。累加器170m可被理解为对由ALU160m执行的近似乘法运算的一个或多个输出值alo进行累加。AFU180m可从累加器170m接收累加值aco例如,由累加器170m执行的累加的输出值。在一些示例实施例中,AFU180m可对累加值aco执行舍入运算并且可生成关于累加值aco的后激活A_O。还将理解,后激活A_O可以是关于ALU160m的近似乘法运算的输出。作为示例,AFU180m可对累加值aco执行舍入运算并且可对其应用激活函数。可选地,AFU180m可对累加值aco应用激活函数并可对其执行舍入运算。可选地,AFU180m可对累加值aco执行舍入运算并可绕过激活函数的应用。例如,AFU180m可对累加值aco执行随机舍入运算。因此,AFU180m可生成后激活A_O或输出激活。图7是示出根据本公开的一些示例实施例的ALU160m的框图。例如,图7可以是图6中示出的ALU160m的详细的框图。在下文中,将参照图5和图6来描述图7。参照图7,ALU160m可包括近似乘法器162m和加法器164m。近似乘法器162m可对多个输入值执行近似乘法运算。详细地讲,近似乘法器162m可接收第一值mo和权重W并可得到第一值mo和权重W的近似乘积。近似乘法器162m可被实现为各种类型,例如,基于近似4:2压缩器的乘法器、近似改良布斯booth乘法器等。与第一值mo和权重W的一般乘积相比,通过近似乘法器162m得到的第一值mo和权重W的近似乘积可在一个或多个位中随机地具有误差。也就是说,第一值mo和权重W的乘积可通过近似乘法而具有随机性,因此随后可在AFU180m中执行随机舍入运算。在一些示例实施例中,近似乘法器162m可被控制为在NPU100的训练模式下执行近似乘法并在NPU100的推理模式下执行一般乘法。例如,近似乘法器162m可被控制为基于从控制器130接收的第二控制信号CTRL_2来执行近似乘法和一般乘法之一例如,可在执行近似乘法运算的第一模式和执行一般乘法运算的第二模式中的一个模式下操作。加法器164m可对近似乘法器162m的输出和从累加器170m输出的累加值aco例如,累加的输出值执行加法运算。也就是说,加法器164m可通过在训练模式下对关于第一值mo和权重W的乘法运算的结果和累加值aco执行加法运算来生成输出值alo。例如,输出值alo可以是与从之前层接收的激活之和对应的值。图8是示出根据本公开的一些示例实施例的AFU180m的框图。例如,图8可以是图6中示出的AFU180m的详细的框图。在下文中,将参照图5和图6来描述图8。参照图8,AFU180m可包括舍入器182m和激活函数AF模块184m。舍入器182m可对从累加器170m输出的累加值aco执行舍入运算。在一些示例实施例中,在NPU100的训练模式下,累加值aco可基于近似乘法运算而随机地具有误差,因此舍入器182m可对累加值aco执行随机舍入运算。通过对累加值aco的舍入运算,累加值aco可被量化。随机舍入运算可表示基于概率执行舍入的操作。例如,在指数部分是IL并且小数部分是FL的定点的基础上,随机舍入运算可被定义为下面的[等式2]。[等式2]在[等式2]中,可表示小于x的值中的∈的最大整数倍。在根据[等式2]的随机舍入运算中,舍入运算基于概率而被执行,因此,例如,在训练期间范围内的小的变化可被反映。根据本发明构思的NPU100可包括经由近似乘法器162m和舍入器182m实现近似舍入的多个神经处理单元。根据一些示例实施例的在神经处理单元中实现的随机舍入可被定义为下面[等式3]。[等式3]在[等式3]中,单值函数uniform可被定义为返回两个输入变量之间的随机小数的函数。在一些示例实施例中,AF模块184m可将激活函数应用于舍入的累加值aco。AF模块184m可将激活函数应用于舍入的激活函数aco并输出后激活A_O。也就是说,AF模块184m可将激活函数应用于从之前层接收的激活之和并输出后激活A_O。例如,AF模块184m可应用阶梯函数、S型sigmoid函数、双曲正切函数或整流线性单元ReLU,但是本公开不限于此。虽然在一些示例实施例中已经描述了在舍入器182m中被舍入的累加值aco被输入到AF模块184m,但是这仅是示例,并且本公开不限于此。作为示例,累加值aco可被输入到AF模块184m以对其应用激活函数,并且已经应用激活函数的累加值aco可被输入到舍入器182m以对其执行随机舍入运算。作为另一示例,可通过舍入器182m对累加值aco执行随机舍入运算,并且累加值aco可绕过AF模块184m并被AFU180m输出。图9和图10分别是示出根据本公开的一些示例实施例的NPU的训练的流程图和示出根据本公开的一些示例实施例的随机舍入的示图。在下文中,将参照图6和图8来描述图9和图10。参照图9,在NPU100的训练模式下,每个神经处理单元可对输入激活A_I和权重W执行近似乘法运算操作S110。例如,可经由包括在ALU160m中的近似乘法器162m来执行近似乘法运算。接下来,可对已经执行近似乘法运算的值执行累加操作S120。例如,可经由包括在ALU160m中的加法器164m和累加器170m对已经执行近似乘法运算的值执行累加。例如,累加的值可对应于从之前层接收的激活之和。接下来,每个神经处理单元可对累加值aco执行随机舍入操作S130。例如,可经由包括在AFU180m中的舍入器182m来执行随机舍入运算。在执行随机舍入之后,可将激活函数应用于已经执行随机舍入的值操作S140。例如,可经由包括在AFU180m中的AF模块184m来执行激活函数的应用。进一步参照图10,对随机数的随机舍入的实现被示出。例如,当输入到舍入器182m的累加值aco是3.3时,依据根据本公开的一些示例实施例的随机舍入,被舍入为3的概率和被舍入为4的概率可分别为70%和30%。也就是说,由于即使在定点运算中也可根据概率反映小的变化,所以根据本公开的NPU100可执行定点训练。此外,由于即使在没有单独的随机数生成器的情况下也可经由近似乘法器执行随机舍入运算,因此NPU100的面积和功耗可减少。图11是示出根据本公开的一些示例实施例的ALU260m的框图。下面将省略图11中示出的参照图7给出的配置的重复的描述。参照图11,ALU260m可包括近似乘法器262m和近似加法器264m。在一些示例实施例中,近似加法器264m可对近似乘法器262m的输出和累加值aco执行近似加法运算。作为近似计算的一种的近似加法运算可表示部分地允许计算的结果值的误差的加法运算。在一些示例实施例中,近似加法器264m可被控制为在NPU图5的100的训练模式下执行近似加法并在NPU图5的100的推理模式下执行一般加法。例如,近似加法器264m可被控制为基于从控制器图5的130接收的第三控制信号CTRL_3执行近似加法和一般加法之一。例如,在NPU图5的100的训练模式下,输出值alo可通过近似乘法器262m的近似乘法和近似加法器264m的近似加法而具有随机性,因此可随后在AFU图6的180m中执行随机舍入运算。图12是示出根据本公开的一些示例实施例的ALU360m的框图。下面将省略在图12中示出的参照图7和图11给出的配置的重复的描述。参照图12,ALU360m可包括一般乘法器362m和近似加法器364m。在一些示例实施例中,一般乘法器362m可在NPU图5的100的训练模式和推理模式下执行一般乘法。此外,近似加法器364m可被控制为在NPU图5的100的训练模式下执行近似加法并在NPU图5的100的推理模式下执行一般加法。例如,在NPU图5的100的训练模式下,输出值alo可通过近似加法器364m的近似加法而具有随机性,因此可随后在AFU图6的180m中执行随机舍入运算。图13是示出根据本公开的一些示例实施例的移动计算装置1000的框图。作为非限制示例,移动计算装置1000可以是通过电池或自发电供电的任何移动电子装置诸如,移动电话、平板个人计算机PC、可穿戴装置或者物联网IoT装置。如图13中所示,移动计算装置1000可包括存储器子系统1010、输入输出IO装置1030、处理单元1050和网络接口1070,并且存储器子系统1010、IO装置1030、处理单元1050和网络接口1070可经由总线1090互相通信。在一些实施例中,存储器子系统1010、IO装置1030、处理单元1050和网络接口1070中的至少两个可作为片上系统被包括在一个封装中。存储器子系统1010可包括RAM1012和存储装置1014。RAM1012和或存储装置1014可存储将由处理单元1050执行的指令和将被处理的数据。例如,RAM1012和或存储装置1014可存储变量诸如,神经网络的信号、权重和偏置或者可存储神经网络的神经元或节点的参数。在一些实施例中,存储装置1014可包括非易失性存储器。处理单元1050可包括中央处理器CPU1052、图形处理器GPU1054、数字信号处理器DSP1056和NPU1058。与图13所示不同,在一些实施例中,处理单元1050可包括CPU1052、GPU1054、DSP1056和NPU1058中的至少一些。CPU1052可控制或执行移动计算装置1000的整体操作,例如,可响应于经由IO装置1030接收的外部输入而直接执行特定操作或者可指示处理单元1050的其他组件来执行。GPU1054可生成经由包括在IO装置1030中的显示装置输出的图像的数据或者可对从包括在IO装置1030中的相机接收的数据进行编码。DSP1056可通过对数字信号例如,从网络接口1070提供的数字信号进行处理来生成有用的数据。作为用于神经网络的专用硬件的NPU1058可包括与构成神经网络的至少一些神经元对应的神经处理单元,并且神经处理单元中的至少一些可并行处理信号。根据本公开的一些示例实施例的NPU1058可包括近似乘法器和舍入器并且可相应地执行神经网络训练,这使得定点训练具有高准确性,从而提高移动计算装置1000的操作性能和或功能。此外,由于即使在没有单独的随机数生成器的情况下也可执行随机舍入,所以NPU1058的面积和功耗可减少,从而进一步改善移动计算装置1000的操作性能和或功能。IO装置1030可包括输入装置诸如,触摸输入装置、声音输入装置和相机以及输出装置诸如,显示装置和声音输出装置。例如,当经由声音输入装置输入用户的语音时,可通过在移动计算装置1000中实现的神经网络来识别语音,并且可触发对应的操作。此外,当经由相机输入图像时,可通过在移动计算装置1000中实现的神经网络来识别包括在图像中的对象,并且可将输出诸如,虚拟现实提供给用户。网络接口1070可向移动计算装置1000提供对移动通信网络诸如,长期演进LTE、5G等的访问或可提供对本地网络诸如,WiFi的访问。图14示出根据一些示例实施例的车辆。参照图14,车辆1400可包括以下项中的一个或多个:处理组件1402、一个或多个传感器装置1420、一个或多个通信接口1430、一个或多个驱动控制元件1440、自主导航系统1450和一个或多个车辆乘员“用户”接口1460。如在此描述的,一个或多个传感器1420可包括一个或多个相机装置、主动扫描装置例如,一个或多个LiDAR传感器装置、一个或多个超声波传感器装置、一个或多个地理定位装置、它们的一些组合等。传感器装置1420可基于对车辆1400周围的外部环境的一个或多个部分进行监视来生成传感器信号。如在此描述的,一个或多个驱动控制元件可包括以下项中的一个或多个:被配置为控制车辆1400的转向的车辆转向装置、被配置为控制车辆1400的发动机的至少一部分以控制车辆1400的加速和或运动的油门装置、被配置为控制车辆1400的制动的制动装置、被配置为提供外部照明的灯组件例如,前照灯、制动灯、转向信号指示灯等、被配置为控制车辆1400舱的一个或多个部分的制热和或制冷的气候控制组件或者被配置为控制车辆1400的任何操作的任何其他已知的元件。如在此描述的,用户接口1460可包括在车辆1400舱中的一个或多个显示屏上呈现的图形显示接口GUI包括触摸屏显示器、非交互式显示器、平视显示器、一些组合等、音频接口例如,扬声器和或麦克风、触觉接口装置、它们的一些组合等中的一个或多个。如在此描述的,一个或多个通信接口1430可包括无线电收发器、无线网络通信收发器、点对点无线网络通信收发器、地理空间定位系统GPS装置、它们的一些组合等。如在此描述的,自主导航系统1450可包括被配置为实现一个或多个驱动控制元件1440的自主控制以通过环境对车辆1400进行自主导航的计算装置例如,存储指令的程序的至少一个存储器和被配置为执行指令的程序的至少一个处理器。自主导航系统1450可被配置为基于对由一个或多个传感器装置1420生成的传感器数据进行处理实现对一个或多个驱动控制元件的这样的自主控制。如示出的,处理组件1402可包括神经网络处理单元NPU1410。NPU1410可以是如在此描述的NPU100和或NPU1058。在一些示例实施例中,处理组件1402包括在自主导航系统1450中,使得自主导航系统包括NPU1410。在一些示例实施例中,车辆1400被配置为参与自主导航“自主驾驶”例如,独立于车辆乘员对任何驱动控制元件1440的控制的车辆的驾驶,使得车辆1400在此可被称为自主车辆。在一些示例实施例中,NPU1410可以是如在此描述的NPU100和或NPU1058可被配置为接收包括由一个或多个传感器装置1420生成的传感器数据的一条或多条“实例”输入数据。NPU1410可被配置为从一个或多个各种装置包括可被包括在处理组件1402和或自主导航系统1450中的一个或多个IP接收多个权重。权重可在NPU经由用户接口1460、传感器装置1420或通信接口1430中的一个或多个来接收。NPU1410可被配置为执行如在此描述的NPU100的功能,例如,基于输入数据例如,传感器数据的一个或多个实例和多个权重来执行计算以生成输出信号例如,后激活A_O,其中,输出信号可以是被发送给至少一个驱动控制元件1440以使得该至少一个驱动控制元件1440实现对车辆1400的驾驶的一个或多个方面的控制来对车辆1400进行自主导航的驱动控制元件控制信号。此外,在一些示例实施例中,输入数据的一个或多个实例可以是在NPU1410从用户接口1460和通信接口1430中的一个或多个接收的数据。此外,在一些示例实施例中,NPU1410被配置为生成使得用户接口1460提供关于车辆1400的一个或多个特定乘员的用户接口功能的输出信号例如,后激活A_O。此外,在一些示例实施例中,NPU1410被配置为生成使得通信接口1430将信息和或对信息的请求传送给一个或多个外部的远程定位的实体包括基站、其他车辆、远程定位通信装置例如,智能电话、无线网络中的服务器装置、它们的一些组合等的输出信号例如,后激活A_O。在一些示例实施例中,NPU1410可包括近似乘法器和舍入器并且可相应地执行神经网络训练,这能够使定点训练具有高准确性,从而提高车辆1400的关于被配置为实现车辆1400的自主导航的操作性能和或功能。例如,NPU1410可被配置为基于以提高的准确性、精度和或高效性对由一个或多个传感器装置1420生成的传感器数据进行处理来实现车辆1400的自主导航,从而提高车辆1400的自主导航功能。此外,由于即使在没有单独的随机数生成器的情况下也可执行随机舍入,所以NPU1410的面积和功耗可减少,从而进一步改善车辆1400的关于与车辆1400的自主导航功能相关联的至少高效且紧凑的硬件的操作性能和或功能。虽然已经参照本发明构思的示例实施例具体示出并描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可在其中进行形式和细节的各种改变。

权利要求:1.一种神经网络处理单元,被配置为基于输入数据的一个或多个实例和多个权重来执行计算,所述神经网络处理单元包括:多个神经处理单元,其中,所述多个神经处理单元中的至少一个神经处理单元被配置为:接收第一值和第二值并基于第一值和第二值执行近似乘法运算;基于所述近似乘法运算的输出值执行随机舍入运算。2.根据权利要求1所述的神经网络处理单元,其中,所述至少一个神经处理单元还被配置为:可选地选择输入数据的所述一个或多个实例和所述多个神经处理单元中的一个神经处理单元的输出值中的一个元素,输出选择的一个元素作为第一值。3.根据权利要求1所述的神经网络处理单元,其中,第二值包括所述多个权重中的至少一个权重。4.根据权利要求1所述的神经网络处理单元,其中,所述至少一个神经处理单元还被配置为:对近似乘法运算的一个或多个输出值进行累加;基于近似乘法运算的输出值和所述累加的输出值执行加法运算。5.根据权利要求4所述的神经网络处理单元,其中,所述至少一个神经处理单元被配置为:对所述累加的输出值执行随机舍入运算。6.根据权利要求1所述的神经网络处理单元,其中,所述至少一个神经处理单元被配置为:响应于神经网络处理单元在训练模式下操作而执行近似乘法运算。7.根据权利要求6所述的神经网络处理单元,还包括:控制器,被配置为输出用于控制至少一个神经处理单元的模式的控制信号,其中,所述至少一个神经处理单元被配置为:基于所述控制信号,在以下模式中的一个模式下操作:执行近似乘法运算的第一模式,执行一般乘法运算的第二模式。8.根据权利要求7所述的神经网络处理单元,其中,所述至少一个神经处理单元被配置为:基于所述控制信号,在作为所述神经网络处理单元的推理模式的第二模式下操作。9.根据权利要求1所述的神经网络处理单元,其中,所述至少一个神经处理单元包括定点型装置。10.一种片上系统,包括:一个或多个半导体知识产权核IP;神经网络处理单元,被配置为从所述一个或多个IP接收输入数据并基于输入数据和多个权重执行神经网络计算,神经网络处理单元包括多个神经处理单元,其中,所述多个神经处理单元中的至少一个神经处理单元被配置为:接收第一值和第二值并对第一值和第二值执行近似乘法运算,基于近似乘法运算的输出值执行随机舍入运算,以输出关于近似乘法运算的输出的后激活。11.根据权利要求10所述的片上系统,其中,神经网络处理单元还包括:控制器,被配置为控制近似乘法运算,所述至少一个神经处理单元被配置为:基于控制器的控制,在神经网络处理单元的训练模式下执行近似乘法运算。12.根据权利要求11所述的片上系统,其中,所述至少一个神经处理单元被配置为:基于控制器的控制,在神经网络处理单元的推理模式下执行一般乘法运算。13.根据权利要求10所述的片上系统,其中,神经网络处理单元还包括:数据随机存取存储器,被配置为在训练模式下从所述一个或多个IP接收训练数据并存储训练数据。14.根据权利要求13所述的片上系统,其中,所述至少一个神经处理单元被配置为:接收从数据随机存取存储器输出的训练数据和所述多个神经处理单元中的一个神经处理单元的输出值,选择训练数据和输出值之一,输出训练数据和输出值中的选择的一个作为第一值。15.根据权利要求10所述的片上系统,其中,第二值包括所述多个权重中的至少一个权重。16.根据权利要求10所述的片上系统,其中,所述至少一个神经处理单元被配置为:对近似乘法运算的一个或多个输出值进行累加,基于近似乘法运算的输出值和所述累加的输出值执行加法运算,对所述累加的输出值执行随机舍入运算。17.一种神经网络处理单元,被配置为:在训练模式下,基于训练数据的一个或多个实例和多个权重执行训练操作,所述神经网路处理单元包括:多个神经处理单元,所述多个神经处理单元中的至少一个神经处理单元被配置为:在训练模式下,接收第一值和第二值并对第一值和第二值执行近似乘法运算,基于近似乘法运算的输出值和第三值,执行加法运算,对近似乘法运算的输出值进行累加,对基于所述累加输出的累加值执行随机舍入操作,以输出关于累加值的后激活。18.根据权利要求17所述的神经网络处理单元,其中,第一值包括训练数据的所述一个或多个实例和所述多个神经处理单元中的一个神经处理单元的输出值中的一个,第二值包括所述多个权重中的至少一个权重。19.根据权利要求17所述的神经网络处理单元,其中,第三值包括基于所述累加输出的累加值。20.根据权利要求17所述神经网络处理单元,其中,训练操作包括定点型训练操作。

百度查询: 三星电子株式会社 神经网络处理单元及包括该神经网络处理单元的片上系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术