CN109726809A - 深度学习softmax分类器的硬件实现电路及其控制方法 - Google Patents

深度学习softmax分类器的硬件实现电路及其控制方法 Download PDF

Info

Publication number
CN109726809A
CN109726809A CN201711039589.6A CN201711039589A CN109726809A CN 109726809 A CN109726809 A CN 109726809A CN 201711039589 A CN201711039589 A CN 201711039589A CN 109726809 A CN109726809 A CN 109726809A
Authority
CN
China
Prior art keywords
module
data
cache
result
floating
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
Application number
CN201711039589.6A
Other languages
English (en)
Other versions
CN109726809B (zh
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.)
Xilinx Inc
Original Assignee
Beijing Deephi Intelligent 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 Beijing Deephi Intelligent Technology Co Ltd filed Critical Beijing Deephi Intelligent Technology Co Ltd
Priority to CN201711039589.6A priority Critical patent/CN109726809B/zh
Priority to PCT/CN2018/080608 priority patent/WO2019085379A1/zh
Publication of CN109726809A publication Critical patent/CN109726809A/zh
Application granted granted Critical
Publication of CN109726809B publication Critical patent/CN109726809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F7/485Adding; Subtracting
    • 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
    • G06F7/487Multiplying; Dividing
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Nonlinear Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

本公开提供一种深度学习softmax分类器的硬件实现电路及其控制方法。硬件实现电路(100)包括:接口数据读控制模块(110),用于从外部存储器中读取计算数据给指数计算模块(120);指数计算模块(120),用于并行地进行浮点元素的指数运算;加法树模块(130),用于进行指数计算模块(120)的运算结果的累加运算;缓存模块(140),用于缓存指数计算模块(120)的运算结果以及加法树模块(130)的累加运算结果;除法计算模块(150),用于并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;接口数据写控制模块(160),用于将除法计算模块(150)的计算结果写入外部存储器。

Description

