一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高精度base-2softmax函数的硬件实现芯片系统及方法

2022-08-17 22:56:28 来源:中国专利 TAG:

一种高精度base-2 softmax函数的硬件实现芯片系统及方法
技术领域
1.本发明涉及集成电路中神经网络多任务分类激活函数的硬件实现技术领域, 尤其是涉及一种面向神经网络训练与推理的高精度base-2 softmax函数的硬件实现 芯片系统及方法。


背景技术:

2.深度神经网络(dnn,deep neural network)是人工智能中重要的应用技术, softmax函数是实现深度神经网络的关键函数之一,被广泛应用于轨道交通部件的 健康状态识别及预警系统中。目前,在集成电路设计领域,各种硬件加速方法和架 构也层出不穷,具体表现在两个方面的研究:一是针对神经网络中出现的复杂矩阵 乘法问题提出有启发性的处理思路,二是针对激活函数的硬件实现,而softmax又 是最复杂、最具挑战性的函数。以往的以e为底的指数运算和除法运算在硬件实现 时较为复杂的,导致dnn中softmax层的硬件开销很大,特别是在基于transformer 的网络中,需要多次计算softmax函数。如何在计算softmax高精度前提下降低资 源开销成为重要的研究问题。
3.现有方法大都先通过“自然对数-反对数”转换方式替换除法操作,然后运用查 找表、线性近似以及泰勒公式展开等方式计算对数或指数操作,这些方法虽然可以 降低硬件实现复杂度或资源,但计算开销依旧很大,计算精度也不高。
4.而且由于现有方法大都采用以e为底的softmax函数,即base-e softmax,这 种方法的最大缺点就是硬件实现复杂度高,现有方法计算精度低,难以用于神经网 络训练加速器的硬件设计中,一般只能用于神经网络推理,所以需要研究一种能克 服上述缺点的方法与硬件架构。


技术实现要素:

5.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种高精度base-2 softmax函数的硬件实现芯片系统及方法。
6.本发明的目的可以通过以下技术方案来实现:
7.一种高精度base-2 softmax函数的硬件实现芯片系统,该芯片系统的硬件构架 包括:
8.排序模块:用以对输入数值向量x=[x1,x2,

,xn]采用多路比较器获取数值最 大值x
max
,并通过加/减法器计算新的数值向量x

=[x
′1,x
′2,

,x
′n],且 x
′i=x
i-x
max
,其中,xi为数值向量x的第i个数值,x
′i为对应新的数值向量x

的 第i个数值;
[0009]
整数小数分离模块:与排序模块和ii型双曲向量模式cordic模块连接,用 以将x
′i的值分离为一个整数m
1i
和一个正小数n
1i
的和以及将ω的值分离为一个 整数m
2i
和一个正小数n
2i
的和;
[0010]
ii型双曲旋转模式cordic模块:与整数小数分离模块连接,用以通过多次 迭代分别计算出和的值;
[0011]
加法树模块:与ii型双曲旋转模式cordic模块连接,用以通过采用多路加 法器并行计算的和,即的值;
[0012]
前导1位置判定模块:与加法树模块连接,用以通过小数点位置得到的表达 公式中参数r和τ的值;
[0013]
ii型双曲向量模式cordic模块:与前导1位置判定模块连接,用以通过多 次迭代计算出log
2 r的值。
[0014]
base-2 softmax函数的定义式为:
[0015][0016]
其中,xj为数值向量x的第j个数值。
[0017]
所述的数值x
′i的分离式为:
[0018]
x
′i=m
1i
n
1i
,m
1i
<0,n
1i
∈[0,1)。
[0019]
所述的的表达公式为:
[0020][0021]
其中,r∈[1,2],τ为整数。
[0022]
所述的ω的分离式为:
[0023]
ω=m
2i
n
2i
,m
2i
<0,n
2i
∈[0,1)。
[0024]
该系统最终输出的base-2 softmax函数结果为:
[0025]
f(xi)=2
ω

