System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 包括编程激活函数执行单元的神经处理单元制造技术_技高网

包括编程激活函数执行单元的神经处理单元制造技术

技术编号:40607503 阅读:4 留言:0更新日期:2024-03-12 22:14
根据本公开的实施方式提供了一种激活函数编程方法。所述方法包括以下步骤:生成用于将激活函数分段的片段数据;通过使用生成的片段数据将激活函数分段成多个片段;以及将多个片段当中的至少一个片段近似成可编程片段。

【技术实现步骤摘要】
【国外来华专利技术】

本公开涉及一种包括可编程激活函数执行单元的神经处理单元(npu)。


技术介绍

1、人类配备有可以执行识别、分类、推理、预测和控制/决策的智力。人工智能(ai)是指人工模仿人类智力。

2、人脑由称为神经元的许多神经细胞组成。每个神经元通过称为突触的连接而连接到数百到数千个其他神经元。为了模仿人类智力,对生物神经元的工作原理和神经元之间的连接关系进行建模被称为人工神经网络(ann)模型。换言之,ann是其中模仿神经元的节点以层结构连接的系统。

3、为加速ann的计算而开发的ann专用处理器是神经处理单元(npu)。


技术实现思路

1、技术问题

2、ann根据层数分为“单层神经网络”和“多层神经网络”。典型的多层神经网络由输入层、隐藏层和输出层组成。输入层是接收输入值的层,并且输入层的数量与输入变量的数量相同。隐藏层位于输入层和输出层之间,并且是从输入层接收信号,提取特征并将其传递到输出层的层。输出层是从隐藏层接收信号并将其输出到外部的层。

3、当信号在人脑中的神经元之间传输时,信号的传输强度变化。通过模仿这一点,在层之间传输的信号的传输强度变化,即、激活由ann中的激活函数来确定。

4、根据npu中实现的激活函数的特性,ann的推理准确性可以变化。也就是说,ann的性能和效率根据npu的激活函数处理电路的硬件实现特性来确定。此外,处理复杂数学激活函数的人工神经网络可以由硬件加速器来处理。当在硬件中实现ann专用处理器时,ann专用处理器可能需要相当大的芯片面积(即,大量逻辑门)。此外,这些芯片可以具有显著的功耗。

5、为了实现更高的人工智能,已经公开了具有增加数目的隐藏层的深度神经网络(dnn)。dnn的激活函数用于确定应用了权重和偏差的计算值的传递强度。dnn正在以不同结构开发。

6、例如,已知作为dnn的示例的卷积神经网络(cnn)容易提取输入值(即,视频或图像)的特征并标识所提取的特征的图案(pattern)。cnn可以被配置为以特定顺序处理卷积运算、激活函数运算、池化运算等的形式。

7、例如,在dnn的每一层中,输入值和参数(即,权重或核心)可以是由多个通道组成的矩阵。输入值和参数可以在npu中通过卷积或矩阵乘法进行处理。在每一层中处理计算之后生成计算值。激活函数可以应用于这些计算值。

8、例如,转换器(transformer)是基于注意力技术的dnn。转换器利用许多矩阵乘法运算。转换器可以通过使用诸如输入值和查询(q)、键(k)和值(v)之类的参数来获得注意力(q,k,v)的运算值。转换器可以基于运算值(即,注意力(q,k,v))来处理各种推理运算。转换器倾向于比cnn表现出更好的推理性能。

9、上述神经网络可以被称为dnn。同时,激活函数可以选择性地应用于dnn的多个层当中的特定层的运算值。

10、可以被配置为包括与激活函数的输入值(即,特定层的运算值)相对应的x轴值和与激活函数的激活值相对应的y轴值。激活函数起到将输入值的数学线性组合转换成各种类型的线性组合或非线性组合的作用。因此,dnn可被设计为通过将适当的激活函数应用于特定层的运算值来执行各种推理函数。

11、要在dnn中解决的大多数复杂函数都表现出非线性。为了解决这个问题,大多数激活函数都是非线性函数。

12、在硬件中处理的dnn模型的性能和效率可以根据应用于由npu处理的至少一个dnn模型的激活函数的非线性而变化。

13、激活函数可以通过更多地强调激活函数的输入值的特定区域的特征并且更少地强调激活函数的输入值的其他区域的特征来提高或降低推理准确性。

14、各种激活函数当中的至少一些激活函数的非线性可以包括对数运算、指数运算等。在数字逻辑设计方面,在硬件中实现包括对数和指数运算的激活函数是非常复杂的。例如,对于对数和指数运算,硬件运算器的配置变得非常复杂。因此,本公开的专利技术人认识到硬件的功耗可能增加并且计算处理速度可能减慢。

