CN109214511A - 数据处理方法、数据处理装置以及电子设备 - Google Patents

数据处理方法、数据处理装置以及电子设备 Download PDF

Info

Publication number
CN109214511A
CN109214511A CN201810930550.1A CN201810930550A CN109214511A CN 109214511 A CN109214511 A CN 109214511A CN 201810930550 A CN201810930550 A CN 201810930550A CN 109214511 A CN109214511 A CN 109214511A
Authority
CN
China
Prior art keywords
matrix operation
operation data
neural network
data
subset
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
CN201810930550.1A
Other languages
English (en)
Other versions
CN109214511B (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.)
Beijing Suneng Technology Co ltd
Original Assignee
Feng Feng Technology (beijing) 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 Feng Feng Technology (beijing) Co Ltd filed Critical Feng Feng Technology (beijing) Co Ltd
Priority to CN201810930550.1A priority Critical patent/CN109214511B/zh
Publication of CN109214511A publication Critical patent/CN109214511A/zh
Application granted granted Critical
Publication of CN109214511B publication Critical patent/CN109214511B/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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)

Abstract

本申请提出一种数据处理方法、数据处理装置以及电子设备;其中,数据处理方法包含:获取矩阵运算数据集;将该矩阵运算数据集发送至该嵌入式神经网络处理器的总存储器;对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集;将该变换后的相应的矩阵运算数据集从该嵌入式神经网络处理器中的该总存储器发送至该至少一个神经网络处理单元中的本地存储器;调用该至少一个神经网络处理单元中的该本地存储器中的该变换后的相应的矩阵运算数据集进行运算;以及输出运算结果。

Description

