CN111105018B - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN111105018B
CN111105018B CN202010086643.8A CN202010086643A CN111105018B CN 111105018 B CN111105018 B CN 111105018B CN 202010086643 A CN202010086643 A CN 202010086643A CN 111105018 B CN111105018 B CN 111105018B
Authority
CN
China
Prior art keywords
weights
data
convolution kernel
input
weight
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
Application number
CN202010086643.8A
Other languages
English (en)
Other versions
CN111105018A (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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies 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 Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Publication of CN111105018A publication Critical patent/CN111105018A/zh
Application granted granted Critical
Publication of CN111105018B publication Critical patent/CN111105018B/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明实施例提供一种数据处理方法及装置,该方法应用于神经网络处理器,神经网络处理器包括缓存器,包括:获取包括输入权重和输入数据的待处理数据,输入数据为能够被卷积神经网络处理的数据;切割输入权重,得到多个切割粒度的权重,缓存器缓存多个切割粒度的权重;对多个切割粒度的权重和输入数据进行计算。实施本发明实施例,可以在保持处理效率的同时减小计算单元中的缓存。

Description

一种数据处理方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种数据处理方法及装置。
背景技术
神经网络处理器设置有存储单元和计算单元。存储单元用于存储从外部读入的数据。计算单元用于处理各种神经网络运算。计算单元在计算的过程中需要从存储单元读取数据。考虑到数据的复用以及存储单元带宽与计算单元计算速度的不匹配,计算单元进行计算的时候,需要将部分数据缓存在计算单元的缓存中。而过大的缓存不仅浪费,而且会影响整个神经网络处理器的功耗和面积以及后端的整体实现。因此,如何在保持处理效率的同时减小计算单元中的缓存已成为一个亟待的技术问题。
发明内容
本发明实施例提供一种数据处理方法及装置,可以在保持处理效率的同时减小计算单元中的缓存。
第一方面提供一种数据处理方法,所述方法应用于神经网络处理器,所述神经网络处理器包括缓存器,包括:
获取包括输入权重和输入数据的待处理数据,所述输入数据为能够被卷积神经网络处理的数据;
切割所述输入权重,得到多个切割粒度的权重,所述缓存器缓存所述多个切割粒度的权重;
对所述多个切割粒度的权重和所述输入数据进行计算。
由于对输入权重进行了切割,因此,每次需要缓存的权重较小,从而可以降低计算单元中的缓存,因此,在保持处理效率的同时可以减小计算单元中的缓存。
作为一种可能的实施方式,所述输入权重包括多个卷积核权重。
作为一种可能的实施方式,所述切割所述输入权重,得到多个切割粒度的权重,所述缓存器缓存所述多个切割粒度的权重包括:
按行切割所述多个卷积核权重中每个卷积核权重,得到多行权重,所述缓存器缓存所述多行权重;
所述对所述多个切割粒度的权重和所述输入数据进行计算包括:
对所述多行权重和所述输入数据进行计算。
卷积核权重按照行进行拆分之后,输入权重缓存中存入的是卷积核权重的每一行权重。因此,输入权重缓存只需要能够存的下卷积核权重的一行数据就可以。可见,按照行进行卷积核权重切割,不仅能够减少输入权重缓存的大小,同时能够保证输入数据缓存的大小以及读取次数与切割前一样。
作为一种可能的实施方式,所述输入数据包括多个通道数据,所述对所述多行权重和所述输入数据进行计算包括:
使用第一卷积核权重中第i行权重从第一通道数据的第i行开始划窗整个所述第一通道数据,得到第i结果,所述第一通道数据为所述多个通道数据中的任一通道数据,所述第一卷积核权重为所述第一通道数据对应的卷积核权重,i=1,2,…,M,所述M为卷积核的行数;
将所述第i结果的累加和确定为所述第一通道数据与所述第一卷积核权重的计算结果。
作为一种可能的实施方式,所述切割所述输入权重,得到多个切割粒度的权重,所述缓存器缓存所述多个切割粒度的权重包括:
按单个权重切割所述多个卷积核权重中每个卷积核权重,得到多个权重,所述缓存器缓存所述多个权重;
所述对所述多个切割粒度的权重和所述输入数据进行计算包括:
对所述多个权重和所述输入数据进行计算。
卷积核权重按照单个权重进行拆分之后,输入权重缓存中存入的是的单个权重,因此,输入权重缓存只需要能够存的下卷积核权重的一个权重数据就可以。可见,按照单个权重进行卷积核权重切割,可以进一步减少输入权重缓存的大小。
作为一种可能的实施方式,所述输入数据包括多个通道数据,所述对所述多个权重和所述输入数据进行计算包括:
使用第一卷积核权重中第i行第j列权重从第一通道数据中第i行第j列开始划窗整个所述第一通道数据,得到第ij结果,所述第一通道数据为所述多个通道数据中的任一通道数据,所述第一卷积核权重为所述第一通道数据对应的卷积核权重,i=1,2,…,M,j=1,2,…,N,所述M为卷积核的行数,所述N为卷积核的列数;
将所述第ij结果的累加和确定为所述第一通道数据与所述第一卷积核权重的计算结果。
第二方面提供一种数据处理装置,包括用于执行第一方面或第一方面的任一实施方式提供的数据处理方法的单元。
第三方面提供一种数据处理装置,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行第一方面或第一方面的任一实施方式提供的数据处理方法。
第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行第一方面或第一方面的任一实施方式提供的数据处理方法。
第五方面提供了一种应用程序,该应用程序用于在运行时执行第一方面或第一方面的任一实施发送提供的数据处理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种神经网络处理器的结构示意图;
图2是本发明实施例提供的一种PE进行计算的示意图;
图3是本发明实施例提供的一种使用一个ci计算一个co的示意图;
图4是本发明实施例提供的一种数据处理方法的流程示意图;
图5是本发明实施例提供的另一种PE进行计算的示意图;
图6是本发明实施例提供的又一种PE进行计算的示意图;
图7是本发明实施例提供的另一种使用一个ci计算一个co的示意图;
图8是本发明实施例提供的又一种使用一个ci计算一个co的示意图;
图9是本发明实施例提供的一种数据处理装置的结构示意图;
图10是本发明实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法及装置,可以在保持处理效率的同时减小计算单元中的缓存。以下分别进行详细说明。
为了更好地理解本发明实施例提供的一种数据处理方法及装置,下面先对本发明使用的神经网络处理器进行描述。请参阅图1,图1是本发明实施例公开的一种神经网络处理器的结构示意图。如图1所示,该神经网络处理器包括存储单元和多个计算单元(processelement,PE)。存储单元,用于存储卷积神经网络计算过程中每层的输入数据、输入权重以及计算得到的输出数据。PE,用于处理各种神经网络运算。计算单元在计算的过程中需要从存储单元读取输入数据和输入权重,产生最终的输出数据。每个计算单元包括一个输入数据缓存(input buffer,IBUF)、一个输入权重缓存(weight buffer,WBUF)、一个乘法累加单元(multiplyandaccumulate unit,MAC)以及一个输出数据缓存(output buffer,OBUF)。IBUF,用于读取并存储PE计算需要用到的输入数据。WBUF,用于读取并存储PE计算需要用到的输入权重。MAC,用于读取IBUF以及WBUF中的数据,并进行卷积神经网络的计算,如卷积运算、全连接(fully connected,FC)运算等。OBUF,用于存储MAC计算出的输出数据,并将OBUF中的输出数据写回到存储单元中。
请参阅图2,图2是本发明实施例提供的一种PE进行计算的示意图。如图2所示,由于输入通道(input channel,ci)数据需要复用于不同的输出通道(output channel,co),因此,IBUF需要能够存的下一个完整的ci数据。在卷积核(kernel)权重不拆分的情况下,由于要使用一个完整的kernel权重对某个ci进行划窗处理,以及计算得到对应的co,因此,WBUF需要能够存的下一个完整的kernel权重,如卷积核K00、K01、K10、K11等。请参阅图3,图3是本发明实施例提供的一种使用一个ci计算一个co的示意图。如图3所示,以3*3的kernel为例,kernel包括L0-L2三行权重,包括w0-w8九个权要。在需要增加计算的并行度的情况下,每次使用多个ci同时计算一个co的时候,WBUF就需要能够存的下这些ci对应这一个co的所有kernel权重。在kernel大小较大时,需要较大的静态随机存取存储器(staticrandom access memory,SRAM)作为WBUF存储这些kernel权重。
基于图1所示的神经网络处理器,请参阅图4,图4是本发明实施例提供的一种数据处理方法的流程示意图。根据不同的需求,图4所示的流程图中的某些步骤可以拆分为几个步骤,某几个步骤可以合为一个步骤。其中,该数据处理方法应用于神经网络处理器,神经网络处理器包括缓存器。如图4所示,该数据处理方法可以包括以下步骤。
401、获取包括输入权重和输入数据的待处理数据。
神经网络处理器可以获取包括输入权重和输入数据的待处理数据。待处理数据可以是数据处理指令中携带的,也可以是神经网络处理器主动获取的。输入权重包括多个kernel权重。输入数据可以为图像,也可以为视频,还可以为音频,还可以为其它能够被卷积神经网络处理的数据。
402、切割输入权重,得到多个切割粒度的权重。
神经网络处理器获取到包括输入权重和输入数据的待处理数据之后,可以切割输入权重,得到多个切割粒度的权重。之后可以先将多个切割粒度的权重和输入数据存储在存储单元中,之后计算单元将存储单元存储的多个切割粒度的权重缓存至缓存器。可以一次将多个切割粒度的权重缓存至缓存器,也可以是通过多次将多个切割粒度的权重缓存至缓存器。
为了减少对WBUF的需求,可以对输入权重包括的多个kernel权重进行拆分(即切割)。可以按行切割多个kernel权重中每个kernel权重得到多行权重。请参阅图5,图5是本发明实施例提供的另一种PE进行计算的示意图。如图5所示,由于ci数据需要复用于不同的co,因此,IBUF还是需要能够存的下一个完整的ci。在kernel权重按照行进行切割之后,WBUF中存入的是的kernel权重的每一行权重,如K00-L0、K00-L1、K00-L2、K01-L0、K01-L1、K01-L2、K10-L0、K10-L1、K10-L2、K11-L0、K11-L1、K11-L2等。而且WBUF只需要能够存的下kernel权重的一行权重就可以。这种按行进行kernel权重切割,不仅能够减少WBUF的大小,同时能够保证IBUF的大小以及读取次数与拆分前一样。在增加ci并行度之后,在未进行kernel权重切割的情况下,由于一次需要多个kernel权重同时进行运算,因此WBUF需要缓存多个kernel权重,导致WBUF缓存的数据增加。而使用按行进行kernel权重切割,WBUF每次只需要缓存多行kernel权重数据即可,可以更大地减少WBUF的大小。
也可以按单个权重切割多个卷积核权重中每个卷积核权重得到多个权重。请参阅图6,图6是本发明实施例提供的又一种PE进行计算的示意图。如图6所示,由于ci数据需要复用于不同的co,因此,IBUF还是需要能够存的下一个完整的ci。在kernel权重按照单个权重进行切割之后,WBUF中存入的是单个权重,如K00-w0、K00-w1、K00-w2、K00-w3、K00-w4、K00-w5、K00-w6、K00-w7、K00-w8等。而且WBUF只需要能够存的下一个权重就可以。这种按单个权重进行kernel权重切割,可以进一步减少WBUF的大小。在增加ci并行度之后,WBUF每次只需要缓存多个kernel权重数据即可,可以进一步地减少WBUF的大小。
403、对多个切割粒度的权重和输入数据进行计算。
神经网络处理器切割输入权重,得到多个切割粒度的权重,将多个切割粒度的权重和输入数据存储在存储单元中之后,可以对多个切割粒度的权重和输入数据进行计算。具体地,WBUF可以从存储单元获取至少一个切割粒度的权重并缓存,在缓存的权重被使用之后,可以从存储单元获取下一次要使用的至少一个切割粒度的权重并缓存。IBUF可以从存储单元中获取一个ci数据并缓存,在缓存的ci数据被使用之后,可以从存储单元获取下次要使用的ci数据并缓存。MAC可以从WBUF获取缓存的至少一个切割粒度的权重,以及从IBUF获取缓存的ci数据,之后使用获取的至少一个切割粒度的权重和ci数据进行运算。
在按行切割的情况下,可以对多行权重和输入数据进行计算。可以使用第一卷积核权重中第i行权重从第一通道数据的第i行开始划窗整个第一通道数据得到第i结果,将第i结果的累加和确定为第一通道数据与第一卷积核权重的计算结果。其中,第一通道数据为多个通道数据中的任一通道数据,第一卷积核权重为第一通道数据对应的卷积核权重,i=1,2,…,M,M为卷积核的行数。请参阅图7,图7是本发明实施例提供的另一种使用一个ci计算一个co的示意图。如图7所示,以3*3的kernel权重为例进行说明,可以先使用一个kernel权重的第一行权重从ci的第1行开始划窗整个ci得到co的一部分和。之后使用这个kernel权重的第二行权重从ci的第2行开始划窗整个ci得到co的另一部分和。使用这个kernel权重的第三行权重从ci的第3行开始划窗整个ci得到co的又一部分和。最后将一部分和、另一部分和以及又一部分和相加得到co结果。
按照单个权重进行切割的情况下,可以对多个权重和输入数据进行计算,输入数据包括多个通道数据。可以使用第一卷积核权重中第i行第j列权重从第一通道数据中第i行第j列开始划窗整个第一通道数据得到第ij结果,将第ij结果的累加和确定为第一通道数据与第一卷积核权重的计算结果。其中,第一通道数据为多个通道数据中的任一通道数据,第一卷积核权重为第一通道数据对应的卷积核权重,i=1,2,…,M,j=1,2,…,N,M为卷积核的行数,N为卷积核的列数,M和N可以相同,也可以不同。请参阅图8,图8是本发明实施例提供的又一种使用一个ci计算一个co的示意图。如图8所示,以3*3的kernel权重为例进行说明,即i和j为3,可以先用一个kernel权重的第1个权重从ci的第1行第1列开始划窗整个ci得到co的第一部分和,即第11结果。之后使用这个kernel权重的第2个权重从ci的第1行第2列开始划窗整个ci得到co的第二部分和,即第12结果。之后使用这个kernel权重的第3个~第9个权重从ci的特定行和特定列开始划窗整个ci得到co的第三部分和~第九部分和,即第13结果~第31结果。9个weight权重都使用并划窗整个ci之后,将第一部分和~第九部分和都相加,即将第11结果~第33结果都相加,就得到了最后的co结果。
在图4所描述的数据处理方法中,由于对输入权重进行了切割,因此,每次需要缓存的权重较小,从而可以降低计算单元中的缓存,因此,在保持处理效率的同时可以减小计算单元中的缓存。
基于图1所示的神经网络处理器,请参阅图9,图9是本发明实施例提供的一种数据处理装置的结构示意图。其中,该数据处理装置可以设置在神经网络处理器中,神经网络处理器包括缓存器。如图9所示,该数据处理装置可以包括:
获取单元901,用于获取包括输入权重和输入数据的待处理数据,输入数据为能够被卷积神经网络处理的数据;
切割单元902,用于切割输入权重,得到多个切割粒度的权重,缓存器缓存该多个切割粒度的权重;
计算单元903,用于对该多个切割粒度的权重和输入数据进行计算。
在一个实施例中,输入权重包括多个卷积核权重。
在一个实施例中,切割单元902,具体用于按行切割多个卷积核权重中每个卷积核权重,得到多行权重,缓存器缓存多行权重;
计算单元903,具体用于对多行权重和输入数据进行计算。
在一个实施例中,输入数据包括多个通道数据,计算单元903对多行权重和输入数据进行计算包括:
使用第一卷积核权重中第i行权重从第一通道数据的第i行开始划窗整个第一通道数据,得到第i结果,第一通道数据为多个通道数据中的任一通道数据,第一卷积核权重为第一通道数据对应的卷积核权重,i=1,2,…,M,M为卷积核的行数;
将第i结果的累加和确定为第一通道数据与第一卷积核权重的计算结果。
在一个实施例中,切割单元902,具体用于按单个权重切割多个卷积核权重中每个卷积核权重,得到多个权重,缓存器缓存多个权重;
计算单元903,具体用于对多个权重和输入数据进行计算。
在一个实施例中,输入数据包括多个通道数据,计算单元903对多个权重和输入数据进行计算包括:
使用第一卷积核权重中第i行第j列权重从第一通道数据中第i行第j列开始划窗整个第一通道数据,得到第ij结果,第一通道数据为多个通道数据中的任一通道数据,第一卷积核权重为第一通道数据对应的卷积核权重,i=1,2,…,M,j=1,2,…,N,M为卷积核的行数,N为卷积核的列数;
将第ij结果的累加和确定为第一通道数据与第一卷积核权重的计算结果。
有关上述获取单元901、切割单元902和计算单元903更详细的描述可以直接参考上述图4所示的方法实施例中的相关描述直接得到,这里不加赘述。
请参阅图10,图10是本发明实施例提供的另一种数据处理装置的结构示意图。其中,该数据处理装置可以设置在神经网络处理器中,神经网络处理器包括缓存器。如图10所示,该数据处理装置可以包括处理器1001、存储器1002和总线1003。存储器1002可以是独立存在,也可以和处理器1001集成在一起。总线1003与处理器1001相连接。总线1003在上述组件之间传送信息。
其中:
存储器1002中存储有一组程序代码,处理器1001用于调用存储器1002中存储的程序代码执行以下操作:
获取包括输入权重和输入数据的待处理数据,输入数据为能够被卷积神经网络处理的数据;
切割输入权重,得到多个切割粒度的权重,缓存器缓存该多个切割粒度的权重;
对该多个切割粒度的权重和输入数据进行计算。
在一个实施例中,输入权重包括多个卷积核权重。
在一个实施例中,处理器1001切割输入权重,得到多个切割粒度的权重,缓存器缓存该多个切割粒度的权重包括:
按行切割多个卷积核权重中每个卷积核权重,得到多行权重,缓存器缓存多行权重;
处理器1001对该多个切割粒度的权重和输入数据进行计算包括:
对多行权重和输入数据进行计算。
在一个实施例中,输入数据包括多个通道数据,处理器1001对多行权重和输入数据进行计算包括:
使用第一卷积核权重中第i行权重从第一通道数据的第i行开始划窗整个第一通道数据,得到第i结果,第一通道数据为多个通道数据中的任一通道数据,第一卷积核权重为第一通道数据对应的卷积核权重,i=1,2,…,M,M为卷积核的行数;
将第i结果的累加和确定为第一通道数据与第一卷积核权重的计算结果。
在一个实施例中,处理器1001切割输入权重,得到多个切割粒度的权重,缓存器缓存该多个切割粒度的权重包括:
按单个权重切割多个卷积核权重中每个卷积核权重,得到多个权重,缓存器缓存多个权重;
处理器1001对该多个切割粒度的权重和输入数据进行计算包括:
对多个权重和输入数据进行计算。
在一个实施例中,输入数据包括多个通道数据,处理器1001对多个权重和输入数据进行计算包括:
使用第一卷积核权重中第i行第j列权重从第一通道数据中第i行第j列开始划窗整个第一通道数据,得到第ij结果,第一通道数据为多个通道数据中的任一通道数据,第一卷积核权重为第一通道数据对应的卷积核权重,i=1,2,…,M,j=1,2,…,N,M为卷积核的行数,N为卷积核的列数;
将第ij结果的累加和确定为第一通道数据与第一卷积核权重的计算结果。
其中,步骤401-步骤403可以由数据处理装置中的处理器1001和存储器1002来执行。
其中,获取单元901、切割单元902和计算单元903可以由数据处理装置中的处理器1001和存储器1002来实现。
在一个实施例中提供了一种计算机可读存储介质,该计算机可读存储介质用于存储应用程序,应用程序用于在运行时执行图4的数据处理方法。
在一个实施例中提供了一种应用程序,该应用程序用于在运行时执行图4的数据处理方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种数据处理方法,其特征在于,所述方法应用于神经网络处理器,所述神经网络处理器包括缓存器,包括:
获取包括输入权重和输入数据的待处理数据,所述输入数据为能够被所述缓存器缓存和被卷积神经网络处理的数据,所述输入权重包括多个卷积核权重;
切割所述输入权重,得到多个切割粒度的权重,所述缓存器缓存所述多个切割粒度的权重;包括:若按行切割所述多个卷积核权重中每个卷积核权重,得到多行权重,所述缓存器缓存所述多行权重;若按单个权重切割所述多个卷积核权重中每个卷积核权重,得到多个权重,所述缓存器缓存所述多个权重;
对所述多个切割粒度的权重和所述输入数据进行计算。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个切割粒度的权重和所述输入数据进行计算包括:
对所述多行权重和所述输入数据进行计算。
3.根据权利要求2所述的方法,其特征在于,所述输入数据包括多个通道数据,所述对所述多行权重和所述输入数据进行计算包括:
使用第一卷积核权重中第i行权重从第一通道数据的第i行开始划窗整个所述第一通道数据,得到第i结果,所述第一通道数据为所述多个通道数据中的任一通道数据,所述第一卷积核权重为所述第一通道数据对应的卷积核权重,i=1,2,…,M,所述M为卷积核的行数;
将所述第i结果的累加和确定为所述第一通道数据与所述第一卷积核权重的计算结果。
4.根据权利要求1所述的方法,其特征在于,所述对所述多个切割粒度的权重和所述输入数据进行计算包括:
对所述多个权重和所述输入数据进行计算。
5.根据权利要求4所述的方法,其特征在于,所述输入数据包括多个通道数据,所述对所述多个权重和所述输入数据进行计算包括:
使用第一卷积核权重中第i行第j列权重从第一通道数据中第i行第j列开始划窗整个所述第一通道数据,得到第ij结果,所述第一通道数据为所述多个通道数据中的任一通道数据,所述第一卷积核权重为所述第一通道数据对应的卷积核权重,i=1,2,…,M,j=1,2,…,N,所述M为卷积核的行数,所述N为卷积核的列数;
将所述第ij结果的累加和确定为所述第一通道数据与所述第一卷积核权重的计算结果。
6.一种数据处理装置,其特征在于,所述装置设置在神经网络处理器上,所述神经网络处理器包括缓存器,包括:
获取单元,用于获取包括输入权重和输入数据的待处理数据,所述输入数据为能够被所述缓存器缓存和被卷积神经网络处理的数据,所述输入权重包括多个卷积核权重;
切割单元,用于切割所述输入权重,得到多个切割粒度的权重,所述缓存器缓存所述多个切割粒度的权重;包括:若按行切割所述多个卷积核权重中每个卷积核权重,得到多行权重,所述缓存器缓存所述多行权重;若按单个权重切割所述多个卷积核权重中每个卷积核权重,得到多个权重,所述缓存器缓存所述多个权重;
计算单元,用于对所述多个切割粒度的权重和所述输入数据进行计算。
7.一种数据处理装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令执行如权利要求1-5任一项所述的数据处理方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-5任一项所述的数据处理方法。
CN202010086643.8A 2019-10-21 2020-02-11 一种数据处理方法及装置 Active CN111105018B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2019110018288 2019-10-21
CN201911001828 2019-10-21

Publications (2)

Publication Number Publication Date
CN111105018A CN111105018A (zh) 2020-05-05
CN111105018B true CN111105018B (zh) 2023-10-13

Family

ID=70427910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010086643.8A Active CN111105018B (zh) 2019-10-21 2020-02-11 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN111105018B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306675B (zh) * 2020-10-12 2024-06-04 网络通信与安全紫金山实验室 数据处理方法、相关设备以及计算机可读存储介质
CN114757328A (zh) * 2021-01-08 2022-07-15 中国科学院微电子研究所 一种卷积神经网络的卷积操作方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN107729995A (zh) * 2017-10-31 2018-02-23 中国科学院计算技术研究所 用于加速神经网络处理器的方法和***及神经网络处理器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625584B2 (en) * 2019-06-17 2023-04-11 Intel Corporation Reconfigurable memory compression techniques for deep neural networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN107729995A (zh) * 2017-10-31 2018-02-23 中国科学院计算技术研究所 用于加速神经网络处理器的方法和***及神经网络处理器

Also Published As

Publication number Publication date
CN111105018A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
US11080049B2 (en) Apparatus and methods for matrix multiplication
CN108133270B (zh) 卷积神经网络加速方法及装置
CN111105018B (zh) 一种数据处理方法及装置
US10936937B2 (en) Convolution operation device and convolution operation method
US9536517B2 (en) System and method for crowd-sourced data labeling
US8706661B2 (en) System and method for generating an image sprite
CN106897231B (zh) 一种基于高性能存储介质的数据缓存方法及***
CN111915001B (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
US20110107060A1 (en) Transposing array data on simd multi-core processor architectures
CN110276444B (zh) 基于卷积神经网络的图像处理方法及装置
EP3217406B1 (en) Memory management method and device, and memory controller
CN112668708B (zh) 一种提高数据利用率的卷积运算装置
CN110619871A (zh) 语音唤醒检测方法、装置、设备以及存储介质
US10664552B2 (en) Stream processing for LU decomposition
CN111160485A (zh) 基于回归训练的异常行为检测方法、装置及电子设备
CN110942145A (zh) 基于可重构计算的卷积神经网络池化层、硬件实现方法及***
CN111008701A (zh) 一种基于神经网络的数据量化方法、装置及计算机可读存储介质
US20210304350A1 (en) Method and system for tuning graphics processing unit (gpu) parameters of a gpu kernel
US20220351490A1 (en) Convolution calculation method, convolution calculation apparatus, and terminal device
US20170046307A1 (en) Runtime of cublas matrix multiplication on gpu
CN111401518A (zh) 一种神经网络量化方法、装置及计算机可读存储介质
US10334011B2 (en) Efficient sorting for a stream processing engine
US20180357744A1 (en) System and methods for computing 2-d convolutions and cross-correlations
CN111047037B (zh) 数据处理方法、装置、设备及存储介质
CN113052292B (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