15、在npu的情况下,可能需要针对每个激活函数处理来设计每个激活函数处理模块。此外,硬连线处理器可以使用相应的硬连线专用激活函数处理逻辑单元仅处理预定义的激活函数。此时,本公开的专利技术人认识到存在缺点在于,门的数量根据激活函数的计算复杂度在硬连线处理器中快速增加。

16、在没有硬件修改的情况下,硬连线处理器不能独立处理新的激活函数。不能由硬连线处理器处理的激活函数必须利用单独的软件进行计算。例如,硬连线处理器可以是专用于人工智能的专用应用集成电路(asic)。也就是说,硬连线处理器可以是npu。

17、已经提出了各种方法来处理硬连线处理器中的各种类型的激活函数。例如,传统上,已经利用使用查找表(lut)的方法、使用非线性近似方程的方法、使用多项式近似的方法等来处理激活函数。

18、然而,本公开的专利技术人已经认识到,其中使用多项式近似等在硬件中处理激活函数的将激活函数近似的传统方法需要来自处理器的大量计算以提高推理准确性。

19、因此,本公开的专利技术人已经认识到,需要提高应用了传统的激活函数近似技术的dnn模型的推理准确性劣化问题、处理器的激活函数处理单元中的门的数量增加的问题以及处理器功耗增加的问题。

20、此外,本公开的专利技术人已经认识到,需要能够将任何激活函数近似的编程方法以及用于驱动激活函数的硬件设计,以便处理器独立地处理:1)未包括在诸如查找表之类的不能由应用传统激活函数处理方法的处理器处理的预定数据中的激活函数,2)新的激活函数,和/或3)其中一些传统激活函数已被修改的激活函数。

21、此外,本公开的专利技术人已经认识到,需要设计一种能够驱动针对激活函数的特性优化的近似算法的npu。

22、此外,本公开的专利技术人已经认识到,如果提供针对这种编程方法优化的硬件,则可以在硬件中有效且灵活地对激活函数进行编程。

23、此外,可以基于要编程的激活函数的形状来设定每个区域,并且可以针对每个设定的区域对近似参数进行编程。本公开的专利技术人已经认识到,通过考虑激活函数的每个区域的特性,可以有效地并且以低近似误差对激活函数进行编程。

24、此外,本公开的专利技术人已经认识到,可以在包括编程激活函数执行(pafe)单元的硬连线处理器中提供可编程激活函数(paf)。

25、因此,本公开要解决的目的是提供一种相对优于传统的近似方法并且能够在具有各种硬件选项的硬件中对非线性激活函数进行编程的方法。

26、此外,本公开要解决的目的是提供一种通过考虑激活函数本身的特性、近似误差、硬件选项信息等以更加定制化的方式将非线性激活函数近似的方法。

27、此外,本公开要解决的问题是提供一种包括pafe单元的硬连线处理器。

28、此外,本公开要解决的问题是提供一种包括被配置为处理至少一个编程激活函数的pafe单元的硬连线处理器。本文档来自技高网...

【技术保护点】

1.一种神经处理单元,所述神经处理单元包括:

2.根据权利要求1所述的神经处理单元,所述神经处理单元还包括用于存储关于所述多个可编程片段的区段的信息的片段寄存器。

3.根据权利要求1所述的神经处理单元,所述神经处理单元还包括用于存储所述多个可编程片段的片段边界值的片段寄存器。

4.根据权利要求1所述的神经处理单元,其中,所述编程激活函数执行单元包括硬连线的多个比较器、选择器、至少一个乘法器和至少一个加法器。

5.根据权利要求1所述的神经处理单元,所述神经处理单元还包括多个比较器,所述多个比较器被配置为将所述运算值与多个输入的片段边界值中的每个片段边界值进行比较,并且输出区段确定数据。

6.根据权利要求1所述的神经处理单元,所述神经处理单元还包括多个比较器,所述多个比较器被配置为通过比较器使能信号来确定是否操作。

7.根据权利要求1所述的神经处理单元,所述神经处理单元还包括多个比较器,所述多个比较器被配置为输出区段确定数据,

8.根据权利要求4所述的神经处理单元,其中,所述至少一个乘法器将输入值与从所述选择器输出的可编程片段的梯度相乘。

9.根据权利要求8所述的神经处理单元,其中,所述至少一个加法器将从所述至少一个乘法器输出的通过将所述输入值与用于所述可编程片段的所述梯度相乘而获得的值添加到用于所述可编程片段的偏移量。

10.根据权利要求4所述的神经处理单元,其中,所述选择器根据多个区段确定数据,输出用于多个可编程片段的梯度当中的用于与输入值所属于的片段的区段相对应的可编程片段的二阶项的梯度、一阶项的梯度和偏移量。

11.根据权利要求10所述的神经处理单元,其中,所述至少一个乘法器包括:

12.根据权利要求11所述的神经处理单元,其中,所述第二乘法器和所述第三乘法器的操作由第一使能信号来控制。

13.根据权利要求12所述的神经处理单元,其中,所述至少一个加法器包括:

14.根据权利要求13所述的神经处理单元,其中,所述第二加法器的操作由所述第一使能信号来控制。

15.根据权利要求4所述的神经处理单元,其中,所述编程激活函数执行单元还包括对数运算器,所述对数运算器执行所述至少一个加法器的输出值的对数运算。

16.根据权利要求15所述的神经处理单元,其中,所述对数运算器的操作由第二使能信号来控制。

17.根据权利要求1所述的神经处理单元,所述神经处理单元还包括可编程激活函数库,所述可编程激活函数库存储用于配置可编程激活函数的多个可编程片段的梯度和偏移量信息。

18.根据权利要求1所述的神经处理单元,其中,所述至少一个处理元件通过复用器连接到所述编程激活函数执行单元。

19.根据权利要求1所述的神经处理单元,所述神经处理单元还包括激活函数转换编程单元,所述激活函数转换编程单元将激活函数编程为所述至少一个编程激活函数。

20.根据权利要求19所述的神经处理单元,其中,所述激活函数转换编程单元根据斜率变化数据优先地确定所述至少一个编程激活函数的线性区段和非线性区段。

21.根据权利要求20所述的神经处理单元,其中,所述激活函数转换编程单元将所述斜率变化数据的二阶导数低于阈值的区段确定为所述线性区段。

22.根据权利要求20所述的神经处理单元,其中,所述激活函数转换编程单元将所述斜率变化数据的二阶导数高于阈值的区段确定为所述非线性区段。

23.根据权利要求22所述的神经处理单元,其中,所述激活函数转换编程单元基于所述二阶导数的积分值将所述非线性区段划分成多个区段。

24.根据权利要求19所述的神经处理单元,其中,所述激活函数转换编程单元将所述至少一个编程激活函数的所述线性区段转换成由线性函数近似的可编程片段。

25.根据权利要求19所述的神经处理单元,其中,所述激活函数转换编程单元将所述至少一个编程激活函数的非线性区段转换成由二次函数近似的可编程片段。

26.根据权利要求19所述的神经处理单元,其中,所述激活函数转换编程单元将所述至少一个编程激活函数的非线性区段转换成由对数函数近似的可编程片段。

...

【技术特征摘要】
【国外来华专利技术】

1.一种神经处理单元,所述神经处理单元包括:

2.根据权利要求1所述的神经处理单元,所述神经处理单元还包括用于存储关于所述多个可编程片段的区段的信息的片段寄存器。

3.根据权利要求1所述的神经处理单元,所述神经处理单元还包括用于存储所述多个可编程片段的片段边界值的片段寄存器。

4.根据权利要求1所述的神经处理单元,其中,所述编程激活函数执行单元包括硬连线的多个比较器、选择器、至少一个乘法器和至少一个加法器。

5.根据权利要求1所述的神经处理单元,所述神经处理单元还包括多个比较器,所述多个比较器被配置为将所述运算值与多个输入的片段边界值中的每个片段边界值进行比较,并且输出区段确定数据。

6.根据权利要求1所述的神经处理单元,所述神经处理单元还包括多个比较器,所述多个比较器被配置为通过比较器使能信号来确定是否操作。

7.根据权利要求1所述的神经处理单元,所述神经处理单元还包括多个比较器,所述多个比较器被配置为输出区段确定数据,

8.根据权利要求4所述的神经处理单元,其中,所述至少一个乘法器将输入值与从所述选择器输出的可编程片段的梯度相乘。

9.根据权利要求8所述的神经处理单元,其中,所述至少一个加法器将从所述至少一个乘法器输出的通过将所述输入值与用于所述可编程片段的所述梯度相乘而获得的值添加到用于所述可编程片段的偏移量。

10.根据权利要求4所述的神经处理单元,其中,所述选择器根据多个区段确定数据,输出用于多个可编程片段的梯度当中的用于与输入值所属于的片段的区段相对应的可编程片段的二阶项的梯度、一阶项的梯度和偏移量。

11.根据权利要求10所述的神经处理单元,其中,所述至少一个乘法器包括:

12.根据权利要求11所述的神经处理单元,其中,所述第二乘法器和所述第三乘法器的操作由第一使能信号来控制。

13.根据权利要求12所述的神经处理单元,其中,所述至少一个加法器包括:

14.根据权利要求13所述的神经处理单元,其中,所述第二加法器的操作由所述...

【专利技术属性】
技术研发人员:金錄元朴仁洙金浩承田䚘振
申请(专利权)人:蒂普爱可斯有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1