[0026]
该系统的计算过程具体为:
[0027]
基于base-2 softmax函数f(xi),对于输入数值向量x=[x1,x2,

,xn],首先获 取其数值最大值x
max
,将采用对数-反对数方式将f(xi)转换为 其中,x
′i=x
i-x
max
≤0、x
′j=x
j-x
max
≤0,然后根 据分离式x
′i=m
1i
n
1i
对x
′i进行分离,在计算出之后右移(-m
1i
)比特,以此 计算出的值,构建r∈[1,2],则有则有构建根据分离式ω=m
2i
n
2i
对ω进行分离,计算出之后右移(-m
2i
)比特,以此计算出ω的值,即base-2 softmax函数的最终结果。
[0028]
所述的ii型双曲旋转模式cordic模块在硬件实现中可分时复用。
[0029]
所述的整数小数分离模块在硬件实现中通过定点数的符号位以及小数点位置 进行分离操作。
[0030]
一种应用高精度base-2 softmax函数的硬件实现芯片系统的实现方法,包括以 下步骤:
[0031]
1)将数值向量x=[x1,x2,

,xn]输入排序模块,获取数值最大值x
max
,通 过加/减法器计算出所有的x
′i=x
i-x
max

[0032]
2)通过整数小数分离模块将x
′i的值分离成一个整数m
1i
和一个正小数n
1i
的 和,然后通过ii型双曲旋转模式cordic模块计算得到的值,最后通过加法 树模块计算出的值;
[0033]
3)通过前导1位置判定模块得到的表达公式中参数r和τ的值,并且通过 ii型双曲向量模式cordic模块计算得到log
2 r,通过加/减法器计算ω;
[0034]
4)通过整数小数分离模块将ω的值分离成一个整数m
2i
和一个正小数n
2i
的 和,然后再次通过ii型双曲旋转模式cordic模块计算出的值。
[0035]
与现有技术相比,本发明具有以下优点:
[0036]
本发明可面向神经网络训练与推理应用,克服了现有硬件实现存在计算精度低 或硬件资源开销大等缺点:计算精度低使得神经网络难以训练或训练效果不好,硬 件资源开销大使得芯片设计成本增加的两个缺点,本发明在计算softmax函数的硬 件资源开销小、计算精度高,为基于softmax函数的神经网络训练或推理硬件加速 器设计提供了很好的借鉴作用。
[0037]
另外,本发明通过调整ii型双曲旋转/向量模式cordic模块的迭代次数来灵 活调整base-2 softmax函数的计算精度,该系统既能调低迭代次数实现推理精度无 差别化网络推理,又能调高迭代次数实现训练精度无(或低)损失化的网络训练。
附图说明
[0038]
图1为基于ii型双曲cordic的base-2 softmax函数硬件实现系统结构示意 图。
[0039]
图2为ii型双曲旋转模式cordic架构图,其中,图(2a)为cordic hr-2, 图(2b)为cordic hv-2。
[0040]
图3为基于cifar-100数据集的mobilenet网络训练效果图,其中,图(3a) 为分类精度,图(3b)为损失值。
具体实施方式
[0041]
下面结合附图和具体实施例对本发明进行详细说明。
[0042]
本发明提供一种低硬件复杂度、高计算精度的base-2 softmax函数硬件实现方 法及芯片系统,本发明采用以2为底的softmax函数,通过ii型双曲cordic构 建低复杂度的硬件系统实现,并通过实验证明了其具有计算高精度特性,可用于卷 积神经网络训练以及推理加速器中。
[0043]
随着base-2 softmax函数的提出,意味着硬件实现复杂度可极大降低,由于e 是一个无限不循环小数,这在硬件设计中是很不友好的;而base-2 softmax函数中, 数字2的硬件友好性在于可通过简单的移位操作“乘以2(左移一比特)”以及“除 以2(右移一比特)”来实现。
[0044]
另外,cordic(coordinated rotation digital computer)迭代法是一种常用的计 算方法,可用于计算基本的数学函数,随着cordic算法的不断优化,其具备的 计算能力大大提高,加上原有的计算高精度优势,cordic算法具有广泛的应用前 景。这也为本发明提出面向神经网络训练与推理的高精度base-2 softmax函数硬件 实现方法及芯片系统提供了理论基础。
[0045]
在本发明中,高精度softmax函数的硬件实现方法与现有以e为底的softmax 函数不同,base-2 softmax函数定义如下:
[0046][0047]
其中,xi为输入向量x=[x1,x2,

,xn]中的第i个数值,n为向量中的数值 总数。
[0048]
为了降低以2为底的指数运算范围,需先找出向量x中的最大值x
max
,为了 不改变base-2 softmax的值,将分子分母同时除以若令x
′i=x
i-x
max
,为 了避免复杂的除法运算,本发明采用以2为底的“对数-反对数”变换方式后,可得:
[0049][0050]
x
′i(x
′j)≤0
[0051][0052]
基于上述公式,本发明期望形如“2
δ”与的计算范围分别为δ∈[0,1]和 如果可通过简单的移位操作来缩减x
′i的计算范围。例如 mi≤x
′i<(mi 1),mi是一个负整数,那么x
′i一定可以分离为一个负整数m
1i
与 正小数n
1i
的和,即:
[0053]
x
′i=m
1i
n
1i
,m
1i
<0,n
1i
∈[0,1)
[0054]
那么由于如果直接计算 它,硬件开销会很大,因此本发明在不提高硬件复杂度和计算延时的基础上采用了 数据标准化方式,假设的期望范围为这样的话可以直 接计算但若也可以通过简单的移位操作来缩减的计算范围。 例如τ是一个整数,那么一定可以通过右移τ个比特来减小范 围,即r∈[1,2],此时得到结果之后, 下一步计算令因为f(xi)的结果必定在(0,1]范围 内,所以ω≤0,为了进一步降低计算复杂度,本发明再次使用计算范围缩减法: 将ω再次分离为一个负整数m
2i
与正小数n
2i
的和,即:
[0055]
ω=m
2i
n
2i
,m
2i
<0,n
2i
∈[0,1)
[0056]
此时,这也是base-2 softmax函数 的最终结果。
[0057]
在本发明中,高精度softmax函数的硬件实现芯片系统具体包括以下几个模块:
[0058]
(1)排序模块,通过多路比较器找出x
max
,然后利用加(减)法器计算出所 有x
i-x
max

