论文部分内容阅读
激活函数作用是引入非线性到神经网络中,使神经网络可以更好地学习复杂的非线性函数,这是神经网络解决非线性问题的核心。激活函数的选取对于整个神经网络的训练起到十分重要的作用,如何选取激活函数会影响网络训练的时间和准确率。在现实处理器中,选取适当的非线性激活函数可以提高训练准确性,但是非线性激活函数的计算往往会消耗很大的运算周期。软件实现造成的延时会影响整个网络的训练效果,硬件层次的实现降低延迟同时存在一定单一性,往往只能固定实现一种计算方式。目前对如何在硬件层次高效地实现激活函数,从而提升时序仍有一定研究空间。本文立足于人工神经网络,研究激活层中激活函数的选取,以及如何在满足训练所需的条件下,尽可能充分考虑时序延时的问题,同时可支持多种激活函数多种精度模式的灵活使用。
在已有研究的基础上,本文研究的激活函数硬件实现方法,针对激活函数硬件实现存在的延时较长和单一不可配进行了改进,不再局限于对某一种激活函数的实现,而是将激活函数的选取作为可扩展选择,并考虑不同神经网络训练需求对于激活函数拟合精度的不同要求,实现软硬件层次协同的可配模式的查表结构。为此,在结合线性分段拟合和查表法的硬件实现方法基础上,本文设计了支持可扩展的并行查找表方法。主要工作概括如下:
1.提出一种并行查找表的激活函数拟合方法。利用国内某款众核处理器已有的通用运算核心架构,提出改进局部存储器支持16个体分体取值方式,支持一次查表对应多个激活层所需的输出拟合值的思路,实现多个训练网络由串行执行到并行执行的转变,通过实验验证拟合函数精度要求,验证拟合函数替代原始函数带入神经网络训练的可行性。
2.提出可扩展的并行查找表指令模型。基于RISC指令架构,分析指令描述方法,提出设计专有指令实现软件层次可配的并行查找表功能。结合指令结构,构建配置参数,来解决并行查表指令的可扩展性,不仅可以设置拟合区间,还可以设置拟合精度,降低执行延迟,提高执行效率。
3.对应提出的可扩展的并行查找表指令,设计并行查找表模块,主要用于根据配置参数处理查表指令的输入,解析得到存放在内存中所需查找表偏移地址,完成访存读取,将拟合精度控制在0.0003误差之内的同时,查表吞吐率提升8倍,整体激活函数拟合过程比传统查表法在拟合相同数量的拟合值时效率提升3倍。实验结果表明本文提出的方法相较于传统硬件实现方法能得到更好的效果。此研究成果己用于某款众核处理器芯片,正在流片。
在已有研究的基础上,本文研究的激活函数硬件实现方法,针对激活函数硬件实现存在的延时较长和单一不可配进行了改进,不再局限于对某一种激活函数的实现,而是将激活函数的选取作为可扩展选择,并考虑不同神经网络训练需求对于激活函数拟合精度的不同要求,实现软硬件层次协同的可配模式的查表结构。为此,在结合线性分段拟合和查表法的硬件实现方法基础上,本文设计了支持可扩展的并行查找表方法。主要工作概括如下:
1.提出一种并行查找表的激活函数拟合方法。利用国内某款众核处理器已有的通用运算核心架构,提出改进局部存储器支持16个体分体取值方式,支持一次查表对应多个激活层所需的输出拟合值的思路,实现多个训练网络由串行执行到并行执行的转变,通过实验验证拟合函数精度要求,验证拟合函数替代原始函数带入神经网络训练的可行性。
2.提出可扩展的并行查找表指令模型。基于RISC指令架构,分析指令描述方法,提出设计专有指令实现软件层次可配的并行查找表功能。结合指令结构,构建配置参数,来解决并行查表指令的可扩展性,不仅可以设置拟合区间,还可以设置拟合精度,降低执行延迟,提高执行效率。
3.对应提出的可扩展的并行查找表指令,设计并行查找表模块,主要用于根据配置参数处理查表指令的输入,解析得到存放在内存中所需查找表偏移地址,完成访存读取,将拟合精度控制在0.0003误差之内的同时,查表吞吐率提升8倍,整体激活函数拟合过程比传统查表法在拟合相同数量的拟合值时效率提升3倍。实验结果表明本文提出的方法相较于传统硬件实现方法能得到更好的效果。此研究成果己用于某款众核处理器芯片,正在流片。