CN108304925A - 一种池化计算装置及方法 - Google Patents

一种池化计算装置及方法 Download PDF

Info

Publication number
CN108304925A
CN108304925A CN201810014188.3A CN201810014188A CN108304925A CN 108304925 A CN108304925 A CN 108304925A CN 201810014188 A CN201810014188 A CN 201810014188A CN 108304925 A CN108304925 A CN 108304925A
Authority
CN
China
Prior art keywords
pond
computing device
value
arithmetic element
neuron number
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
CN201810014188.3A
Other languages
English (en)
Other versions
CN108304925B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201810014188.3A priority Critical patent/CN108304925B/zh
Publication of CN108304925A publication Critical patent/CN108304925A/zh
Application granted granted Critical
Publication of CN108304925B publication Critical patent/CN108304925B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/57Arithmetic 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/575Basic 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

Landscapes

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

Abstract

本发明涉及一种池化计算装置,包括内部缓存单元,用于接收和暂存神经元数据;池化运算单元,用于对所述内部缓存单元中存储的神经元数据执行池化运算并获得计算结果;池化控制单元,用于控制所述内部缓存单元和所述池化运算单元针对所述内部缓存单元接收的神经元数据执行池化操作。

Description

一种池化计算装置及方法
技术领域
本发明涉及计算领域,特别涉及一种池化计算装置及方法。
背景技术
神经网络是人工智能领域具有高发展水平的感知模型之一,因广泛的应用和出色的表现使其成为了学术界和工业界的研究热点。神经网络通过模拟人类大脑的神经连接结构来建立模型,为大规模数据(例如图像、视频或音频)处理任务带来了突破性进展。神经网络的计算过程一般可分为卷积、激活、池化等步骤,其中,神经网络的各层次特征图尺寸可随着池化操作而减少,以达到计算收敛效果,高效的池化装置有利于节约神经网络的硬件成本。
由于不同神经网络模型的池化方式通常会存在差异,主要体现在计算方法和池化范围的选择不同。现有技术中的池化装置,通常只考虑了固定池化的计算方式和池化范围,这就极大限制了神经网络芯片对不同网络的兼容性。
因此,需要一种能够兼容性好的池化计算装置及方法。
发明内容
本发明提供一种池化计算装置及方法,包括内部缓存单元,用于接收和暂存神经元数据;池化运算单元,用于对所述内部缓存单元中存储的神经元数据执行池化运算并获得计算结果;池化控制单元,用于控制所述内部缓存单元和所述池化运算单元针对所述内部缓存单元接收的神经元数据执行池化操作。
优选的,所述池化运算单元包括用于计算最大/最小值的比较器和用于暂存中间比较结果的缓存。
优选的,利用所述池化运算单元进行最大/最小值计算时,将当前比较周期的激活值输入至所述比较器中,获得当前周期的中间比较结果暂存入所述缓存,并将所述中间结果与下一周期的激活值一起输入至所述比较器中比较,直到获得最终最大/最小值。
优选的,所述池化运算单元还包括用于计算平均值的计算部件。
优选的,所述计算部件包括累加器和乘法器,利用所述池化运算单元进行平均值计算时,将池化核内的激活值依次输入至所述累加器中并获得累加结果,将所述累加结果输入至乘法器中并乘以所有激活值总数的倒数,获得平均值。
优选的,所述池化计算装置包括多个并行执行的池化运算单元。
优选的,所述控制单元将存储在所述内部缓存单元中的神经元数据分成多个数据块,并为每个所述数据块分配一个所述池化运算单元执行池化计算。
本发明还提供一种利用上述池化计算装置进行池化计算的方法,包括以下步骤:
接收并分析池化参数,生成控制信号;
根据所述控制信号对接收的神经元数据进行划分并选择运算类型;
根据所述控制信号执行池化运算并输出计算结果。
优选的,利用逐次比较方式执行最大/最小值的池化运算。
优选的,利用逐次累加方式执行平均值的池化运算。
相对于现有技术,本发明取得了如下有益技术效果:本发明提供的池化计算装置及方法,通过采用多个池化运算单元同时对不同的池化核数据块执行计算,提高了池化操作的并行度;同时采用依次比较和依次累加的计算方式,能够实现针对不同池化范围的池化操作,提高了池化计算的兼容性。
附图说明
图1是本发明提供的池化计算装置。
图2是利用池化运算单元103进行最大/最小值计算的示意图。
图3是利用池化运算单元103进行平均值计算的示意图。
图4是针对4*4的池化核进行池化运算的示意图。
图5是利用图1所示的池化计算装置进行池化计算的方法流程图。
图6是输入图层中的2*2的池化核示意图
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对根据本发明的实施例中提供的池化计算装置及方法进一步详细说明。
随着近年来人工智能的发展,基于深度学习的神经网络在解决抽象问题上得到了广泛的应用,深度神经网络可以通过多个变换阶段分层对数据特征进行描述,从而建立一种由大量节点通过网状互连构成的运算模型,这些节点通常被称为神经元。一般来说,神经网络的计算量较大,且计算过程复杂,利用池化装置的取最大/小值以及取平均值,可对神经网络的计算进行收敛。因此,设计高效的池化装置对神经网络的计算具有重要意义。
针对现有池化装置普遍存在兼容性较差的问题,发明人经研究提出了一种池化计算装置及方法,通过采用并行的池化运算单元,以及灵活的数据的管理模式,可以实现针对多种池化方式的兼容性以及池化范围的可扩展性。
图1是本发明提供的池化计算装置,如图1所示,该池化计算装置10包括内部缓存单元102、池化运算单元103以及池化控制单元101。
其中,内部缓存单元102,可用于接收与暂存输入池化计算装置10的进行单次池化操作的神经元数据,并按照接收的划分方案将这些神经元数据进行分批,并根据划分方案针对不同的池化尺寸的进一步细分,例如,针对大小2*2的池化核可将神经元数据进行分批;针对大小为3*3或4*4的池化核,在执行分批之后还需要将每个池化核内的数据继续分组,以便利用池化运算单元103进行池化计算。
池化运算单元103,用于完成针对上述经细分的神经元数据进行的池化运算,具体包括用于计算最大/最小值的计算部件以及用于计算平均值的计算部件。池化运算单元103可根据接收的选通信号,为输入的神经元数据选通相应的计算部件,从而实现不同类型池化操作;
其中,用于计算最大/最小值的计算部件包括比较器和缓存,图2是利用池化运算单元103进行最大/最小值计算的示意图,如图2所示,为了计算最大/最小值,将池化核内的激活值依次输入至比较器中,每次获得其中两个激活值中的较大/较小值,并将当前获得的较大/较小值暂存至缓存中,并在下一周期与新输入的激活值进行比较,循环往复,直到将池化核内的所有激活值全部比较完成,输出获得的最终池化结果,即最大/最小值;
另外,用于计算平均值的计算部件包括累加器和乘法器,图3是利用池化运算单元103进行平均值计算的示意图,如图3所示,可将池化核内的激活值首先输入至累加器中,经过多周期累加获得池化核内所有激活值的累加值,将该累加值输入值乘法单元中,乘以所有激活值数量的倒数,输出获得的最终池化结果,即平均值。
池化控制单元101,可用于接收神经网络的池化参数并生成相应的控制信息,例如,细分方案和选通信号,并将上述控制信息发送至对应的单元,从而实现池化装置10的正确运行。其中,细分方案可用于指导内部缓存单元102可对输入的神经元数据执行的细分;选通信号可用于指导池化运算单元103为指定神经元数据分配的相应计算部件。
在本发明的一个实施例中,上述池化计算装置包括多个能够并行执行的池化运算单元103,使其可以同时针对不同的池化核数据进行池化操作,特别是针对不同池化范围的池化数据,可通过并行的方式提高池化效率。例如,图4是针对4*4的池化核进行池化运算的示意图,如图4所示,假设池化核的大小为4*4,可将该池化核内的数据分成四块,并为每个数据块分配不同的池化运算单元103并行执行池化操作。
以下将以针对大小为2*2的池化核进行池化计算为例,详细说明利用上述池化计算装置进行池化运算的方法,图5是利用图1所示的池化计算装置进行池化计算的方法流程图,如图5所示,该方法具体包括以下步骤:
步骤S10、接收并分析控制信号
当池化控制单元101接收到来自神经网络的池化操作控制信号,将控制池化计算装置10执行池化操作。
接收的池化操作控制信号包括池化操作的选通信号(例如,最大值/最小值或者平均值)以及池化尺寸信号(例如,大小为2*2);通过分析选通信号,利用池化控制单元101选通池化运算单元103中的计算部件(例如,最大值/最小值所对应的比较器和缓存,或者平均值所对应的累加器和乘法器);并通过分析池化尺寸信号确定相应的细分方案。
步骤S20、接收并划分神经元数据
内部缓存单元102接收并存储所有输入的神经元数据,根据步骤S10获得的细分方案,确定输入图层中的每批池化核大小,例如为2*2;同时,将划分后的细分批量神经元数据分批次逐一传输至经步骤S10选通的池化运算单元103中相应的计算部件,例如,若为取最大值/最小值计算,则将激活值依次输入比较器;若为取平均值计算,则将激活值依次输入累加器。
步骤S30、进行池化计算并输出最终结果
利用池化计算单元103对输入的细批量神经元数据执行池化操作。图6是2*2的池化核示意图,如图6所示,在进行最大/最小值计算时,将当前批次的池化核中的四个激活值a、b、c、d依次输入比较器进行比较,例如,首先输入a、b,利用比较器获得a、b之中的较大或者较小值(假设该较大/较小值为b),则可将获得的较大/较小值(假设为b)暂存入缓存中并与c一起输入比较器进行比较,并获得较大/较小值(假设为b)暂存入缓存中并与d一起输入比较器进行比较,最后获得四个激活值中的最大/最小值并输出;在进行平均值计算时,将池化核中的四个激活值a、b、c、d依次输入累加器进行累加,获得累加值后输入乘法器乘以1/4,从而获得平均值并输出。
在本发明的一个实施例中,利用上述池化计算装置还可针对大小为3*3的池化核或者4*4的池化核进行池化运算,与针对2*2池化核的池化操作方式相似,可将3*3的池化核或者4*4的池化核中的激活值依次输入相应的计算部件(例如比较器和缓存,或者累加器和乘法器)执行相应的池化操作(例如取最大/最小值或者取平均值)。
在本发明的一个实施例中,可利用多个并行的池化运算单元103对神经元数据同时进行池化操作,例如,可将输入图层中的多个池化核分别分配至不同的池化运算单元103进行并行计算;或者将同一池化核内的激活值分成多个数据块,并为每个数据块分别分配独立的池化运算单元103进行计算,例如,针对大小为3*3的池化核,将池化核按行/列分成三组,每组包括3个激活值;针对4*4的池化核,将池化核分成四组,每组包括4个激活值。
尽管在上述实施例中,采用了四个并行的池化运算单元对本发明提供的池化计算装置进行了举例说明,但本领域普通技术人员应理解,上述池化计算装置的可在硬件允许的条件下包括多个并行执行的池化运算单元,以便提高计算效率。
相对于现有技术,在本发明实施例中所提供的池化计算装置及方法,采用了依次比较/累加的计算方法,能够针对不同池化类型和池化范围执行池化操作,并且通过并行的方式提高了池化计算的效率。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。

Claims (10)

1.一种池化计算装置,包括
内部缓存单元,用于接收和暂存神经元数据;
池化运算单元,用于对所述内部缓存单元中存储的神经元数据执行池化运算并获得计算结果;
池化控制单元,用于控制所述内部缓存单元和所述池化运算单元针对所述内部缓存单元接收的神经元数据执行池化操作。
2.根据权利要求1所述的池化计算装置,其特征在于,所述池化运算单元包括用于计算最大/最小值的比较器和用于暂存中间比较结果的缓存。
3.根据权利要求2所述的池化计算装置,其特征在于,利用所述池化运算单元进行最大/最小值计算时,将当前比较周期的激活值输入至所述比较器中,获得当前周期的中间比较结果暂存入所述缓存,并将所述中间结果与下一周期的激活值一起输入至所述比较器中比较,直到获得最终最大/最小值。
4.根据权利要求1所述的池化计算装置,其特征在于,所述池化运算单元还包括用于计算平均值的计算部件。
5.根据权利要求4所述的池化计算装置,其特征在于,所述计算部件包括累加器和乘法器,利用所述池化运算单元进行平均值计算时,将池化核内的激活值依次输入至所述累加器中并获得累加结果,将所述累加结果输入至乘法器中并乘以所有激活值总数的倒数,获得平均值。
6.根据权利要求1至5所述的池化计算装置,其特征在于,所述池化计算装置包括多个并行执行的池化运算单元。
7.根据权利要求6所述的池化计算装置,其特征在于,所述控制单元将存储在所述内部缓存单元中的神经元数据分成多个数据块,并为每个所述数据块分配一个所述池化运算单元执行池化计算。
8.一种利用如权利要求1至7任一项所述的池化计算装置进行池化计算方法,包括以下步骤:
接收并分析池化参数,生成控制信号;
根据所述控制信号对接收的神经元数据进行划分并选择运算类型;
根据所述控制信号执行池化运算并输出计算结果。
9.根据权利要求8所述的池化计算方法,其特征在于,利用逐次比较方式执行最大/最小值的池化运算。
10.根据权利要求8所述的池化计算方法,其特征在于,利用逐次累加方式执行平均值的池化运算。
CN201810014188.3A 2018-01-08 2018-01-08 一种池化计算装置及方法 Active CN108304925B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810014188.3A CN108304925B (zh) 2018-01-08 2018-01-08 一种池化计算装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810014188.3A CN108304925B (zh) 2018-01-08 2018-01-08 一种池化计算装置及方法

Publications (2)

Publication Number Publication Date
CN108304925A true CN108304925A (zh) 2018-07-20
CN108304925B CN108304925B (zh) 2020-11-03

Family

ID=62868720

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810014188.3A Active CN108304925B (zh) 2018-01-08 2018-01-08 一种池化计算装置及方法

Country Status (1)

Country Link
CN (1) CN108304925B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002885A (zh) * 2018-07-24 2018-12-14 济南浪潮高新科技投资发展有限公司 一种卷积神经网络池化单元及池化计算方法
CN109359269A (zh) * 2018-08-27 2019-02-19 北京大学 进行矩阵向量乘法运算的系统及进行神经网络运算方法
CN110489819A (zh) * 2019-07-29 2019-11-22 福州瑞芯微电子股份有限公司 一种反池化运算方法和电路
WO2020156212A1 (zh) * 2019-01-28 2020-08-06 北京灵汐科技有限公司 一种数据处理的方法、装置及电子设备
CN113255897A (zh) * 2021-06-11 2021-08-13 西安微电子技术研究所 一种卷积神经网络的池化计算单元

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106127302A (zh) * 2016-06-23 2016-11-16 杭州华为数字技术有限公司 处理数据的电路、图像处理系统、处理数据的方法和装置
CN106447037A (zh) * 2015-10-08 2017-02-22 上海兆芯集成电路有限公司 具有多个可选择输出的神经网络单元
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107527090A (zh) * 2017-08-24 2017-12-29 中国科学院计算技术研究所 应用于稀疏神经网络的处理器和处理方法
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106447037A (zh) * 2015-10-08 2017-02-22 上海兆芯集成电路有限公司 具有多个可选择输出的神经网络单元
CN106127302A (zh) * 2016-06-23 2016-11-16 杭州华为数字技术有限公司 处理数据的电路、图像处理系统、处理数据的方法和装置
CN106875012A (zh) * 2017-02-09 2017-06-20 武汉魅瞳科技有限公司 一种基于fpga的深度卷积神经网络的流水化加速系统
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107527090A (zh) * 2017-08-24 2017-12-29 中国科学院计算技术研究所 应用于稀疏神经网络的处理器和处理方法
CN107862374A (zh) * 2017-10-30 2018-03-30 中国科学院计算技术研究所 基于流水线的神经网络处理系统和处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LILI SONG 等: "C-Brain: A Deep Learning Accelerator that Tames the Diversity of CNNs through Adaptive Data-level Parallelization", 《IEEE》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002885A (zh) * 2018-07-24 2018-12-14 济南浪潮高新科技投资发展有限公司 一种卷积神经网络池化单元及池化计算方法
CN109359269A (zh) * 2018-08-27 2019-02-19 北京大学 进行矩阵向量乘法运算的系统及进行神经网络运算方法
WO2020156212A1 (zh) * 2019-01-28 2020-08-06 北京灵汐科技有限公司 一种数据处理的方法、装置及电子设备
CN110489819A (zh) * 2019-07-29 2019-11-22 福州瑞芯微电子股份有限公司 一种反池化运算方法和电路
CN110489819B (zh) * 2019-07-29 2022-11-18 瑞芯微电子股份有限公司 一种反池化运算方法和电路
CN113255897A (zh) * 2021-06-11 2021-08-13 西安微电子技术研究所 一种卷积神经网络的池化计算单元
CN113255897B (zh) * 2021-06-11 2023-07-07 西安微电子技术研究所 一种卷积神经网络的池化计算单元

Also Published As

Publication number Publication date
CN108304925B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
CN108304925A (zh) 一种池化计算装置及方法
CN110058883B (zh) 一种基于opu的cnn加速方法及系统
CN108932548A (zh) 一种基于fpga的稀疏度神经网络加速系统
CN112101517B (zh) 基于分段线性脉冲神经元网络的fpga实现方法
CN108053028A (zh) 数据定点化处理方法、装置、电子设备及计算机存储介质
CN108304926A (zh) 一种适用于神经网络的池化计算装置及方法
CN110533183A (zh) 一种流水线分布式深度学习中异构网络感知的模型划分与任务放置方法
CN109409510B (zh) 神经元电路、芯片、系统及其方法、存储介质
CN104145281A (zh) 神经网络计算装置和系统及其方法
CN112101525A (zh) 一种通过nas设计神经网络的方法、装置和系统
CN109597965A (zh) 基于深度神经网络的数据处理方法、系统、终端及介质
CN111612125A (zh) 一种面向在线学习的新型htm时间池方法及其系统
CN110399211A (zh) 机器学习的分配系统、方法及装置、计算机设备
CN110188880A (zh) 一种深度神经网络的量化方法及装置
CN112580943B (zh) 一种应用于无人机集群的任务分解与能力匹配方法
CN111598221B (zh) 一种软硬件协同加速神经网络算法的方法及系统
CN111831355A (zh) 权重精度配置方法、装置、设备及存储介质
CN108960414A (zh) 一种基于深度学习加速器实现单广播多运算的方法
CN115314343A (zh) 一种源荷储资源聚合控制网关装置及负荷和出力预测方法
CN101833691A (zh) 一种基于fpga的最小二乘支持向量机串行结构实现方法
CN109657794A (zh) 一种基于指令队列的分布式深度神经网络性能建模方法
CN113435128A (zh) 基于条件生成式对抗网络的油气藏产量预测方法及装置
CN112200391A (zh) 基于k-近邻互信息特征简化的配电网边缘侧负荷预测方法
CN105262702B (zh) 基于最小时延抖动的tdma通信网络时隙均匀分配方法
CN109472366A (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