[0059]
(2)整数小数分离模块,该模块第一次将x
′i的值分离成一个整数m
1i
和一个 正小数n
1i
的和,第二次将ω的值分离成一个整数m
2i
和一个正小数n
2i
的和,在 硬件中主要通过定点数的符号位以及小数点位置进行分离操作;
[0060]
(3)ii型双曲旋转模式cordic模块,通过多次迭代分别计算出和的 值;ii
型双曲cordic,本发明中指的是采用ii型双曲函数sinh2、cosh2、tanh2, 分别为其迭代方程的输入初始值 x0、y0、z0分别为1/k
h2
、0、n
1i
或n
2i
,其中k
h2
为伸缩因子,n
1i
或n
2i
为待求 和的指数,在迭代次数为4,13,40,

时,该cordic需迭代两次。经过 迭代之后的输出结果xn、yn分别为cosh2(n
1i
)、sinh2(n
1i
)或cosh2(n
2i
)、 sinh2(n
2i
),将二者相加即可得到和的结果,除此以外,与标准型双曲旋 转模式cordic相比,查找表中的常数zn均需除以ln2。
[0061]
(4)加法树模块,采用多路加法器并行计算的和,即的值;
[0062]
(5)前导1位置判定模块,通过小数点位置可得到值的r和τ;
[0063]
(6)ii型双曲向量模式cordic模块,通过多次迭代计算出log
2 r的值;ii 型双曲cordic,与ii型双曲旋转模式cordic模块一致,其迭代方程的输入初 始值x0、y0、z0分别为r 1、r-1、0,其中,r为待求log
2 r的真数,在迭代 次数为4,13,40,

时,该cordic需迭代两次。经过迭代之后的输出结果zn为 将其乘以2(左移1个比特)就可得到log
2 r的值,除此以外,与标准型 双曲向量模式cordic相比,查找表中的常数zn也均需除以ln2。
[0064]
如图1所示,该实例的基于ii型双曲cordic的base-2 softmax函数硬件实 现系统,主要包括排序模块、整数小数分离模块、ii型双曲旋转模式cordic模 块、加法树模块、前导1位置判定模块、ii型双曲向量模式cordic模块,该系 统的基本工作原理如下:
[0065]
base-2 softmax函数定义为:
[0066][0067]
其中,xi为输入向量x=[x1,x2,

,xn]中的任一数值,先通过排序模块找出 向量x中的最大值x
max
,然后将分子分母同时除以令x
′i=x
i-x
max
,将 原定义公式采用以2为底的“对数-反对数”变换方式后,可得:
[0068][0069]
因为x
′i一定可以分离为一个负整数m
1i
与正小数n
1i
的和,即:
[0070]
x
′i=m
1i
n
1i
,m
1i
<0,n
1i
∈[0,1)
[0071]
那么由于n
1i
∈[0,1),故符合ii型双曲旋 转模式cordic(简称cordic
hr-2
)的收敛区间[-1.61,1.61],此时cordic
hr-2
的迭代次数为1,2,3,

,ii型双曲旋转模式cordic硬件架构如图2所示,假设 因为可以表示为
[0072][0073]
所以由于r∈[1,2],故符合ii型双曲向量模式cordic (简称cordic
hv-2
)的收敛区间[0.094,10.604],此时cordic
hv-2
的迭代次数 为1,2,3,