深度学习softmax分类器的硬件实现电路及其控制方法
技术领域
本发明涉及人工神经网络,更具体涉及深度学习softmax分类器的硬件实现电路及其控制方法。
背景技术
深度学习(Deep Learning)的概念源于人工神经网络(ANN)的研究,是机器学习中一种基于对数据进行表征学习的方法。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合底层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
深度学习与传统神经网络有相同的地方也有很多不同。相同在于二者都采用相似的分层结构,系统包括输入层、隐层、输出层组成的多层网络,相邻层节点之间有连接,同层以及跨层节点之间相互无连接,每层可以看做是一个逻辑回归模型。这种分层结构是比较接近人类大脑的结构的。不同在于训练机制,传统神经网络采用的是反向传播的方式进行,简单来说就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,根据当前输出和标签值的差来改变前面各层的参数,直到收敛。而深度学习整体上是采用逐层训练,再进行整体调优的策略。
Softmax在深度学习中有非常广泛的应用,Logistic回归是处理二分类问题,而Softmax回归(Softmax Regression)主要是解决多分类问题。
Softmax是Logistc回归在多分类上的推广,即类标签y的取值大于等于2。假设有m个训练样本{(x(1),y(1)),(x(2),y(2)),………(x(m),y(m))},在对Softmax回归,其输入特征为:类标记为:y(i)∈{0,1,………k}。假设函数为对于每一个样本估值其所属的类别的概率P(y=j|x),具体的假设函数为:
其中θ表示向量则对于每一个样本估计其所属的类别的概率为:
发明内容
本发明的目的在于提供一种深度学习softmax分类器的硬件实现电路及其控制方法。
根据本发明的第一方面,提供一种softmax分类器的硬件实现电路,该硬件实现电路可以包括:接口数据读控制模块,用于从外部存储器中读取计算数据给指数计算模块;指数计算模块,用于并行地进行浮点元素的指数运算;加法树模块,用于进行指数计算模块的运算结果的累加运算;缓存模块,用于缓存指数计算模块的运算结果以及加法树模块的累加运算结果;除法计算模块,用于并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;接口数据写控制模块,用于将除法计算模块的计算结果写入外部存储器中。
在根据本发明第一方面的硬件实现电路中,所述指数计算模块和所述除法计算模块的计算并行度可以取决于模块接口的数据带宽,如下公式所示:
IO_data_width×IO_freq=Calc_num×Calc_data_width×Calc_freq,
其中IO_data_width是IO数据位宽,IO_freq是IO接口数据频率,Calc_num是计算模块的并行度,Calc_data_width是每一个计算单元支持的数据位宽,Calc_freq是计算模块的运行频率。
在根据本发明第一方面的硬件实现电路中,所述指数计算模块和所述除法计算模块的计算并行度可以是4,所述指数计算模块可以包括4个指数计算单元,所述除法计算模块可以包括4个除法计算单元,所述加法树模块可以包括2级共3个浮点加法计算单元。
在根据本发明第一方面的硬件实现电路中,所述缓存模块可以包括指数运算结果缓存和累加运算结果缓存。其中,所述指数运算结果缓存和所述累加运算结果缓存都采用先进先出(FIFO)结构。
根据本发明的第二方面,提供一种softmax分类器的硬件实现电路的控制方法,包括:接口数据读控制模块从外部存储器中读取要计算的数据;数据并行进入指数计算模块,进行浮点元素的指数运算;指数计算模块的运算结果在加法树模块进行累加运算;通过缓存模块来缓存指数计算模块的运算结果以及加法树模块的累加运算结果;通过读取缓存模块,在除法计算模块并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;将除法计算模块的计算结果经接口数据写控制模块写入外部存储模块。
在根据本发明第二方面的控制方法中,所述指数计算模块和所述除法计算模块的计算并行度可以取决于模块接口的数据带宽,如下公式所示:
IO_data_width×IO_freq=Calc_num×Calc_data_width×Calc_freq,
其中IO_data_width是IO数据位宽,IO_freq是IO接口数据频率,Calc_num是计算模块的并行度,Calc_data_width是每一个计算单元支持的数据位宽,Calc_freq是计算模块的运行频率。
在根据本发明第二方面的控制方法中,所述指数计算模块和所述除法计算模块的计算并行度可以是4,所述指数计算模块可以包括4个指数计算单元,所述除法计算模块可以包括4个除法计算单元,所述加法树模块可以包括2级共3个浮点加法计算单元。
在根据本发明第二方面的控制方法中,所述缓存模块包括指数运算结果缓存和累加运算结果缓存。其中,所述指数运算结果缓存和所述累加运算结果缓存都采用先进先出(FIFO)结构。
根据本发明的第三方面,提供一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行softmax分类器的硬件实现电路的控制方法,包括如下操作:接口数据读控制模块从外部存储器中读取要计算的数据;数据并行进入指数计算模块,进行浮点元素的指数运算;指数计算模块的运算结果在加法树模块进行累加运算;通过缓存模块来缓存指数计算模块的运算结果以及加法树模块的累加运算结果;通过读取缓存模块,在除法计算模块并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;将除法计算模块的计算结果经接口数据写控制模块写入外部存储模块。
根据本发明的深度学习softmax分类器的硬件实现电路可以有效地进行softmax分类。该电路的并行度基于算法需求,也取决于模块的端口带宽。在异构嵌入式系统中,通过采用专用电路架构来实现softmax模块,能够提高计算效率,降低操作延时,有利于深度学习的快速落地。
附图说明
下面参考附图结合实施例说明本发明。在附图中:
图1是根据本发明的深度学习softmax分类器的硬件实现电路的示意框图;
图2是根据本发明的深度学习softmax分类器的硬件实现电路的控制方法的流程图;
图3是根据本发明的深度学习softmax分类器的硬件实现电路的优选实施例的示意图。
具体实施方式
附图仅用于示例说明,不能理解为对本发明的限制。下面结合附图和实施例对本发明的技术方案做进一步的说明。
摩尔定律在1965年被提出后,晶体管密度基本按照每年翻倍的速度发展。相比上一代,新一代芯片频率能提高50%,同时工艺节点减少0.3,功耗密度翻倍。2000年中期之后,随着制造工艺的发展,泄漏电流的问题凸显,再继续提高频率的方法很难凑效。为了在不提高频率的条件下实现高的性能,于是就出现了多核处理器。
随着互联网的快速发展,应用软件需求五花八门,只提高处理器的并行度已无法满足,于是就出现了专用电路。不用应用软件的行为不同,专用电路架构也就不同。图像处理类需求适合运行在GPU上,语音信号处理通常运行在DSP上,大量控制型需求适合运行在CPU上,视频编解码类需求适合跑在专用硬核上。人工智能的不断落地,带动着异构计算系统的快速发展。
在异构嵌入式系统中,softmax模块采用专用电路架构能够提高计算效率,降低操作延时。有利于深度学习的快速落地。本发明的目的在于提供一种深度学习softmax分类器的硬件实现电路。该电路的并行度设计不仅取决算法需求,也取决于模块的端口带宽。
为了实现上述目的,本发明提供了一种softmax分类器的硬件实现电路。图1是根据本发明的深度学习softmax分类器的硬件实现电路的示意框图。
如图1中所示,根据本发明的深度学习softmax分类器的硬件实现电路100可以包含以下的模块。
接口数据读控制模块110:该模块具有直接存储器存取(DMA)读的功能,从外部存储器中读取计算数据给之后的指数计算模块120。
指数计算模块120:完成浮点元素的指数的计算。计算的并行度依赖于模块接口的数据带宽,如下公式所示:
IO_data_width×IO_freq=Calc_num×Calc_data_width×Calc_freq
其中IO_data_width是IO数据位宽,IO_freq是IO接口数据频率,Calc_num是计算模块的并行度,Calc_data_width是每一个计算单元支持的数据位宽,Calc_freq是计算模块的运行频率。
加法树模块130:完成指数计算模块120的运算结果的累加操作,累加次数取决于输入数组的维度,数组维度通过控制模块传递。
缓存模块140:用于缓存指数计算模块120以及加法树模块130的计算结果。所述缓存模块可以包括指数运算结果缓存和累加运算结果缓存。所述指数运算结果缓存和所述累加运算结果缓存都采用先进先出(FIFO)结构。例如,指数计算模块120的执行周期和下文将描述的除法计算模块150的执行周期一致,指数计算模块120在计算当前数组元素指数时,除法计算模块150计算前一组数组元素的除法,形成流水。
除法计算模块150:用于计算元素指数与所有元素指数和的比值,该模块的并行度依赖于接口的数据带宽,与指数计算模块并行度一致。
接口数据写控制模块160:把除法计算模块150的计算结果写入指定外部存储器中。同时也对前级模块有反压功能,当向后写入操作较慢时,会向前提供反压功能。
本发明数据处理采用流水线设计,缓存模块采用乒乓(ping-pang)缓存结构,内部共两种状态,状态1处理ping缓存,状态2处理pang缓存。具体执行步骤如下:
步骤1:计算控制模块首先收到启动该电路指令,指令包含读取数组的读地址、结果写回的写地址、数组长度以及执行次数。
步骤2:接口数据读控制模块根据步骤1的指令,从外部存储模块读取要计算数据。
步骤3:数据并行进入指数计算模块,该模块采用与接口一致的并发度进行元素指数运算。运算后的结果一份给到加法树模块,一份写入到缓存模块ping缓存。
步骤4:加法树模块完成指数计算模块的累加操作,并缓存累加值的中间结果及最终结果。
步骤5:进入状态2,除法计算模块读取步骤3ping缓存的数据进行与步骤4最终结果进行除法运算。
步骤6:除法后的结果经接口数据写控制模块写入指令控制的外部存储模块中。
更一般地,上述的乒乓缓存结构可以看做是先进先出(FIFO)结构的一种。无论指数运算结果缓存还是累加运算结果缓存,都采用了FIFO结构,从而使得一方面在缓存中存储指数运算和累加运算的结果;另一方面也可以从缓存中取出最先存储的结果,以进行除法运算。
根据如上的描述,可以如下进一步总结出根据本发明的深度学习softmax分类器的硬件实现电路的控制方法。
图2是根据本发明的深度学习softmax分类器的硬件实现电路的控制方法的流程图。
如图2中所示,根据本发明的深度学习softmax分类器的硬件实现电路的控制方法200开始于步骤S210,在此步骤,接口数据读控制模块110从外部存储器中读取要计算的数据。
接下来,在步骤S220,数据并行进入指数计算模块120,进行浮点元素的指数运算;
在步骤S230,指数计算模块120的运算结果在加法树模块130进行累加运算。
然后,在步骤S240,通过缓存模块140来缓存指数计算模块120的运算结果以及加法树模块130的累加运算结果。所述缓存模块140可以包括指数运算结果缓存和累加运算结果缓存。
在步骤S250,通过读取缓存模块140,在除法计算模块150并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值。优选地,所述缓存模块140中的所述指数运算结果缓存和累加运算结果缓存都采用FIFO结构。
最后,在步骤S260,将除法计算模块150的计算结果经接口数据写控制模块160写入外部存储模块。由此,方法200即可结束。
在以上步骤中,如上结合电路100的结构所述,所述指数计算模块120和所述除法计算模块150的计算并行度取决于模块接口的数据带宽,如下公式所示:
IO_data_width×IO_freq=Calc_num×Calc_data_width×Calc_freq,
其中IO_data_width是IO数据位宽,IO_freq是IO接口数据频率,Calc_num是计算模块的并行度,Calc_data_width是每一个计算单元支持的数据位宽,Calc_freq是计算模块的运行频率。
图3是根据本发明的深度学习softmax分类器的硬件实现电路的优选实施例的示意图。
如图3中所示,在该优选实施例中,由于IO端口位宽是128bits,计算模块是浮点计算单元,IO和计算单元同频,所以计算模块并行度如下公式:
如上计算且如图3中所示,指数计算模块需要4个指数计算单元(exp),除法计算模块需要4个除法计算单元(div),加法树模块需要2级共3个浮点加法计算单元(add)以及一个累加器(acc)单元。在进行除法之前,采用指数结果缓存(exp buffer)和累加结果缓存(sum buffer)来进行准备。
本领域普通技术人员应该认识到,本发明的方法可以实现为计算机程序。如上结合图2所述,根据上述实施例的方法可以执行一个或多个程序,包括指令来使得计算机或处理器执行结合附图所述的算法。这些程序可以使用各种类型的非瞬时计算机可读介质存储并提供给计算机或处理器。非瞬时计算机可读介质包括各种类型的有形存贮介质。非瞬时计算机可读介质的示例包括磁性记录介质(诸如软盘、磁带和硬盘驱动器)、磁光记录介质(诸如磁光盘)、CD-ROM(紧凑盘只读存储器)、CD-R、CD-R/W以及半导体存储器(诸如ROM、PROM(可编程ROM)、EPROM(可擦写PROM)、闪存ROM和RAM(随机存取存储器))。进一步,这些程序可以通过使用各种类型的瞬时计算机可读介质而提供给计算机。瞬时计算机可读介质的示例包括电信号、光信号和电磁波。瞬时计算机可读介质可以用于通过诸如电线和光纤的有线通信路径或无线通信路径提供程序给计算机。
因此,根据本发明,还可以提议一种计算机程序或一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行softmax分类器的硬件实现电路的控制方法,包括如下操作:接口数据读控制模块从外部存储器中读取要计算的数据;数据并行进入指数计算模块,进行浮点元素的指数运算;指数计算模块的运算结果在加法树模块进行累加运算;通过缓存模块来缓存指数计算模块的运算结果以及加法树模块的累加运算结果;通过读取缓存模块,在除法计算模块并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;将除法计算模块的计算结果经接口数据写控制模块写入外部存储模块。
上面已经描述了本发明的各种实施例和实施情形。但是,本发明的精神和范围不限于此。本领域技术人员将能够根据本发明的教导而做出更多的应用,而这些应用都在本发明的范围之内。
也就是说,本发明的上述实施例仅仅是为清楚说明本发明所做的举例,而非对本发明实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、替换或改进等,均应包含在本发明权利要求的保护范围之内。

