CN113128673B - 数据处理方法、存储介质、神经网络处理器及电子设备 - Google Patents
数据处理方法、存储介质、神经网络处理器及电子设备 Download PDFInfo
- Publication number
- CN113128673B CN113128673B CN201911414358.8A CN201911414358A CN113128673B CN 113128673 B CN113128673 B CN 113128673B CN 201911414358 A CN201911414358 A CN 201911414358A CN 113128673 B CN113128673 B CN 113128673B
- Authority
- CN
- China
- Prior art keywords
- multiplication
- unit
- neural network
- preset threshold
- threshold value
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 96
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 101
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 8
- 239000010410 layer Substances 0.000 description 39
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
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/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
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Neurology (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例提供一种数据处理方法、存储介质、神经网络处理器及电子设备;数据处理方法,应用于神经网络处理器,所述方法包括:获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,利用所述存储单元使用查表方式执行乘法运算;以及当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,利用所述乘法计算单元执行乘法运算。根据占用率和使用率来,动态选择确定使用存储单元还是使用乘法计算单元进行乘法运算,能动态有效的提高计算资源和乘法运算的效率。
Description
技术领域
本申请涉及电子技术领域,特别涉及一种数据处理方法、存储介质、神经网络处理器及电子设备。
背景技术
神经网络处理器(neural-network processing units,NPU)是一类用于加速神经网络运行的处理芯片。神经网络处理器在进行神经网络计算中,会进行大量的乘法运算,大量的乘法运算会占用重要的乘法计算单元,乘法运算的效率低。
发明内容
本申请实施例提供一种数据处理方法、存储介质、神经网络处理器及电子设备,可以提高乘法运算的效率。
第一方面,本申请实施例提供一种数据处理方法,其应用于神经网络处理器,所述方法包括:
获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;
当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,利用所述存储单元使用查表方式执行乘法运算;以及
当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,利用所述乘法计算单元执行乘法运算。
第二方面,本申请实施例还提供数据处理方法,其应用于神经网络处理器,所述方法包括:
获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;
将所述占用率和所述使用率传输至第二处理器;
接收所述第二处理器根据所述占用率和所述使用率计算得到的计算策略;
当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,所述神经网络处理器基于所述计算策略,利用所述存储单元使用查表方式执行乘法运算;以及
当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,所述神经网络处理器基于所述计算策略,利用所述乘法计算单元执行乘法运算。
第三方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在第三处理器上运行时,使得所述第三处理器执行如上述所述的数据处理方法。
第四方面,本申请实施例还提供一种神经网络处理器,其包括:
存储单元;
乘法计算单元;以及
控制单元,所述存储单元和所述乘法计算单元均与所述控制单元连接,所述控制单元用于获取存储单元的占用率以及乘法计算单元的使用率;当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,所述控制单元还用于控制所述存储单元使用查表方式执行乘法运算;当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,所述控制单元还用于控制所述乘法计算单元执行乘法运算。
第五方面,本申请实施例还提供一种电子设备,其包括:
系统总线;以及
神经网络处理器,所述神经网络处理器为上述所述的神经网络处理器,所述神经网络处理器与所述系统总线连接。
第六方面,本申请实施例还提供一种电子设备,其包括神经网络处理器和第二处理器,所述神经网络处理器包括存储单元和乘法计算单元;
所述第二处理器获取所述神经网络处理器内存储单元的占用率和乘法计算单元的使用率,并根据所述占用率和使用率确定计算策略;
所述神经网络处理器获取所述计算策略,并根据所述计算策略进行乘法运算,其中,所述计算策略包括当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,利用所述存储单元使用查表方式执行乘法运算,以及当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,利用所述乘法计算单元执行乘法运算。
本申请实施例中,获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率,根据占用率和使用率来动态选择使用存储单元或乘法计算单元进行乘法运算,能动态有效的提高计算资源和乘法运算的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的数据处理方法的第一种流程示意图。
图2为本申请实施例提供的数据处理方法的第二种流程示意图。
图3本申请实施例提供的神经网络处理器中卷积处理单元的输入数据示意图。
图4本申请实施例提供的神经网络处理器中卷积处理单元的权重数据示意图。
图5本申请实施例提供的神经网络处理器中卷积处理单元的卷积运算示意图。
图6本申请实施例提供的神经网络处理器中卷积处理单元的另一卷积运算示意图。
图7为本申请实施例提供的神经网络处理器的结构示意图。
图8为本申请实施例提供的电子设备的第一种结构示意图。
图9为本申请实施例提供的电子设备的第二种结构示意图。
图10为本申请实施例提供的电子设备的第三种结构示意图。
具体实施方式
以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文不同模块、引擎及服务可看做为在该运算系统上的实施对象。
本申请实施例提供一种数据处理方法,该数据处理方法的执行主体可以是本申请实施例提供的神经网络处理器,或者集成了该神经网络处理器的电子设备。其中,该电子设备可以是智能手机、平板电脑、掌上电脑(PDA,Personal Digital Assistant)等,还可以是游戏设备、AR(Augmented Reality,增强现实)设备、车载装置、数据存储装置、音频播放装置、视频播放装置、笔记本电脑、桌面计算设备等。
以下进行具体分析说明。
本申请实施例提供一种数据处理方法,其应用于神经网络处理器(neural-network processing units,NPU),请参阅图1,图1是本申请实施例提供的数据处理方法的第一种流程示意图,数据处理方法可以包括以下步骤:
101,获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率。
NPU内包括存储单元和乘法计算单元,存储单元可以通过查表方式执行乘法运算,乘法计算单元可以用来执行乘法运算。其中,存储单元可以为NPU内的内存单元等,乘法计算单元可以为乘法器等。
可以通过存储单元内存储空间的使用情况得到存储单元的占用率,还可以通过乘法计算单元的使用情况得到乘法计算单元的使用率。
102,当占用率小于第一预设阈值,且使用率大于第二预设阈值时,利用存储单元使用查表方式执行乘法运算。
103,当占用率大于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元执行乘法运算。
固定使用乘法计算单元进行乘法计算,需要占用重要的乘法计算单元,乘法计算单元可以并行给其他乘法计算,比如卷积计算;固定的使用存储单元使用查表方式执行乘法计算,需要固定占用NPU内有限的存储单元,以16输入16输出查表为例,需要占用64KB的存储空间,NPU内部的存储单元一般较小,如NPU内部具有512KB的存储单元。存储单元需要存储输入数据、输出数据,在有些计算量大的网络层上面,本来存储单元就已经捉襟见肘,固定的使用查表方式,就使得其他计算使用的存储单元空间进一步缩小。本实施例中,得到存储单元的占用率和乘法计算单元的使用率后,若占用率小于第一预设阈值,且使用率大于第二预设阈值,则利用存储单元使用查表方式执行乘法运算;若占用率大于第一预设阈值,且使用率小于第二预设阈值,则利用乘法计算单元执行乘法运算。根据占用率和使用率,动态选择确定使用存储单元还是使用乘法计算单元进行乘法运算,能动态有效的提高计算资源和乘法运算的效率。例如,第一预设阈值和第二预设阈值都为70%,当存储单元的占用率小于70%,乘法计算单元的使用率大于70%,说明当前乘法计算单元使用率较高,存储单元的使用率较低,若还需要进行乘法计算,则可以通过存储单元使用查表方法执行乘法运算,减轻乘法计算单元的压力,提高计算资源(存储单元和乘法计算单元)的效率,也提高乘法运算的效率。当存储单元的占用率大于70%,乘法计算单元的使用率小于70%,说明当前乘法计算单元使用率较低,存储单元的使用率较高,若还需要进行乘法计算,则可以通过乘法计算单元进行乘法运算,不使用占用率已经很高的存储单元。需要说明的是,第一预设阈值和第二预设阈值可以相等也可以不相等,第一预设阈值和第二预设阈值可以根据需要设置不同的值,在此不做限定。
根据上一个实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图2,图2为本申请实施例提供的数据处理方法的第二种流程示意图。其中,该数据处理方法具体可以包括:
201,获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率。
NPU内包括存储单元和乘法计算单元,存储单元可以通过查表方式执行乘法运算,乘法计算单元可以用来执行乘法运算。其中,存储单元可以为NPU内的内存单元等,乘法计算单元可以为乘法器等。
可以通过存储单元内存储空间的使用情况得到存储单元的占用率,还可以通过乘法计算单元的使用情况得到乘法计算单元的使用率。
其中,获取存储单元的占用率具体可以包括:
获取进入神经网络处理器的数据量;
根据存储单元当前的空闲存储区域和数据量计算得到占用率。
NPU内部的存储单元的占用率可以根据动态内存分配(Dynamic-Memory-Allocation,DMA)计算得到,动态内存分配获取存储单元当前的空闲存储区域,即没有使用的存储区域,再结合从外部搬运进来的数据量(即进入神经网络处理器的数据量)可以计算得到存储单元的占用率,即存储单元内存储数据的比例。
示例性地,在一个算法模型(如人工智能模型)中包括多个算子,一个算子有输入数据和输出数据,每个算子进行计算前将数据从第二存储模块中搬运到NPU内的存储单元中,搬运多少数据动态内存分配可以统计出来,即通过动态内存分配可以得到搬运进NPU内存储单元的数据量,得到数据量后结合之前存储的数据可以计算得到后面要占用的区域即存储单元的占用率。算子可以为卷积、depthwise卷积、elementwise add、pooling等中的至少一种。第二存储模块可以为NPU之外的存储模块(如电子设备内的内存等)。
其中,获取乘法计算单元的使用率具体可以包括:
获取进入神经网络处理器的数据量;
根据数据量和计算类型、以及当前空闲的乘法计算单元计算得到乘法计算单元的使用率。
计算类型可以理解为算法模型(如人工智能模型)中不同的算子,如卷积、depthwise卷积、elementwise add、pooling等。神经网络的每一层进行的计算是已知的,所以需要使用多少乘法器,可以根据计算类型及需要计算的数据计算出来。也就是说,根据外部搬运进来的数据量、计算类型、以及当前空闲的乘法计算单元可以得到后面需要用到的计算单元数量即乘法器的使用率。
需要说明的是,获取存储单元的占用率的实施例和获取乘法计算单元的使用率的实施例可以结合,即获取进入神经网络处理器的数据量;根据存储单元当前的空闲存储区域和数据量计算得到占用率;以及根据数据量和计算类型、以及当前空闲的乘法计算单元计算得到乘法计算单元的使用率。
可以理解的,获取存储单元的占用率和乘法计算单元的使用率还可以采用其他方法得到,例如,通过当前存储单元存储的数据得到占用率,通过当前乘法计算单元的使用情况得到使用率。
需要说明的是,不同方法得到的占用率和使用率对应的阈值也不同。例如,通过搬运进NPU内存储单元的数据量得到占用率和使用率,其对应的第一预设阈值和第二预设阈值可以设置的较大,如70%、75%、80%等。仅通过当前存储单元和乘法计算单元的使用情况得到占用率和使用率,其对应的第一预设阈值和第二预设阈值可以设置的较小,如50%、55%、60%等。
202,当占用率小于第一预设阈值,且使用率大于第二预设阈值时,利用存储单元使用查表方式执行乘法运算。
203,当占用率大于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元执行乘法运算。
204,当占用率小于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元执行乘法运算。
205,当占用率大于第一预设阈值,且使用率大于第二预设阈值时,判断是否包括并行的乘法运算。
206,若是,则利用存储单元使用查表方式执行乘法运算。
207,若否,则利用乘法计算单元执行乘法运算。
占用率和使用率不同,对应的处理方式不同。根据占用率和使用率,动态选择确定使用存储单元还是使用乘法计算单元进行乘法运算,能动态有效的提高计算资源和乘法运算的效率。
例如,第一预设阈值和第二预设阈值都为75%。
当存储单元的占用率小于75%,乘法计算单元的使用率大于75%,说明当前乘法计算单元使用率较高,存储单元的使用率较低,若还需要进行乘法计算,则可以通过存储单元使用查表方法执行乘法运算,减轻乘法计算单元的压力,提高计算资源(存储单元和乘法计算单元)的效率,也提高乘法运算的效率。
当存储单元的占用率大于75%,乘法计算单元的使用率小于75%,说明当前乘法计算单元使用率较低,存储单元的使用率较高,若还需要进行乘法计算,则可以通过乘法计算单元进行乘法运算,不使用占用率已经很高的存储单元。
当占用率小于75%,且使用率也小于75%时,利用乘法计算单元执行乘法运算。占用率和使用率都较低,这种情况下说明NPU内硬件资源(存储单元和乘法计算单元)还充裕,可以使用乘法器,节省下来的存储单元空间可以用以预加载下一层算子需要的计算数据,提高NPU的算力利用率。
当占用率大于第一预设阈值,且使用率大于第二预设阈值时,可以根据上下文确定策略进行控制。上下文确定策略具体可以是:判断接下来是否需要并行进行其他乘法运算,若是则利用存储单元使用查表方式执行乘法运算,若否则利用乘法计算单元执行乘法运算。
需要说明的是,为了方便理解,本实施例将第一预设阈值和第二预设阈值设置为相同的值,在其他实施例中,根据需要可以将第一预设阈值和第二预设阈值设置为不同的值,在此不做限定。
需要说明的是,上述实施例中的执行主体可以为NPU内部的控制单元,即NPU内部的控制单元获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;当占用率小于第一预设阈值,且使用率大于第二预设阈值时,控制单元利用存储单元使用查表方式执行乘法运算;当占用率大于第一预设阈值,且使用率小于第二预设阈值时,控制单元利用乘法计算单元执行乘法运算。
上述实施例还可以为NPU内部的控制单元和第二处理器配合实现。具体的,从第二存储模块搬运数据到NPU内后,NPU内的控制单元获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率,并将占用率和使用率传输至第二处理器;第二处理器根据占用率和使用率确定计算策略;NPU内的控制单元接收第二处理器根据占用率和使用率计算得到的计算策略,并根据计算策略进行乘法运算,NPU进行乘法运算的过程具体可参阅上述实施例,在此不再赘述。其中,第二处理器可以为主处理器CPU、图像处理器GPU等。
上述神经网络处理器进行乘法运算可以应用于卷积神经网络运算、循环神经网络运算等中。下面以卷积神经网络运算为例,神经网络处理器从外部获取待处理数据(如图像数据),神经网络处理器内的卷积处理单元可以对待处理数据进行卷积处理。卷积神经网络中的卷积层的输入包括输入数据(如从外部获取的待处理数据)和权重数据,卷积层的主要计算流程是对输入数据和权重数据进行卷积运算得到输出数据。其中,进行卷积运算的主体为卷积处理单元,也可以理解为,神经网络处理器的卷积处理单元对输入数据和权重数据进行卷积运算得到输出数据。需要说明的是,权重数据在一些情况下可以理解为一个或多个卷积核。下面针对卷积运算进行详细说明。
请参阅图3和图4,图3本申请实施例提供的神经网络处理器中卷积处理单元的输入数据示意图,图4本申请实施例提供的神经网络处理器中卷积处理单元的权重数据示意图。输入数据的大小为H×W×C1,权重数据的大小为K×R×S×C2,其中,H为输入数据的高度,W为输入数据的宽度,C1为输入数据的深度,K为权重数据的输出数,即卷积核的个数,R为权重数据的高度,即卷积核的高度,S为权重数据的宽度,即卷积核的宽度,C2为权重数据的深度,即卷积核的深度,其中,权重数据的C2和输入数据的C1相等,因为C2和C1均为对应的深度数值并且相等,为了方便理解,下面的C2和C1都用C替代,也可以理解为C2=C1=C。输入数据大小还可以为N×H×W×C,N为输入数据的批数。
请参阅图5,图5本申请实施例提供的神经网络处理器中卷积处理单元的卷积运算示意图。卷积处理单元先对输入数据按卷积核的大小进行取窗,取窗后的窗体区域与权重数据中的一个卷积核进行乘累加运算得到一个数据,随后分别在W方向和H方向滑动窗体再进行乘累加运算得H’×W’个数据,最后遍历K个卷积核得到K×H’×W’个数据。具体的运算步骤可以如下(也可以理解为卷积处理单元进行卷积运算的具体步骤如下):
1、从起始点(W=0,H=0)对输入数据按卷积核的大小进行取窗,得到一个窗体区域;
2、从K个卷积核中选取一个未计算过的卷积核;
3、将取窗后的窗体区域与卷积核进行点乘,然后进行累加得到一个数据;
4、在W方向滑动窗体,得到新的窗体(窗体大小不变);
5、依次重复步骤3、4,直到W方向边界,这样得到W’个数据;
6、回到W方向起始点,在H方向按照一个步长滑动窗体,得到新的窗体(窗体大小不变);
7、重复步骤3-6,直到H方向边界,这样得到H’×W’个数据,其中,到达H方向边界后,仍然需要重复步骤3-5;
8、重复步骤2-7,遍历K个卷积核,进行计算得到K×H’×W’个数据。
卷积处理单元中用于卷积运算的乘累加阵列(MAC Array)的大小(L×M)是固定的,其中,L为进行乘累加运算的长度,M为并行进行乘累加运算的单元数,也可以理解为一个周期可以进行M个长度为L的乘累加运算。将上面卷积运算过程中的乘累加运算(如上面的步骤3-4)分配到卷积处理单元上进行并行计算的步骤如下(也可以理解为卷积处理单元利用乘累加阵列进行乘累加运算的具体步骤如下):
1、对输入数据在HW平面上按卷积核大小进行取窗,并在深度方向上将输入数据分割成C/L个长度为L的数据段;
2、沿W方向滑动窗体,并在深度方向上将输入数据均分割成C/L个长度为L的数据段,继续沿W方向滑动窗体M-2次后得到M组输入数据,每组有C/L个数据段;
3、在深度方向上将卷积核分割成C/L个长度为L的数据段,对权重数据中K个卷积核均进行该操作,得到K组权重数据,每组有C/L个数据段;
4、取M组输入数据的第i(i=1,2,…,C/L)个数据段,得到M个输入数据段;
5、取K组权重数据的第f(f=1,2,…,K)组数据中的第i(i=1,2,…,C/L)个数据段,得到一个权重数据段;
6、使用MAC阵列(L×M)对M个输入数据段(深度为L)和1个权重数据段(权重数据广播复用)进行乘累加运算,得到M个输出的部分结果;
7、递增i,并重复步骤4、5、6,输出的M个数据累加到之前计算的M个数据之上,至此得到M个完整的输出结果,其中,i从1递增到C/L。
需要说明的是,上述步骤中的顺序可以根据需要进行调整。例如,步骤2和3的顺序可以对调。又例如,步骤4和5的步骤可以对调。
本实施例中,通过将输入数据和权重数据进行划分,利用MAC阵列一次可以对M个窗体和一个卷积核的数据进行乘累加运算,充分利用MAC阵列可以快速完成卷积运算。需要说明的是,本实施例中,C大于L,K大于L,W大于M,当C/L、K/L、W/M中的一个或多个不整除时,需要对不整除的数取整并加1,具体的为获取其整数部分后再加1。
当然,卷积处理单元还可以采用其他方式的卷积运算方式。下面对另一种方式的卷积运算进行详细说明。请参阅图6,图6本申请实施例提供的神经网络处理器中卷积处理单元的另一卷积运算示意图。其中,输入数据大小仍然为H×W×C,权重数据(一个或多个卷积核)大小仍然为K×R×S×C。当然,输入数据大小还可以为N×H×W×C,N为数据输入的批数。
卷积处理单元先对输入数据按卷积核的大小进行取窗,取窗后的第一窗体区域与权重数据中的所有卷积核进行乘累加运算得到一个数据,随后分别在W方向和H方向滑动窗体再进行乘累加运算得H’×W’×K个数据。具体的运算步骤如下(也可以理解为卷积处理单元进行卷积运算的具体步骤如下):
1、从起始点(W=0,H=0)对输入数据按卷积核的大小(R×S)进行取窗,得到第一窗体区域(R×S×C);
2、将取窗后的第一窗体区域与K个卷积核分别进行乘累加得到K个数据;
3、在W方向按照一个第一滑动步长滑动取窗,得到新的第一窗体区域(第一窗体区域的大小不变),其中第一滑动步长可以根据需要设置;
4、依次重复步骤2、3,直到W方向边界,这样得到W’×K个数据,其中,W’=(W-S)/第一滑动步长+1。例如,若W=7,S=3,第一滑动步长=2,则W’=3。又例如,若W=7,S=3,第一滑动步长=1,则W’=5;
5、回到W方向起始点,在H方向按照一个第二滑动步长滑动窗体,其中H方向的第二滑动步长可以根据需要设置,得到新的第一窗体区域(第一窗体区域的大小不变),例如,在H方向按照一个第二滑动步长(H方向的第二滑动步长为1)滑动窗体后,坐标可以为(W=0,H=1)。
6、重复步骤2-5,直到H方向边界,这样得到H’×W’×K个数据。需要说的是,每次沿W方向滑动窗体都直到W方向边界,最后一次在H方向滑动取窗到达边界后,仍然在W方向滑动取窗直至W方向边界(即重复步骤2-4)。
卷积运算单元包括用于卷积运算的乘累加阵列(MAC Array),乘累加阵列的大小(L×M)是固定的,其中,L为进行乘累加运算的长度,M为并行进行乘累加运算的单元数,也可以理解为一个周期可以进行M个长度为L的乘累加运算。将上面卷积运算过程中的乘累加运算(即上面的步骤2)分配到卷积运算单元上进行并行运算的步骤如下(也可以理解为卷积处理单元利用乘累加阵列进行乘累加运算的具体步骤如下):
1、从起始点(W=0,H=0)对输入数据在HW平面上按卷积核大小(R×S)进行取窗,得到第一窗体区域,并在深度方向上将第一窗体区域分割成C/L个长度为L的数据段;需要说明的是,可以得到第一窗体区域后对第一窗体区域分割成C/L个长度为L的数据段,也可以先将输入数据分割成C/L个长度为L的数据段后,再得到第一窗体区域,第一窗体区域包括C/L个长度为L的数据段;可以理解为,第一窗体区域沿深度方向可以包括C/L层的第一深度数据;
2、在深度方向上将卷积核分割成C/L个长度为L的数据段,对权重数据中K个卷积核均进行该操作,得到K组权重数据,每组有C/L个权重数据段;可以理解为,每个卷积核沿深度方向包括C/L个长度为L的权重数据段;还可以将K个卷积核分割成K/M个卷积核组,每组卷积核组都包括M个卷积核的权重数据;
3、取输入数据的第一窗体区域的第i(i=1,2,…,C/L)层第一深度数据,得到1个第一深度数据;
4、取第f(f=1,2,…,K/M)组卷积核组的第i(i=1,2,…,C/L)层第二深度数据,得到M个第二深度数据;
5、使用MAC阵列对1个第一深度数据和M个第二深度数据(权重数据广播复用)进行乘累加运算,得到M个第一运算数据;M个权重数据段为M个卷积核的权重数据段;
6、递增i,并重复步骤3-5,输出的M个第一运算数据累加到之前计算的M个第一运算数据之上,至此得到M个目标运算数据;其中,i从1开始并递增到C/L;
7、递增f,并重复步骤3-6,完成K/M次计算后得到K个输出。其中,k从1开始并递增到K/M。
其中,输入数据的高度H、宽度W和深度C都是随机的,即,输入数据的大小可以有非常多的格式,如输入数据的宽度W是不确定,输入数据的宽度W除以乘累加阵列并行进行乘累加运算的单元数M,大多数情况下无法得到整数,这样在乘累加运算过程中,就会浪费部分乘累加运算单元。本实施例中,利用卷积核的个数K除以乘累加阵列并行进行乘累加运算的单元数M,卷积核的个数K一般都采用固定的数并且为2的n次方数(即2n),或者为有限的几个数中一个(如K为32、64、128、256中的一个),如此,设置乘累加运算单元时,可以将乘累加运算的单元数M设置为与K的数量相同或整倍数,如M为32、64、128等中的一个。本实施例可以充分利用乘累加运算单元,减少乘累加运算单元的浪费,提高了卷积运算的效率。本实施例中的进行乘累加运算的单元数M对应的卷积核的个数K,是一个维度方向的划分,若进行乘累加运算的单元数M对应的是滑动的窗体区域,对应的不仅包括宽度W维度还包括H维度,两个维度的对应不利于折叠。
此外,本实施例中的输出的目标运算数据的格式为H’×W’×K,其与输入数据的格式相同,不需要再对其进行形变,就可以直接作为下一运算层(如下一层卷积层或下一层池化层等)的输入数据。而且目标运算数据是深度方向连续的数据,在存储时可以存储连续的数据,后续再读取目标运算数据是也是连续的,硬件加载时,不需要多次计算地址,优化计算效率。
需要说明的是,本实施例中,C大于L,K大于M,当C/L、K/M中的一个或两个不整除时,需要对不整除的数取整并加1,具体的为获取其整数部分后再加1。示例性地,乘累加阵列(MAC Array)中L和M采用相同的数值,如均为64。对输入数据在深度方向上按64长度粒度进行补齐。沿深度方向分割成1×1×64的数据块,深度不足64时,补齐到64,数据组织方式为N×H×W×(c×C’),其中c=64,C’为C除c向上取整。对权重数据在深度方向上按64长度粒度进行补齐。权重数据沿深度方向分割成1×1×64的数据块,深度不足64时,补齐到64,卷积核个数大于64时,按64粒度分割成多组。调整后数据组织方式为R×S×(c×C’)×(k×K’),其中c=64,C’为C除c向上取整,k=64,K’为K除k向上取整。
本实施例在卷积运算过程中,卷积处理单元还可以用于将一个窗体区域对应的K个目标运算数据传输到下一层并用于进行运算;或者将N个第一窗体区域对应的N×K个目标运算数据传输到下一层并用于进行运算,其中,N小于输出数据的第一窗体区域的总数量。
因为对每一个第一窗体区域都进行了完整的运算,即每一个第一窗体区域(包括深度方向)的所有数据都与所有的卷积核(包括深度方向)都进行了乘累加运算,得到的目标运算数据是完整的,那可以将一个或多个第一窗体区域对应的目标运算数据先传输到下一层,而不需要等待所有的输入数据都运算完成再传输,当传输到下一层的部分目标运算数据可以作为下一层运算的最小单元时(如部分目标运算数据可以作为下一层输入数据的一个窗体区域包括的数据),下一层可以开始运算,不需要等待上一层的全部运算结果,提高了卷积运算的效率,缩短了卷积运算的时长。此外,因为卷积运算单元所在的NPU内部缓存一般很小,无法存放较大大的中间结果。若卷积运算完成的数据的格式是K×H’×W’的,这样需要计算完这一层的结果才能进行下一层的计算,并且其输出的数据较大需要缓存到外部内存(即NPU外的内存)。而本实施例卷积运算完成的结果是H’×W’×K格式的,则可以在H’×W’平面上计算出部分结果后就可以直接进行下一层的计算的输入数据,较小的NPU内部缓存只需存储1×W’×K或N1×W’×K或N1×N2×K,其中N1可以远小于H’,N2可以远小于W’,不需要再将输出结果缓存到外部内存,再从外部内存读取进行下一层的运算,这样可以很大程度上缓解了带宽压力,同时提高了运算效率。另外,在融合层(Fusion Layer)场景下可以很方便的进行流水作业。
其中,当待传输到下一层的目标运算数据与上一次传输的目标运算数据有重复数据时,去除重复数据得到目标数据;以及将目标数据传输到下一层。可以优化数据的传输和存储,当然也可以每次都将目标运算数据传输出去,将其覆盖重复的数据。
乘累加阵列(MAC Array)进行乘累加运算的长度L可以等于并行进行乘累加运算的单元数M,因为乘累加阵列的L和M相等,乘累加运算出来的结果的数据两个方向的值相等,可以方便的对运算出来的结果进行调整。当然,在其他一些实施例中,乘累加阵列的L和M可以不相等,以利于乘累加阵列的设置。
可以理解的,在一些实施例中,当卷积核的个数K等于或小于乘累加阵列的并行计算的单元数M时,卷积核的个数K不需要再进行划分。例如,本实施例中的乘累加阵列可以将并行计算的单元数M设置为较大的值,或者卷积核的个数较少。此时,卷积处理单元可以用于:
将输入数据在深度方向上划分为C/L层第一深度数据,以及将多个卷积核在深度方向上划分为C/L层第二深度数据;
将第i层第一深度数据与K个卷积核的第i层第二深度数据进行乘累加运算,得到K个第一中间数据;
递增i,得到新的K个第一中间数据,并累加之前得到的K个第一中间数据,并得到K个目标运算数据,直至i从1递增到C/L。
在另一些实施例中,当卷积核的深度C等于或小于乘累加阵列进行乘累加的长度L时,卷积核的深度C不需要再进行划分。例如,本实施例中的乘累加阵列可以将进行乘累加的长度L设置为较大的值,或者输入数据和卷积核的深度C较小。此时,卷积处理单元可以用于:
将多个卷积核划分为K/M个卷积核组;
将第i层第一深度数据与第f组中所有卷积核的第i层第二深度数据进行乘累加运算,得到M个第一中间数据;
递增i,得到新的M个第一中间数据,并累加之前得到的M个第一中间数据,并得到M个第二中间数据,其中,i从1递增到C;
递增f,得到新的M个第二中间数据,其中,f从1递增到K/M,得到K个目标运算数据。
在一些实施例中,可以对卷积处理单元的单层运算进行说明,具体的,卷积处理单元可以用于:
根据卷积核对输入数据进行一次取窗操作,得到第一窗体区域,第一窗体区域沿深度方向包括第一数量层的第一深度数据;
获取多个卷积核,多个卷积核沿深度方向包括第一数量层的第二深度数据;
将一层的第一深度数据与多个卷积核同一层的第二深度数据进行乘累加运算,得到第一运算数据。
卷积处理单元还可以对多层进行运算,具体的,卷积处理单元还用于将多层的第一深度数据对应的多个第一运算数据累加得到目标运算数据。即,基于上述实施例中单层运算的方式,将多层的第一深度数据与多个卷积核多层的第二深度数据进行乘累加运算,得到多个第一运算数据累加后得到目标运算数据。
需要说明的是,卷积运算过程中,还可以增加偏差数据,卷积层对输入数据和权重数据进行卷积运算,再将计算出的结果加上偏差数据即可得到输出结果。
卷积处理单元可以将其运算结果存储到数据存储模块,也可以将运算结果传输到向量处理单元或整形处理单元以进行进一步的计算操作。
本申请实施例所提供的神经网络处理器可以集成为一个芯片。
本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在第三处理器上运行时,使得该第三处理器执行上述任一实施例中的数据处理方法,比如:获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;当占用率小于第一预设阈值,且使用率大于第二预设阈值时,利用存储单元使用查表方式执行乘法运算;以及当占用率大于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元执行乘法运算。第三处理器可以为计算机或移动终端的主处理器、编译器的处理器等中的一种。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM)、或者随机存取记忆体(Random Access Memory,RAM)等。
本申请实施例还提供一种神经网络处理器,请参阅图7,图7为本申请实施例提供的神经网络处理器的结构示意图,神经网络处理器300包括存储单元301、乘法计算单元302和控制单元303。
存储单元301和乘法计算单元302均与控制单元303连接,控制单元303用于获取存储单元301的占用率以及乘法计算单元302的使用率;当占用率小于第一预设阈值,且使用率大于第二预设阈值时,控制单元303还用于控制存储单元301使用查表方式执行乘法运算;当占用率大于第一预设阈值,且使用率小于第二预设阈值时,控制单元303还用于控制乘法计算单元302执行乘法运算。
控制单元303还可以用于当占用率大于第一预设阈值,且使用率大于第二预设阈值时,判断是否包括并行的乘法运算;若有,则利用存储单元301使用查表方式执行乘法运算;若否,则利用乘法计算单元302执行乘法运算。
控制单元303还可以用于当占用率小于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元302执行乘法运算。
在获取存储单元301的占用率中,控制单元303还可以用于获取外部搬运进神经网络处理器300的数据量;根据存储单元301当前的空闲存储区域和数据量计算得到占用率。
在获取乘法计算单元302的使用率中,控制单元303还可以用于获取外部搬运进神经网络处理器300的数据量;根据数据量和计算类型、以及当前空闲的乘法计算单元302计算得到乘法计算单元的使用率。
获取存储单元301的占用率以及乘法计算单元302的使用率之后,控制单元303还可以用于将占用率和使用率传输至第二处理器;接收第二处理器根据占用率和使用率计算得到的计算策略。
本申请实施例还提供一种电子设备,请参阅图8,图8为本申请实施例提供的电子设备的第一种结构示意图,电子设备100包括系统总线510和神经网络处理器300,神经网络处理器300与系统总线510连接,神经网络处理器300通过系统总线510连接其他功能模块,如第二处理器400、第二存储模块520等。神经网络处理器300可以为上述任一实施例中的神经网络处理器,在此不再赘述。
在其他一些实施例中,请参阅图9,图9为本申请实施例提供的电子设备的第二种结构示意图,电子设备100包括神经网络处理器300和第二处理器400,神经网络处理器300包括存储单元301和乘法计算单元302。
第二处理器400获取神经网络处理器300内存储单元301的占用率和乘法计算单元302的使用率,并根据占用率和使用率确定计算策略。
神经网络处理器300获取计算策略,并根据计算策略进行乘法运算,其中,计算策略包括当占用率小于第一预设阈值,且使用率大于第二预设阈值时,利用存储单元301使用查表方式执行乘法运算,以及当占用率大于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元302执行乘法运算。
计算策略还可以包括上述实施例中的其他方式,具体请参阅上述实施例,在此不再赘述。
请参照图10,图10为本申请实施例提供的电子设备的第三种结构示意图,电子设备600包括:第二处理器601、存储器602、摄像组件603、显示器604、音频电路605、射频电路606、电源607以及神经网络处理器608。其中,摄像组件603、显示器604、音频电路605、射频电路606、电源607以及神经网络处理器608分别与第二处理器601电性连接。
第二处理器601可以为中央处理器(central processing unit,CPU),为电子设备600的控制中心,利用各种接口和线路连接整个电子设备600的各个部分。
存储器602可用于存储软件程序以及模块,第二处理器601通过运行存储在存储器602的计算机程序以及数据,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。第二处理器601可以通过运行或加载存储在存储器602内的计算机程序,以及调用存储在存储器602内的数据,执行电子设备600的各种功能并处理数据。
摄像组件603可以包括图像处理电路,图像处理电路可以利用硬件和/或软件组件实现,可包括定义图像信号处理(Image Signal Processing)管线的各种控制单元。图像处理电路至少可以包括:多个摄像头、图像信号处理器(Image Signal Processor,ISP处理器)、控制逻辑器以及图像存储器等。其中每个摄像头至少可以包括一个或多个透镜和图像传感器。图像传感器可包括色彩滤镜阵列(如Bayer滤镜)。图像传感器可获取用图像传感器的每个成像像素捕捉的光强度和波长信息,并提供可由图像信号处理器处理的一组原始图像数据。
显示器604可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
音频电路605可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。
射频电路606可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
电源607可以用于给电子设备600的各个部件供电。在一些实施例中,电源607可以通过电源管理系统与第二处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
神经网络处理器608可以用于进行神经网络计算。其可以通过与第二处理器601和/或存储器602进行数据交互,共同进行神经网络计算。
在本申请实施例中,电子设备600中的神经网络处理器608会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器602中,并由神经网络处理器608运行存储在存储器602中的计算机程序,从而实现各种功能,如下:
获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;
当占用率小于第一预设阈值,且使用率大于第二预设阈值时,利用存储单元使用查表方式执行乘法运算;
当占用率大于第一预设阈值,且使用率小于第二预设阈值时,利用乘法计算单元执行乘法运算。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请的描述中,需要理解的是,诸如“第一”、“第二”等术语仅用于区分类似的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
以上对本申请实施例提供的数据处理方法、存储介质、神经网络处理器及电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请。同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据处理方法,应用于神经网络处理器,其特征在于,所述方法包括:
获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;
当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,利用所述存储单元使用查表方式执行乘法运算;以及
当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,利用所述乘法计算单元执行乘法运算。
2.根据权利要求1所述的数据处理方法,其特征在于,所述获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率之后,还包括:
当所述占用率大于第一预设阈值,且所述使用率大于第二预设阈值时,判断是否包括并行的乘法运算;
若是,则利用所述存储单元使用查表方式执行乘法运算;以及
若否,则利用所述乘法计算单元执行乘法运算。
3.根据权利要求1所述的数据处理方法,其特征在于,所述获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率之后,还包括:
当所述占用率小于第一预设阈值,且所述使用率小于第二预设阈值时,利用所述乘法计算单元执行乘法运算。
4.根据权利要求1-3任一项所述的数据处理方法,其特征在于,获取存储单元的占用率包括:
获取进入所述神经网络处理器的数据量;
根据所述存储单元当前的空闲存储区域和所述数据量计算得到占用率。
5.根据权利要求1-3任一项所述的数据处理方法,其特征在于,获取乘法计算单元的使用率包括:
获取进入所述神经网络处理器的数据量;
根据所述数据量和计算类型、以及当前空闲的乘法计算单元计算得到所述乘法计算单元的使用率。
6.一种数据处理方法,应用于神经网络处理器,其特征在于,所述方法包括:
获取神经网络处理器内存储单元的占用率和乘法计算单元的使用率;
将所述占用率和所述使用率传输至第二处理器;
接收所述第二处理器根据所述占用率和所述使用率计算得到的计算策略;
当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,所述神经网络处理器基于所述计算策略,利用所述存储单元使用查表方式执行乘法运算;以及
当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,所述神经网络处理器基于所述计算策略,利用所述乘法计算单元执行乘法运算。
7.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在第三处理器上运行时,使得所述第三处理器执行如权利要求1至6任一项所述的数据处理方法。
8.一种神经网络处理器,其特征在于,包括:
存储单元;
乘法计算单元;以及
控制单元,所述存储单元和所述乘法计算单元均与所述控制单元连接,所述控制单元用于获取存储单元的占用率以及乘法计算单元的使用率;当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,所述控制单元还用于控制所述存储单元使用查表方式执行乘法运算;当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,所述控制单元还用于控制所述乘法计算单元执行乘法运算。
9.一种电子设备,其特征在于,包括:
系统总线;以及
神经网络处理器,所述神经网络处理器为权利要求8所述的神经网络处理器,所述神经网络处理器与所述系统总线连接。
10.一种电子设备,其特征在于,包括神经网络处理器和第二处理器,所述神经网络处理器包括存储单元和乘法计算单元;
所述第二处理器获取所述神经网络处理器内存储单元的占用率和乘法计算单元的使用率,并根据所述占用率和使用率确定计算策略;
所述神经网络处理器获取所述计算策略,并根据所述计算策略进行乘法运算,其中,所述计算策略包括当所述占用率小于第一预设阈值,且所述使用率大于第二预设阈值时,利用所述存储单元使用查表方式执行乘法运算,以及当所述占用率大于第一预设阈值,且所述使用率小于第二预设阈值时,利用所述乘法计算单元执行乘法运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911414358.8A CN113128673B (zh) | 2019-12-31 | 2019-12-31 | 数据处理方法、存储介质、神经网络处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911414358.8A CN113128673B (zh) | 2019-12-31 | 2019-12-31 | 数据处理方法、存储介质、神经网络处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113128673A CN113128673A (zh) | 2021-07-16 |
CN113128673B true CN113128673B (zh) | 2023-08-11 |
Family
ID=76770449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911414358.8A Active CN113128673B (zh) | 2019-12-31 | 2019-12-31 | 数据处理方法、存储介质、神经网络处理器及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113128673B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117973465A (zh) * | 2022-10-25 | 2024-05-03 | 深圳市中兴微电子技术有限公司 | 应用场景的数据处理方法、系统、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067182A (ja) * | 2001-08-28 | 2003-03-07 | Matsushita Electric Works Ltd | 演算装置および演算方法 |
WO2017166654A1 (zh) * | 2016-03-31 | 2017-10-05 | 乐视控股(北京)有限公司 | 一种资源管理方法和装置 |
CN107622305A (zh) * | 2017-08-24 | 2018-01-23 | 中国科学院计算技术研究所 | 用于神经网络的处理器和处理方法 |
WO2018014566A1 (zh) * | 2016-07-22 | 2018-01-25 | 平安科技(深圳)有限公司 | 一种负载均衡的方法、装置、计算机可读存储介质及系统 |
WO2019076095A1 (zh) * | 2017-10-20 | 2019-04-25 | 上海寒武纪信息科技有限公司 | 处理方法及装置 |
CN109992350A (zh) * | 2017-12-29 | 2019-07-09 | 北京华胜天成科技股份有限公司 | 云计算系统的资源池中虚拟机的迁移方法及装置 |
CN110084361A (zh) * | 2017-10-30 | 2019-08-02 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
CN110222833A (zh) * | 2018-03-01 | 2019-09-10 | 华为技术有限公司 | 一种用于神经网络的数据处理电路 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106657191B (zh) * | 2015-11-02 | 2020-10-16 | 杭州华为企业通信技术有限公司 | 一种负载均衡方法及相关装置、系统 |
JP7029321B2 (ja) * | 2017-04-20 | 2022-03-03 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 情報処理方法、情報処理装置およびプログラム |
-
2019
- 2019-12-31 CN CN201911414358.8A patent/CN113128673B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067182A (ja) * | 2001-08-28 | 2003-03-07 | Matsushita Electric Works Ltd | 演算装置および演算方法 |
WO2017166654A1 (zh) * | 2016-03-31 | 2017-10-05 | 乐视控股(北京)有限公司 | 一种资源管理方法和装置 |
WO2018014566A1 (zh) * | 2016-07-22 | 2018-01-25 | 平安科技(深圳)有限公司 | 一种负载均衡的方法、装置、计算机可读存储介质及系统 |
CN107622305A (zh) * | 2017-08-24 | 2018-01-23 | 中国科学院计算技术研究所 | 用于神经网络的处理器和处理方法 |
WO2019076095A1 (zh) * | 2017-10-20 | 2019-04-25 | 上海寒武纪信息科技有限公司 | 处理方法及装置 |
CN110084361A (zh) * | 2017-10-30 | 2019-08-02 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
CN109992350A (zh) * | 2017-12-29 | 2019-07-09 | 北京华胜天成科技股份有限公司 | 云计算系统的资源池中虚拟机的迁移方法及装置 |
CN110222833A (zh) * | 2018-03-01 | 2019-09-10 | 华为技术有限公司 | 一种用于神经网络的数据处理电路 |
Also Published As
Publication number | Publication date |
---|---|
CN113128673A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214726B (zh) | 运算加速器 | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN113313243B (zh) | 神经网络加速器的确定方法、装置、设备以及存储介质 | |
CN111047008B (zh) | 一种卷积神经网络加速器及加速方法 | |
CN116842307B (zh) | 数据处理方法、装置、设备、芯片及存储介质 | |
CN110147347A (zh) | 用于矩阵处理的芯片、矩阵处理方法、装置及存储介质 | |
CN110222833A (zh) | 一种用于神经网络的数据处理电路 | |
CN110222835A (zh) | 一种基于零值检测的卷积神经网络硬件系统及运算方法 | |
Shahshahani et al. | Memory optimization techniques for fpga based cnn implementations | |
CN110209627A (zh) | 一种面向智能终端的ssd硬件加速方法 | |
CN111045732B (zh) | 数据处理方法、芯片、设备及存储介质 | |
CN113065643A (zh) | 一种用于执行多任务卷积神经网络预测的装置和方法 | |
CN112990440A (zh) | 用于神经网络模型的数据量化方法、可读介质和电子设备 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
Li et al. | A hardware-efficient computing engine for FPGA-based deep convolutional neural network accelerator | |
CN113128673B (zh) | 数据处理方法、存储介质、神经网络处理器及电子设备 | |
CN108647780B (zh) | 面向神经网络的可重构池化操作模块结构及其实现方法 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN111222090B (zh) | 卷积计算模块、神经网络处理器、芯片和电子设备 | |
CN112416294A (zh) | 处理器及其二进制累加方法和计算机可读介质 | |
CN109948787B (zh) | 用于神经网络卷积层的运算装置、芯片及方法 | |
CN114254563A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN112801276B (zh) | 数据处理方法、处理器及电子设备 | |
CN111242081B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240117 Address after: 100000 3010, Floor 3, No.1 Kaifa Road, Shangdi Information Industry Base, Haidian District, Beijing Patentee after: Lezhi Xinchuang (Beijing) Consulting Service Co.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
TR01 | Transfer of patent right |