。ii型双曲向量模式cordic硬件架构如图2所示。得到结果之 后,令将ω
再次分离为一个负整数m
2i
与正小数n
2i
的和,即
[0074]
ω=m
2i
n
2i
,m
2i
<0,n
2i
∈[0,1)
[0075]
此时这也是base-2 softmax函数的 最终结果。由于n
2i
∈[0,1),故也符合ii型双曲旋转模式cordic(简称cordic hr-2
)的收敛区间[-1.61,1.61],此时cordic
hr-2
的迭代次数为1,2,3,

,该模块 在硬件实现中可分时复用。
[0076]
实施例
[0077]
下面以本发明的一个实例进行详细说明,并通过matlab仿真以及verilog 的rtl级描述进行设计验证。接下来先通过两组实验对本发明的可行性进行分析。
[0078]
实验一:利用mobilenet分类cifar-100的训练和推理效果
[0079]
本发明为了探究softmax计算结果的最大绝对误差(mae,maximum absoluteerror)对mobilenet网络训练和推理的影响,选取了5种误差加入到训练或推理中, 分别为1e-5、1.67e-5、2.55e-5、1e-4、1e-3,此外还包括现有的以e为底的softmax 无误差训练和推理。由于cifar-100数据集有6万张图片,选取其中的5万张图 片作为训练集,1万张图片作为验证集。1)训练:时期(epoch)数为180。在保 证其他训练参数不变的前提下,每次只改变softmax的mae值,即在softmax理 论值基础上添加随机误差且mae为上述5种,实验结果如图3所示。从图3中可 以看出,mae的大小对mobilenet网络训练的效果(分类精度和收敛性)产生很 大的影响。当softmax的mae值接近或小于1e-5时,产生的影响最小;反之越大。 特别的是,若mae值大于1e-4时,该网络训练直接无法收敛。因此,若要将softmax 的硬件实现系统应用于神经网络训练加速器,则要求硬件实现方法的计算误差 mae非常小,至少小于1e-5。2)推理:在softmax无误差训练好的mobilenet网 络中进行softmax有误差推理,分类精度结果如表1所示。从表1中可以看出,本 发明的softmax函数硬件实现系统在计算精度较低时依然可以对数据集进行无差别 分类,且分类精度甚至比使用现有softmax进行训练和推理的效果好。
[0080]
表1基于cifar-100数据集的mobilenet网络推理效果表。
[0081][0082]
实验二:基于ii型双曲cordic的softmax硬件实现系统计算误差
[0083]
假定base-2 softmax函数的输入向量x=[x1,x2,

,x
100
],由神经网络 mobilenet通过真实cifar-100数据集产生,每一张图片产生一个输入向量,共有 10000张图片用于实验。根据本发明提出的硬件实现方法进行设计验证,可得到 softmax的计算精度如表2所示。从表2中可以看出,当ii型双曲cordic的迭 代次数越多,softmax的计算精度越高。当
cordic hr-2和cordic hr-2的迭 代次数均为19时,mae仅为5.4183e-6。从图3实验结果可知,该计算精度可实 现无差别化mobilenet网络训练。从图3实验结果可知,该计算精度更可实现无差 别化mobilenet网络推理。由于网络推理对softmax计算精度要求比网络训练要低, 所以在应用于推理时可降低ii型双曲cordic的迭代次数。在硬件实现采用流水 线架构时,降低迭代次数既可以缩短推理时间,还可以节省面积资源。
[0084]
表2为计算base-2 softmax函数的精度性能指标。
[0085][0086][0087]
最后,本发明以ii型双曲cordic迭代次数均为19实现上述方案。在tsmc28nm的工艺下进行电路综合,工作频率为2ghz,面积消耗为22612.46um2,功耗 为31.65mw。
[0088]
综上可知,本发明提出的base-2 softmax函数硬件实现方法及芯片系统不仅计 算精度高、资源消耗少,而且应用范围更广,可面向神经网络训练与推理加速器应 用。这为
现有硬件实现方法难以支持网络训练且资源开销大等问题提供了极好的解 决方案。作为人工智能领域中神经网络的典型函数运算,该硬件实现方法有着良好 的借鉴意义和广泛的应用前景。
[0089]
以上仅为本发明专利较佳的具体实施方式,但本发明专利的保护范围并不局 限于此,任何熟悉本技术领域的技术人员在本发明专利揭露的技术范围内,可轻易 想到的变化或替换,都应涵盖在本发明专利的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献