本技术涉及人工智能,尤其涉及一种硬件加速电路、数据处理加速方法、芯片及加速器。
背景技术:
1、人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大。以基于神经网络的深度学习为例,其对训练数据的数量和质量的要求较高。为了提升神经网络的训练效果,可以消除训练数据中对训练不利的因素。例如,使用数据标准化(normalization)的方法来处理原始数据。
2、对数据进行标准化处理广泛应用于深度学习等。相关技术中可以通过通用计算单元,例如中央处理器(cpu)或图形处理器(gpu)计算标准化函数的函数值。但是,神经网络的处理过程例如由深度学习加速器(deep learning accelerator,简称dla)或神经网络处理器(neural network processing unit,简称npu)等硬件电路执行的情况下,如果标准化函数层(如归一化层)位于神经网络的网络中间层,会导致dla/npu与cpu/gpu之间的作业迁移(job migration)开销,使得使用cpu/gpu确定标准化函数值的方案的效率不高,导致系统带宽增加和更高的功耗。
技术实现思路
1、为解决或部分解决相关技术中存在的问题,本技术提供一种硬件加速电路、数据处理加速方法及加速器,能够提高标准化函数计算过程中的数据处理速度,加速获得标准化函数值。
2、本技术一方面提供一种硬件加速电路,包括:
3、存储模块,用于存储第一查找表;
4、函数值获得模块,用于获得k个数据元素的方差构成部分的函数值;
5、查找表电路,用于响应于方差构成部分的函数值的索引值,基于第一查找表输出与方差构成部分对应的均方差的倒数;
6、乘法器,用于输出k个数据元素中的第i个数据元素与倒数的乘法运算结果,以获得第i个数据元素的标准化函数值。
7、在一实施例中,方差构成部分的函数值是位宽为m比特的数据,方差构成部分的函数值的索引值是位宽为n0比特的数据,其中,m大于n0;
8、硬件加速电路还包括:第一转换电路,用于基于索引值转换参数,将方差构成部分的函数值转换为方差构成部分的函数值的索引值。
9、在一实施例中,存储模块包括静态存储模块;
10、索引值转换参数存储于静态存储模块;
11、索引值转换参数是通过统计多个样本数据集合的多个方差构成部分的函数值方差构成部分的函数值的高斯分布数据后,根据高斯分布数据所确定的。
12、在一实施例中,上述硬件加速电路还包括:
13、第一索引值转换参数获取电路,用于基于方差构成部分的函数值,确定并输出索引值转换参数;
14、第一转换电路,用于基于索引值转换参数,将方差构成部分的函数值转换为对应的索引值;
15、查找表电路基于第一查找表输出与方差构成部分的函数值对应的倒数,具体为:基于选定第一查找表输出与方差构成部分的函数值对应的倒数,其中,选定第一查找表为多个备选的第一查找表中与索引值转换参数对应的第一查找表。
16、在一实施例中,存储模块包括静态存储模块,多个备选的第一查找表存储于静态存储模块;或者,
17、存储模块包括动态存储模块,选定第一查找表存储于动态存储模块。
18、在一实施例中,查找表电路包括:
19、第一基本查找表电路单元,包括第一逻辑电路、第一输入端组、第一控制端组、和第一输出端组,第一输入端组与第一存储区连接;第一逻辑电路用于:响应于自第一控制端组输入的第i个数据元素的索引值,自第一输出端组输出对应的倒数值;
20、其中:第一基本查找表电路单元为n0输入n1输出,n0,n1,的取值范围为[8,32]。
21、在一实施例中,上述硬件加速电路还包括:
22、第二转换电路,用于基于索引值转换参数,将乘法运算结果由位宽为n2比特的数据转换为位宽为n3比特的标准化函数值,其中,n2大于n3。
23、在一实施例中,上述硬件加速电路还包括:
24、减法器,用于输出初始数据集中的多个初始数据各自与初始数据集的平均值的减法运算结果,以获得k个数据元素;
25、第三转换电路,用于将k个数据元素转换为神经网络的输入数据。
26、在一实施例中,方差构成部分的函数值、乘法运算结果、均方差的倒数为定点整数。
27、本技术一方面提供一种硬件加速电路,包括:
28、存储模块,用于存储第二查找表和第三查找表;
29、函数值获得模块,用于获得k个数据元素的方差构成部分的函数值;
30、查找表电路,用于响应于方差构成部分的函数值的索引值,基于第二查找表输出方差构成部分的1/k倍函数值的倒数;以及,响应于第一乘法运算结果的索引值,基于第三查找表输出第一乘法运算结果的平方根;
31、乘法器,用于输出k个数据元素中的第i个数据元素的平方运算结果,输出第i个数据元素的平方运算结果与倒数的第一乘法运算结果,以及输出平方根与第i个数据元素的掩码张量的第二乘法运算结果,以获得第i个数据元素的标准化函数值。
32、在一实施例中,方差构成部分的函数值是位宽为n4比特的数据,方差构成部分的函数值的索引值是位宽为n5比特的数据,其中,n4大于n5;
33、硬件加速电路还包括:第四转换电路,用于基于索引值转换参数,将方差构成部分的函数值转换为方差构成部分的函数值的索引值。
34、在一实施例中,存储模块包括静态存储模块;
35、索引值转换参数存储于静态存储模块;
36、索引值转换参数是通过统计多个样本数据集合的多个方差构成部分的函数值的高斯分布数据后,根据高斯分布数据所确定的。
37、在一实施例中,上述硬件加速电路还包括:
38、第二索引值转换参数获取电路,用于基于方差构成部分的函数值,确定并输出索引值转换参数;
39、第四转换电路,用于基于索引值转换参数,将方差构成部分的函数值转换为对应的索引值;
40、查找表电路基于第二查找表输出与方差构成部分的1/k倍函数值的倒数,具体为:基于选定第二查找表输出与方差构成部分的1/k倍函数值对应的倒数,其中,选定第二查找表为多个备选的第二查找表中与索引值转换参数对应的第二查找表。
41、在一实施例中,存储模块包括静态存储模块,多个备选的第二查找表存储于静态存储模块;或者,
42、存储模块包括动态存储模块,选定第二查找表存储于动态存储模块。
43、在一实施例中,存储模块包括第二存储区和第三存储区,第二查找表存储于第二存储区,第三查找表存储于第三存储区;
44、查找表电路包括:
45、第二基本查找表电路单元,包括第二逻辑电路、第二输入端组、第二控制端组、和第二输出端组,第二输入端组与第三存储区连接;第二逻辑电路用于:响应于自第二控制端组输入的方差构成部分的函数值的1/k倍函数值的索引值,自第二输出端组输出对应的倒数;
46、第三基本查找表电路单元,包括第三逻辑电路、第三输入端组、第三控制端组、和第三输出端组,第三输入端组与第三存储区连接;第三逻辑电路用于:响应于自第三控制端组输入的第一乘法运算结果的索引值,自第三输出端组输出对应的平方根;
47、其中:第二基本查找表电路单元为n6输入n7输出,第三基本查找表电路单元为n8输入n9输出,n6~n9的取值范围为[8,32]。
48、在一实施例中,存储模块包括第二存储区,用于分时存储第二查找表和第三查找表;或者,存储模块包括第二存储区和第三存储区,第二查找表存储于第二存储区,第三查找表存储于第三存储区;
49、查找表电路包括:
50、第二基本查找表电路单元,包括第二逻辑电路、第二输入端组、第二控制端组和第二输出端组,第二输入端组与存储模块连接,第二逻辑电路用于:在第一时间段响应于自第二输入端组输入的方差构成部分的函数值的1/k倍函数值的索引值,基于第二查找表自第二输出端组输出对应的倒数,以及,在第一时间段之后的第二时间段,响应于自第二输入端组输入的第一乘法运算结果的索引值,基于第三查找表自第二输出端组输出与第一乘法运算结果对应的平方根;
51、其中:
52、第二基本查找表电路单元为n6输入n7输出状态;或者,
53、第二基本查找表电路单元还包括状态控制端组,用于在第一时间段输入第一状态控制信号,在第二时间段输入第二状态控制信号,以将基本查找表电路单元配置为:在第一时间段内为n6输入n7输出状态,在第二时间段为n8输入n9输出状态;其中,n6和n8、以及n7和n9中至少有一对不相等。
54、在一实施例中,上述硬件加速电路还包括:
55、第五转换电路,用于基于索引值转换参数,将乘法运算结果由位宽为n10比特的数据转换为位宽为n11比特的标值,其中,n10大于n11。
56、在一实施例中,上述硬件加速电路还包括:
57、减法器,用于输出初始数据集中的多个初始数据各自与初始数据集的平均值的减法运算结果,以获得k个数据元素;
58、第六转换电路,用于将k个数据元素转换为神经网络的输入数据。
59、在一实施例中,方差构成部分的1/k倍函数值的倒数方差构成部分的函数值、第一乘法运算结果、第二乘法运算结果和倒数中至少部分为定点整数。
60、本技术再一方面提供一种人工智能芯片,其特征在于,芯片包括如上所示的硬件加速电路。
61、本技术再一方面提供一种数据处理加速方法,包括:
62、获得k个数据元素的方差构成部分的函数值;
63、基于第一查找表获得与方差构成部分对应的均方差的倒数;
64、获得k个数据元素中的第i个数据元素与倒数的乘法运算结果,以获得第i个数据元素的标准化函数值。
65、在一实施例中,上述方法用于实现神经网络的归一化层,神经网络用于对待处理数据进行分类;其中,
66、待处理数据包括语音数据、文本数据和图像数据中的至少一种。
67、本技术再一方面提供一种数据处理加速方法,包括:
68、获得k个数据元素的方差构成部分的函数值;
69、基于第二查找表输出方差构成部分的1/k倍函数值的倒数;
70、获得k个数据元素中的第i个数据元素的平方运算结果;
71、获得第i个数据元素的平方运算结果与倒数的第一乘法运算结果;
72、基于第三查找表输出第一乘法运算结果的平方根;
73、获得平方根与第i个数据元素的掩码张量的第二乘法运算结果,以获得第i个数据元素的标准化函数值。
74、本技术再一方面提供一种人工智能加速器,包括:
75、处理器;以及
76、存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上的方法。
77、本技术提供的技术方案可以包括以下有益效果:
78、本技术实施例的技术方案,以查表方式获得与k个数据元素的方差构成部分的函数值对应的倒数,避免了复杂的倒数运算,能够提高标准化函数计算过程中的数据处理速度,更快获得标准化函数值。
79、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。