【技术实现步骤摘要】
一种异步Softmax硬件加速方法及加速器
本申请涉及数据处理领域,特别涉及一种异步Softmax硬件加速方法及加速器。
技术介绍
Softmax函数作为深度学习中的激活函数,在自然语言处理、人脸识别等领域中有着广泛的运用。但由于Softmax函数的计算过程中涉及到指数以及除法等相对复杂的运算,特别是在输入尺寸较大时,若使用CPU进行计算则会消耗较多的时间。为了加快Softmax函数的运算速度,人们把目光投向了硬件,寄希望于通过高并发的硬件来实现高效、高精度、低能耗的Softmax计算。而现场可编程门阵列(FPGA)作为可编程的硬件平台,具有成本低,速度快,高并行性的特点,相较专用集成电路(ASIC)更加适合用于小规模、低成本的使用场景。现阶段所有的Softmax归一化函数的硬件实现都为同步实现,然而在FPGA上运行同步设计会受到FPGA复杂的布局布线的限制,使得时钟的频率维持在一个较低的水准,否则会有较大的时钟漂移问题。这直接导致了同步Softmax函数的FPGA实现性能不够理想,无法满足Softmax归一化函数大尺度输入下的性能要求。并且由于同步电路中时钟的频 ...
【技术保护点】
1.一种异步Softmax硬件加速方法,其特征在于,包括如下步骤:S2:计算所有待计算数据中的最大值及所有所述待计算数据的e指数和;S4:根据所述最大值及所述e指数计算最终结果。
【技术特征摘要】
1.一种异步Softmax硬件加速方法,其特征在于,包括如下步骤:S2:计算所有待计算数据中的最大值及所有所述待计算数据的e指数和;S4:根据所述最大值及所述e指数计算最终结果。2.根据权利要求1所述的异步Softmax硬件加速方法,其特征在于,所述步骤S2为通过softmaxInUnit模块、SoftmaxMiddleUnit模块、SoftmaxEndUnit模块、FIFO模块,InUnit模块、MiiddleUnit模块及EndUnit模块计算所述最大值。3.根据权利要求1所述的异步Softmax硬件加速方法,其特征在于,通过EXP模块采用大指数剥离法计算所有所述待计算数据的e指数,通过DIV模块采用移位相减法计算除法,通过Arbiter模块进行数据分配,将数据分配到4个所述EXP模块,通过Merge模块将所述DIV模块计算的结果进行拼接后输出。4.根据权利要求2所述的异步Softmax硬件加速方法,其特征在于,所述softmaxInUnit模块实现的功能如下式所示:SoftmaxInUnit的模块架构如图4所示,其实现的功能为下式所示由于DataIn1-max(DataIn1,DataIn2)以及DataIn2-max(DataIn1,DataIn2)中一定会有一个结果为0,故上式的计算相对简单,只需要计算一次e指数,再将结果加1(e0=1)即可。5.根据权利要求4所述的异步Softmax硬件加速方法,其特征在于,所述SoftmaxInUnit模块包括:BroadCast模块;FindMax模块;Two_Add模块;ChooseExpData模块;ArbExpln模块;Exp模块;及ArbExpOut模块;其中所述BroadCast模块将输入整合复制后分配到所述FindMax以及所述Two_Add模块中,所述FindMax找出两个输入的最大值,所述Two_Add运算DataIn1-max(DataIn1,DataIn2)以及DataIn2-max(DataIn1,DataIn2),所述ChooseExpData模块根据所述FIndMax给出的Enable信号选择出要用于计算E指数的...
【专利技术属性】
技术研发人员:何安平,张吉霖,李双强,秦攀,
申请(专利权)人:何安平,张吉霖,李双强,秦攀,
类型:发明
国别省市:甘肃,62
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。