CN113377332A - 一种基于线性分段的softmax硬件实现方法 - Google Patents
一种基于线性分段的softmax硬件实现方法 Download PDFInfo
- Publication number
- CN113377332A CN113377332A CN202110591328.5A CN202110591328A CN113377332A CN 113377332 A CN113377332 A CN 113377332A CN 202110591328 A CN202110591328 A CN 202110591328A CN 113377332 A CN113377332 A CN 113377332A
- Authority
- CN
- China
- Prior art keywords
- source data
- result
- softmax
- calculation
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000011218 segmentation Effects 0.000 title claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 58
- 238000009825 accumulation Methods 0.000 claims abstract description 10
- 230000006835 compression Effects 0.000 claims description 10
- 238000007906 compression Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 abstract description 3
- 238000013473 artificial intelligence Methods 0.000 abstract 1
- 238000013135 deep learning Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4981—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/498—Computations with decimal numbers radix 12 or 20. using counter-type accumulators
- G06F7/4983—Multiplying; Dividing
- G06F7/4988—Multiplying; Dividing by table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
本发明提出了一种基于线性分段的softmax硬件实现方法,该方法实现的电路系统包括:控制器用于实现softmax运算所需的源数据的读取和分发,以及运算结果的存储;排序模块用于将输入进行排序,并找出最大值;自然指数模块用于计算输入源数据的e指数函数值;加法树模块用于将e指数模块的结果进行累加;除法模块用于计算每个e指数计算结果与累加结果的比值。该方法实现的电路系统通过分解计算过程、压缩计算区间,大幅降低了传统查找表方法实现softmax的参数,兼具了高性能和低硬件资源开销,可用于各种人工智能算法加速场景。
Description
技术领域
本发明涉及一种基于线性分段的softmax硬件实现方法,特别是涉及深度学习硬件加速技术领域。
背景技术
深度学习的概念在2006年被正式提出,此后经过多年迅速发展,逐渐在语音识别、机器翻译、图像识别、自动驾驶等领域有了重要应用。而CPU、GPU等硬件平台部署深度学习算法时,计算并行度低、功耗高难以满足实际应用场景,因此需要为深度学习算法设计专用的硬件加速电路。
Softmax是深度学习常用的激活函数之一,用于多分类问题。该函数将多个输入映射到(0,1)的区间上,从而实现概率分布。而其中的自然指数模块需要消耗大量的硬件资源和计算周期,难以用硬件实现。现有的softmax实现方法中,cordic算法需要多次迭代,计算周期较长;传统查找表方法需要大量存储资源,且从存储器中取数花费较多时间;线性分段同样需要大量存储空间,且计算精度不高。
发明内容
发明目的:提出一种基于线性分段的softmax硬件实现方法,以解决现有技术存在的上述问题,同时,弥补传统softmax实现的不足,解决softmax难以在硬件部署的问题。
技术方案:第一方面,提出了一种基于线性分段的softmax硬件实现方法,该方法具体包括以下步骤:
对源数据进行读取和分发;
通过计算获取源数据中的最大值;
结合查找表和线性分段拟合方法,计算源数据的自然指数;
并行输入源数据的自然指数并进行累加操作;
结合除法计算得到最终的输出结果;
接收输出的结果,并按顺序存入双倍速率同步动态随机存储器中。
在第一方面的一些可实现方式中,对所述源数据进行读取的过程进一步为:从双倍速率同步动态随机存储器中读取源数据,并按照顺序存入存储阵列源数据区的内存库中。
对所述源数据进行分发的过程进一步为:从所述内存库中取出一个数,进行并行计算。
在第一方面的一些可实现方式中,通过配置比较器以及将计算转化至负数域,比较所述源数据的大小,获取所述源数据中的最大值。
在第一方面的一些可实现方式中,所述自然指数的获取方式进一步为:
输入获取的新数据;所述新数据为去除所述最大值的源数据;
根据整数位宽参数,将所述新数据拆分为整数部分和小数部分;
对所述新数据进行整数部分的e指数结果查找和小数部分区间重映射;
查找所述小数部分的线性分段参数;
计算所述小数部分的e指数结果;
计算整数部分e指数结果和小数部分e指数结果乘积,对乘法结果进行移位还原。
其中,所述e指数计算包括整数部分和小数部分;
所述整数部分采用直接查找;
所述小数部分采用分段拟合的方式。
在第一方面的一些可实现方式中,将区间压缩算法应用于所述e指数计算小数部分查找表参数压缩,具体实现方法如下:
X=Qln2+γ
eX=eQin2+=eQln2·eγ=2Q·eγ
式中,X表示自然指数运算的输入;Q表示整数值;γ表示小数值;
同时在此基础上优化区间算法,将查找表参数进一步减少,具体实现方法如下:
式中,X表示自然指数运算的输入;Q表示整数值;γ表示小数值。
在第一方面的一些可实现方式中,采用定点数实现,且小数点位置可配置,可根据输入特征选择合适的计算精度。
所述除法计算分为一次求倒计算和至少两次除法计算。
第二方面,提出一种基于线性分段的softmax硬件实现系统,该系统具体包括:
控制器,被设置为实现softmax运算所需的源数据的读取和分发,以及运算结果的存储。
最大值模块,被设置为转换接收到的数据至负数域,并计算获得输入数据中的最大值。
自然指数模块,被设置为根据查找表和线性分段拟合方法,计算源数据的自然指数。
加法树模块,被设置为并行的将所有的自然指数计算结果进行求和。
除法模块,被设置为计算每个自然指数计算结果与累加结果的比。
在第二方面的一些可实现方式中,所述控制器进一步包括:有限状态机FSM、源数据地址产生模块、写结果地址产生模块、源数据分发模块、结果分发功能模块。
所述最大值模块由至少两个多路比较器构成,通过级联后得出数据的最大值。
所述自然指数模块采用流水线设计,流水深度为五级;第一级流水线进行数据整数部分和小数部分的拆分,第二级流水线进行整数部分数据查找和小数部分区间重映射,第三级流水线查找小数部分的线性分段参数并经过一次加法和乘法运算得出小数部分自然指数值,第四级流水线将整数部分结果与小数部分结果相乘,第五级流水线,将乘法结果移位还原。
所述加法树模块由至少两组级联的加法器组成。
所述除法模块首先求出累加结果的倒数,然后逐一和每个自然指数结果做乘法计算。
有益效果:本发明提出了一种基于线性分段的softmax硬件实现方法,首先,实现了一种高性能的softmax定点数硬件电路,同时可进行深度学习中softmax激活函数的运算,且整数和小数位宽可配置,适应不同精度要求。并且计算范围和计算精度具有很好的可拓展性。
其次,通过一种综合使用查找表与分段线性拟合实现自然指数计算的硬件实现方法,并采用流水线和多路并行的设计方式,满足了深度学习应用的硬件要求。
再次,利用一种优化区间压缩算法的方法,将相同精度下的存储资源消耗进一步减小。
从次,仅需少量查找表数据即可实现softmax运算,数据可存储于寄存器中,无需额外存储器件。且数据查找与乘法加法运算可在同一时钟周期进行,运算速度快。
最后,本发明只涉及乘法和加法运算,易于硬件实现,在有较高性能的同时,计算复杂度低且硬件资源消耗少。
因此,综上所述,本发明可在较少的硬件资源消耗下,实现softmax高性能高精度的运算,有良好的实际应用价值。
附图说明
图1为本发明的源数据读取示意图。
图2是本发明的结果数据存储示意图。
图3是本发明的softmax硬件电路结构图。
图4是本发明的softmax计算流程图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
在一个实施例中,提出一种基于线性分段的softmax硬件实现方法,具体划分为以下步骤:
步骤一、对源数据进行读取和分发。
具体的,从双倍速率同步动态随机存储器取出源数据,并按顺序存入存储阵列源数据区的内存库中。每次从各个内存库中分别取出一个数进行并行计算。源数据的读取采用乒乓操作,在本次源数据读取的同时进行上次源数据运算,加快了数据读取速度,具体读取过程如图1所示。
步骤二、通过计算获取源数据中的最大值。
具体的,通过配置比较器以及将计算转化至负数域,比较所述源数据的大小,获取所述源数据中的最大值。通过将计算转化至负数域,扩大了计算范围,且对硬件实现更加友好。
在进一步的实施例中,将输入转入负数域进行计算时,将分子分母的指数同时减去输入最大值,并不影响最终结果,即:
式中,xmax表示源数据中的最大值;xi表示第i个源数据。通过输入转入负数域进行计算可防止在e指数计算时出现数据溢出,同时减少了整数部分的查找表,可以用同样的存储资源获取更高的精度。
步骤三、结合查找表和线性分段拟合方法,计算源数据的自然指数。
具体的,首先对源数据进行数据预处理,将源数据减去最大值,从而获得新的数据输入;其次,根据整数位宽参数,将输入数据拆分为整数部分和小数部分;再次,进行整数查找和小数区间重映射,从查找表整数部分对应自然指数函数值,并判断小数部分大小,进行区间重映射。若小数部分大于则减去ln2映射到中,左移标志位置1;若小数部分小于则加上ln2映射到中,右移标志位置1;从次,从查找表取出小数部分线性分段参数,计算小数部分自然指数值。最后,将整数部分的自然指数值与小数部分的自然指数值相乘,作为最终输出的预备结果。由于前期进行了小数部分的区间重映射,因此需要将预备结果进行移位还原,才能得出自然指数计算的正确结果。
其中,采用定点数实现,且小数点位置可配置,可根据输入特征选择合适的计算精度。
在进一步的实施例中,将源数据e指数的计算拆分为整数部分M和小数部分N的计算过程为:
ex=eM+N=eM·eN
对于整数M部分用直接存储函数值的策略建立查找表。整数部分查找表的查找起点为M=-2,查找点集合为{M|M≤-2,M∈Z},即小于等于-2的负整数,在具体实施中可根据系统位宽自由调整可查找的范围大小。对于16bit定点数系统,最小可保存的自然指数值为e-1。由于小数和整数的分离,计算范围的拓展变得非常方便,只需要在位宽允许的情况下增加整数部分查找值。对于小数N部分用线性分段的策略建立查找表,存储其各线性分段区间的斜率值k和截距值b,则第i个区间的softmax值为:
softmax(N)=N·ki+bi
小数部分查找表的查找范围为(-1,1]。具体存储的参数数量根据实施时划分的区间大小确定。同样的,由于小数和整数的分离,计算精度的拓展也会变得非常方便,只需要将小数部分的分段区间划分的更精细即可。综合整数和小数部分的查找表,即可实现整个负数域上的自然指数计算,实际计算范围受电路位宽限制。该策略与传统线性分段方法相比,可将查找表数据量从M×Number减少到M+Number量级(Number为小数部分分区数量),存储少量数据即可获取较高的精度。在传统查找表或者线性分段方法中,数据量庞大,从存储设备中获取参数值占据了大量计算时间。对于所述softmax硬件实现方法而言,查找表参数可固化在计算电路中,数据查找和乘法加法计算可在同一时钟周期完成,提高了运算速度。
在进一步的实施例中,传统的区间压缩算法将自然指数运算的输入X先映射到[-ln2,ln2]再进行指数计算,具体做法为取一个整数值Q和小数值γ用于表示X,其关系如下式所示:
X=Oln2+γ
最后的e指数结果通过移位还原:
eX=eQkn2+γ=eQln2·eγ=2Q·eγ
先应用传统区间压缩方法,将小数部分需要存储的参数区间(-1,1]压缩到[-ln2,ln2]。压缩后的区间可以分为三个部分:[-ln2,-1/2ln2]、[-1/2ln2,1/2ln2]、[1/2ln2,ln2]。[1/2ln2,ln2]中的数可以映射到[-1/2ln2,0]中。把γ的取值减去ln2,Q的取值加1,如公式所示:
步骤四、并行输入源数据的自然指数并进行累加操作。
具体的,将步骤三中计算出的自然指数结果并行的进行累加操作,并将得出累加结果作为除法计算的分母。
步骤五、结合除法计算得到最终softmax的输出结果。
具体的,计算步骤四中加法结果的倒数,将步骤三中所有源数据的e指数函数值与倒数值分别相乘得出最终的数据输出。另外,除法计算分为一次求倒计算和多次除法计算
步骤六、接收输出的结果,并按顺序存入双倍速率同步动态随机存储器中,如图2所示。
综上所述,本实施例的softmax的定点数运算硬件电路,综合运用查找表和线性分段的实现方法,并将优化的区间压缩算法应用在自然指数的运算。在较少的存储资源消耗下,可实现较高的计算精度和较快的运算速度,且计算精度可配置,有较高的应用潜力。
在一个实施例中,提出一种基于线性分段的softmax硬件实现系统,用于实现提出一种基于线性分段的softmax硬件实现方法,如图3所示,该系统具体包括:
控制器,被设置为实现如图4所示的softmax运算所需的源数据的读取和分发,以及运算结果的存储。
最大值模块,被设置为转换接收到的数据至负数域,并计算获得输入数据中的最大值。
自然指数模块,被设置为根据查找表和线性分段拟合方法,计算源数据的自然指数。
加法树模块,被设置为并行的将所有的自然指数计算结果进行求和。
除法模块,被设置为计算每个自然指数计算结果与累加结果的比。
具体的,所述控制器进一步包括但不限于:有限状态机FSM模块、源数据地址产生模块、写结果地址产生模块、源数据分发模块、结果分发功能模块。
所述最大值模块由至少两个多路比较器构成,通过级联后得出数据的最大值。
所述自然指数模块采用流水线设计,流水深度为五级。第一级流水线进行数据整数部分和小数部分的拆分,第二级流水线进行整数部分数据查找和小数部分区间重映射,第三级流水线查找小数部分的线性分段参数并经过一次加法和乘法运算得出小数部分自然指数值,第四级流水线将整数部分结果与小数部分结果相乘,第五级流水线,将乘法结果移位还原。
所述加法树模块由至少两组级联的加法器组成。
所述除法模块首先求出累加结果的倒数,然后逐一和每个自然指数结果做乘法计算。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。
Claims (10)
1.一种基于线性分段的softmax硬件实现方法,其特征在于,具体包括以下步骤:
对源数据进行读取和分发;
通过计算获取源数据中的最大值;
结合查找表和线性分段拟合方法,计算源数据的自然指数;
并行输入源数据的自然指数并进行累加操作;
结合除法计算得到最终的输出结果;
接收输出的结果,并按顺序存入双倍速率同步动态随机存储器中。
2.根据权利要求1所述的一种基于线性分段的softmax硬件实现方法,其特征在于,
对所述源数据进行读取的过程进一步为:从双倍速率同步动态随机存储器中读取源数据,并按照顺序存入存储阵列源数据区的内存库中;
对所述源数据进行分发的过程进一步为:从所述内存库中取出一个数,进行并行计算。
3.根据权利要求1所述的一种基于线性分段的softmax硬件实现方法,其特征在于,
通过配置比较器以及将计算转化至负数域,比较所述源数据的大小,获取所述源数据中的最大值。
4.根据权利要求1所述的一种基于线性分段的softmax硬件实现方法,其特征在于,所述自然指数的获取方式进一步为:
输入获取的新数据;所述新数据为去除所述最大值的源数据;
根据整数位宽参数,将所述新数据拆分为整数部分和小数部分;
对所述新数据进行整数部分的e指数结果查找和小数部分区间重映射;
查找所述小数部分的线性分段参数;
计算所述小数部分的e指数结果;
计算整数部分e指数结果和小数部分e指数结果乘积,对乘法结果进行移位还原。
5.根据权利要求4所述的一种基于线性分段的softmax硬件实现方法,其特征在于,
所述e指数计算包括整数部分和小数部分;
所述整数部分采用直接查找;
所述小数部分采用分段拟合的方式。
7.根据权利要求1所述的一种基于线性分段的softmax硬件实现方法,其特征在于,
采用定点数实现,且小数点位置可配置,可根据输入特征选择合适的计算精度。
8.根据权利要求1所述的一种基于线性分段的softmax硬件实现方法,其特征在于,
所述除法计算分为一次求倒计算和至少两次除法计算。
9.一种基于线性分段的softmax硬件实现系统,用于实现权利要求1~8任意一项方法,其特征在于,具体包括:
控制器,被设置为实现softmax运算所需的源数据的读取和分发,以及运算结果的存储;
最大值模块,被设置为转换接收到的数据至负数域,并计算获得输入数据中的最大值;
自然指数模块,被设置为根据查找表和线性分段拟合方法,计算源数据的自然指数;
加法树模块,被设置为并行的将所有的自然指数计算结果进行求和;
除法模块,被设置为计算每个自然指数计算结果与累加结果的比。
10.根据权利要求9所述的一种基于线性分段的softmax硬件实现系统,其特征在于,
所述控制器进一步包括:有限状态机FSM、源数据地址产生模块、写结果地址产生模块、源数据分发模块、结果分发功能模块;
所述最大值模块由至少两个多路比较器构成,通过级联后得出数据的最大值;
所述自然指数模块采用流水线设计,流水深度为五级;第一级流水线进行数据整数部分和小数部分的拆分,第二级流水线进行整数部分数据查找和小数部分区间重映射,第三级流水线查找小数部分的线性分段参数并经过一次加法和乘法运算得出小数部分自然指数值,第四级流水线将整数部分结果与小数部分结果相乘,第五级流水线,将乘法结果移位还原;
所述加法树模块由至少两组级联的加法器组成;
所述除法模块首先求出累加结果的倒数,然后逐一和每个自然指数结果做乘法计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110591328.5A CN113377332B (zh) | 2021-05-28 | 2021-05-28 | 一种基于线性分段的softmax硬件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110591328.5A CN113377332B (zh) | 2021-05-28 | 2021-05-28 | 一种基于线性分段的softmax硬件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113377332A true CN113377332A (zh) | 2021-09-10 |
CN113377332B CN113377332B (zh) | 2023-08-22 |
Family
ID=77574781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110591328.5A Active CN113377332B (zh) | 2021-05-28 | 2021-05-28 | 一种基于线性分段的softmax硬件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377332B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114648101A (zh) * | 2022-05-13 | 2022-06-21 | 杭州研极微电子有限公司 | 基于transformer结构的softmax函数量化实现方法和装置 |
CN115511047A (zh) * | 2022-06-09 | 2022-12-23 | 上海燧原科技有限公司 | Softmax模型的量化方法、装置、设备及介质 |
CN117407793A (zh) * | 2023-11-03 | 2024-01-16 | 上海无问芯穹智能科技有限公司 | 一种并行化策略优化方法、系统、设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150370536A1 (en) * | 2012-09-15 | 2015-12-24 | John W. Ogilvie | Formatting floating point numbers |
CN108021537A (zh) * | 2018-01-05 | 2018-05-11 | 南京大学 | 一种基于硬件平台的softmax实现方式 |
CN110796246A (zh) * | 2019-10-29 | 2020-02-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于线性分段的激活函数的硬件实现电路和方法 |
CN111178516A (zh) * | 2019-12-11 | 2020-05-19 | 浙江大学 | 一种基于分段查找表的softmax函数计算方法及硬件系统 |
CN111581593A (zh) * | 2020-04-21 | 2020-08-25 | 天津大学 | 可配置重用的分段式查找表激活函数实现装置 |
CN111857650A (zh) * | 2020-08-04 | 2020-10-30 | 南京大学 | 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法 |
CN112069455A (zh) * | 2020-09-16 | 2020-12-11 | 成都启英泰伦科技有限公司 | 一种log-softmax函数硬件加速计算方法 |
-
2021
- 2021-05-28 CN CN202110591328.5A patent/CN113377332B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150370536A1 (en) * | 2012-09-15 | 2015-12-24 | John W. Ogilvie | Formatting floating point numbers |
CN108021537A (zh) * | 2018-01-05 | 2018-05-11 | 南京大学 | 一种基于硬件平台的softmax实现方式 |
CN110796246A (zh) * | 2019-10-29 | 2020-02-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于线性分段的激活函数的硬件实现电路和方法 |
CN111178516A (zh) * | 2019-12-11 | 2020-05-19 | 浙江大学 | 一种基于分段查找表的softmax函数计算方法及硬件系统 |
CN111581593A (zh) * | 2020-04-21 | 2020-08-25 | 天津大学 | 可配置重用的分段式查找表激活函数实现装置 |
CN111857650A (zh) * | 2020-08-04 | 2020-10-30 | 南京大学 | 一种基于镜像查找表实现任意浮点型运算的硬件计算系统及其计算方法 |
CN112069455A (zh) * | 2020-09-16 | 2020-12-11 | 成都启英泰伦科技有限公司 | 一种log-softmax函数硬件加速计算方法 |
Non-Patent Citations (2)
Title |
---|
孙华庆: "非线性函数的通用线性近似算法和硬件实现", 《中国优秀硕士学位论文全文数据库基础科学辑》, no. 02, pages 002 - 324 * |
解筱;杨波;陈贞翔;: "一种基于FPGA的人工神经网络预测方法", 山东科学, no. 01, pages 10 - 15 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114648101A (zh) * | 2022-05-13 | 2022-06-21 | 杭州研极微电子有限公司 | 基于transformer结构的softmax函数量化实现方法和装置 |
CN115511047A (zh) * | 2022-06-09 | 2022-12-23 | 上海燧原科技有限公司 | Softmax模型的量化方法、装置、设备及介质 |
CN115511047B (zh) * | 2022-06-09 | 2024-03-08 | 上海燧原科技股份有限公司 | Softmax模型的量化方法、装置、设备及介质 |
CN117407793A (zh) * | 2023-11-03 | 2024-01-16 | 上海无问芯穹智能科技有限公司 | 一种并行化策略优化方法、系统、设备及介质 |
CN117407793B (zh) * | 2023-11-03 | 2024-05-28 | 上海无问芯穹智能科技有限公司 | 一种用于大语言模型的并行化策略优化方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113377332B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377332A (zh) | 一种基于线性分段的softmax硬件实现方法 | |
CN109063825B (zh) | 卷积神经网络加速装置 | |
CN108021537B (zh) | 一种基于硬件平台的softmax函数计算方法 | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
CN110852434B (zh) | 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置 | |
CN110852416A (zh) | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 | |
CN108304409B (zh) | 一种基于进位的Sketch数据结构的数据频度估计方法 | |
CN100583024C (zh) | 一种用于浮点除法和平方根运算的预处理电路结构 | |
CN113741858B (zh) | 存内乘加计算方法、装置、芯片和计算设备 | |
CN111696149A (zh) | 针对基于cnn的立体匹配算法的量化方法 | |
CN109165006B (zh) | Softmax函数的设计优化及硬件实现方法及系统 | |
CN112734023B (zh) | 应用于循环神经网络的激活函数的可重构电路 | |
CN113296732B (zh) | 数据处理方法和装置,处理器及数据搜索方法和装置 | |
Wu et al. | Efficient dynamic fixed-point quantization of CNN inference accelerators for edge devices | |
CN114860193A (zh) | 一种用于计算Power函数的硬件运算电路及数据处理方法 | |
CN110210611A (zh) | 一种用于卷积神经网络计算的动态自适应数据截断方法 | |
CN110879697B (zh) | 一种近似计算tanh函数的装置 | |
WO2023134507A1 (zh) | 随机计算方法、电路、芯片及设备 | |
Udupa et al. | IKW: Inter-kernel weights for power efficient edge computing | |
CN115146769A (zh) | 一种基于范围可寻址查找表计算tanh函数的数字电路模块 | |
CN114201140A (zh) | 指数函数处理单元、方法和神经网络芯片 | |
CN114882086B (zh) | 基于切片最优传输的点云精准配准方法 | |
CN116028011B (zh) | 一种用于gpu数据库任意精度十进制数据的计算方法 | |
CN118378000B (zh) | 一种可配置的超越函数向量计算装置 | |
WO2023028884A1 (zh) | 一种浮点数计算电路以及浮点数计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |