CN116484925A - 一种数据处理方法及装置、芯片、设备、存储介质 - Google Patents

一种数据处理方法及装置、芯片、设备、存储介质 Download PDF

Info

Publication number
CN116484925A
CN116484925A CN202210027275.9A CN202210027275A CN116484925A CN 116484925 A CN116484925 A CN 116484925A CN 202210027275 A CN202210027275 A CN 202210027275A CN 116484925 A CN116484925 A CN 116484925A
Authority
CN
China
Prior art keywords
data
convolution
accumulator
multiply
depth
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
Application number
CN202210027275.9A
Other languages
English (en)
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202210027275.9A priority Critical patent/CN116484925A/zh
Publication of CN116484925A publication Critical patent/CN116484925A/zh
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (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

一种数据处理方法及装置、芯片、设备、存储介质
技术领域
本申请涉及深度学习领域,尤其涉及一种数据处理方法及装置、芯片、设备、存储介质。
背景技术
在人工智能网络算法中,由于传统卷积的计算量较大,往往采用深度可分离卷积进行计算,对于深度可分离卷积而言,在输入通道方向上不需要进行累加操作,而是会对各个输入通道的卷积结果进行累加,因此,需要在计算单元阵列中增加累加器(Accumulator,ACC),并将各个输入通道的卷积结果输入ACC中执行累加操作,导致数据传输路径较长,进而导致数据传输功耗大的问题。
发明内容
本申请实施例提供一种数据处理方法及装置、芯片、设备、存储介质,能够降低数据传输功耗。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提出一种数据处理装置,所述装置中部署计算单元阵列,所述计算单元阵列中包括多个深度可分离卷积计算单元,每一个深度可分离卷积计算单元包括:多条乘累加器、多个中间结果累加器和一个多路选择器;其中,每条乘累加器的输出端与一个中间结果累加器的输入端连接,所述一个多路选择器的输入端分别与所述多条乘累加器的输出端和所述多个中间结果累加器的输出端连接;
所述多条乘累加器,用于执行一个通道输入特征数据中多个卷积窗口数据的乘累加运算;
所述多个中间结果累加器,用于分别对对应的乘累加器产生的中间结果进行累加运算;
所述一个多路选择器,用于选择输出所述每条乘累加器的运算结果、或选择输出每个中间结果累加器的累加结果。
第二方面,本申请实施例提出一种数据处理方法,应用于上述数据处理装置中,所述方法包括:
按照一个深度可分离卷积计算单元的乘累加器数量,从特征数据存储器中的每一个通道输入特征数据中确定多个卷积窗口数据;
将所述多个卷积窗口数据输入对应的一个深度可分离卷积计算单元中进行深度可分离卷积计算,得到输出特征数据;并将所述输出特征数据输出至所述特征数据存储器中。
第三方面,本申请实施例提出一种芯片,所述芯片包括如上述数据处理装置。
第四方面,本申请实施例提出一种计算设备,所述设备包括:处理器、存储器及通信总线;所述通信总线,用于实现所述处理器与所述存储器之间的通信连接;所述处理器执行存储器存储的运行程序时实现上述数据处理方法。
第五方面,本申请实施例提出一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
本申请实施例提供了一种数据处理方法及装置、芯片、设备、存储介质,该数据处理装置中部署计算单元阵列,计算单元阵列中包括多个深度可分离卷积计算单元,每一个深度可分离卷积计算单元包括:多条乘累加器、多个中间结果累加器和一个多路选择器;其中,每条乘累加器的输出端与一个中间结果累加器的输入端连接,一个多路选择器的输入端分别与多条乘累加器的输出端和多个中间结果累加器的输出端连接;多条乘累加器,用于一次执行一个通道输入特征数据中多个卷积窗口数据的乘累加运算;多个中间结果累加器,用于分别对对应的乘累加器产生的中间结果进行累加运算;一个多路选择器,用于选择输出每条乘累加器的运算结果、或选择输出每个中间结果累加器的累加结果。采用上述数据处理装置实现方案,提出了一种深度可分离卷积计算单元,该深度可分离卷积计算单元中包括乘累加器、中间结果累加器和多路选择器,能够在深度可分离卷积计算单元内部实现卷积结果的累加操作,缩短了数据传输路径,进而降低了数据传输功耗。
附图说明
图1为一种深度可分离卷积计算过程的示意图;
图2为一种现有深度可分离卷积的硬件部署架构示意图;
图3为一种现有的卷积窗口数据映射到计算单元的数据映射方式示意图;
图4为一种现有的对角线映射方式示意图;
图5为本申请实施例提供的一种数据处理装置的结构示意图;
图6为本申请实施例提供的一种示例性的在计算单元阵列的对角线上设置多个深度可分离卷积计算单元的结构示意图;
图7为本申请实施例提供的一种示例性的在计算单元阵列的最右侧设置一列深度可分离卷积计算单元的结构示意图;
图8为本申请实施例提供的一种示例性的深度可分离卷积计算单元的结构示意图;
图9为本申请实施例提供的一种示例性的卷积窗口数据映射到计算单元的数据映射方式示意图;
图10为本申请实施例提供的一种示例性的将卷积窗口数据进行数据展平并送入到深度可分离卷积计算单元的示意图;
图11为本申请实施例提供的一种示例性的将5*5的卷积窗口数据分次映射到深度可分离卷积计算单元并进行深度可分离卷积计算的流程示意图;
图12为本申请实施例提供的一种数据处理方法的流程图;
图13为本申请实施例提供的一种芯片的结构示意图;
图14为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。还需要指出,本申请实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
深度可分离卷积的计算过程如图1所示,k0-k3为4个通道的卷积核,f0-f3为4个通道输入特征数据中的4个通道卷积窗口数据,每个通道的卷积核数据分别与对应的每个通道的卷积窗口数据进行DWC操作,之后直接输出特征数据,无需进行输入通道方向上的累加。
目前,对深度可分离卷积的硬件部署架构如图2所示,其中每一个方框表示一个计算单元,纵向上,每一个计算单元的累加结果会向上传入下一个计算单元,并与下一个计算单元的结果进行累加继续向上传递,直到传送到计算单元阵列的顶部的累加器中,对于单个计算单元来说,卷积窗口数据映射到计算单元的数据映射方式可参考图3,图3为3*3卷积的数据映射方式,对于一个计算单元来说,输入图像中框1代表一个搜索窗口区域,每个计算单元可以同时处理一个搜索窗口区域内的数据,其中可以包含16个3*3的卷积计算窗口,16个3*3卷积窗口的数据被读出后,进行数据展平操作,并传输至计算单元中,每个计算单元中预存有卷积操作所需要的权重信息,每个计算单元共享一个权重核,即图3中的w0,计算单元接收到卷积窗口数据之后,便可以进行乘法和累加操作,根据卷积操作的特点,4*10大小的卷积窗口数据可以生成2*8个输出数据。如图3中的框2所示,尺寸为2*8=16。
由于深度可分离卷积在输入通道方向不存在累加行为,而图2的卷积加速引擎会在纵向上会对各个输入通道的卷积结果进行累加,所以在进行数据映射的时候,需要按照对角线的方式进行映射,如图4所示,通道0的输入特征数据传输至计算单元阵列中的计算单元0中,计算单元0将卷积结果传输至ACC0中进行累加,ACC0将累加结果返回特征数据存储单元静态随机存取存储器(Static Random-Access Memory,SRAM)中;通道1的输入特征数据传输至计算单元阵列中的计算单元1中,计算单元1将卷积结果传输至ACC1中进行累加,ACC1将累加结果返回特征数据存储单元SRAM中;通道2的输入特征数据传输至计算单元阵列中的计算单元2中,计算单元2将卷积结果传输至ACC2中进行累加,ACC2将累加结果返回特征数据存储单元SRAM中;通道3的输入特征数据传输至计算单元阵列中的计算单元3中,计算单元3将卷积结果传输至ACC3中进行累加,ACC3将累加结果返回特征数据存储单元SRAM中;这种镜面反射的路径目的在于保证每一个ACC的累加结果在返回SRAM的路径长度相同,能够在同一时间抵达SRAM。
采用以上方案虽然从功能上可以实现深度可分离卷积,并且可以使用一套硬件架构同时支持传统卷积和深度可分离卷积,但是对于深度可分离卷积来说,为了保持与传统卷积相同的数据传输路径,每个计算单元的卷积结果都需要送入ACC中,然后再返回,导致每次数据传输的路径较长,这种方式所带来的数据传输功耗较大。虽然深度可分离卷积和传统卷积共用一套计算单元阵列,但是对于深度可分离卷积来说,传统卷积的数据传输路径过于浪费。
为解决上述问题,本申请实施例提供一种数据处理装置1,如图5所示,该装置1中部署计算单元阵列10,所述计算单元阵列中包括多个深度可分离卷积计算单元100,每一个深度可分离卷积计算单元100包括:多条乘累加器1001、多个中间结果累加器1002和一个多路选择器1003;其中,每条乘累加器1001的输出端与一个中间结果累加器1002的输入端连接,所述一个多路选择器1003的输入端分别与所述多条乘累加器1001的输出端和所述多个中间结果累加器1002的输出端连接;
所述多条乘累加器1001,用于执行一个通道输入特征数据中多个卷积窗口数据的乘累加运算;
所述多个中间结果累加器1002,用于分别对对应的乘累加器产生的中间结果进行累加运算;
所述一个多路选择器1003,用于选择输出所述每条乘累加器的运算结果、或选择输出每个中间结果累加器的累加结果。
本申请实施例提出的一种数据处理装置适用于深度可分离卷积计算的场景中。
参考图5,在本申请实施例中,计算单元阵列10由深度可分离卷积计算单元100和非深度可分离卷积计算单元101组成,若执行深度可分离卷积运算,则启动多个深度可分离卷积计算单元并断开非深度可分离卷积计算单元;相应的,若不执行深度可分离卷积运算,则断开多个深度可分离卷积计算单元并启动非深度可分离卷积计算单元。
在本申请实施例中,多个深度可分离卷积计算单元可以为计算单元阵列的对角线上的深度可分离卷积计算单元、或者为计算单元阵列中的至少一列深度可分离卷积计算单元;其中,至少一列深度可分离卷积计算单元可以处于计算单元阵列中、距特征数据存储器最近的至少一列。具体的多个深度可分离卷积计算单元在计算单元阵列中的排布方式可以根据实际情况进行选择,本申请实施例不做具体的限定。
示例性的,在计算单元阵列的对角线上设置多个深度可分离卷积计算单元(PE1),剩余位置设置非深度可分离卷积计算单元(PE2)的方式如图6所示,但是由于深度可分离卷积计算单元内部增加了部分优化深度可分离卷积计算逻辑,会使得深度可分离卷积计算单元的面积大于非深度可分离卷积计算单元的面积,在计算单元阵列的对角线上设置多个深度可分离卷积计算单元的方式会存在布线布局不规整、面积利用率下降的问题,增加了后期布线的难度。
示例性的,在计算单元阵列的最右侧的一列设置一列深度可分离卷积计算单元(PE1),剩余位置设置非深度可分离卷积计算单元(PE2)的方式如图7所示,能够使得布线布局规整,进而降低了布局布线的难度。
在本申请实施例中,深度可分离卷积计算单元包括多条乘累加器、多个中间结果累加器和一个多路选择器,如图8所示,每一条乘累加器的输出端连接一个中间结果累加器的输入端,每一条乘累加器的输出端和每个中间结果累加器的输出端还与多路选择器的输入端连接。由于深度可分离卷积计算单元内部设置有中间结果累加器,在卷积窗口数据量大于乘累加器中的乘法器数量时,能够将卷积窗口数据划分为多组输入数据,并分次传输至深度可分离卷积计算单元、利用中间结果累加器进行卷积结果的累加,进而得到不同尺寸的输出特征数据。故,深度可分离卷积计算单元可以处理不同尺寸的卷积核数据。
需要说明的是,每个乘累加器包括多个乘法器和一个加法器,一个加法器用于将多个乘法器中的运算结果进行叠加,得到卷积运算的运算结果。
需要说明的是,若深度可分离卷积计算单元只需执行一次乘累加操作即可得到最终的输出特征数据,则乘累加器无需向中间结果累加器输出中间结果,此时多路选择器选择输出乘累加器的运算结果;若深度可分离卷积计算单元需要执行多次乘累加操作才能得到输出特征数据,则乘累加器将卷积计算产生的中间结果输入中间结果累加器进行累加操作,此时多路选择器选择输出中间结果累加器的累加结果。
可选的,所述装置还包括:特征数据存储器;所述特征数据存储器中包括多通道输入特征数据;所述特征数据存储器分别与每个深度可分离卷积计算单元中的多条乘累加器的输入端和一个多路选择器的输出端连接;
所述特征数据存储器,用于将每一个通道输入特征数据的多个卷积窗口数据分别输入一个深度可分离卷积计算单元的多条乘累加器中;
所述一个多路选择器,还用于选择输出所述每条乘累加器的运算结果至所述特征数据存储器、或选择输出每个中间结果累加器的累加结果至所述特征数据存储器。
在本申请实施例中,特征数据存储器中包括多通道输入特征数据,特征数据存储器可以将每个通道输入特征数据分别输入一个深度可分离卷积计算单元中,参考图9,特征数据存储器将通道0的输入特征数据传输至深度可分离卷积计算单元0中执行深度可分离卷积计算,并将卷积计算结果返回特征数据存储器;特征数据存储器将通道1的输入特征数据传输至深度可分离卷积计算单元1中执行深度可分离卷积计算,并将卷积计算结果返回特征数据存储器;特征数据存储器将通道2的输入特征数据传输至深度可分离卷积计算单元2中执行深度可分离卷积计算,并将卷积计算结果返回特征数据存储器;特征数据存储器将通道3的输入特征数据传输至深度可分离卷积计算单元3中执行深度可分离卷积计算,并将卷积计算结果返回特征数据存储器。进一步地,若特征数据存储器中还存在通道4的输入特征数据,则在深度可分离卷积计算单元0在处理完通道0的输入特征数据后,特征数据存储器将通道4的输入特征数据传输至深度可分离卷积计算单元4中执行深度可分离卷积计算,以此类推,直至完成所有通道的输入特征数据的深度可分离卷积计算。需要说明的是,通道4的输入特征数据和深度可分离卷积计算单元4并未在图9中示出。
可选的,所述装置还包括:处于所述特征数据存储器和所述深度可分离卷积计算单元之间的数据展平单元;
所述数据展平单元,用于按照乘累加器中的乘法器数量,将每一个卷积窗口数据划分为至少一组卷积窗口数据;并分次将所述至少一组卷积窗口数据输入每一个卷积窗口数据对应的乘累加器中;
所述每一个卷积窗口数据对应的乘累加器,用于对至少一组卷积窗口数据执行至少一次乘累加运算;
所述每一个卷积窗口数据对应的中间结果累加器,用于若将每一个卷积窗口数据划分为多组卷积窗口数据,则将执行每一次乘累加运算产生的中间结果进行累加;
所述每一个卷积窗口数据对应的多路选择器,用于若将每一个卷积窗口数据划分为一组卷积窗口数据,则选择输出对应的乘累加器的运算结果至所述特征数据存储器;若将每一个卷积窗口数据划分为多组卷积窗口数据,则选择输出对应的中间结果累加器的累加结果至所述特征数据存储器。
以5*5卷积核为例,每个卷积窗口数据需要进行数据展平并送入到深度可分离卷积计算单元中,如图10所示,每一个卷积窗口需要5*5=25次的乘法操作,而每个深度可分离卷积计算单元中每条乘累加器含有9个乘法器,所以需要把卷积窗口数据分为三段,分别是9个数据,9个数据以及7个数据。由于一个深度可分离卷积计算单元中包括16条乘累加器,故,每次输入16组卷积窗口数据到深度可分离卷积计算单元,分三次输入以完成对卷积窗口数据的深度可分离卷积计算,第一次输入16组第一段卷积窗口数据到深度可分离卷积计算单元,第二次输入16组第二段卷积窗口数据到深度可分离卷积计算单元,第三次输入16组第三段卷积窗口数据到深度可分离卷积计算单元;之后三次卷积结果在深度可分离卷积计算单元内部的中间结果累加器上实现累加。
参考图11,将5*5的卷积窗口数据分次映射到深度可分离卷积计算单元并进行深度可分离卷积计算的过程具体为:一个5*5的卷积窗口数据包含25个点,由于一条乘累加器包含9个乘法器,所以需要三次将单个卷积窗口数据进行数据映射,在T0时刻,首先把25个数据中的前9个数据送入到乘累加器0,这9个数据与权重数据的卷积结果是P0,然后把P0送入ACC模块中,在T1时刻,把中间9个数据送入到乘累加器0,这9个数据与权重数据的卷积结果是P1,然后把P1送入ACC模块中与之前的P0相加,ACC继续暂存结果P0+P1,在T2时刻把最后的7个数据送入到乘累加器0,这7个数据与权重数据的卷积结果是P2,所以在T2时刻,ACC的结果是P0+P1+P2。经过这三个时钟周期之后,5*5的卷积窗口数据的卷积结果计算完成,可以通过多路选择器选择ACC的累加结果作为输出。
以上举例说明了5*5卷积窗口的计算过程,而对于3*3深度可分离卷积来说,由于每一个卷积窗口只需要9次的乘法操作,与一条乘累加器的乘法器数量相同,所以只需要一个时钟周期就可以完成一个卷积窗口的深度可分离卷积运算,此时可以通过多路选择器选择乘累加器的运算结果作为输出。
可以理解的是,本申请提出了一种深度可分离卷积计算单元,该深度可分离卷积计算单元中包括乘累加器、中间结果累加器和多路选择器,能够在深度可分离卷积计算单元内部实现卷积结果的累加操作,缩短了数据传输路径,进而降低了数据传输功耗。
基于上述实施例,本申请实施例还提出一种数据处理方法,应用于上述数据处理装置1中,如图12所示,该方法可以包括:
S101、按照一个深度可分离卷积计算单元的乘累加器数量,从特征数据存储器中的每一个通道输入特征数据中确定多个卷积窗口数据。
S102、将多个卷积窗口数据输入对应的一个深度可分离卷积计算单元中进行深度可分离卷积计算,得到输出特征数据;并将输出特征数据输出至特征数据存储器中。
在本申请实施例中,在从特征数据存储器中的每一个通道输入特征数据中确定多个卷积窗口数据之后,按照每个乘累加器的乘法器数量,将每一个卷积窗口数据划分为至少一组卷积窗口数据;并利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的乘累加器,对至少一组卷积窗口数据执行至少一次乘累加运算;之后利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的中间结果累加器,将执行每一次乘累加运算产生的中间结果进行累加;利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的多路选择器,若将每一个卷积窗口数据划分为多组卷积窗口数据,则选择输出对应的乘累加器的运算结果至特征数据存储器;若将每一个卷积窗口数据划分为多组卷积窗口数据,则选择输出对应的中间结果累加器的累加结果至特征数据存储器。
需要说明的是,若每一个卷积窗口数据的数据量小于或者等于乘累加器的乘法器数量,则将每一个卷积窗口数据划分为一组卷积窗口数据;若每一个卷积窗口数据的数据量大于乘累加器的乘法器数量,则将每一个卷积窗口数据划分为多组卷积窗口数据。
需要说明的是,将每一个卷积窗口数据划分为多组卷积窗口数据的划分方式可以按照乘法器数量进行划分,如针对于9个乘法器,将5*5的卷积窗口数据划分为9、9、7这三组;还可以在不超出乘法器数量的前提下,将卷积窗口数据进行均分,得到多组卷积窗口数据,如针对于9个乘法器,将4*4的卷积窗口数据划分为8、8这两组,具体的划分方式可以根据实际情况进行选择,本申请实施例不做具体的限定。
可以理解的是,本申请提出了一种深度可分离卷积计算单元,该深度可分离卷积计算单元中包括乘累加器、中间结果累加器和多路选择器,能够在深度可分离卷积计算单元内部实现卷积结果的累加操作,而无需经过计算单元阵列中的累加器,缩短了数据传输路径,进而降低了数据传输功耗。
基于上述实施例,本申请实施例还提出一种芯片2,如图13所示,该芯片2包括上述数据处理装置1。
基于上述实施例,本申请实施例还提供一种计算设备3,如图14所示,所述设备3包括:处理器30、存储器31及通信总线32;上述处理器30可以为特定用途集成电路(ASIC,Application Specific Integrated Circuit)、数字信号处理器(DSP,Digital SignalProcessor)、数字信号处理图像处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑图像处理装置(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,Field Programmable Gate Array)、CPU、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
所述通信总线32,用于实现所述处理器30与所述存储器31之间的通信连接;所述处理器30执行存储器31存储的运行程序时实现以下数据处理方法:
按照一个深度可分离卷积计算单元的乘累加器数量,从特征数据存储器中的每一个通道输入特征数据中确定多个卷积窗口数据;将所述多个卷积窗口数据输入对应的一个深度可分离卷积计算单元中进行深度可分离卷积计算,得到输出特征数据;并将所述输出特征数据输出至所述特征数据存储器中。
进一步地,上述处理器30,还用于按照每个乘累加器的乘法器数量,将每一个卷积窗口数据划分为至少一组卷积窗口数据;利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的乘累加器,对所述至少一组卷积窗口数据执行至少一次乘累加运算;利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的中间结果累加器,将执行每一次乘累加运算产生的中间结果进行累加;利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的多路选择器,若将每一个卷积窗口数据划分为一组卷积窗口数据,则选择输出对应的乘累加器的运算结果至所述特征数据存储器;若将每一个卷积窗口数据划分为多组卷积窗口数据,则选择输出对应的中间结果累加器的累加结果至所述特征数据存储器。
本申请实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于计算设备中,该计算机程序实现如上述数据处理方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

Claims (11)

1.一种数据处理装置,其特征在于,所述装置中部署计算单元阵列,所述计算单元阵列中包括多个深度可分离卷积计算单元,每一个深度可分离卷积计算单元包括:多条乘累加器、多个中间结果累加器和一个多路选择器;其中,每条乘累加器的输出端与一个中间结果累加器的输入端连接,所述一个多路选择器的输入端分别与所述多条乘累加器的输出端和所述多个中间结果累加器的输出端连接;
所述多条乘累加器,用于执行一个通道输入特征数据中多个卷积窗口数据的乘累加运算;
所述多个中间结果累加器,用于分别对对应的乘累加器产生的中间结果进行累加运算;
所述一个多路选择器,用于选择输出所述每条乘累加器的运算结果、或选择输出每个中间结果累加器的累加结果。
2.根据权利要求1所述的装置,其特征在于,所述多个深度可分离卷积计算单元为所述计算单元阵列中的至少一列深度可分离卷积计算单元。
3.根据权利要求2所述的装置,其特征在于,所述至少一列深度可分离卷积计算单元处于所述计算单元阵列中、距特征数据存储器最近的至少一列。
4.根据权利要求1所述的装置,其特征在于,所述装置还包括:特征数据存储器;所述特征数据存储器中包括多通道输入特征数据;所述特征数据存储器分别与每个深度可分离卷积计算单元中的多条乘累加器的输入端和一个多路选择器的输出端连接;
所述特征数据存储器,用于将每一个通道输入特征数据的多个卷积窗口数据分别输入一个深度可分离卷积计算单元的多条乘累加器中;
所述一个多路选择器,还用于选择输出所述每条乘累加器的运算结果至所述特征数据存储器、或选择输出每个中间结果累加器的累加结果至所述特征数据存储器。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:处于所述特征数据存储器和所述深度可分离卷积计算单元之间的数据展平单元;
所述数据展平单元,用于按照乘累加器中的乘法器数量,将每一个卷积窗口数据划分为至少一组卷积窗口数据;并分次将所述至少一组卷积窗口数据输入每一个卷积窗口数据对应的乘累加器中;
所述每一个卷积窗口数据对应的乘累加器,用于对至少一组卷积窗口数据执行至少一次乘累加运算;
所述每一个卷积窗口数据对应的中间结果累加器,用于若将每一个卷积窗口数据划分为多组卷积窗口数据,则将执行每一次乘累加运算产生的中间结果进行累加;
所述每一个卷积窗口数据对应的多路选择器,用于若将每一个卷积窗口数据划分为一组卷积窗口数据,则选择输出对应的乘累加器的运算结果至所述特征数据存储器;若将每一个卷积窗口数据划分为多组卷积窗口数据,则选择输出对应的中间结果累加器的累加结果至所述特征数据存储器。
6.根据权利要求1所述的装置,其特征在于,所述计算单元阵列还包括:非深度可分离卷积计算单元;所述装置还用于在执行深度可分离卷积运算的情况下,启动所述多个深度可分离卷积计算单元,并断开所述非深度可分离卷积计算单元。
7.一种数据处理方法,其特征在于,应用于权利要求1-5任一项所述的数据处理装置中,所述方法包括:
按照一个深度可分离卷积计算单元的乘累加器数量,从特征数据存储器中的每一个通道输入特征数据中确定多个卷积窗口数据;
将所述多个卷积窗口数据输入对应的一个深度可分离卷积计算单元中进行深度可分离卷积计算,得到输出特征数据;并将所述输出特征数据输出至所述特征数据存储器中。
8.根据权利要求7所述的方法,其特征在于,所述将所述多个卷积窗口数据输入对应的一个深度可分离卷积计算单元中进行深度可分离卷积计算,得到输出特征数据;并将所述输出特征数据输出至所述特征数据存储器中,包括:
按照每个乘累加器的乘法器数量,将每一个卷积窗口数据划分为至少一组卷积窗口数据;
利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的乘累加器,对所述至少一组卷积窗口数据执行至少一次乘累加运算;
利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的中间结果累加器,将执行每一次乘累加运算产生的中间结果进行累加;
利用一个深度可分离卷积计算单元中、每一个卷积窗口数据对应的多路选择器,若将每一个卷积窗口数据划分为一组卷积窗口数据,则选择输出对应的乘累加器的运算结果至所述特征数据存储器;若将每一个卷积窗口数据划分为多组卷积窗口数据,则选择输出对应的中间结果累加器的累加结果至所述特征数据存储器。
9.一种芯片,其特征在于,所述芯片包括如权利要求1-6任一项所述的数据处理装置。
10.一种计算设备,其特征在于,所述设备包括:处理器、存储器及通信总线;所述通信总线,用于实现所述处理器与所述存储器之间的通信连接;所述处理器执行存储器存储的运行程序时实现如权利要求7-8任一项所述的方法。
11.一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求7-8任一项所述的方法。
CN202210027275.9A 2022-01-11 2022-01-11 一种数据处理方法及装置、芯片、设备、存储介质 Pending CN116484925A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210027275.9A CN116484925A (zh) 2022-01-11 2022-01-11 一种数据处理方法及装置、芯片、设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210027275.9A CN116484925A (zh) 2022-01-11 2022-01-11 一种数据处理方法及装置、芯片、设备、存储介质

Publications (1)

Publication Number Publication Date
CN116484925A true CN116484925A (zh) 2023-07-25

Family

ID=87214195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210027275.9A Pending CN116484925A (zh) 2022-01-11 2022-01-11 一种数据处理方法及装置、芯片、设备、存储介质

Country Status (1)

Country Link
CN (1) CN116484925A (zh)

Similar Documents

Publication Publication Date Title
US11868426B2 (en) Hardware implementation of convolutional layer of deep neural network
CN108182471B (zh) 一种卷积神经网络推理加速器及方法
US11556613B2 (en) Methods and systems for implementing a convolution transpose layer of a neural network
CN112214726B (zh) 运算加速器
EP3901835A1 (en) Configurable hardware to implement a convolutional neural network
US5880981A (en) Method and apparatus for reducing the power consumption in a programmable digital signal processor
US20210182025A1 (en) Accelerating 2d convolutional layer mapping on a dot product architecture
US8112467B2 (en) Computationally efficient mathematical engine
WO2023065983A1 (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
WO2017106603A1 (en) System and methods for computing 2-d convolutions and cross-correlations
EP0817006A2 (en) Parallel multiply accumulate array circuit
EP3633559A1 (en) Information processing apparatus, information processing method, non-transitory computer-readable storage medium
CN110796229B (zh) 一种实现卷积运算的装置及方法
CN111222090B (zh) 卷积计算模块、神经网络处理器、芯片和电子设备
CN116484925A (zh) 一种数据处理方法及装置、芯片、设备、存储介质
CN112116071A (zh) 神经网络计算方法、装置、可读存储介质以及电子设备
KR20240068634A (ko) 깊이별 콘볼루션들을 위한 메모리 병목 현상들의 제거
CN110704799B (zh) 一种数据处理设备及系统
CN115759212A (zh) 卷积运算电路及方法、神经网络加速器和电子设备
CN115081600A (zh) 执行Winograd卷积的变换单元、集成电路装置及板卡
CN113627587A (zh) 一种多通道式卷积神经网络加速方法及装置
CN115081602A (zh) 执行Winograd卷积的计算装置、集成电路装置及板卡
CN117332825A (zh) 一种数据处理方法及装置、芯片、存储介质
CN116009813A (zh) 一种数据处理方法及装置、存储介质
CN118194951A (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