CN111027682A - 神经网络处理器、电子设备及数据处理方法 - Google Patents
神经网络处理器、电子设备及数据处理方法 Download PDFInfo
- Publication number
- CN111027682A CN111027682A CN201911253848.4A CN201911253848A CN111027682A CN 111027682 A CN111027682 A CN 111027682A CN 201911253848 A CN201911253848 A CN 201911253848A CN 111027682 A CN111027682 A CN 111027682A
- Authority
- CN
- China
- Prior art keywords
- processing
- unit
- buffer register
- processing result
- pooling
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 125
- 238000003672 processing method Methods 0.000 title claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 477
- 239000000872 buffer Substances 0.000 claims abstract description 232
- 238000011176 pooling Methods 0.000 claims abstract description 126
- 238000000034 method Methods 0.000 claims description 30
- 238000004364 calculation method Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000004205 output neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例提供一种神经网络处理器、电子设备及数据处理方法,该神经网络处理器包括卷积处理单元、多个缓冲寄存单元和池化处理单元,卷积处理单元用于为对待处理数据进行卷积处理以得到第一处理结果,多个缓冲寄存单元均与所述卷积处理单元连接,所述多个缓冲寄存单元用于暂存所述第一处理结果;池化处理单元与所述多个缓冲寄存单元连接,所述池化处理单元用于对存储在所述多个缓冲寄存单元中的第一处理结果进行池化处理以得到第二处理结果。本申请实施例可以减少神经网络处理器的数据吞吐量,进而提高神经网络处理器的处理效率。
Description
技术领域
本申请涉及神经网络技术领域,更具体地讲,涉及一种神经网络处理器、电子设备及数据处理方法。
背景技术
神经网络表示模拟生物大脑的计算架构。近来,随着神经网络技术的发展,已经积极研究了各种类型的电子系统,以用于使用神经网络处理单元来分析输入数据并提取有效信息。
神经网络处理单元利用相对大量的计算来处理复杂的输入数据。针对被配置为实时分析高质量输入并提取信息的神经网络处理单元,需要用于高效处理神经网络操作的技术。
发明内容
本申请实施例提供一种神经网络处理器、电子设备和数据处理方法,可以提高神经网络处理器的处理效率。
本申请实施例提供一种神经网络处理器,包括:
卷积处理单元,用于为对待处理数据进行卷积处理以得到第一处理结果;
多个缓冲寄存单元,均与所述卷积处理单元连接,所述多个缓冲寄存单元用于暂存所述第一处理结果;以及
池化处理单元,与所述多个缓冲寄存单元连接,所述池化处理单元用于对存储在所述多个缓冲寄存单元中的第一处理结果进行池化处理以得到第二处理结果。
本申请实施例还提供一种神经网络处理器,包括:
卷积处理单元,被配置为对数据进行卷积处理以得到第一处理结果;
第一缓冲寄存单元,与所述卷积处理单元连接,所述第一缓冲寄存单元被配置为存储所述第一处理结果;以及
池化处理单元,与所述第一缓冲寄存单元连接,所述池化处理单元被配置为在所述第一缓冲寄存单元所存储的第一处理结果的数据量达到第一阈值时,从所述第一缓冲寄存单元中获取所述第一处理结果并对所述第一处理结果进行池化处理以得到第二处理结果。
本申请实施例还提供一种电子设备,包括神经网络处理器,所述神经网络处理器为如上所述的神经网络处理器。
本申请实施例还提供一种数据处理方法,应用于神经网络处理器,其特征在于,所述神经网络处理器包括第一缓冲寄存单元,所述方法包括:
获取待处理数据;
对所述待处理数据进行卷积处理以得到第一处理结果;
将所述第一处理结果存储到所述第一缓冲寄存单元中;
当所述第一缓冲寄存单元中所存储的第一处理结果达到第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理。
本申请实施例通过设置一个或多个缓冲寄存单元,该缓冲寄存单元可以用于存放经过卷积处理得到的第一处理结果,无需将第一处理结果输出至外部的存储装置中进行存储即可完成待处数据的卷积处理和池化处理,可以减少神经网络处理器的数据吞吐量,进而提高神经网络处理器的处理效率。
附图说明
图1为本申请实施例提供的神经网络处理器的第一种结构示意图。
图2为本申请实施例提供的卷积处理的部分原理图。
图3为本申请实施例提供的神经处理器的第二种结构示意图。
图4为本申请实施例提供的神经处理器的第三种结构示意图。
图5为本申请实施例提供的电子设备的第一种结构示意图。
图6为本申请实施例提供的电子设备的第二种结构示意图。
图7为本申请实施例提供的数据处理方法的第一种流程示意图。
图8为本申请实施例提供的数据处理方法的第二种流程示意图。
具体实施方式
如图1所示,图1为本申请实施例提供的神经网络处理器的第一种结构示意图。神经网络处理器200(neural-network processing units,NPU)可生成神经网络模型、可训练(或学习)神经网络模型、可基于接收的待处理数据执行计算并基于计算的结果生成信息信号,或者可重新训练神经网络模型。在一些示例实施例中,神经网络处理器200可基于定点来训练神经网络模型。这将在下面进行详细描述。
可以理解的是,神经网络处理器200可以是可执行存储在存储器(例如,存储装置)中的指令的程序的处理器(例如,处理电路的实例)和/或可由可执行存储在存储器(例如,存储装置)中的指令的程序的处理器(例如,处理电路的实例)来实现。因此,在一些示例实施例中,如在此描述的神经网络处理器200可以是实现神经网络处理器200的功能的处理器。
神经网络处理器200可经由系统总线从其他的集成模块(或者说集成电路)接收各种种类的待处理数据,并因此可生成信息信号(例如,基于待处理数据执行神经网络计算以生成输出信号)。由神经网络生成的信息信号可包括各种种类的识别信号(诸如,语音识别信号、对象识别信号、图像识别信号和生物信息识别信号)之一。例如,神经网络处理器200可接收包括在视频流中的帧数据作为待处理数据,并可从帧数据生成关于包括在由帧数据表示的图像中的对象的识别信号。然而,本公开不限于此,神经网络处理器200可接收各种种类的待处理数据并可根据待处理数据生成识别数据。
在一些示例实施例中,神经网络处理器200可被训练为通过基于待处理数据执行的计算来实现神经网络。对神经网络处理器200进行训练以实现神经网络在此可被称为“训练”神经网络。当神经网络被训练时,待处理数据可以是训练数据。
神经网络可以是深度神经网络(Deep Neural Networks,DNN)或包括两个或更多个隐藏层的n层神经网络。神经网络可包括但不限于:卷积神经网络(ConvolutionalNeural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)、深度信念网络、限制玻尔兹曼(Boltzmann)机等。
如图1所示,神经网络处理器200可以包括卷积处理单元220、缓冲寄存单元240和池化处理单元260。
其中,卷积处理单元220可以对上述所提及的待处理数据进行卷积处理以得到第一处理结果。待处理数据可以是存储在神经网络处理器200外部的数据,其中待处理数据可以是未曾进行处理过的数据,可以是经过部分处理(比如卷积处理或池化处理)后的数据。待处理数据也可以是存储在神经网络处理器200内部的数据,比如待处理数据可以为卷积处理单元220所处理得到的第一处理结果,或者池化处理单元260所处理得到的第二处理结果。
卷积处理单元220可以利用一个K*K大小的二维权重卷积核对待处理数据进行扫描,在扫描过程中权重与待处理数据内对应的神经元求内积,并将所有内积值求和,然后通过非线性激活函数处理之后,获得第一处理结果,当每一次卷积处理需处理N个待处理数据时,会有N个K*K大小的卷积核与该待处理数据进行卷积运算,以得到N个第一处理结果。比如,K*K=1*1,一张特征图具有64个待处理数据,卷积处理单元220可以采用64个1*1大小的卷积核与64个待处理数据进行卷积运算,则卷积处理单元220进行一次卷积处理可以输出64个第一处理结果。
缓冲寄存单元240与卷积处理单元220连接,缓冲寄存单元240用于暂时存储卷积处理单元220所处理得到的第一处理结果,以便在适当的时间节拍和给定的计算步骤将所暂存的第一处理结果输入或输出到其它单元(比如池化处理单元260)中去。缓冲寄存单元240的数量可以为一个,缓冲寄存单元240的数量也可以为多个,比如两个、四个或六个,该缓冲寄存单元240的数量可以根据实际的需求进行设定。
池化处理单元260与缓冲寄存单元240连接,池化处理单元260用于对缓冲寄存单元240中所存储的第一处理结果进行池化处理,以得到第二处理结果。比如,池化处理单元260可以获取缓冲寄存单元240中所暂存的第一处理结果,或者缓冲寄存单元240也可以将所暂存的第一处理结果输入或输入到池化处理单元260中,进而释放缓冲寄存单元240的存储空间。
池化处理单元260可以基于一个P*P大小的池化窗口对第一处理结果进行扫描,在扫描过程中计算池化窗口在第一处理结果对应神经元的最大值或平均值,得到第二处理结果(或者说池化处理单元260的输出神经元),池化处理单元260一方面可以消除部分噪声信息,有利于特征提取,另一方面也可以减少下一层特征神经元的数量,从而减小网络规模。池化处理单元260将所有的第一处理结果均处理完成以得到所有的第二处理结果后,再按照结果输出地址将所有的第二处理结果输出至结果输出地址中。其中,池化窗口的尺寸和结果输出地址等配置参数可以为其他控制单元(诸如中央处理器)配置给池化处理单元260的,比如中央处理器可以在启动池化处理单元260时,生成配置指令,该配置指令携带有池化窗口的大小和结果输出地址等配置参数,池化处理单元260可以依据该配置参数对第一处理结果进行池化处理。池化窗口的尺寸和结果输出地址等配置参数也可以存储在外部存储装置中,池化处理单元260启动之前可以从外部的存储装置中获取该配置参数。
相关技术中,卷积处理单元220通常将其所处理得到的第一处理结果存储到外部的存储装置(比如外部的存储器)中,待卷积处理单元220将所有的待处理数据处理完成后,池化处理单元200再启动池化处理,处理完成所得到的第二处理结果又要存储到外部的存储装置中,而且其启动池化处理之前,还需要从外部的存储装置中加载第一处理结果,这样频繁地将第一处理结果或者第二处理结果输入到外部的存储装置或者从外部的存储设备加载第一处理结果,会对神经网络处理器200的数据吞吐带来巨大的压力,也增加了神经网络处理器200的处理时间。
本申请实施例通过在神经网络处理器200内部增加一个或多个缓冲寄存单元240,可以将卷积处理单元220处理得到的第一处理结果暂存到缓冲寄存单元240中,池化处理单元260可以对暂存在缓冲寄存单元240中的第一处理结果进行池化处理,相对于相关技术,本申请实施例可以减少神经网络处理器200与外部的存储装置的数据交互,以达到减小神经网络处理器200的数据吞吐量,提高神经网络处理器200的处理效率。
如图2所示,图2为本申请实施例提供的卷积处理的部分原理图。卷积处理单元220可以基于多个卷积核对待处理数据进行卷积处理。比如卷积处理单元220存储有多个卷积核,比如卷积核的数量为N个,8≤N≤128,或者16≤N≤64,或者32≤N≤64,或者N=64。其中卷积核的数量可以根据应用场景所使用的卷积核的数量的概率确定。卷积处理单元220利用N个卷积核对待处理数据进行卷积运算,以得到N个第一处理结果。可以理解的是,卷积处理单元220进行一次卷积处理所得到的第一处理结果也为N个。
为了使得缓冲寄存单元240可以存储至少一次卷积处理所得到的第一处理结果,本申请实施例的缓冲寄存单元240的深度可以根据卷积核的数量来确定,比如缓冲寄存单元240的深度可以配置为等于卷积核的数量。示例性地,当卷积核的数量N=64时,缓冲寄存单元240的深度也可以配置为等于64,使得缓冲寄存单元240可以存储一次卷积处理所得到的第一处理结果的数据量。当然,缓冲寄存单元240的深度也可以配置为大于64,使得缓冲寄存单元240可以存储大于一次卷积处理所得到的第一处理结果的数据量。需要说明的是,缓冲寄存单元240的深度的配置可以通过硬件配置的方式实现,也可以通过软件设置的方式实现。可以理解的是,当缓冲寄存单元240的深度的配置通过硬件配置的方式实现时,缓冲寄存单元240的深度即为缓冲寄存单元240的固定属性。
为了使得缓冲寄存单元240所存储的第一处理结果可以适用至少一次池化处理的数据量,本申请实施例的缓冲寄存单元240的长度与宽度的乘积可以配置为大于或等于预设值,使得缓冲寄存单元所存储的第一处理结果的数据量可供池化处理单元260进行至少一次池化处理。其中,预设值的设定可以根据池化处理单元260进行一次池化处理所需要的第一处理结果的数据量进行确定。缓冲寄存单元240的长度和宽度的乘积可以通过软件进行配置。
示例性地,当卷积核的数量N=64时,卷积处理单元220每完成一次卷积处理,就将一个1*1*64的第一处理结果存入缓冲寄存单元240中,直到存满缓冲寄存单元240的存储空间。池化处理单元100进行一次池化处理所需要的第一处理结果的数据量为16个第一处理结果,则缓冲寄存单元240的长度可以配置为4,宽度可以配置为4,深度可以配置为64,即缓冲寄存单元240的存储空间配置为4*4*64,那么卷积处理单元220完成16次卷积处理所得到的16个第一处理结果后,缓冲寄存单元240的存储空间就会被存满,此时可以通知池化处理单元260读取缓冲寄存单元240所存储的第一处理结果并对所读取的第一处理结果进行池化处理,在池化处理单元260读取缓冲寄存单元240所存储的第一处理结果的过程中,缓冲寄存单元240的存储空间得以释放,释放后的缓冲寄存单元240可以继续存储卷积处理单元220新处理得到的新的第一处理结果,将此过程进行循环直至所有的待处理数据处理完成,得到全部的第二处理结果后,神经网络处理20再将全部的第二处理结果存储到外部的存储装置,以供其他装置(比如中央处理器)使用。
本申请实施例由于缓冲寄存单元240的存在,使得卷积处理单元220和池化处理单元260之间不需要额外的外部数据加载和保存,从而减小了额外的硬件成本。另外,缓冲寄存单元240在缓存多次卷积处理所得到的多组第一处理结果中的一部分第一处理结果,因此池化处理单元260可以不需要等待卷积处理单元220全部处理完成就可以开始进行池化处理,进而提高神经网络处理器200的处理效率。
需要说明的是,缓冲寄存单元240的存储空间越小时,缓冲寄存单元240很容易就被存满,池化处理单元260可以在无需等待很久的时间就可以读取缓冲寄存单元240所存储的第一处理结果进行处理,但是要完成所有的池化处理就需要多次的数据循环,进而使得卷积处理单元220从外部的存储装置加载待处理数据的次数变多,从而引入更多的额外的硬件开销。
可以理解的是,缓冲寄存单元240的存储空间越小,池化处理单元260启动池化处理的延迟就会越小,那每个处理单元会时刻处于运行状态,额外的硬件开销会变大。缓冲寄存单元240越大,额外的硬件开销就越小,但延迟会变大。
如图3所示,图3为本申请实施例提供的神经处理器的第二种结构示意图。神经网络处理器200可以包括第一缓冲寄存单元242,第一缓冲寄存单元242分别与卷积处理单元220和和池化处理单元260连接,第一缓冲寄存单元242用于暂存卷积处理单元220所处理得到的第一处理结果,当第一缓冲寄存单元242所存储的第一处理结果达到第一阈值时,则启动池化处理单元260对第一缓冲寄存单元242所存储的第一处理结果进行池化处理。比如,当第一缓冲寄存单元310所存储的第一处理结果达到第一阈值时,可以向池化处理单元260发出通知指令,该通知指令用于指示池化处理单元260启动池化处理功能。需要说明的是,通知池化处理单元260启动池化处理的方式并不限于此,比如也可以在第一缓冲寄存单元310所存储的第一处理结果达到阈值时,由外部的控制单元(诸如中央处理器)控制池化处理单元260启动池化。其中,阈值的设定可以根据实际的需求进行设置,第一阈值的设定可以小于卷积处理单元220完成所有卷积处理所得到的第一处理结果的数据量。比如卷积处理单元220完成所有卷积处理所得到的第一处理结果的数据量为8*8*64=4096个第一处理结果,那第一阈值可以设定为小于4086的任意值,比如第一阈值可以等于1024,或者第一阈值可以等于256等。以理解的是,本申请实施例的池化处理单元260可以在第一缓冲寄存单元242所存储的第一处理结果达到第一阈值时即启动池化处理,无需等待所有的卷积处理单元220进行所有的卷积处理后再进行池化处理,使得卷积处理单元220的卷积处理和池化处理单元260的池化处理得以同时进行,进而缩短完成所有待处理数据的处理时间,提高神经网络处理器200的处理效率。
其中,第一阈值也可以根据池化处理所需要的数据量来确定,比如第一阈值可以等于一次池化处理所需要的数据量的数值,进而使得第一缓冲寄存单元310所存储的第一处理结果的数据量可以满足一次池化处理。第一阈值也可以等于M次池化处理所需要的数据量的数值,比如M=2,M=3,M=4等。当第一阈值根据池化处理所需要的数据量进行设定时,可以缩短池化处理单元260的空闲时间,使得卷积处理单元220和池化处理单元260之间的数据处理可以更连续。
第一缓冲寄存单元242的深度可以根据卷积核的数量来确定,比如第一缓冲寄存单元242的深度可以配置为等于卷积核的数量。示例性地,当卷积核的数量N=64时,第一缓冲寄存单元242的深度也可以配置为等于64,使得第一缓冲寄存单元242可以存储一次卷积处理所得到的第一处理结果的数据量。当然第一缓冲寄存单元242的深度也可以配置为大于64,使得第一缓冲寄存单元242可以存储大于一次卷积处理所得到的第一处理结果的数据量。需要说明的是,第一缓冲寄存单元242的深度的配置可以通过硬件配置的方式实现,也可以通过软件设置的方式实现。可以理解的是,当第一缓冲寄存单元242的深度的配置通过硬件配置的方式实现时,第一缓冲寄存单元242的深度即为第一缓冲寄存单元242的固定属性。
为了使得第一缓冲寄存单元242所存储的第一处理结果可以适用至少一次池化处理的数据量,本申请实施例的第一缓冲寄存单元242的长度与宽度的乘积可以配置为大于或等于预设值,使得第一缓冲寄存单元242所存储的第一处理结果的数据量可供池化处理单元260进行至少一次池化处理。其中,预设值的设定可以根据池化处理单元260进行一次池化处理所需要的第一处理结果的数据量进行确定。第一缓冲寄存单元242的长度和宽度的乘积可以通过软件进行配置。
请继续参阅图3,神经网络处理器200还可以包括第二缓冲寄存单元244,第二缓冲寄存单元244分别与卷积处理单元220和池化处理单元260连接,第二缓冲寄存单元244可以与第一缓冲寄存单元242一起存储第一处理结果。当第一缓冲寄存单元242中所存储的第一处理结果达到第一阈值时,且第二缓冲寄存单元244中所存储的第一处理结果未达到第二阈值时,将新的所述第一处理结果存储至第二缓冲寄存单元244;其中,所述新的第一处理结果为在第一缓冲寄存单元242所存储的计算结果达到第一阈值时,卷积处理单元220继续进行卷积处理而得到的第一处理结果。
第一阈值可以设定为第一缓冲寄存单元242可存放的第一处理结果的最大数据量,此时可以理解的是当第一缓冲寄存单元242的存储空间被存满时,卷积处理单元220继续进行卷积处理而得到的新的第一处理结果将没有空间可存放,此时卷积处理单元220不得减缓处理速度,或者停止处理,待第一缓冲寄存单元242的存储空间释放之后,才得以继续处理,这无疑会减缓神经网络处理器200的整体处理速度。如果直接增大第一缓冲寄存单元242的存储空间的话,由于第一缓冲寄存单元242的存储空间越大,第一缓冲寄存单元242的整体体积会越大,其所需要配套的外围电路也越多,这无疑会影响神经网络处理器200的整体体积和成本。在综合考虑提升神经网络处理器200的运行速度、神经网络处理器200的体积以及硬件成本的情况下,本申请实施例在原有的基础上增加第二缓冲寄存单元244。第二缓冲寄存单元244可以在第一缓冲寄存单元242的存储空间已满时,对卷积处理单元220所处理得到的新的第一处理结果进行存储,使得卷积处理单元220可以继续进行卷积处理,与此同时由于池化处理单元260也在进行池化处理,其会不断释放第一缓冲寄存单元242的存储空间,当第二缓冲寄存单元244的存储空间已满时,卷积处理单元220可以将继续处理所得到的新的第一处理结果又存放到第一缓冲寄存单元242中,循环往复直至所有的待处理数据均被处理完成,得到所有的第二处理结果后,再将所有的第二处理结果全部存储到外部的存储装置中,以供外部的其他单元使用。
第二缓冲寄存单元244的存储空间的大小可以与第一缓冲寄存单元242的存储空间的大小相同,比如第二缓冲寄存单元244的深度的配置可以与第一缓冲寄存单元242的深度的配置相同,第二缓冲寄存单元244的长度的配置可以与第一缓冲寄存单元242的长度的配置相同,第二缓冲寄存单元244的宽度的配置可以与第一缓冲寄存单元242的宽度的配置相同。需要说明的是,第二缓冲寄存单元244的存储空间的大小也可以与第一缓冲寄存单元242的存储空间的大小不同,比如第二缓冲寄存单元244的存储空间可以设置的比第一缓冲寄存单元242的存储空间大,相比于两个缓冲寄存单元的存储空间设置的一样大,将第二缓冲寄存单元244的存储空间设置的大一些,可以给予第一缓冲寄存单元242的存储空间释放多一些缓冲的时间。
需要说明的是,第二缓冲寄存单元244的深度、长度以及宽度的配置依据可以与第一缓冲寄存单元242的深度、长度以及宽度的配置依据相同,比如第二缓冲寄存单元244的深度也是依据卷积核的数量进行配置;第二缓冲寄存单元244的长度与宽度的乘积可以根据一次卷积处理所得到的第一处理结果的数据量进行配置。第二缓冲寄存单元244的深度、长度以及宽度的配置依据也可以与第一缓冲寄存单元242的深度、长度以及宽度的配置依据不同,比如第一缓冲寄存单元242的长度与宽度的乘积可以根据一次卷积处理所得到的第一处理结果的数据量进行配置,而第二缓冲寄存单元244的长度与宽度的乘积可以根据一次池化处理所需要的第一处理结果的数据量进行配置。
如图4所示,图4为本申请实施例提供的神经处理器的第三种结构示意图。池化处理单元260可以包括多个计算部件,一个计算部件可实现一种不同的计算,当然,如果计算量过大的情况下,一种计算也可以由两个或两个以上的计算部件完成。
例如,池化处理单元260可以包括第一计算部件262,第一计算部件262与一个或多个缓冲寄存单元240连接,第一计算部件262用于对存储的缓冲寄存单元240内的第一处理结果进行最大值/最小值的计算。
最大值的计算方式具体包括:得到第一个第一处理结果后,保存该第一处理结果;得到第二个第一处理结果后,将第一个第一处理结果和第二个第一处理结果中每个点的数据进行比较,得到每个点上最大的数据,形成比较后的第一处理结果,得到第三个第一处理结果后,与比较后的第一处理结果进行比较,得到每个点上最大的数据,形成新的比较后的第一处理结果,依次类推,直到所有的第一处理结果都比较后,得到每个点上都是最大的数据的目标数据。
最小值的计算方式具体包括:得到第一个第一处理结果后,保存该第一处理结果;得到第二个第一处理结果后,将第一个第一处理结果和第二个第一处理结果中每个点的数据进行比较,得到每个点上最小的数据,形成比较后的第一处理结果,得到第三个第一处理结果后,与比较后的第一处理结果进行比较,得到每个点上最小的数据,形成新的比较后的第一处理结果,依次类推,直到所有的第一处理结果都比较后,得到每个点上都是最小的数据的目标数据。
池化处理单元260还可以包括第二计算部件264,第二计算部件264与一个或多个缓冲寄存单元240连接,第二计算部件264用于对存储的缓冲寄存单元240内的第一处理结果进行平均值的计算。
平均值的计算方式包括:得到第一个第一处理结果后,保存该第一处理结果;得到第二个第一处理结果后,将第一个第一处理结果和第二个第一处理结果点对点进行数据累加,形成累加后的第一处理结果,得到第三个第一处理结果后,与累加后的第一处理结果进行点对点数据累加,形成新的累加后的第一处理结果,依次类推,直到所有的第一处理结果都累加后,再执行一次除法(除以第二中间数据的数量),得到每个点上都是平均值的目标数据。需要注意的是,除法采用四舍五入的方法保留整数位。
需要说明的是,第二处理结果可以为采用最大值计算、最小值计算或平均值计算中一种方式或两种方式或三种方式池化得到的第二处理结果,也可以理解为,第二处理结果可以包括最大值池化数据、最小值池化数据和平均值池化数据中的一种或两种或三种,方便神经网络调用。
本申请实施例的神经网络处理器200可以单独封装形成一个片上系统,也可以与其他集成电路一起封装形成片上系统(System-on-a-chip,SoC),片上系统可以被设计为在半导体系统中执行各种功能,例如,片上系统可以是应用处理器。片上系统可基于神经网络实时分析输入数据并提取有效信息,并基于提取的信息,可确定安装有片上系统20的电子设备的情况或控制安装有片上系统的电子设备的配置。例如,片上系统可用于无人机、机器人设备(诸如,高级驾驶员辅助系统(ADAS))、自主车辆、智能电视(TV)、智能电话、医疗装置、移动装置、图像显示装置、测量装置、物联网(IoT)装置等,此外,片上系统可安装在各种种类的电子装置中的一种或多种。
可以理解的是,集成电路可包括处理单元(例如,中央处理器、专用集成电路、它们的一些组合等)、包括在处理单元中多格式编解码器、视频模块(例如,相机接口、联合图像专家组(JPEG)处理器、视频处理器或混频器)、音频系统、驱动器、显示驱动器、易失性存储器、非易失性存储器、存储器控制器、输入和输出接口块或高速缓冲存储器。其中,神经网络处理器和集成电路可以通过系统总线600连接,以实现数据交互或者控制。系统总线可以为片上系统20提供多个出色的地址功能、数据交叉存取功能等。
如图5所示,图5为本申请实施例提供的电子设备的第一种结构示意图。电子设备20可为计算设备诸如膝上型计算机、包含嵌入式计算机的计算机监视器、平板电脑、蜂窝电话、媒体播放器、或其他手持式或便携式电子设备、较小的设备(诸如腕表设备、挂式设备、耳机或听筒设备、被嵌入在眼镜中的设备或者佩戴在用户的头部上的其他设备,或其他可佩戴式或微型设备)、电视机、不包含嵌入式计算机的计算机显示器、游戏设备、导航设备、嵌入式系统(诸如其中具有显示器的电子设备被安装在信息亭或汽车中的系统)、实现这些设备中的两个或两个以上设备的功能的设备、或其他电子设备。在图5的示例性配置中,电子设备20是便携式设备,诸如蜂窝电话、媒体播放器、平板电脑、或者其他便携式计算设备。如果需要,其他配置可用于电子设备20。图5的示例仅是示例性的。
本申请实施例还提供一种电子设备,请参阅图5,电子设备500包括神经网络处理器200和存储器400。其中,神经网络处理器200与存储器400电性连接。
存储器400可用于存储软件程序以及数据,神经网络处理器200通过运行存储在存储器400的计算机程序,从而执行各种功能应用以及数据处理。存储器400可主要包括存储程序区和存储数据区,其中,存储程序区可存储至少一个功能所需的计算机程序等;存储数据区可存储根据神经网络处理器200需要的数据等。
此外,存储器400可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器400还可以包括存储器控制器,以提供神经网络处理器200对存储器400的访问。
请参照图6,图6为本申请实施例提供的电子设备的第二种结构示意图。电子设备20可以包括神经网络处理器200、存储器400、系统总线600和中央处理器800。神经网络处理器200、存储器400及中央处理器800均与系统总线400连接,以使得神经网络处理器200与存储器400可以实现数据的传输,以及神经网络处理器200与中央处理器800可以实现指令的传输。
系统总线400通过系统总线接口与神经网络处理器200实现连接。系统总线400可以通过其他系统总线接口与中央处理器800及存储器400连接。
神经网络处理器200还可以包括数据读写单元、数据缓存单元、指令分发单元以及其他的处理单元(诸如归一化处理单元)等。当需要采用神经网络处理器200进行数据处理时,电子设备20的上层驱动软件诸如中央处理器800将当前需要执行程序的配置写入到对应的寄存器中,比如:工作模式、程序计数器(Program Counter,PC)的初始值、配置参数等。然后,数据读写单元将待处理的数据诸如图像数据、权重数据通过系统总线接口从外部存储器400中读取过来,并写入到数据缓存单元。指令分发单元按照初始PC开始取指令。当取到指令后,指令分发单元根据指令的类型将指令分发到对应的处理单元(诸如卷积处理单元220和池化处理单元260)。对应的处理单元根据具体的指令来执行不同的操作,然后将结果写入到数据缓存单元,数据缓存单元将所有的处理结果外发至外部的存储器400。
其中,该寄存器为神经网络处理器200的配置状态寄存器,其可以设定神经网络处理器200的工作模式,比如输入数据的位宽,程序初始PC的位置等。
下面从本申请实施例通过神经网络处理器对数据进行处理的方法步骤的角度进行描述。
请参阅图7,图7为本申请实施例提供的数据处理方法的第一种流程示意图。该数据处理方法是基于以上所述神经网络处理器200对数据进行处理。该数据处理方法包括:
101,获取待处理数据。
神经网络处理器200从外部获取需要处理的待处理数据。待处理数据可以存储在神经网络处理器200外的存储器(诸如存储器400)中,神经网络处理器200可以通过系统总线、外部的处理器(诸如中央处理器800)等获取待处理的数据。
102,对所述待处理数据进行卷积处理以得到第一处理结果。
神经网络处理器200从外部获取到待处理数据之后,神经网络处理器200可以对待处理数据进行卷积计算,从而得到第一处理结果。神经网络中卷积计算占据了约80%的计算量,通过神经网络处理器200进行卷积计算可以减轻中央处理器800的运算压力,同时用专用的神经网络处理器200可以更加快速的进行神经网络计算。其中,卷积处理的工作可以由神经网络处理器200中的卷积处理单元220进行,比如卷积处理单元220可以从外部的存储器400中加载待处理数据,并基于卷积核以及其他卷积参数对待处理数据进行卷积处理,以得到第一处理结果。
103,将所述第一处理结果存储到所述第一缓冲寄存单元中。
神经网络处理器200可以将卷积处理得到第一处理结果存放到内部的第一缓冲寄存单元中,第一缓冲寄存单元可以为如上所述的第一缓冲寄存单元242。比如,神经网络处理器200中的卷积处理单元220可以直接将其所处理得到的第一处理结果直接输出到第一缓冲寄存器242中。相比于相关技术中,本申请实施例经过卷积处理所得到的第一处理结果可以直接存储到第一缓冲寄存单元242中,无需存储到外部的存储器400中,可以减少神经网络处理器200从外部的存储器400加载数据的次数或将数据存储到外部的存储器400的次数,进而减少神经网络处理器200的数据吞吐量,提高神经网络处理器200的处理效率。
104,当所述第一缓冲寄存单元中所存储的第一处理结果达到第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理。
神经网络处理器200在第一缓冲寄存单元242中所存储的第一处理结果达到第一阈值时,可以对第一缓冲寄存单元242中所存储的第一处理结果进行池化处理,以释放第一缓冲寄存单元242的存储空间。比如,当第一缓冲寄存单元242中所存储的第一处理结果达到第一阈值时,神经网络处理器200可以启动池化处理单元260,池化处理单元260可以从第一缓冲寄存单元242中读取第一处理结果,并对第一处理结果进行池化处理以得到第二处理结果。或者当第一缓冲寄存单元242中所存储的第一处理结果达到第一阈值时,第一缓冲寄存单元242可以直接将第一处理结果输出到池化处理单元260中。需要说明的是,本申请实施例对于池化处理单元260从第一缓冲寄存单元242中获取第一处理结果的方式并不予以限定。
池化处理单元260对第一处理结果进行池化处理的过程中,可以先获取池化窗口的尺寸和结果输出地址,并根据该池化窗口对第一处理结果进行池化处理以得到所述第二处理结果,将所述第二处理结果输出至该结果输出地址。其中,池化窗口的尺寸和结果输出地址等配置参数可以为其他控制单元(诸如中央处理器)配置给池化处理单元260的,比如中央处理器可以在启动池化处理单元260时,生成配置指令,该配置指令携带有池化窗口的大小和结果输出地址等配置参数,池化处理单元260可以依据该配置参数对第一处理结果进行池化处理。池化窗口的尺寸和结果输出地址等配置参数也可以存储在外部存储装置中,池化处理单元260启动之前可以从外部的存储装置中获取该配置参数。
请参阅图8,图8为本申请实施例提供的数据处理方法的第二种流程示意图。
201,获取待处理数据。
202,对所述待处理数据进行卷积处理以得到第一处理结果。
203,将所述第一处理结果存储到所述第一缓冲寄存单元中。
204,当所述第一缓冲寄存单元中所存储的第一处理结果达到第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理。
其中,201至204的内容可参考101至104的内容。
205,当所述第一缓冲寄存单元所存储的第一处理结果达到第一阈值,且所述第二缓冲寄存单元所存储的第二处理结果未达到第二阈值时,将所述新的第一处理结果存储到所述第二缓冲寄存单元中。
206,当所述第一缓冲寄存单元所存储的第一处理结果未达到第一阈值,且所述第二缓冲寄存单元所存储的第二处理结果达到第二阈值时,将所述新的第一处理结果存储到第一缓冲寄存单元中。
当第一缓冲寄存器242的存储空间已满时,神经网络处理器200再进行卷积处理所得到的新的第一处理结果没有存放空间,此时神经网络处理器200可以将对待处理数据继续进行卷积处理得到的新的第一处理结果存放到存储空间尚未满的第二缓冲寄存单元中,第二缓冲寄存单元可以为如上所述的第二缓冲寄存单元244。当第二缓冲寄存单元244中所存储的新的第一处理结果达到第二阈值时,神经网络处理器200可以对第二缓冲寄存单元244中所存储的新的第一处理结果进行池化处理,以释放第二缓冲寄存单元244的存储空间。由于第一缓冲寄存单元242的存储空间已被逐步释放,神经网络处理器200可以在第二缓冲寄存单元244所存储的新的第一处理结果达到第二阈值时,将继续计算所得到的新的第一处理结果存放到第一缓冲寄存单元242中,循环此过程,直至将所有的待处理数据处理完为止。
其中,第一阈值和第二阈值的设定可以相同,也可以不同,比如可以通过设置不同的第一阈值和第二阈值,以错开两个缓冲寄存单元的释放存储空间的时间。其中,第一阈值可以等于第一缓冲寄存单元242所能存储的第一处理结果的最大数据量,以充分利用第一缓冲寄存单元242的存储空间。第二阈值可以等于第二缓冲寄存单元244所能存储的第一处理结果的最大数据量,以充分利用第二缓冲寄存单元244的存储空间。可以理解的是,若第一阈值和第二阈值设置为可存储最大数据量的数值时,当第一缓冲寄存单元242的存储空间已满、且第二缓冲寄存单元242的存储空间未满时,将第一处理结果存放到第二缓冲寄存单元;当第二缓冲寄存单元244的存储空间已满且第一缓冲寄存单元的存储空间未满时,将第一处理结果存放到第一缓冲寄存单元。本申请实施例通过两个缓冲寄存单元的交替存储可以使得神经网络处理器200的运算过程比较持续,进一步提高神经网络处理器200的处理速率。
当然,第一阈值也可以设置为小于第一缓冲寄存单元242所能存储的第一处理结果的最大数据量,第二阈值也可以设置为小于第二缓冲寄存单元244所能存储的第一处理结果的最大数据量。
本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的数据处理方法,比如:获取待处理数据;对所述待处理数据进行卷积处理以得到第一处理结果;将所述第一处理结果存储到所述第一缓冲寄存单元中;当所述第一缓冲寄存单元中所存储的第一处理结果达到所述第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例提供的神经网络处理器、电子设备及数据处理方法进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请。同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种神经网络处理器,其特征在于,包括:
卷积处理单元,用于为对待处理数据进行卷积处理以得到第一处理结果;
多个缓冲寄存单元,均与所述卷积处理单元连接,所述多个缓冲寄存单元用于暂存所述第一处理结果;以及
池化处理单元,与所述多个缓冲寄存单元连接,所述池化处理单元用于对存储在所述多个缓冲寄存单元中的第一处理结果进行池化处理以得到第二处理结果。
2.根据权利要求1所述的神经网络处理器,其特征在于,所述卷积处理单元用于基于多个卷积核对所述待处理数据进行卷积处理,一个所述缓冲寄存单元的深度等于或大于所述卷积核的数量,以使所述缓冲寄存单元可存储所述卷积处理单元进行至少一次卷积处理所得到的第一处理结果。
3.根据权利要求1或2所述的神经网络处理器,其特征在于,一个所述缓冲寄存单元单元的长度与宽度的乘积大于或等于预设值,以使所述缓冲寄存单元所存储的第一处理结果的数据量可供所述池化处理单元进行至少一次池化处理。
4.根据权利要求1所述的神经网络处理器,其特征在于,所述多个缓冲寄存单元包括:
第一缓冲寄存单元,分别与所述卷积处理单元和所述池化处理单元连接,所述第一缓冲寄存单元用于存储所述卷积处理单元进行第N次卷积处理的第一处理结果;和
第二缓冲寄存单元,分别与所述卷积处理单元和所述池化处理单元连接,所述第二缓冲寄存单元用于存储所述卷积处理单元进行第N+1次卷积处理的第一处理结果。
5.根据权利要求1所述的神经网络处理器,其特征在于,所述池化处理单元包括:
第一计算部件,与所述多个缓冲寄存单元连接,所述第一计算部件用于对存储在所述多个缓冲寄存单元内的第一处理结果进行最大值/最小值计算;和
第二计算部件,与所述多个缓冲寄存单元连接,所述第二计算部件用于对存储在所述多个缓冲寄存单元内的第一处理结果进行平均值计算。
6.一种神经网络处理器,其特征在于,包括:
卷积处理单元,被配置为对数据进行卷积处理以得到第一处理结果;
第一缓冲寄存单元,与所述卷积处理单元连接,所述第一缓冲寄存单元被配置为存储所述第一处理结果;以及
池化处理单元,与所述第一缓冲寄存单元连接,所述池化处理单元被配置为在所述第一缓冲寄存单元所存储的第一处理结果的数据量达到第一阈值时,从所述第一缓冲寄存单元中获取所述第一处理结果并对所述第一处理结果进行池化处理以得到第二处理结果。
7.根据权利要求6所述神经网络处理器,其特征在于,所述卷积处理单元还被配置为:所述卷积处理单元的卷积核数量大于或等于所述第一缓冲寄存单元的深度。
8.根据权利要求7所述的神经网络处理器,其特征在于,所述第一缓冲寄存单元还被配置为:所述第一缓冲寄存单元的长度与宽度的乘积大于或等于预设值,以使所述第一缓冲寄存单元中所存储的第一处理结果的数据量可供所述池化处理单元进行至少一次池化处理。
9.根据权利要求6至8任一项所述神经网络处理器,其特征在于,还包括第二缓冲寄存单元,所述第二缓冲寄存单元与所述卷积处理单元连接,所述第二缓冲寄存单元被配置为存储所述第一处理结果;
所述卷积处理器还被配置为:当所述第一缓冲寄存单元中所存储的第一处理结果达到所述第一阈值时,且第二缓冲寄存单元中所存储的第一处理结果未达到第二阈值时,将新的所述第一处理结果存储至所述第二缓冲寄存单元;
其中,所述新的所述第一处理结果为在所述第一缓冲寄存单元所存储的计算结果达到所述第一阈值时,所述卷积处理单元继续进行卷积处理而得到的第一处理结果。
10.根据权利要求6至8任一项所述神经网络处理器,其特征在于,所述池化处理单元还被配置为:获取池化窗口的尺寸和结果输出地址,并根据所述池化窗口对所述第一处理结果进行池化处理以得到所述第二处理数据,将所述第二处理数据输出至所述结果输出地址。
11.一种电子设备,其特征在于,包括神经网络处理器,所述神经网络处理器为权利要求1至10任一项所述的神经网络处理器。
12.一种数据处理方法,应用于神经网络处理器,其特征在于,所述神经网络处理器包括第一缓冲寄存单元,所述方法包括:
获取待处理数据;
对所述待处理数据进行卷积处理以得到第一处理结果;
将所述第一处理结果存储到所述第一缓冲寄存单元中;
当所述第一缓冲寄存单元中所存储的第一处理结果达到第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理。
13.根据权利要求12所述的数据处理方法,其特征在于,所述神经网络处理器还包括第二缓冲寄存单元,所述当所述第一缓冲寄存单元中所存储的第一处理结果达到所述第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理之后,还包括:
当所述第一缓冲寄存单元所存储的第一处理结果达到第一阈值,且所述第二缓冲寄存单元所存储的第二处理结果未达到第二阈值时,将所述新的第一处理结果存储到所述第二缓冲寄存单元中;
当所述第一缓冲寄存单元所存储的第一处理结果未达到第一阈值,且所述第二缓冲寄存单元所存储的第二处理结果达到第二阈值时,将所述新的第一处理结果存储到第一缓冲寄存单元中。
14.根据权利要求12所述的数据处理方法,其特征在于,当所述第一缓冲寄存单元中所存储的第一处理结果达到所述第一阈值时,对所述第一缓冲寄存单元中所存储的第一处理结果进行池化处理,包括:
获取池化窗口的尺寸和结果输出地址;
根据所述池化窗口对所述第一处理结果进行池化处理以得到所述第二处理结果;
将所述第二处理结果输出至所述结果输出地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911253848.4A CN111027682A (zh) | 2019-12-09 | 2019-12-09 | 神经网络处理器、电子设备及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911253848.4A CN111027682A (zh) | 2019-12-09 | 2019-12-09 | 神经网络处理器、电子设备及数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111027682A true CN111027682A (zh) | 2020-04-17 |
Family
ID=70208383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911253848.4A Pending CN111027682A (zh) | 2019-12-09 | 2019-12-09 | 神经网络处理器、电子设备及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111027682A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022110860A1 (zh) * | 2020-11-25 | 2022-06-02 | 苏州浪潮智能科技有限公司 | 基于硬件环境的数据操作方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
US20180046903A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
CN109034373A (zh) * | 2018-07-02 | 2018-12-18 | 鼎视智慧(北京)科技有限公司 | 卷积神经网络的并行处理器及处理方法 |
CN109711533A (zh) * | 2018-12-20 | 2019-05-03 | 西安电子科技大学 | 基于fpga的卷积神经网络模块 |
CN110232665A (zh) * | 2019-06-13 | 2019-09-13 | Oppo广东移动通信有限公司 | 最大池化方法、装置、计算机设备及存储介质 |
CN110276444A (zh) * | 2019-06-04 | 2019-09-24 | 北京清微智能科技有限公司 | 基于卷积神经网络的图像处理方法及装置 |
-
2019
- 2019-12-09 CN CN201911253848.4A patent/CN111027682A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046903A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速系统 |
CN109034373A (zh) * | 2018-07-02 | 2018-12-18 | 鼎视智慧(北京)科技有限公司 | 卷积神经网络的并行处理器及处理方法 |
CN109711533A (zh) * | 2018-12-20 | 2019-05-03 | 西安电子科技大学 | 基于fpga的卷积神经网络模块 |
CN110276444A (zh) * | 2019-06-04 | 2019-09-24 | 北京清微智能科技有限公司 | 基于卷积神经网络的图像处理方法及装置 |
CN110232665A (zh) * | 2019-06-13 | 2019-09-13 | Oppo广东移动通信有限公司 | 最大池化方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022110860A1 (zh) * | 2020-11-25 | 2022-06-02 | 苏州浪潮智能科技有限公司 | 基于硬件环境的数据操作方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200234124A1 (en) | Winograd transform convolution operations for neural networks | |
US20200142949A1 (en) | Operation accelerator | |
CN110546611B (zh) | 通过跳过处理操作来减少神经网络处理器中的功耗 | |
CN107895191B (zh) | 一种信息处理方法及相关产品 | |
US20200364552A1 (en) | Quantization method of improving the model inference accuracy | |
US20190095212A1 (en) | Neural network system and operating method of neural network system | |
JP7098753B2 (ja) | ニューラルネットワークプロセッサにおいてタスクを割り当てるためのシステム及び方法 | |
US20190325305A1 (en) | Machine learning inference engine scalability | |
CN111465943B (zh) | 一种集成电路和用于神经网络处理的方法 | |
US11562214B2 (en) | Methods for improving AI engine MAC utilization | |
JP2019102084A (ja) | ニューラルネットワークにおいてコンボリューション演算を処理する方法及びその装置 | |
US11461651B2 (en) | System on a chip with deep learning accelerator and random access memory | |
US10936943B2 (en) | Providing flexible matrix processors for performing neural network convolution in matrix-processor-based devices | |
US20210320967A1 (en) | Edge Server with Deep Learning Accelerator and Random Access Memory | |
US20200302285A1 (en) | Auto generation and tuning tool for convolution kernels | |
CN111767986A (zh) | 一种基于神经网络的运算方法及装置 | |
US20220254400A1 (en) | Deep Learning Accelerator and Random Access Memory with a Camera Interface | |
CN111027682A (zh) | 神经网络处理器、电子设备及数据处理方法 | |
US11669736B2 (en) | Executing neural networks on electronic devices | |
EP3686814A1 (en) | Hybrid cpu and analog in-memory artificial intelligence processor | |
CN113012689B (zh) | 一种电子设备和深度学习硬件加速方法 | |
US11636569B1 (en) | Matrix transpose hardware acceleration | |
WO2023236187A1 (en) | Parallel computing of ml services and applications | |
US20210133542A1 (en) | Executing neural networks on electronic devices | |
CN111831405B (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 |