Claims (11)

1.一种softmax分类器的硬件实现电路,包括:
接口数据读控制模块,用于从外部存储器中读取计算数据给指数计算模块;
指数计算模块,用于并行地进行浮点元素的指数运算;
加法树模块,用于进行指数计算模块的运算结果的累加运算;
缓存模块,用于缓存指数计算模块的运算结果以及加法树模块的累加运算结果;
除法计算模块,用于并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;
接口数据写控制模块,用于将除法计算模块的计算结果写入外部存储器中。
2.根据权利要求1所述的硬件实现电路,其中,所述指数计算模块和所述除法计算模块的计算并行度取决于模块接口的数据带宽,如下公式所示:
IO_data_width×IO_freq=Calc_num×Calc_data_width×Calc_freq,
其中IO_data_width是IO数据位宽,IO_freq是IO接口数据频率,Calc_num是计算模块的并行度,Calc_data_width是每一个计算单元支持的数据位宽,Calc_freq是计算模块的运行频率。
3.根据权利要求1或2所述的硬件实现电路,其中,所述指数计算模块和所述除法计算模块的计算并行度为4,所述指数计算模块包括4个指数计算单元,所述除法计算模块包括4个除法计算单元,所述加法树模块包括2级共3个浮点加法计算单元。
4.根据权利要求1所述的硬件实现电路,其中,所述缓存模块包括指数运算结果缓存和累加运算结果缓存。
5.根据权利要求4所述的硬件实现电路,其中,所述指数运算结果缓存和所述累加运算结果缓存都采用先进先出(FIFO)结构。
6.一种softmax分类器的硬件实现电路的控制方法,包括:
接口数据读控制模块从外部存储器中读取要计算的数据;
数据并行进入指数计算模块,进行浮点元素的指数运算;
指数计算模块的运算结果在加法树模块进行累加运算;
通过缓存模块来缓存指数计算模块的运算结果以及加法树模块的累加运算结果;
通过读取缓存模块,在除法计算模块并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;
将除法计算模块的计算结果经接口数据写控制模块写入外部存储模块。
7.根据权利要求6所述的控制方法,其中,所述指数计算模块和所述除法计算模块的计算并行度取决于模块接口的数据带宽,如下公式所示:
IO_data_width×IO_freq=Calc_num×Calc_data_width×Calc-freq,
其中IO_data_width是IO数据位宽,IO_freq是IO接口数据频率,Calc_num是计算模块的并行度,Calc_data_width是每一个计算单元支持的数据位宽,Calc_freq是计算模块的运行频率。
8.根据权利要求6或7所述的控制方法,其中,所述指数计算模块和所述除法计算模块的计算并行度为4,所述指数计算模块包括4个指数计算单元,所述除法计算模块包括4个除法计算单元,所述加法树模块包括2级共3个浮点加法计算单元。
9.根据权利要求6所述的控制方法,其中,所述缓存模块包括指数运算结果缓存和累加运算结果缓存。
10.根据权利要求9所述的控制方法,其中,所述指数运算结果缓存和所述累加运算结果缓存都采用先进先出(FIFO)结构。
11.一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行softmax分类器的硬件实现电路的控制方法,包括如下操作:
接口数据读控制模块从外部存储器中读取要计算的数据;
数据并行进入指数计算模块,进行浮点元素的指数运算;
指数计算模块的运算结果在加法树模块进行累加运算;
通过缓存模块来缓存指数计算模块的运算结果以及加法树模块的累加运算结果;
通过读取缓存模块,在除法计算模块并行地计算各个浮点元素的指数运算结果与所有浮点元素指数运算结果之和的比值;
将除法计算模块的计算结果经接口数据写控制模块写入外部存储模块。
CN201711039589.6A 2017-10-30 2017-10-30 深度学习softmax分类器的硬件实现电路及其控制方法 Active CN109726809B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711039589.6A CN109726809B (zh) 2017-10-30 2017-10-30 深度学习softmax分类器的硬件实现电路及其控制方法
PCT/CN2018/080608 WO2019085379A1 (zh) 2017-10-30 2018-03-27 深度学习softmax分类器的硬件实现电路及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711039589.6A CN109726809B (zh) 2017-10-30 2017-10-30 深度学习softmax分类器的硬件实现电路及其控制方法

Publications (2)

Publication Number Publication Date
CN109726809A true CN109726809A (zh) 2019-05-07
CN109726809B CN109726809B (zh) 2020-12-08

Family

ID=66292834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711039589.6A Active CN109726809B (zh) 2017-10-30 2017-10-30 深度学习softmax分类器的硬件实现电路及其控制方法

Country Status (2)

Country Link
CN (1) CN109726809B (zh)
WO (1) WO2019085379A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112036561A (zh) * 2020-09-30 2020-12-04 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
WO2021047215A1 (zh) * 2019-09-12 2021-03-18 东南大学 多位宽pe阵列计算位宽的选择方法及计算精度控制电路
CN112685693A (zh) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统
CN106355246A (zh) * 2015-10-08 2017-01-25 上海兆芯集成电路有限公司 三配置神经网络单元
US20170177993A1 (en) * 2015-12-18 2017-06-22 Sandia Corporation Adaptive neural network management system
US20170206405A1 (en) * 2016-01-14 2017-07-20 Nvidia Corporation Online detection and classification of dynamic gestures with recurrent convolutional neural networks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109358900B (zh) * 2016-04-15 2020-07-03 中科寒武纪科技股份有限公司 支持离散数据表示的人工神经网络正向运算装置和方法
CN106919980B (zh) * 2017-01-24 2020-02-07 南京大学 一种基于神经节分化的增量式目标识别系统
CN107229942B (zh) * 2017-04-16 2021-03-30 北京工业大学 一种基于多个分类器的卷积神经网络分类方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106355246A (zh) * 2015-10-08 2017-01-25 上海兆芯集成电路有限公司 三配置神经网络单元
CN106447037A (zh) * 2015-10-08 2017-02-22 上海兆芯集成电路有限公司 具有多个可选择输出的神经网络单元
US20170177993A1 (en) * 2015-12-18 2017-06-22 Sandia Corporation Adaptive neural network management system
US20170206405A1 (en) * 2016-01-14 2017-07-20 Nvidia Corporation Online detection and classification of dynamic gestures with recurrent convolutional neural networks
CN106228238A (zh) * 2016-07-27 2016-12-14 中国科学技术大学苏州研究院 现场可编程门阵列平台上加速深度学习算法的方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021047215A1 (zh) * 2019-09-12 2021-03-18 东南大学 多位宽pe阵列计算位宽的选择方法及计算精度控制电路
CN112036561A (zh) * 2020-09-30 2020-12-04 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN112036561B (zh) * 2020-09-30 2024-01-19 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN112685693A (zh) * 2020-12-31 2021-04-20 南方电网科学研究院有限责任公司 一种实现Softmax函数的设备

