System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 使用多层级查找表的函数近似方法和装置制造方法及图纸_技高网

使用多层级查找表的函数近似方法和装置制造方法及图纸

技术编号:40946449 阅读:3 留言:0更新日期:2024-04-18 15:04
公开了一种使用多层级查找表的函数近似的方法和装置。该函数近似设备和方法在基于分段线性近似或分段多项式近似来近似非线性函数值时使用多层级查找表(LUT)来以多阶方式近似函数的函数值。在所述多层级LUT中,为了减小近似误差,段长度依赖于所述函数的变化量被不同地设置。

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

本专利技术涉及一种使用多层级查找表的函数近似设备及方法。


技术介绍

1、本部分的陈述仅提供与本公开相关的背景信息,而不一定构成现有技术。

2、在神经网络中,各种非线性函数用于算术运算(例如,exp、log、sqrt、tanh、sigmoid、mish、swish等)。对于这些非线性函数,为了计算正确的函数值,可能需要大量时间来计算,或者当非线性函数被实现为hw时可能需要大的面积。

3、通常,当非线性函数被实现为hw时,可以通过将非线性函数划分为多个段,然后应用分段线性近似或分段多项式近似来计算非线性函数的近似值。当应用这种分段近似时,可以使用将函数划分为不同大小的段的方法,以便减小函数的近似误差。然而,如果段具有不同的范围,则需要预先执行将输入变量值与所有范围中的段相比较的处理,以便确定其中包括输入变量值的段。换句话说,当存在任意大小的l(其中l是自然数)个段时,需要最多l+1次比较来将输入变量值与每个段的起始值或结束值进行比较。在完成该比较处理之后,可以通过获得用于相应段的线性近似或多项式近似的常数(在下文中,称为“近似系数”)来计算函数的近似值。因此,为了快速计算,可能需要l+1个比较器和用于存储每个段的边界值的存储空间,因此,基于任意段的线性近似或多项式近似在硬件(hw)实现方面效率低。

4、因此,当分段线性近似或分段多项式近似被实现为hw时,如图13所示,通常使用基于相等段的近似方法,其中输入变量的范围被分成相等大小的段,并且特别地,总段的数量被设置为2n(其中n是自然数)。当使用2n个相等段时,可以通过仅使用输入变量的高n位来容易地确定包括输入变量的段,而不需要复杂的比较处理。另外,高n位可用作访问存储器的地址。基于相等段的近似具有能够使用高n位从如图14中所说明的查找表(lut)读取关于对应段的近似系数的优点。这里,近似系数在线性近似的情况下包括斜率和偏移。

5、同时,如图13所示,当整个区间被分成8段时,在段sa0、sa3、sa4和sa7中给定函数的变化量较小,因此使得线性近似变得更容易。然而,由于函数的形状在段sa1和sa6中是曲线,因此误差发生在线性近似期间,并且特别地,曲率在段sa2和sa5中增加,因此与其他段相比,在线性近似期间可能发生更大的误差。随着段数的增加,基于相等段的近似可以减少给定函数的近似误差,然而,用于存储近似系数的lut的大小与段数成比例地增加,因此存在可能限制段的最大数量的问题。

6、作为另一种现有技术,nvidia发行的开放源型人工智能处理器nvdla使用基于两个lut的线性近似,如图15和16所示,以减少近似误差(参见“http://nvdla.org/hw/v1/ias/lut-programming.html”)。在该方法中,通过由第一lut将函数的整个输入区段划分为l个相等的段来线性地近似给定函数,并且通过由第二lut将要更精确地计算的输入段划分为j个相等的段来线性地近似给定函数。

7、例如,如图15所示,通过使用第一lut将整个输入区段分成8个相等的段sa0至sa7来线性近似函数,并且使用第二lut将输入范围的一部分分成20个相等的子段sb0至sb19来线性近似函数。因此,图15中所示的一个子段内的函数的变化量小于图13中所示的一个段内的函数的变化量,因此使得基于两个lut的线性近似变得更容易。

8、如图15中所说明的两个lut的总大小(其与lut所支持的段的数量成比例)可允许存储总共28(8+20)个段的近似系数,如图16中所说明。

9、nvdla首先使用两个lut为给定输入变量值同时计算两个值。接下来,如果输入变量值在可以通过第二lut近似的范围内,则基于第二lut计算的值被选择作为输出,并且如果输入变量值不在该范围内,则基于第一lut计算的值被选择作为输出。

10、虽然当给定函数的整个输入区段的仅一部分中存在显著变化时,这种基于两个lut的分段线性近似在减小近似误差方面是有效的,但是该方法具有的问题是,当若干部分具有显著变化时,或者即使在一部分中存在变化并且该变化严重显著,也不能有效地减小近似误差。

11、因此,在对具有各种特性的非线性函数进行分段近似时,需要一种能够有效减小近似误差的lut结构和操作方法。

12、本公开

13、技术问题

14、本公开寻求提供一种函数近似设备和一种方法,用于在基于分段线性近似或分段多项式近似来近似非线性函数值时使用多层级查找表(lut)来以多阶方式近似函数的函数值。在多层级lut中,为了减小近似误差,根据函数的变化量来不同地设置段长度。

15、技术方案

16、本公开的至少一个方面提供了一种由计算设备执行的分段函数近似方法。分段函数近似方法包括获得用于函数的输入变量值。所述分段函数近似方法还包括基于所述输入变量值使用多层级查找表(lut)来提取用于所述函数的近似系数。所述多层级lut包括k个lut(k是2或更大的自然数)。该分段函数近似方法还包括使用近似系数来计算针对输入变量值的函数值。所述k个lut支持不同的段大小,由第k个lut(k是从1到k-1的自然数)支持的段大小大于第(k+1)个lut支持的段大小,并且基于由第k个lut提供的映射信息来访问第(k+1)个lut。

17、本公开的另一方面提供了一种分段函数近似设备。该分段函数近似设备包括输入单元,该输入单元被配置为用于获得函数的输入变量值。分段函数近似设备还包括包含多层级查找表(lut)的存储器。多层级lut包括k个lut(k是2或更大的自然数)。该分段函数近似装置还包括系数提取器,其被配置为基于输入变量值使用多层级查找表(lut)来提取用于函数的近似系数。该分段函数近似设备还包括函数值生成器,其被配置为使用近似系数来计算针对输入变量值的函数值。所述k个lut支持不同的段大小,由第k个lut(k是从1到k-1的自然数)支持的段大小大于第(k+1)个lut支持的段大小,并且基于由第k个lut提供的映射信息来访问第(k+1)个lut。

18、本公开的又一方面提供了一种其中存储指令的计算机可读记录介质,所述指令在由计算机执行时使得所述计算机执行获得用于函数的输入变量值。所述指令还致使计算机基于所述输入变量值使用多层级查找表(lut)执行提取用于所述函数的近似系数。所述多层级lut包括k个lut(k是2或更大的自然数)。所述指令还使得计算机执行使用所述近似系数计算针对所述输入变量值的函数值。所述k个lut支持不同的段大小,由第k个lut(k是从1到k-1的自然数)支持的段大小大于第(k+1)个lut支持的段大小,并且基于由第k个lut提供的映射信息来访问第(k+1)个lut。

19、优势效果

20、如上所述,本专利技术提供了一种函数近似设备和方法,用于使用多层级lut以多级方式来近似非线性函数的函数值,在所述多层级lut中,根据非线性函数的变化量来不同地设置段长度。因此,该函数近似设备和方法使用小尺寸的l本文档来自技高网...

【技术保护点】

1.一种由计算设备执行的分段函数近似方法,包括:

2.根据权利要求1所述的分段函数近似方法,其中关于由所述第k个LUT支持的所有段中的t个段,所述映射信息是用于将所述t个段(t是自然数)中的每一者划分成由所述第(k+1)个LUT支持的子段的信息。

3.根据权利要求2所述的分段函数近似方法,其中所述t个段中的每一者具有大于预设阈值的针对所述函数的近似误差,并且子段的数量依赖于所述t个段中的每一者的所述近似误差的大小被确定。

4.根据权利要求2所述的分段函数近似方法,其中针对所述t个段中的每一者,所述映射信息包括指示所述第(k+1)个LUT中的起始位置的基本索引以及子段的数量。

5.根据权利要求1所述的分段函数近似方法,其中所述第k个LUT包括作为关于段的信息的所述近似系数或所述映射信息,并且第K个LUT包括作为关于段的信息的所述近似系数。

6.根据权利要求1所述的分段函数近似方法,其中提取所述近似系数包括:

7.根据权利要求1所述的分段函数近似方法,其中所述K个LUT中的每一者将所述近似系数分配给用作数字的代码区域,并且将所述映射信息分配给不用作浮点数系统中的数字的代码区域。

8.根据权利要求7所述的分段函数近似方法,其中,当次正规数代码不用于表示所述近似系数时,所述K个LUT中的每一者将所述映射信息分配给所述次正规数模式区域。

9.根据权利要求8所述的分段函数近似方法,其中,对于表示所述映射信息中的子段数量的浮点数,非零值被设置到尾数字段以指示所述映射信息。

10.根据权利要求8所述的分段函数近似方法,其中,对于表示所述映射信息的浮点数,尾数字段中的一个预设位置的位值被设置为1以指示所述映射信息。

11.根据权利要求8所述的分段函数近似方法,其中,对于表示所述映射信息的浮点数,预设值被设置为符号字段以指示所述映射信息。

12.一种分段函数近似设备,包括:

13.根据权利要求12所述的分段函数近似设备,其中关于由所述第k个LUT支持的所有段中的t个段,所述映射信息是用于将所述t个段(t是自然数)中的每一者划分成由所述第(k+1)个LUT支持的子段的信息。

14.根据权利要求13所述的分段函数近似设备,其中所述t个段中的每一者具有大于预设阈值的针对所述函数的近似误差,并且子段的数量依赖于所述t个段中的每一者的所述近似误差的大小被确定。

15.根据权利要求12所述的分段函数近似设备,其中所述系数提取器包括:

16.根据权利要求12所述的分段函数近似设备,其中所述K个LUT中的每一者将所述近似系数分配给用作数字的代码区域,并且将所述映射信息分配给不用作浮点数系统中的数字的代码区域。

17.一种计算机可读记录介质,其中存储有指令,所述指令在由计算机执行时使所述计算机执行:

...

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

1.一种由计算设备执行的分段函数近似方法,包括:

2.根据权利要求1所述的分段函数近似方法,其中关于由所述第k个lut支持的所有段中的t个段,所述映射信息是用于将所述t个段(t是自然数)中的每一者划分成由所述第(k+1)个lut支持的子段的信息。

3.根据权利要求2所述的分段函数近似方法,其中所述t个段中的每一者具有大于预设阈值的针对所述函数的近似误差,并且子段的数量依赖于所述t个段中的每一者的所述近似误差的大小被确定。

4.根据权利要求2所述的分段函数近似方法,其中针对所述t个段中的每一者,所述映射信息包括指示所述第(k+1)个lut中的起始位置的基本索引以及子段的数量。

5.根据权利要求1所述的分段函数近似方法,其中所述第k个lut包括作为关于段的信息的所述近似系数或所述映射信息,并且第k个lut包括作为关于段的信息的所述近似系数。

6.根据权利要求1所述的分段函数近似方法,其中提取所述近似系数包括:

7.根据权利要求1所述的分段函数近似方法,其中所述k个lut中的每一者将所述近似系数分配给用作数字的代码区域,并且将所述映射信息分配给不用作浮点数系统中的数字的代码区域。

8.根据权利要求7所述的分段函数近似方法,其中,当次正规数代码不用于表示所述近似系数时,所述k个lut中的每一者将所述映射信息分配给所述次正规数模式区域。

9.根...

【专利技术属性】
技术研发人员:韩挺镐
申请(专利权)人:思比恩韩国株式会社
类型:发明
国别省市:

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

1