数据处理方法、数据处理装置以及电子设备
技术领域
本申请涉及数据处理领域,具体而言,涉及一种数据处理方法、数据处理装置以及电子设备。
背景技术
在现有的对嵌入式神经网络处理器中的矩阵数据进行存储和搬运的过程中,将嵌入式神经网络处理器的总存储器中的数据分配至每个嵌入式神经网络处理单元的本地存储器后,所有矩阵数据集在各个本地存储器中的存储方式都为对齐式存储方式,这样的存储方式极大的浪费了存储空间。
发明内容
本申请实施例提出一种数据处理方法、数据处理装置以及电子设备,用以解决现有技术中嵌入式神经网络处理器对于数据存储空间浪费的问题。
根据本申请的一方面,提出一种数据处理方法、数据处理装置以及电子设备。其中,该数据处理方法应用于嵌入式神经网络处理器,该嵌入式神经网络处理器包含至少一个神经网络处理单元,其特征在于,该数据处理方法包括:获取矩阵运算数据集;将该矩阵运算数据集发送至该嵌入式神经网络处理器的总存储器;对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集;将该变换后的相应的矩阵运算数据集从该嵌入式神经网络处理器中的该总存储器发送至所该至少一个神经网络处理单元中的本地存储器;调用该至少一个神经网络处理单元中的该本地存储器中的该变换后的相应的矩阵运算数据集进行运算;以及输出运算结果。
在一些实施例中,该矩阵运算数据集包括第一矩阵运算数据子集与第二矩阵运算数据子集,其中,对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据,包括:对该第一矩阵运算数据子集与该第二矩阵运算数据子集分别进行维度变换,得到第一高维矩阵运算数据子集与第二高维矩阵运算数据子集。
在一些实施例中,该第一高维矩阵运算数据子集与该第二高维矩阵运算数据子集的维度分别高于该第一矩阵运算数据子集与该第二矩阵运算数据子集。
在一些实施例中,该第一高维矩阵运算数据子集以第一存储方式在该至少一个神经网络处理单元中的本地存储器中存储,该第二高维矩阵运算数据子集以第二存储方式在该至少一个神经网络处理单元中的本地存储器中存储。
在一些实施例中,该第一存储方式为对齐式存储方式,该第二存储方式为密集式存储方式。
根据本申请的另一方面,提出一种数据处理装置。其中,该数据处理装置包含嵌入式神经网络处理器,该嵌入式神经网络处理器包含至少一个神经网络处理单元,该数据处理装置包括:数据获取单元,用于获取矩阵运算数据集;第一数据发送单元,用于将该矩阵运算数据集发送至该嵌入式神经网络处理器中的总存储器;至少一个数据处理单元,用于对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集;至少一个第二数据发送单元,用于将该变换后的相应的矩阵运算数据集从该嵌入式神经网络处理器中的该总存储器发送至该至少一个神经网络处理单元中的本地存储器;数据运算单元,用于调用该至少一个神经网络处理单元中的该本地存储器中的该变换后的相应的矩阵运算数据集进行运算;数据输出单元,用于输出运算结果。
在一些实施例中,该矩阵运算数据集包括第一矩阵运算数据子集与第二矩阵运算数据子集,其中,至少一个该数据处理单元对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据,包括:
至少一个该数据处理单元对该第一矩阵运算数据子集与该第二矩阵运算数据子集分别进行维度变换,得到第一高维矩阵运算数据子集与第二高维矩阵运算数据子集。
在一些实施例中,该第一高维矩阵运算数据子集与该第二高维矩阵运算数据子集的维度分别高于该第一矩阵运算数据子集与该第二矩阵运算数据子集。
在一些实施例中,该第一高维矩阵运算数据子集以第一存储方式在该至少一个神经网络处理单元中的本地存储器中存储,该第二高维矩阵运算数据子集以第二存储方式在该至少一个神经网络处理单元中的本地存储器中存储。
在一些实施例中,该第一存储方式为对齐式存储方式,该第二存储方式为密集式存储方式。
根据本申请的另一方面,提出一种电子设备。其中,该电子设备包括:至少一个嵌入式神经网络处理器;以及与该至少一个嵌入式神经网络处理器连接的储存器;其中,该储存器存储有可被该至少一个嵌入式神经网络处理器执行的指令,该指令被至少一个嵌入式神经网络处理器执行时,使该至少一个嵌入式神经网络处理器执行上述的数据处理方法。
本申请的实施例所揭示的数据处理方法,实现对嵌入式神经网络处理器中的运算数据的多种方式存储,极大节省了每个本地存储器中的存储空间。
参照后文的说明和附图,详细申请了本申请的特定实施方式,指明了本申请的原理可以被采用的方式。应该理解,本申请的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本申请的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
一个或多个实施例通过与之对应的附图进行实例性说明,这些实例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,附图不构成比例限制,并且其中:
图1是根据本申请的实施例提供的数据处理方法的整体流程图;
图2是根据本申请的实施例提供的数据分段式存储的示意图;
图3是根据本申请的实施例提供的数据密集式存储的示意图;
图4是根据本申请的实施例提供的矩阵之间做乘法运算的示意图;
图5是根据本申请的实施例提供的图4中的矩阵运算数据在各个本地存储器中进行分段式存储的示意图;
图6是根据本申请的实施例提供的图4中的矩阵运算数据在本地存储器中进行多种方式存储的示意图;
图7是根据本申请的实施例提供的数据处理装置的整体结构示意图;
图8是根据本申请的另一实施例提供的数据处理装置的整体结构示意图;
图9是根据本申请的实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本领域技术技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本申请可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
图1是根据本申请的实施例提供的数据处理方法的整体流程图;图1中所示的数据处理方法应用于嵌入式神经网络处理器,该嵌入式神经网络处理器包含至少一个神经网络处理单元。如图1所示,本实施例中的数据处理方法执行步骤S11,即获取矩阵运算数据集,矩阵运算数据集是从外部的宿主存储器(Host Memory)中获取,该矩阵运算数据集也可以从诸如云端服务器等的云端获取,本实施例对此不做限制。获取矩阵运算数据集之后,执行步骤S12,即将该矩阵运算数据集发送至该嵌入式神经网络处理器的总存储器,总存储器从宿主存储器或者云端服务器中获取到大量的矩阵运算数据集之后,会将获取到的矩阵数据集分配到嵌入式神经网络处理器的每个神经网络处理单元中的本地存储器,分配到各个本地存储器中的存储数据在其中的存储方式分为两种:即分段式存储和密集式存储。
图2是根据本申请的实施例提供的数据分段式存储的示意图;如图2所示,在本实施例中,我们假设总存储器从宿主存储器或者云端服务器中获取的矩阵运算数据集为一个[2,200]大小的矩阵M,即此矩阵有两行,每行有200个数据,假设第一行的数据为1至200,第二行的数据为10至2000,第一行的运算数据与第二行的运算数据将在不同的周期中进行不同的运算。本实施例中总存储器从宿主存储器或者云端服务器中获取的矩阵运算数据集的大小只是示意性的,并不对本申请的保护范围做任何限制。如图2所示,在本实施例中,将矩阵M的数据分配至嵌入式神经网络处理器的两个神经网络处理单元中的本地存储器0与本地存储器1,分配方式如图2所示,由于矩阵M中的200个运算数据是采用分段式存储方式在本地存储器0与本地存储器1中进行存储,在本实施例中,每个本地存储器的每行存储空间为64字(64words),因此数据是按照64字进行存储,每行首地址要求64字对齐。矩阵M中的每个运算数据所占用的存储空间为1个字。
在分段式存储方式中,先将矩阵M的第一行运算数据进行存储,当编号为0的本地存储器(Local Memory),即本地存储器0的第一64字行存储满了,将在编号为1的本地存储器1的第一64字行进行存储,如果本地存储器1的第一64字行存储满了,则将在本地存储器0的第二64字行进行存储,矩阵M的第二行存储要重起一行。以图2中的矩阵M作为说明,在本实施例中,矩阵M中需要进行运算的数据不是全部的200列数据,而是每行的前129列数据,即第一行的数据“1至129”以及第二行的数据“10至1290”,总存储器按照上述存储方式将要进行运算的数据分配至本地存储器0与本地存储1中,即运算数据“1-64”存储到本地存储器0的第一行,运算数据“65-128”存储到本地存储器1的第一行,运算数据“129”存储到本地存储器的第二行。由于矩阵M的第一行数据与第二行数据将要在不同的周期中做不同的运算,并且由于是分段式存储方式,首地址要求64字对齐,同时需要在不同周期中进行不同运算的运算数据之间的间隔为64的整数倍,因此矩阵M中第二行的第一个数据“10”无法接着数据“129”进行存储,只能另起一行,在本地存储器0的第三行开始存储,这样一来,浪费了数据“129”后面的存储空间,如图2中的“X”所示。
图3是根据本申请的实施例提供的数据密集式存储的示意图;密集式存储方式即为运算数据按照顺序依次存储到存储器当中,不用进行分段式处理。如图3所示,依次将矩阵M中的第一行与第二行的前129列运算数据以64字按照顺序存储到本地存储器0与本地存储器1中,比较图2以及图3的存储方式可以看出,密集式存储方式最大程度的利用了存储空间,避免了存储空间的浪费,但对于嵌入式神经网络系统中的输入数据矩阵来说,无法采用密集式存储方式来进行存储输入矩阵中的运算数据。
在本申请的其它实施例中,每个本地存储器的每行存储空间也可以为32字(32words),即数据也可以按照32字进行存储,本申请对此不做限制。
本申请对现有的数据存储方法进行了改进,如图1的步骤S13所示,对矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集。下面将结合图4至图6详细说明本申请对于数据存储方法的改进。
图4是根据本申请的实施例提供的矩阵之间做乘法运算的示意图;如图4所示,矩阵A为输入数据矩阵,其大小为n*m,即输入矩阵A具有n行m列的运算数据,在本实施例中,矩阵A的大小为2*4,总共有8个运算数据。这里需要说明的是,本实施例中输入矩阵A的大小只是示意性的,只是方便对于本申请的存储原理以及存储方式进行说明,在实际的神经网络系统中,输入数据矩阵A的中的运算数据量会远远大于8个。矩阵B为参数矩阵,其大小为m*p,即参数矩阵B具有m行p列的运算数据,在本实施例中,参数矩阵B的大小为4*3,总共有12个运算数据。这里需要说明的是,本实施例中参数矩阵B的大小只是示意性的,只是方便对于本申请的存储原理以及存储方式进行说明,在实际的神经网络系统中,参数矩阵B的中的运算数据量会远远大于12个。输入矩阵A与参数矩阵B进行矩阵乘法运算之后得到的输出矩阵C,如图4所示,输出矩阵C的大小为n*p,由输入矩阵A与参数矩阵B的大小决定,在本实施例中,输出矩阵C的大小为2*3。
图5是根据本申请的实施例提供的图4中的矩阵运算数据在各个本地存储器中进行分段式存储的示意图;如图5所示,嵌入式神经网络处理器中的总存储器由宿主存储器获取到输入矩阵A与参数矩阵B中的所有运算数据之后,其将各个数据分别分配到各个神经网络单元中的本地存储器中,如图5所示,输入矩阵A中的运算数据被分配到本地存储器0中,参数矩阵B中的运算参数被分配到本地存储器1中,输入矩阵A与参数矩阵B经过运算之后得到的输出矩阵C中的数据存储到本地存储器2中。其中,输入矩阵A、参数矩阵B以及输出矩阵C都是以分段式存储方式在对应的本地存储器中进行存储,分段式存储方式已经在上述实施例中给出了详细说明,在此不再赘述。
由于图5中输入矩阵A以及参数矩阵B的数据都采用的是分段式存储方式在对应的本地存储器中进行存储,这样的存储方式在输入矩阵A和参数矩阵B中的数据量较大的时候,会对本地存储器的存储空间造成极大的浪费。
图6是根据本申请的实施例提供的图4中的矩阵运算数据在本地存储器中进行多种方式存储的示意图;在图6所示的存储方式中,输入矩阵A中的数据在本地存储器0中以分段式存储方式进行存储,而参数矩阵B中的数据则是以密集存储的方式在本地存储器1中进行存储,采用这样的多种方式进行存储需要对输入矩阵A以及参数矩阵B进行变换,下面将详细说明对输入矩阵A以及参数矩阵B的变换方法。
如图1所示,当执行完步骤S12之后,执行步骤S13,即对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集,其中矩阵运算数据集包括第一矩阵运算数据子集与第二矩阵运算数据子集。在本实施例中,第一矩阵运算数据子集为输入矩阵A中的数据,第二矩阵运算数据子集为参数矩阵B中的数据。对输入矩阵A以及参数矩阵B的变化包括:对输入矩阵A以及参数矩阵B进行维度变化,在本实施例中,输入矩阵A的维度变化如下:将[n,m]变为[1,n,1,m],即将二维输入矩阵A[n,m]变换为四维输入矩阵A’[1,n,1,m],四维输入矩阵A’的维度高于二维输入矩阵A。参数矩阵B的维度变化如下:先对B做转置,再进行维度变换,即先将二维参数矩阵B[m,p]变为[p,m],之后再将[p,m]变换为四维参数矩阵B’[1,p,1,m]。
如图1所示,执行完步骤S13后,执行步骤S14,即将变换后的相应的矩阵运算数据集从嵌入式神经网络处理器中的总存储器发送至至少一个神经网络处理单元中的本地存储器。如图5所示,直接使用矩阵乘法进行计算时,输入矩阵A、参数矩阵B以及输出矩阵C中的数据都将按照分布式的存储方式存储到对应的本地存储器中。而将输入矩阵A以及参数矩阵B变换为输入矩阵A’和参数矩阵B’后,对输入矩阵A’以及参数矩阵B’采用二类卷积进行计算,此时输入矩阵A’以分段式存储方式存储到本地存储器0中,而参数矩阵B’以密集式存储方式存储到本地存储器1中,如图6所示,采用这样的多种存储方式,在实际情况中例如当需要在神经网络系统中进行训练的图片张数较多,像素较大,此时参数矩阵B中的数据数量很庞大,因此将参数矩阵B进行维度变换之后与同样进行变换后的输入矩阵A’进行二类卷积计算,此时参数矩阵B’以密集式存储方式在本地存储器1中存储,这样大量减少了由于参数矩阵B的分布式存储方式而带来的对于本地存储器的每一行存储空间的浪费。
当将变换后的相应的矩阵运算数据集从嵌入式神经网络处理器中的总存储器发送至至少一个神经网络处理单元中的本地存储器后,执行步骤S15,即调用至少一个神经网络处理单元中的本地存储器中的变换后的相应的矩阵运算数据集进行运算。
对输入矩阵A(下称矩阵A)以及参数矩阵B(下称矩阵B)的二类卷积运算如下:
n*m矩阵A与m*p矩阵B相乘得到n*p的输出矩阵C(下称矩阵C),其计算公式如下:
在神经网络中,假如其中某一个卷积层的输入为I(大小为N*iC*iH*iW),卷积核为K(大小为oC*iC*kH*kW),偏置为B(大小为oC),输出为O(大小为N*oC*oH*oW)。为便于说明这里假设oH=iH-kH+1,oW=iW-kW+1。有
假如该网络的损失函数为E,则有(二类卷积)
当N=kH=kW=iH=1时,则有oH=1,ow=iw从而
将I1,ic,1,ow看成矩阵A(大小为ic*ow),看成矩阵B(ow*oc)的转置,看成矩阵C,则有C=ABT
比较矩阵乘法的公式(1)和二类卷积的公式(2)可知,相同的输入可以得到相同的结果。故而可以用二类卷积运算实现矩阵乘法。
最后,执行步骤S16,即输出运算结果,将输出矩阵C中的输出。
通过在NPU中将矩阵进行维度变换,从而将矩阵乘法转换为二类卷积运算,节约了大量的存储空间。
根据本申请的另一方面,本申请的实施例还提供了一种数据处理装置,该装置的实施可以参见上述方法实施,重复之处不在赘述。以下所使用的术语“模块”和“单元”,可以是实现预定功能的软件和/或硬件。尽管以下实施例所描述的模块较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能被构想的。
本申请的实施例提供的数据处理装置,其结构如图7所示,图7是根据本申请的实施例提供的数据处理装置的整体结构示意图;其中,该数据处理装置包含嵌入式神经网络处理器1,嵌入式神经网络处理器1包含至少一个神经网络处理单元,图7所示的嵌入式神经网络处理器1中包含神经网络处理单元20以及神经网络处理单元21,然而本领域的普通技术人员应该了解,图7中嵌入式神经网络处理器包含的神经网络处理单元的个数只是示意性的,在本申请的其它实施例中,神经网络处理单元的个数可以为64,也可以为32,其个数不受本申请附图7公开内容的限制。
数据处理装置包括:数据获取单元12,用于获取矩阵运算数据集,其中矩阵运算数据集从宿主存储器8中获取;第一数据发送单元13,用于将该数据获取单元12获取的矩阵运算数据集发送至该嵌入式神经网络处理器1中的总存储器11;至少一个数据处理单元,用于对该矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集;至少一个第二数据发送单元,用于将该变换后的相应的矩阵运算数据集从该嵌入式神经网络处理器中的该总存储器发送至该至少一个神经网络处理单元中的本地存储器;
在图7所示的实施例中,每个神经网络处理单元分别对应一个数据处理单元以及第二数据发送单元,即神经网络处理单元20对应于数据处理单元400和第二数据发送单元300,神经网络处理单元21对应于数据处理单元410和第二数据发送单元310。数据处理单元400和数据处理单元410对与其对应的神经网络处理单元20和神经网络处理单元21中的运算数据进行维度变换,变换完之后的数据再通过各自的第二数据发送单元300和第二数据发送单元310被发送到每个神经网络处理器中的本地存储器200和本地存储器210中,等待被数据运算单元14进行调用;在此实施例中,第二数据发送单元和数据处理单元的个数与神经网络处理单元的个数相同。
图8是根据本申请的另一实施例提供的数据处理装置的整体结构示意图;图8中所示的实施例,所有的神经网络处理单元共用一个数据处理单元和第二数据发送单元,如图8所示,神经网络处理单元20以及神经网络处理单元21共用数据处理单元16和第二数据发送单元17;运算数据集通过数据处理单元16进行维度变换之后经由第二数据发送单元17被分配到对应的本地存储器200和本地存储器210中。
数据运算单元14,用于调用该至少一个神经网络处理单元中的该本地存储器中的该变换后的相应的矩阵运算数据集进行运算;在图7以及图8中,其调用的是本地存储器200与本地存储器210中的数据集进行运算。数据输出单元15,用于输出运算结果。
本申请的实施例所揭示的数据处理装置,实现对嵌入式神经网络处理器中的运算数据的多种方式存储,极大节省了每个本地存储器中的存储空间。
根据本申请的另一方面,本申请的实施例还提供了一种电子设备,其结构如图9所示,该电子设备包括:
至少一个嵌入式神经网络处理器900和储存器901,还可以包括通信接口(Communication Interface)902和总线903。其中,嵌入式神经网络处理器900、通信接口902、储存器901可以通过总线903完成相互间的通信。通信接口902可以用于信息传输。嵌入式神经网络处理器900可以调用储存器901中的逻辑指令,以执行上述实施例的数据处理方法。
此外,上述的储存器901中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
储存器901作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。嵌入式神经网络处理器900通过运行存储在储存器901中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的数据处理方法。
储存器901可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,储存器901可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是矿机、个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
当用于本申请中时,虽然术语“第一”、“第二”等可能会在本申请中使用以描述各元件,但这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区别开。比如,在不改变描述的含义的情况下,第一元件可以叫做第二元件,并且同样第,第二元件可以叫做第一元件,只要所有出现的“第一元件”一致重命名并且所有出现的“第二元件”一致重命名即可。第一元件和第二元件都是元件,但可以不是相同的元件。
本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。
所描述的实施例中的各方面、实施方式、实现或特征能够单独使用或以任意组合的方式使用。所描述的实施例中的各方面可由软件、硬件或软硬件的结合实现。所描述的实施例也可以由存储有计算机可读代码的计算机可读介质体现,该计算机可读代码包括可由至少一个计算装置执行的指令。所述计算机可读介质可与任何能够存储数据的数据存储装置相关联,该数据可由计算机系统读取。用于举例的计算机可读介质可以包括只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带以及光数据存储装置等。所述计算机可读介质还可以分布于通过网络联接的计算机系统中,这样计算机可读代码就可以分布式存储并执行。
上述技术描述可参照附图,这些附图形成了本申请的一部分,并且通过描述在附图中示出了依照所描述的实施例的实施方式。虽然这些实施例描述的足够详细以使本领域技术人员能够实现这些实施例,但这些实施例是非限制性的;这样就可以使用其它的实施例,并且在不脱离所描述的实施例的范围的情况下还可以做出变化。比如,流程图中所描述的操作顺序是非限制性的,因此在流程图中阐释并且根据流程图描述的两个或两个以上操作的顺序可以根据若干实施例进行改变。作为另一个例子,在若干实施例中,在流程图中阐释并且根据流程图描述的一个或一个以上操作是可选的,或是可删除的。另外,某些步骤或功能可以添加到所公开的实施例中,或两个以上的步骤顺序被置换。所有这些变化被认为包含在所公开的实施例以及权利要求中。
另外,上述技术描述中使用术语以提供所描述的实施例的透彻理解。然而,并不需要过于详细的细节以实现所描述的实施例。因此,实施例的上述描述是为了阐释和描述而呈现的。上述描述中所呈现的实施例以及根据这些实施例所公开的例子是单独提供的,以添加上下文并有助于理解所描述的实施例。上述说明书不用于做到无遗漏或将所描述的实施例限制到本公开的精确形式。根据上述教导,若干修改、选择适用以及变化是可行的。在某些情况下,没有详细描述为人所熟知的处理步骤以避免不必要地影响所描述的实施例。

Claims (11)

1.一种数据处理方法,所述数据处理方法应用于嵌入式神经网络处理器,所述嵌入式神经网络处理器包含至少一个神经网络处理单元,其特征在于,所述数据处理方法包括:
获取矩阵运算数据集;
将所述矩阵运算数据集发送至所述嵌入式神经网络处理器的总存储器;
对所述矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集;
将所述变换后的相应的矩阵运算数据集从所述嵌入式神经网络处理器中的所述总存储器发送至所述至少一个神经网络处理单元中的本地存储器;
调用所述至少一个神经网络处理单元中的所述本地存储器中的所述变换后的相应的矩阵运算数据集进行运算;以及
输出运算结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述矩阵运算数据集包括第一矩阵运算数据子集与第二矩阵运算数据子集,其中,
对所述矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据,包括:
对所述第一矩阵运算数据子集与所述第二矩阵运算数据子集分别进行维度变换,得到第一高维矩阵运算数据子集与第二高维矩阵运算数据子集。
3.根据权利要求2所述的数据处理方法,其特征在于,所述第一高维矩阵运算数据子集与所述第二高维矩阵运算数据子集的维度分别高于所述第一矩阵运算数据子集与所述第二矩阵运算数据子集。
4.根据权利要求2所述的数据处理方法,其特征在于,所述第一高维矩阵运算数据子集以第一存储方式在所述至少一个神经网络处理单元中的本地存储器中存储,所述第二高维矩阵运算数据子集以第二存储方式在所述至少一个神经网络处理单元中的本地存储器中存储。
5.根据权利要求4所述的数据处理方法,其特征在于,所述第一存储方式为对齐式存储方式,所述第二存储方式为密集式存储方式。
6.一种数据处理装置,所述数据处理装置包含嵌入式神经网络处理器,所述嵌入式神经网络处理器包含至少一个神经网络处理单元,其特征在于,所述数据处理装置包括:
数据获取单元,用于获取矩阵运算数据集;
第一数据发送单元,用于将所述矩阵运算数据集发送至所述嵌入式神经网络处理器中的总存储器;
至少一个数据处理单元,用于对所述矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据集;
至少一个第二数据发送单元,用于将所述变换后的相应的矩阵运算数据集从所述嵌入式神经网络处理器中的所述总存储器发送至所述至少一个神经网络处理单元中的本地存储器;
数据运算单元,用于调用所述至少一个神经网络处理单元中的所述本地存储器中的所述变换后的相应的矩阵运算数据集进行运算;
数据输出单元,用于输出运算结果。
7.根据权利要求6所述的数据处理装置,其特征在于,所述矩阵运算数据集包括第一矩阵运算数据子集与第二矩阵运算数据子集,其中,
至少一个所述数据处理单元对所述矩阵运算数据集进行变换并得到变换后的相应的矩阵运算数据,包括:
至少一个所述数据处理单元对所述第一矩阵运算数据子集与所述第二矩阵运算数据子集分别进行维度变换,得到第一高维矩阵运算数据子集与第二高维矩阵运算数据子集。
8.根据权利要求7所述的数据处理装置,其特征在于,所述第一高维矩阵运算数据子集与所述第二高维矩阵运算数据子集的维度分别高于所述第一矩阵运算数据子集与所述第二矩阵运算数据子集。
9.根据权利要求7所述的数据处理装置,其特征在于,所述第一高维矩阵运算数据子集以第一存储方式在所述至少一个神经网络处理单元中的本地存储器中存储,所述第二高维矩阵运算数据子集以第二存储方式在所述至少一个神经网络处理单元中的本地存储器中存储。
10.根据权利要求9所述的数据处理方式,其特征在于,所述第一存储方式为对齐式存储方式,所述第二存储方式为密集式存储方式。
11.一种电子设备,其特征在于,包括:
至少一个嵌入式神经网络处理器;以及
与所述至少一个嵌入式神经网络处理器连接的储存器;其中,
所述储存器存储有可被所述至少一个嵌入式神经网络处理器执行的指令,所述指令被至少一个嵌入式神经网络处理器执行时,使所述至少一个嵌入式神经网络储存器执行权利要求1-5中任意一项所述的数据处理方法。
CN201810930550.1A 2018-08-15 2018-08-15 数据处理方法、数据处理装置以及电子设备 Active CN109214511B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810930550.1A CN109214511B (zh) 2018-08-15 2018-08-15 数据处理方法、数据处理装置以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810930550.1A CN109214511B (zh) 2018-08-15 2018-08-15 数据处理方法、数据处理装置以及电子设备

Publications (2)

Publication Number Publication Date
CN109214511A true CN109214511A (zh) 2019-01-15
CN109214511B CN109214511B (zh) 2021-08-27

Family

ID=64988865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810930550.1A Active CN109214511B (zh) 2018-08-15 2018-08-15 数据处理方法、数据处理装置以及电子设备

Country Status (1)

Country Link
CN (1) CN109214511B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563186A (zh) * 2020-04-30 2020-08-21 北京百度网讯科技有限公司 量子数据存储方法、读取方法、装置及计算设备
CN113805940A (zh) * 2020-08-17 2021-12-17 阿里巴巴集团控股有限公司 用于人工智能和机器学习的向量加速器
CN114637466A (zh) * 2022-03-03 2022-06-17 深圳大学 一种数据读写行为推测方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106959937A (zh) * 2017-03-30 2017-07-18 中国人民解放军国防科学技术大学 一种面向gpdsp的反卷积矩阵的向量化实现方法
CN106991665A (zh) * 2017-03-24 2017-07-28 中国人民解放军国防科学技术大学 基于cuda图像融合并行计算的方法
CN107832835A (zh) * 2017-11-14 2018-03-23 贵阳海信网络科技有限公司 一种卷积神经网络的轻量化方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106991665A (zh) * 2017-03-24 2017-07-28 中国人民解放军国防科学技术大学 基于cuda图像融合并行计算的方法
CN106959937A (zh) * 2017-03-30 2017-07-18 中国人民解放军国防科学技术大学 一种面向gpdsp的反卷积矩阵的向量化实现方法
CN107832835A (zh) * 2017-11-14 2018-03-23 贵阳海信网络科技有限公司 一种卷积神经网络的轻量化方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YIZHI WANG 等: "An Energy-Efficient Architecture for Binary Weight Convolutional Neural Networks", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 *
阎强: "卷积神经网络处理器的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111563186A (zh) * 2020-04-30 2020-08-21 北京百度网讯科技有限公司 量子数据存储方法、读取方法、装置及计算设备
CN111563186B (zh) * 2020-04-30 2021-09-24 北京百度网讯科技有限公司 量子数据存储方法、读取方法、装置及计算设备
CN113805940A (zh) * 2020-08-17 2021-12-17 阿里巴巴集团控股有限公司 用于人工智能和机器学习的向量加速器
CN114637466A (zh) * 2022-03-03 2022-06-17 深圳大学 一种数据读写行为推测方法、装置、存储介质及电子设备
CN114637466B (zh) * 2022-03-03 2022-11-11 深圳大学 一种数据读写行为推测方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN109214511B (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN110520857B (zh) 使用虚拟化数据迭代器对神经网络进行数据处理性能增强
US10372787B2 (en) Hardware accelerator pre-configured with coefficients for matrix-transform operations
US11609968B2 (en) Image recognition method, apparatus, electronic device and storage medium
CN109214511B (zh) 数据处理方法、数据处理装置以及电子设备
US9886418B2 (en) Matrix operands for linear algebra operations
US10831693B1 (en) Multicast master
US20170115934A1 (en) Logical block addresses used for executing host commands
US11138106B1 (en) Target port with distributed transactions
EP3844610B1 (en) Method and system for performing parallel computation
US11397791B2 (en) Method, circuit, and SOC for performing matrix multiplication operation
KR20210014561A (ko) 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체
CN111210004B (zh) 卷积计算方法、卷积计算装置及终端设备
CN110717929A (zh) 图像目标检测方法、装置及存储介质
CN109412865B (zh) 一种虚拟网络资源分配方法、系统及电子设备
CN106909320B (zh) 一种多维数据扩充传输的方法、装置以及系统
CN111178513A (zh) 神经网络的卷积实现方法、卷积实现装置及终端设备
US11467973B1 (en) Fine-grained access memory controller
CN111143766A (zh) 人工智能处理器处理二维复数矩阵的方法和设备
US20200218960A1 (en) Convolution operator system to perform concurrent convolution operations
CN113111891B (zh) 一种图像重建方法、装置、终端设备和存储介质
CN116016916A (zh) 用于多核变换的芯片优化方法和装置
CN114428594B (zh) 图像显示方法、装置、电子设备及存储介质
CN115482158A (zh) 图像处理方法、神经网络系统、计算机系统和介质
CN103618847A (zh) 一种图像处理方法和系统
CN114048839A (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
TA01 Transfer of patent application right

Effective date of registration: 20190422

Address after: 100192 2nd Floor, Building 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant after: BEIJING BITMAIN TECHNOLOGY CO., LTD.

Address before: 100192 Building 3, Building 3, No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant before: Feng Feng Technology (Beijing) Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210811

Address after: 100192 Building No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing, No. 301

Applicant after: SUANFENG TECHNOLOGY (BEIJING) Co.,Ltd.

Address before: 100192 2nd Floor, Building 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing

Applicant before: BITMAIN TECHNOLOGIES Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220224

Address after: 100176 901, floor 9, building 8, courtyard 8, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone)

Patentee after: Beijing suneng Technology Co.,Ltd.

Address before: 100192 Building No. 25, No. 1 Hospital, Baosheng South Road, Haidian District, Beijing, No. 301

Patentee before: SUANFENG TECHNOLOGY (BEIJING) CO.,LTD.

TR01 Transfer of patent right