Also Published As

Publication number Publication date
WO2019085379A1 (zh) 2019-05-09
CN109726809B (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
CN110070181A (zh) 一种用于边缘计算设备的深度学习的优化方法
CN110334799A (zh) 基于存算一体的神经网络推理与训练加速器及其运行方法
Wang et al. Acceleration of LSTM with structured pruning method on FPGA
CN109726809A (zh) 深度学习softmax分类器的硬件实现电路及其控制方法
CN112236784A (zh) 修改机器学习模型以改善局部性
WO2021089009A1 (zh) 数据流重构方法及可重构数据流处理器
CN109918951B (zh) 一种基于层间融合的人工智能处理器侧信道防御系统
Pang et al. Ant colony optimization algorithm to dynamic energy management in cloud data center
CN109472361A (zh) 神经网络优化方法
WO2021244045A1 (zh) 一种神经网络的数据处理方法及装置
CN116401502B (zh) 一种基于NUMA系统特性优化Winograd卷积的方法及装置
Zhu et al. An ameliorated harmony search algorithm with hybrid convergence mechanism
Patel et al. Performance comparison of deep VM workload prediction approaches for cloud
CN105808351A (zh) 一种多模式自适应切换处理器
Liang et al. A CGRA based neural network inference engine for deep reinforcement learning
Jain et al. Sparse deep neural network acceleration on HBM-enabled FPGA platform
Shang et al. LACS: A high-computational-efficiency accelerator for CNNs
WO2021237755A1 (zh) 神经网络调度方法及装置
Wang et al. Enabling energy-efficient and reliable neural network via neuron-level voltage scaling
Li et al. NDRec: A Near-Data Processing System for Training Large-Scale Recommendation Models
Niu et al. FlashGNN: An In-SSD Accelerator for GNN Training
Lin et al. swFLOW: A dataflow deep learning framework on sunway taihulight supercomputer
Di et al. Microprocessor architecture and design in post exascale computing era
Kuppannagari et al. Ip cores for graph kernels on fpgas
US11175844B1 (en) Optimal placement of data structures in a hybrid memory based inference computing platform

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190926

Address after: 2100 San Jose Rojack Avenue, California, USA

Applicant after: XILINX INC

Address before: 100083, 17 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing.

Applicant before: Beijing Shenjian Intelligent Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant