[发明专利]一种基于线性分段的softmax硬件实现方法有效
申请号: | 202110591328.5 | 申请日: | 2021-05-28 |
公开(公告)号: | CN113377332B | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 李丽;龙威;傅玉祥;宋文清;周禹辰;陈铠;李伟;何书专 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F7/498 | 分类号: | G06F7/498;G06F7/575 |
代理公司: | 南京泰普专利代理事务所(普通合伙) 32360 | 代理人: | 方晓雯 |
地址: | 210023 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 线性 分段 softmax 硬件 实现 方法 | ||
本发明提出了一种基于线性分段的softmax硬件实现方法,该方法实现的电路系统包括:控制器用于实现softmax运算所需的源数据的读取和分发,以及运算结果的存储;排序模块用于将输入进行排序,并找出最大值;自然指数模块用于计算输入源数据的e指数函数值;加法树模块用于将e指数模块的结果进行累加;除法模块用于计算每个e指数计算结果与累加结果的比值。该方法实现的电路系统通过分解计算过程、压缩计算区间,大幅降低了传统查找表方法实现softmax的参数,兼具了高性能和低硬件资源开销,可用于各种人工智能算法加速场景。
技术领域
本发明涉及一种基于线性分段的softmax硬件实现方法,特别是涉及深度学习硬件加速技术领域。
背景技术
深度学习的概念在2006年被正式提出,此后经过多年迅速发展,逐渐在语音识别、机器翻译、图像识别、自动驾驶等领域有了重要应用。而CPU、GPU等硬件平台部署深度学习算法时,计算并行度低、功耗高难以满足实际应用场景,因此需要为深度学习算法设计专用的硬件加速电路。
Softmax是深度学习常用的激活函数之一,用于多分类问题。该函数将多个输入映射到(0,1)的区间上,从而实现概率分布。而其中的自然指数模块需要消耗大量的硬件资源和计算周期,难以用硬件实现。现有的softmax实现方法中,cordic算法需要多次迭代,计算周期较长;传统查找表方法需要大量存储资源,且从存储器中取数花费较多时间;线性分段同样需要大量存储空间,且计算精度不高。
发明内容
发明目的:提出一种基于线性分段的softmax硬件实现方法,以解决现有技术存在的上述问题,同时,弥补传统softmax实现的不足,解决softmax难以在硬件部署的问题。
技术方案:第一方面,提出了一种基于线性分段的softmax硬件实现方法,该方法具体包括以下步骤:
对源数据进行读取和分发;
通过计算获取源数据中的最大值;
结合查找表和线性分段拟合方法,计算源数据的自然指数;
并行输入源数据的自然指数并进行累加操作;
结合除法计算得到最终的输出结果;
接收输出的结果,并按顺序存入双倍速率同步动态随机存储器中。
在第一方面的一些可实现方式中,对所述源数据进行读取的过程进一步为:从双倍速率同步动态随机存储器中读取源数据,并按照顺序存入存储阵列源数据区的内存库中。
对所述源数据进行分发的过程进一步为:从所述内存库中取出一个数,进行并行计算。
在第一方面的一些可实现方式中,通过配置比较器以及将计算转化至负数域,比较所述源数据的大小,获取所述源数据中的最大值。
在第一方面的一些可实现方式中,所述自然指数的获取方式进一步为:
输入获取的新数据;所述新数据为去除所述最大值的源数据;
根据整数位宽参数,将所述新数据拆分为整数部分和小数部分;
对所述新数据进行整数部分的e指数结果查找和小数部分区间重映射;
查找所述小数部分的线性分段参数;
计算所述小数部分的e指数结果;
计算整数部分e指数结果和小数部分e指数结果乘积,对乘法结果进行移位还原。
其中,所述e指数计算包括整数部分和小数部分;
所述整数部分采用直接查找;
所述小数部分采用分段拟合的方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110591328.5/2.html,转载请声明来源钻瓜专利网。