CN113485673A - 实现softmax的电路装置及生成softmax代码的方法 - Google Patents

实现softmax的电路装置及生成softmax代码的方法 Download PDF

Info

Publication number
CN113485673A
CN113485673A CN202110756617.6A CN202110756617A CN113485673A CN 113485673 A CN113485673 A CN 113485673A CN 202110756617 A CN202110756617 A CN 202110756617A CN 113485673 A CN113485673 A CN 113485673A
Authority
CN
China
Prior art keywords
calculation
value
difference
module
softmax
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.)
Pending
Application number
CN202110756617.6A
Other languages
English (en)
Inventor
谭黎敏
崔卫东
赵钊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Westwell Information Technology Co Ltd
Original Assignee
Shanghai Westwell Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Westwell Information Technology Co Ltd filed Critical Shanghai Westwell Information Technology Co Ltd
Priority to CN202110756617.6A priority Critical patent/CN113485673A/zh
Publication of CN113485673A publication Critical patent/CN113485673A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明提供一种实现softmax的电路装置及生成softmax代码的方法,实现softmax的电路装置包括:最大值模块,配置成从输入值中选取最大值;第一差值计算模块,配置成计算各所述输入值和所述最大值的第一差值;第一指数计算模块,配置成计算所述第一差值的第一指数值;累加模块,配置成执行所述第一差值的第一指数值的累加获得累加值;对数计算模块,配置成计算所述累加值的对数值;第二差值计算模块,配置成计算所述第一差值和所述对数值的第二差值;第二指数模块,配置成计算所述第二差值的第二指数值。本发明在电路装置上部署softmax,以兼顾softmax计算的模型大小,计算速度,计算时延,以及计算精度。

Description

实现softmax的电路装置及生成softmax代码的方法
技术领域
本发明涉及机器学习以及模式识别领域,尤其涉及一种实现softmax的电路装置及生成softmax代码的方法。
背景技术
目前,在随着计算机与信息技术的不断演进,机器学习以及模式识别已成为近几年来最炙手可热的领域之一。各种深度学习模型也在大量的涌现,当模型在FPGA(可编程门阵列)上部署时,对模型的大小,以及推理速度,精度提出了很高的要求。现有的技术无法兼顾模型大小,计算速度,计算时延,以及计算精度。
由此,如何在电路装置上部署softmax,以兼顾softmax计算的模型大小,计算速度,计算时延,以及计算精度,是本领域亟待解决的技术问题。
发明内容
本发明为了克服上述现有技术存在的缺陷,提供一种实现softmax的电路装置及生成softmax代码的方法,以在电路装置上部署softmax,以兼顾softmax计算的模型大小,计算速度,计算时延,以及计算精度。
根据本发明的一个方面,提供一种实现softmax的电路装置,包括:
最大值模块,配置成从输入值中选取最大值;
第一差值计算模块,配置成计算各所述输入值和所述最大值的第一差值;
第一指数计算模块,配置成计算所述第一差值的第一指数值;
累加模块,配置成执行所述第一差值的第一指数值的累加获得累加值;
对数计算模块,配置成计算所述累加值的对数值;
第二差值计算模块,配置成计算所述第一差值和所述对数值的第二差值;
第二指数模块,配置成计算所述第二差值的第二指数值。
在本发明的一些实施例中,所述最大值模块配置成执行如下公式:
Figure BDA0003147436200000021
其中,xj为所述输入值,xmax为所述输入值中的最大值,
其中,所述最大值模块串行实现时,所述最大值模块仅包括一个比较器;
所述最大值模块并行实现时,所述最大值模块包括级联的多个比较器,所述比较器的层级数为log2(N)+1,其中,N为预设的并行度,1表示表示当前批次的最大值和前一批次的最大值做一次比较。
在本发明的一些实施例中,所述比较器为浮点比较器或者定点比较器。
在本发明的一些实施例中,所述第一指数计算模块采用分段线性函数计算所述第一差值的第一指数值,所述第一指数计算模块包括多个指数计算单元,每个所述指数单元将输入所述指数单元的值划分为多个区间以利用多个直线段来近似指数曲线,并使每个区间关联预设的所述直线段的斜率和截距。
在本发明的一些实施例中,所述第二指数计算模块和所述第一指数计算模块采用相同的方式实现。
在本发明的一些实施例中,所述累加模块串行实现时,所述累加模块仅包括一个加法器;
所述累加模块并行实现时,所述累加模块包括级联的多个加法器,所述加法器的层级数为log2(N)+1,其中,N为预设的并行度,1表示表示当前批次的累加值和前一批次的累加值做一次加法计算。
在本发明的一些实施例中,所述第二差值计算模块包括第一子差值计算模块和第二子差值计算模块,
所述第一子差值计算模块配置成计算各所述输入值和所述最大值的第一差值;
所述第二子差值计算模块配置成计算所述第一子差值计算模块输出的所述第一差值和所述对数值的第二差值。
在本发明的一些实施例中,所述第一子差值计算模块的计算时间覆盖所述对数计算模块的计算时间。
在本发明的一些实施例中,所述最大值模块的计算时间形成第一计算阶段,所述第一差值计算模块、所述第一指数计算模块以及所述累加模块的计算时间形成第二计算阶段,所述对数计算模块、所述第二差值计算模块以及所述第二指数模块的计算时间形成第三计算阶段,所述第一计算阶段、所述第二计算阶段以及所述第三计算阶段的计算时间相互独立,各计算阶段内,多个计算模块的计算时间至少部分相互覆盖。
根据本发明的又一方面,还提供一种生成softmax代码的方法,所述电路装置为上述的电路装置,所述方法包括:
配置多个softmax生成器的参数;
使所述softmax生成器根据所述参数自动生成部署在电路装置上的softmax代码。
相比现有技术,本发明的优势在于:
本发明采用了对从并行度,位宽,准确度,存储大小的四个方面考虑不同的组合方式来生softmax实现代码,适配到电路装置上。该方法能够在限定的资源下保证softmax算子的计算速度和精度。
附图说明
通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明实施例的实现softmax的电路装置的示意图;
图2示出了根据本发明实施例的实现softmax的电路装置的时间线;
图3示出了根据本发明实施例的指数计算单元的示意图;
图4示出了根据本发明实施例的指数计算单元的示意图;
图5示出了根据本发明实施例的生成softmax代码的方法的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
在机器学习以及模式识别领域,softmax函数的计算应用广泛,目前,softmax通常按如下公式计算:
Figure BDA0003147436200000041
其中,f(x)i为第i个输入值xi的softmax值,e为自然常数,n为输入值的总数量。
为数值稳定性,即考虑到数据上溢和下溢,对上述公式做了如下变换:
Figure BDA0003147436200000042
Figure BDA0003147436200000043
其中,xmax是所有输入值中的最大值。
在对上述softmax函数的计算进行硬件化时,为了避免指数运算和除法运算,可以进一步将上述公式作如下变换:
Figure BDA0003147436200000044
由此,上述公式中,只有指数运算和对数运算,指数运算和对数运算都可以使用LUT(Look-Up-Table,查找表)方式来实现,该公式的并行性更好。
基于上述变换后的softmax函数的计算公式,本发明提供一种实现softmax的电路装置。参见图1,实现softmax的电路装置100包括最大值模块110、第一差值计算模块120、第一指数计算模块130、累加模块140、对数计算模块150、第二差值计算模块160以及第二指数模块170。
最大值模块110配置成从输入值中选取最大值。
换言之,所述最大值模块110配置成执行如下公式:
Figure BDA0003147436200000045
其中,xj为所述输入值,xmax为所述输入值中的最大值。
第一差值计算模块120配置成计算各所述输入值和所述最大值的第一差值。
换言之,所述第一差值计算模块120配置成计算xi-xmax
第一指数计算模块130配置成计算所述第一差值的第一指数值。
换言之,所述第一指数计算模块130配置成计算
Figure BDA0003147436200000051
累加模块140配置成执行所述第一差值的第一指数值的累加获得累加值。
换言之,所述累加模块140配置成计算
Figure BDA0003147436200000052
对数计算模块150配置成计算所述累加值的对数值。
换言之,所述对数计算模块150配置成计算
Figure BDA0003147436200000053
第二差值计算模块160配置成计算所述第一差值和所述对数值的第二差值。
换言之,所述第二差值计算模块160配置成计算
Figure BDA0003147436200000054
Figure BDA0003147436200000055
Figure BDA0003147436200000056
具体而言,所述最大值模块110的计算时间形成第一计算阶段A,所述第一差值计算模块120、所述第一指数计算模块130以及所述累加模块140的计算时间形成第二计算阶段B,所述对数计算模块150、所述第二差值计算模块160以及所述第二指数模块170的计算时间形成第三计算阶段C,所述第一计算阶段A、所述第二计算阶段B以及所述第三计算阶段C的计算时间相互独立,各计算阶段内,多个计算模块的计算时间至少部分相互覆盖。具体可以参见图2,图2示出了各个阶段的时间线,每一个阶段之间先后顺序,但在每一个阶段内,可以使用流水线架构减少延迟。每一个阶段之后都有锁存器保证先后顺序。每个模块也可以单独以流水线形式实现。
下面对各计算模块进行详细的阐述。
所述最大值模块110串行实现时,所述最大值模块110可以仅包括一个比较器。所述最大值模块110并行实现时,所述最大值模块110可以包括级联的多个比较器(例如可以形成比较器树),所述比较器的层级数为log2(N)+1,其中,N为预设的并行度,1表示表示当前批次的最大值和前一批次的最大值做一次比较。具体而言,N可以预设为2的次幂。进一步地,所述最大值模块110中使用的比较器可以根据进度要求,自浮点比较器或者定点比较器中选择。
类似地,所述累加模块140串行实现时,所述累加模块140可以仅包括一个加法器。所述累加模块140并行实现时,所述累加模块140可以包括级联的多个加法器(例如可以形成加法器树),所述加法器的层级数为log2(N)+1,其中,N为预设的并行度,1表示表示当前批次的累加值和前一批次的累加值做一次加法计算。
所述第一指数计算模块130可以采用分段线性函数(Piecewise LinearFunction,PLF)计算所述第一差值的第一指数值。所述第一指数计算模块130包括多个指数计算单元EXP。在本发明的一个优选例中,可以选用16比特浮点指数计算单元EXP,本发明并非以此为限制。例如,本发明也可以提供定点指数计算单元EXP,定点指数计算单元EXP只需要在浮点指数计算单元EXP对应的查找表中将浮点数转换为对应的定点数即可。
每个所述指数单元EXP将输入所述指数单元EXP的值划分为多个区间以利用多个直线段来近似指数曲线,并使每个区间关联预设的所述直线段的斜率和截距。
具体而言,PLF是利用少数直线段来近似非线性函数。PLF在一个有限范围内
Figure BDA0003147436200000061
来近似指数计算,首先,把有限范围均分为N段区间,每一个区间对应一个斜率an
Figure BDA0003147436200000062
Figure BDA0003147436200000063
其中,范围为[-8,0]的输入指数单元EXP的值被认为是有效的,小于-8的数据对应的值可以直接储存到查找表-PLF中的设定位置(例如最后一项)。输入指数单元EXP的值的范围选择[-8,0]的原因,之一是在第一差值计算模块120中所有的输入值都减去了最大值,进入指数单元EXP的数值都是小于等于0的数;另一是
Figure BDA0003147436200000064
e-8≈0.000335,可以e-8对应数值已经足够小,可以用e-8的值代替更小的值。
由此,对于16比特浮点指数计算单元EXP,其可以把[-8,0]范围分为64个区间,在查找表-PLF中填入64个区间的参数,每一个区间的参数包括斜率an(16比特浮点数)和预先计算好的截距
Figure BDA0003147436200000071
16比特浮点指数计算单元EXP的值x先近似整数,然后通过查找表索引到对应的斜率和截距,即可通过上面的公式执行近似指数的计算。16比特浮点指数计算单元EXP的实现结构可以参见图3。
具体而言,所述第二指数计算模块170和所述第一指数计算模块130可以采用相同的方式实现。
所述对数计算模块150可以应用于浮点数和定点数。在应用于浮点数时,可以采用ICISLog算法。
ICISLog算法的核心是通过一个正浮点数的指数位和部分尾数位查找相应的映射表,然后相加就可以得到该正浮点数的对数结果。具体实现如下:
由于对数运算要求输入是正数。且在IEEE754标准的浮点表示法中,浮点数使用32bit表示,由符号位1,指数位8,尾数位23。由于只使用正数,所以符号位为0.一个正浮点数可以表示如下:
val=2exp×(1.mantissa)
则val的对数值可以按照如下公式计算:
ln(val)=ln(2)×exp+ln(1.mantissa)
其中,mantissa为尾数。上述公式的具体实现结构可以参见图4,可以看出一个正浮点数的对数结果可以指数部分和尾数部分相加获得的。为了加速计算,我们可以把ln(2)和ln(1.mantissa)可以提前计算好并存储到查找表中。在精度损失可接受的情况下,我们是使用尾数位的高6bit用来作为查找表的索引。指数位8bit,可以全部使用。在查找表中存储的是计算好的16bit浮点数。
具体而言,可以使用所有的指数位(8bits)在查找表-指数映射表中查找ln(2)×exp的对应数值(存储的是16bit浮点数),使用尾数位的前6比特数据在查找表-尾数映射表中查找ln(1.mantissa)的对应数值(16bit浮点数),两个结果相加就得到ln(val)的值。
所述第二差值计算模块160可以包括第一子差值计算模块161和第二子差值计算模块162。所述第一子差值计算模块161配置成计算各所述输入值和所述最大值的第一差值(xi-xmax)。所述第二子差值计算模块162配置成计算所述第一子差值计算模块输出的所述第一差值和所述对数值的第二差值
Figure BDA0003147436200000081
本实施例中,使用再次使用减法模块计算xi-xmax),而不是把前面计算好的中间值(xi-xmax)放入FIFOs(先入先出队列)中,这样可以使用减法模块替代使用FIFO,可以减少内存的使用。其中,在本发明的一些实施例中,所述第一子差值计算模块161的计算时间覆盖所述对数计算模块150的计算时间。
以上仅仅是示意性地描述本发明提供的实现softmax的电路装置,本发明并非以此为限制。
根据本发明的又一方面,还提供一种生成softmax代码的方法,所述电路装置可以为上述的电路装置,在此不予赘述。具体而言,所述电路装置可以为FPGA(可编程门阵列)。生成softmax代码的方法包括如下步骤:配置多个softmax生成器的参数;使所述softmax生成器根据所述参数自动生成部署在电路装置上的softmax代码。softmax生成器可以包括电路装置的各计算模块的生成器。生成器的参数可以包括并行度(Parallelism)、准确度(Accuracy)、精度(Precision)、以及存储参数(Storage)。
并行度需设置为2的次幂。并行度设置为1代表全串行运行。该参数取值时主要权衡面积,功耗,和时延。面积是指是实现该算法所需要的触发器,查找表或者等效门的数量。功耗,是指实现该算法所需要的消耗的。时延是该算法逻辑运行所需要的时钟周期是多少。面积越大,功耗越高,时延可能越小。面积小,功耗少,时延可能较大。可以配置并行度,位宽,准确度,存储这四个参数,来权衡面积,功耗和时延。
准确度主要控制指数计算和对数计算的实现。该方案主要选择对应准确度的查找表方法。该参数取值时主要权衡准确度和占用面积。准确度越高,需要的资源就越多,占用的面积就越大。可以选择合适的准确度,来减少资源的使用。
精度用于选择数据类型。优选地,本发明提供的softmax生成器可以提供int8,int32,float16,float32四种数据类型。存储参数决定中间结果是否保存在临时的寄存器中,还是直接通过计算获得。
由此,Softmax生成器可以根据上述参数,生成的对应的Verilog(硬件描述语言)文件,以及一个简单的testbench文件(用于对使用硬件描述语言设计的电路进行仿真验证)。Softmax生成器还可以提供makefile(文件编写)文件,用来编译链接和仿真代码,产生包含verilog文件产生的观测输出的csv(逗号分隔值文本)文件,以及python和cpu输出的对比值。
以上仅仅是示意性地描述本发明提供的方法,本发明并非以此为限制。
相比现有技术,本发明的优势在于:
本发明采用了对从并行度,位宽,准确度,存储大小的四个方面考虑不同的组合方式来生softmax实现代码,适配到电路装置上。该方法能够在限定的资源下保证softmax算子的计算速度和精度。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

Claims (10)

1.一种实现softmax的电路装置,其特征在于,包括:
最大值模块,配置成从输入值中选取最大值;
第一差值计算模块,配置成计算各所述输入值和所述最大值的第一差值;
第一指数计算模块,配置成计算所述第一差值的第一指数值;
累加模块,配置成执行所述第一差值的第一指数值的累加获得累加值;
对数计算模块,配置成计算所述累加值的对数值;
第二差值计算模块,配置成计算所述第一差值和所述对数值的第二差值;
第二指数模块,配置成计算所述第二差值的第二指数值。
2.如权利要求1所述的实现softmax的电路装置,其特征在于,所述最大值模块配置成执行如下公式:
Figure FDA0003147436190000011
其中,xj为所述输入值,xmax为所述输入值中的最大值,
其中,所述最大值模块串行实现时,所述最大值模块仅包括一个比较器;
所述最大值模块并行实现时,所述最大值模块包括级联的多个比较器,所述比较器的层级数为log2(N)+1,其中,N为预设的并行度,1表示表示当前批次的最大值和前一批次的最大值做一次比较。
3.如权利要求2所述的实现softmax的电路装置,其特征在于,所述比较器为浮点比较器或者定点比较器。
4.如权利要求1所述的实现softmax的电路装置,其特征在于,所述第一指数计算模块采用分段线性函数计算所述第一差值的第一指数值,所述第一指数计算模块包括多个指数计算单元,每个所述指数单元将输入所述指数单元的值划分为多个区间以利用多个直线段来近似指数曲线,并使每个区间关联预设的所述直线段的斜率和截距。
5.如权利要求4所述的实现softmax的电路装置,其特征在于,所述第二指数计算模块和所述第一指数计算模块采用相同的方式实现。
6.如权利要求1所述的实现softmax的电路装置,其特征在于,所述累加模块串行实现时,所述累加模块仅包括一个加法器;
所述累加模块并行实现时,所述累加模块包括级联的多个加法器,所述加法器的层级数为log2(N)+1,其中,N为预设的并行度,1表示表示当前批次的累加值和前一批次的累加值做一次加法计算。
7.如权利要求1所述的实现softmax的电路装置,其特征在于,所述第二差值计算模块包括第一子差值计算模块和第二子差值计算模块,
所述第一子差值计算模块配置成计算各所述输入值和所述最大值的第一差值;
所述第二子差值计算模块配置成计算所述第一子差值计算模块输出的所述第一差值和所述对数值的第二差值。
8.如权利要求7所述的实现softmax的电路装置,其特征在于,所述第一子差值计算模块的计算时间覆盖所述对数计算模块的计算时间。
9.如权利要求1至8任一项所述的实现softmax的电路装置,其特征在于,所述最大值模块的计算时间形成第一计算阶段,所述第一差值计算模块、所述第一指数计算模块以及所述累加模块的计算时间形成第二计算阶段,所述对数计算模块、所述第二差值计算模块以及所述第二指数模块的计算时间形成第三计算阶段,所述第一计算阶段、所述第二计算阶段以及所述第三计算阶段的计算时间相互独立,各计算阶段内,多个计算模块的计算时间至少部分相互覆盖。
10.一种生成softmax代码的方法,其特征在于,应用于如权利要求1至9任一项所述的电路装置,所述方法包括:
配置多个softmax生成器的参数;
使所述softmax生成器根据所述参数自动生成部署在电路装置上的softmax代码。
CN202110756617.6A 2021-07-05 2021-07-05 实现softmax的电路装置及生成softmax代码的方法 Pending CN113485673A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110756617.6A CN113485673A (zh) 2021-07-05 2021-07-05 实现softmax的电路装置及生成softmax代码的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110756617.6A CN113485673A (zh) 2021-07-05 2021-07-05 实现softmax的电路装置及生成softmax代码的方法

Publications (1)

Publication Number Publication Date
CN113485673A true CN113485673A (zh) 2021-10-08

Family

ID=77940789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110756617.6A Pending CN113485673A (zh) 2021-07-05 2021-07-05 实现softmax的电路装置及生成softmax代码的方法

Country Status (1)

Country Link
CN (1) CN113485673A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062768A (zh) * 2022-07-05 2022-09-16 东南大学 一种逻辑资源受限平台的Softmax硬件实现方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050369A1 (en) * 2016-04-19 2019-02-14 Cambricon Technologies Corporation Limited Apparatus and methods for non-linear function operations
CN110135086A (zh) * 2019-05-20 2019-08-16 合肥工业大学 计算精度可变的softmax函数硬件电路及其实现方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050369A1 (en) * 2016-04-19 2019-02-14 Cambricon Technologies Corporation Limited Apparatus and methods for non-linear function operations
CN110135086A (zh) * 2019-05-20 2019-08-16 合肥工业大学 计算精度可变的softmax函数硬件电路及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ZHIGANG WEI 等: "Design Space Exploration for Softmax Implementations", 《IEEE》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062768A (zh) * 2022-07-05 2022-09-16 东南大学 一种逻辑资源受限平台的Softmax硬件实现方法及系统

Similar Documents

Publication Publication Date Title
KR20200002607A (ko) 구분적 선형 근사를 이용한 심층 뉴럴 네트워크 아키텍처
US10713013B1 (en) Apparatus and method for an exponential operator for a half-precision floating-point format
US10768898B2 (en) Efficient modulo calculation
CN111936965B (zh) 随机舍入逻辑
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
KR950006584B1 (ko) 부동소수점 제산회로
Yushkova et al. Strategies for choosing an appropriate numerical method for FPGA-based HIL
KR20160130700A (ko) 나눗셈 연산을 수행하는 장치, 그것을 포함하는 시스템 온 칩 및 그것의 방법
CN117032625A (zh) 一种低延时的浮点平方根函数硬件实现方法
CN113485673A (zh) 实现softmax的电路装置及生成softmax代码的方法
Xia et al. Hyft: A reconfigurable softmax accelerator with hybrid numeric format for both training and inference
US20200192633A1 (en) Arithmetic processing device and method of controlling arithmetic processing device
JP3598096B2 (ja) ニュートンラフソン法を用いた演算方式
US11551087B2 (en) Information processor, information processing method, and storage medium
CN109298848A (zh) 双模式浮点除法平方根的电路
CN117992122A (zh) 特殊函数单元sfu计算装置及数据计算方法
Rangisetti et al. Area-efficient and power-efficient binary to BCD converters
Immaneni et al. PosAx-O: Exploring Operator-level Approximations for Posit Arithmetic in Embedded AI/ML
US20230367554A1 (en) Apparatus, a method of operating modulo k calculation circuitry and a non-transitory computer-readable medium to store computer-readable code for fabrication of an apparatus
CN114611052B (zh) 采用通用分段线性方法的可重构多函数计算单元
US11811416B2 (en) Energy-efficient analog-to-digital conversion in mixed signal circuitry
KR20010067226A (ko) 인터폴레이션 방법 및 장치
KR101753162B1 (ko) 이진수 연산의 선행 제로 비트수 계산방법 및, 그 장치
Sanchez et al. Hardware-in-the-loop using parametrizable fixed point notation
Chen et al. A dynamic non-uniform segmentation method for first-order polynomial function evaluation

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 503-3, 398 Jiangsu Road, Changning District, Shanghai 200050

Applicant after: Shanghai Xijing Technology Co.,Ltd.

Address before: Room 503-3, 398 Jiangsu Road, Changning District, Shanghai 200050

Applicant before: SHANGHAI WESTWELL INFORMATION AND TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20211008