CN110009644A - 一种特征图行像素分段的方法和装置 - Google Patents
一种特征图行像素分段的方法和装置 Download PDFInfo
- Publication number
- CN110009644A CN110009644A CN201910233391.4A CN201910233391A CN110009644A CN 110009644 A CN110009644 A CN 110009644A CN 201910233391 A CN201910233391 A CN 201910233391A CN 110009644 A CN110009644 A CN 110009644A
- Authority
- CN
- China
- Prior art keywords
- target data
- pixel
- characteristic pattern
- convolutional calculation
- sram
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Abstract
本发明公开了一种特征图行像素分段的方法和装置,用以解决现有技术中存在深度学习加速器乘法器的数目无法满足卷积计算需求问题。本发明实施例中,判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;对各个像素段进行卷积计算。如此,将特征图行方向上像素进行分段处理,且保证分段后得到的像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,随后再对分段后的像素段分别进行卷积计算,进而完成针对特征图的卷积计算。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种特征图行像素分段的方法和装置。
背景技术
深度学习的概念源于人工神经网络的研究。随着深度学习研究的深入,卷积神经网络的运算量已经发生了极大地变化,为了满足深度学习中的运算能力的需求,现一般通过下列方式:(一)通过ASIC(Application Specific Integrated Circuits,专用集成电路)提升深度学习速率;(2)通过FPGA(Field-Programmable Gate Array,现场可编程门阵列)提升深度学习速率;(三)通过GPU(Graphics Processing Unit,图形处理器)方案提升深度学习速率。
在通过GPU方案提升卷积神经网络计算速度时卷积计算需要将参与卷积计算的所有的特征图以及对应的权重数据从DDR(Double Data Rate Synchronous Dynamic RandomAccess Memory,双倍速率同步动态随机存储器)中读取出来,并存储到SRAM(StaticRandom-Access Memory,静态随机存取存储器)中,再将SRAM中存储的这些数据传送到卷积计算中心进行计算。
然而SRAM的成本是比较高昂的,为了降低成本,可以将卷积计算的数据进行切分,以特征行像素数据为基础单位进行卷积计算。一般的,深度学习加速器中的乘法器的数目是固定的,若以特征行像素数据为基础单位进行卷积计算,则可能存在特征图行像素数目大于深度学习加速器中的乘法器的数目,进而导致无法实现深度学习卷积计算。
综上所述,现有技术中深度学习加速器乘法器的数目无法满足卷积计算需求。
发明内容
本发明提供一种特征图行像素分段的方法和装置,用以解决现有技术中存在深度学习加速器乘法器的数目无法满足卷积计算需求问题。
第一方面,本发明实施例提供一种特征图行像素分段的方法,该方法包括:
判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;
若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;
对各个像素段进行卷积计算。
上述方法,首先判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目,若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,最后对各个像素段进行卷积计算。如此,在特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目时,将特征图行方向上像素以行为单位对行方向上的像素进行分段处理,且保证分段后得到的像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,再对分段后的像素段分别进行卷积计算,深度学习加速器乘法器的数目对拆分后的像素段分别进行处理,以实现特征图行像素的卷积计算,进而完成针对特征图的卷积计算。
在一种可能的实施方式中,所述以行为单位对行方向上的像素进行分段处理,包括:
根据所述第一数目以及所述第二数目,确定像素段的数目;
根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
上述方法,首先根据特征图行方向上像素的第一数目和深度学习加速器处理像素的第二数目确定需要将特征图的行像素分为计算,随后在依据确定出的像素段的数目和深度学习加速器处理像素的第二数目对特征图行方向上像素进行分段处理。如此可以使得分段后的像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,这样一次卷积计算可以完成一段像素段的卷积计算,将行像素的所有的像素段分段都计算完后可以简单求和得到行像素的卷积结果,进而的得到特征图的卷积结果。
在一种可能的实施方式中,所述对各个像素段进行卷积计算,包括:
在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
上述方法,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。如此可以通过对分段后的像素段中的卷积计算确定像素段所属的行像素的卷积计算,进而得到特征图的卷积结果。
在一种可能的实施方式中,所述从DDR存储的目标数据中选择至少一个目标数据,包括:
确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
上述方法,首先确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;并确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;然后根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;并根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。如此即可确定出从DDR存储的目标数据中选择的目标数据,这样才能完成进一步的从DDR中读取所述目标数据。
在一种可能的实施方式中,所述将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,包括:
根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
上述方法中,依据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址,再进一步的根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址,然后确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。如此才可以进一步的将SRAM存储的目标数据输入计算中心,完成卷积计算。
第二方面,本申请实施例还提供一种特征图行像素分段的装置,所述装置包括:至少一个处理单元以及至少一个存储单元,该装置具有实现上述第一方面的各实施例的功能。
第三方面,本申请实施例还提供一种特征图行像素分段的装置,所述装置包括:判定模块、分段模块以及运算模块,该装置具有实现上述第一方面的各实施例的功能。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中神经卷积网络的结构模型;
图2为现有技术中神经网络卷积进行卷积计算的内部计算过程;
图3为本发明实施例提供的一种特征图像素数据存储方式;
图4为本发明实施例提供的一种卷积核权重系数存储方式;
图5为本发明实施例提供的一种对特征图行像素进行分段的示意图;
图6为本发明实施例提供的一种特征图行像素分段的方法的流程示意图;
图7为本发明实施例中提供一种特征图行像素分段的方法的详细流程示意图;
图8为本发明实施例提供第一种特征图行像素分段的装置结构示意图;
图9为本发明实施例提供第二种特征图行像素分段的装置结构示意图。
具体实施方式
随着人工智能技术的发展,深度学习由于在图像识别方面的出色表现已成为人工智能识别技术中的一个重要发展方向。
深度学习的概念最初是源于人工神经网络的研究,例如含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
其次,深度学习是机器学习研究中的一个新的领域,是机器学习中一种基于对数据进行表征学习的方法,目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。
在现有的深度学习运用过程总,深度学习的卷积计算都是基于GUP进行的。基于GUP进行深度学习时,一般通过DDR与SRAM联合构建深度学习加速器装置,在使用时将需要进行卷积计算的所有数据一次性由DDR读取出来并存储到SRAM内。
进一步的,随着人工智能技术的发展,需要运用深度学习卷积计算的数据量越来越庞大,如果仍采用现有技术,将需要进行卷积计算的所有数据一次性由DDR读取出来并存储到设置的SRAM时,则需要大量的SRAM的用于缓存计算数据。然而现有技术下,SRAM成本比较高,使用大面积SRAM无疑将会使得深度学习的成本极大地增加。
为了在保证计算速度的前提下,降低构建深度学习加速器的成本,本发明实施例通过对卷积计算的数据进行划分,将深度学习卷积计算拆分特征图行像素为计算单位进行计算的方式减小使用的SRAM的面积,进而降低成本。
然而,现在特征图的数据是十分丰富的,特征图的分辨率比较高,可能出现深度学习加速器中乘法器能够处理的像素数目小于特征图行像素的数目,进而导致深度学习加速器无法完成该特征图的卷积计算。
针对此问题,本发明实施例中提供一种特征图行像素分段的方法和装置,通过将特征图行方向上像素进行分段处理,使得每一段像素段的像素数目小于深度学习加速器一次计算能够处理的像素的数目,这样将特征图行像素进行分段,对每一像素段分别进行处理,进而完成对特征图卷积计算。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为一种神经卷积网络的结构模型,图中共有3个特征图,分别为A、B以及C;4个输出通道分别为OUT1、OUT2、OUT3以及OUT4,则在进行卷积计算时,特征图A分别针对输出通道OUT1、OUT2、OUT3以及OUT4分别拥有对应的卷积核WA1、WA2、WA3、WA4,同理特征图B分别针对输出通道OUT1、OUT2、OUT3以及OUT4分别拥有对应的卷积核WB1、WB2、WB3、WB4,C分别针对输出通道OUT1、OUT2、OUT3以及OUT4分别拥有对应的卷积核WC1、WC2、WC3、WC4;
如此,由图示可知,最后得到的针对输出通道OUT1的卷积计算结果为A×WA1+B×WB1+C×WC1;
得到的针对输出通道OUT2的卷积计算结果为A×WA2+B×WB2+C×WC2;
得到的针对输出通道OUT3的卷积计算结果为A×WA3+B×WB3+C×WC3;
得到的针对输出通道OUT4的卷积计算结果为A×WA4+B×WB4+C×WC4;
最终得到特征图对A、B、C经过图示神经卷积网络模型深度学习后得到的卷积计算结果为:Y=A×WA1+B×WB1+C×WC1+A×WA2+B×WB2+C×WC2+A×WA3+B×WB3+C×WC3+A×WA4+B×WB4+C×WC4。
如此可以看出,特征图卷积计算的实质时每一个特征图对应所有的输出通道的卷积结果之和。
进一步的,如图2所示,以特征图A针对输出通道OUT1为例,说明特征图针对一个输出通道进行卷积计算的内部计算过程,其中特征图A为5×5的矩阵,卷积核为3×3的矩阵,卷积滑动步长为1。
在特征图A针对输出通道OUT1进行卷积计算时,首先将卷积核与特征图A左上角的3×3个元素进行卷积计算,得到卷积结果为:;
随后按照设定的滑动步长向右侧滑动,并在滑动一个步长值后,继续利用卷积核对滑动后的覆盖的特征图进行卷积计算,……,直至完成卷积核覆盖的特征图的第一部分像素元素均完成卷积计算;随后,进行特征图的第二部分像素元素的卷积计算;
当特征图的所有像素元素都用于卷积计算后,特征图A针对输出通道OUT1的卷积计算完成。
如此可以看出,特征图A针对输出通道OUT1的卷积计算,实质是特征图A中的像素元素与特征图A针对输出通道OUT1的卷积核中权重系数的乘积之和。
基于此,本案明实施例中将深度学习的卷积计算过程进行拆分,将特征图的每一行的行像素数据与卷积核中的各个权重参数分别相乘,再确定所有乘积之和,作为通过所述卷积核对所述特征图进行卷积计算结果。
具体实施中,为了适应本发明实施例中的方案,发明实施例提供了相对应的数据存储格式,具体如图1和图2所示。
参见图3,图示中深度学习加速器的外部DDR被分成X个存储区进行存储(IMAP_MEM);
在进行特征图数据存储时,假设深度学习卷积网络输入特征图数目为N,每个特征图的行分辨率为M(即每个特征图包含有M行像素);
首先,将在第一个存储区(IMAP_MEM0)存储第一特征图的第一行;
随后在第二个存储区(IMAP_MEM1)中存储第二个特征图的第一行;
接着在第三个存储区(IMAP_MEM2)中存储第三个特征图的第一行;
……
当在第X个存储区(IMAM_MEM_X)中存储第X个特征图的第一行后;
接下来,在第一个存储区(IMAP_MEM0)中存储第X+1个特征图的第一行;
……
依次进行下去,直至将所有的输入特征图的第一行的像素数据都存储到外部DDR中;
随后,在类比存储输入特征图的第一行像素的方式,将所有的输入特征图的第二行的像素数据都存储到外部DDR中;
依次类推,直至将所有的输入特征图的每一行像素数据都存储到外部DDR中,即完成了输入特征图的存储。
其中,特征图像素数据的存储方式并不唯一,能够将特征图像素数据按行取出进行计算的其它存储方式亦可以实现本发明实施例中的方案,故上述存储方式仅为举例说明,不对本发明中的方案进行限定。
其次,深度学习的卷积计算时还会有各个输入特征图对应不同输出通道的不同卷积核,用于对输入特征图数据进行卷积计算。
对应的,本发明实施例中也提出了一种适用于本发明实施例的卷积核中的权重系数的存储方式。
图4所示为卷积计算的卷积核为3×3的矩阵为例的卷积核权重系数存储示意图,图中假设输入特征图为32个,输出特征通道为32个,3×3的卷积核的其系数如下:
COE0 | COE1 | COE2 |
COE3 | COE4 | COE5 |
COE6 | COE7 | COE8 |
其中,称COE0为卷积核的第一个权重系数;称COE1为卷积核的第二个权重系数,……,依次类推称COE8为卷积核的第9个权重系数。
由图示可以清晰明了的看出32个输入特征图对应于32个输出通道的32×32×9个权重系数的存储方式。存储方式具体如下:
首先,存储输入特征图1针对输出通道1的卷积核的第一个权重系数,随后存储输入特征图1针对输出通道2的卷积核的第一个权重系数,……,直至将输入特征图1针对输出通道32的卷积核的第一个权重系数;
随后存储输入特征图2针对输出通道1的卷积核的第一个权重系数,随后存储输入特征图2针对输出通道2的卷积核的第一个权重系数,……,直至将输入特征图2针对输出通道32的卷积核的第一个权重系数;
……
依此类推,直至将输入特征图32针对输出通道32的卷积核的第一个权重系数存储完,此时所有卷积核的第一个权重系数存储完毕;
继续存储输入特征图1针对输出通道1的卷积核的第二个权重系数,随后存储输入特征图1针对输出通道2的卷积核的第二个权重系数,……,直至将输入特征图1针对输出通道32的卷积核的第二个权重系数;
随后存储输入特征图2针对输出通道1的卷积核的第二个权重系数,随后存储输入特征图2针对输出通道2的卷积核的第二个权重系数,……,直至将输入特征图2针对输出通道32的卷积核的第二个权重系数;
……
依此类推,直至将输入特征图32针对输出通道32的卷积核的第二个权重系数存储完,此时所有卷积核的第二个权重系数存储完毕;
依据类推,接着存储各个输入特征图针对各个输出通道的卷积核的第二个权重系数……直至将所有卷积核的第九个权重系数存储完毕;
如此,32×32×9个卷积核的权重系数存储完成。
以上所有数据均是存储在DDR中的,在深度学习卷积训练时,需要从DDR中存储的数据中读取出相应的数据缓存到SRAM中,以便于计算中心完成对特征图像素数据的卷积计算。
在将输入特征图像素数据进行拆分存储时,随之建立输入特征图编号与输入特征图像素数据存储地址之间的对应关系;在将卷积核中的各个权重参数拆分存储时,同样建立了输入特征图的编号和权重系数编号存储地址之间的对应关系。如此以便于后续能够按照确定出的存储地址从DDR中读取相应的目标数据。
其中,卷积核的权重系数的存储方式并不唯一,能够顺利读取到每一步卷积计算需要用到的卷积核的权重系数的其它存储方式也可以运用到本发明实施例的方案中,上述存储方式仅为实现本发明实施例的方案的一种可能的实现方式,故上述举例说明不对本发明实施例中的方案进行限定。
在将用于卷积计算的输入特征图像素数据按照上述方式存储到DDR中,且按照上述方式将各个输入特征图对应各个输出通道的卷积核的权重系数分按照上述方式存储到DDR中后,即可通过深度学习加速器对输入特征图像素数据进行卷积计算。
在通过深度学习加速器对输入特征图像素数据进行卷积计算之前,还需要对所述特征图进行分段。
如图5所示,本发明实施例提供一种特征图行像素分段的方法,该方法包括:
步骤500,判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;
步骤501,若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;
步骤502,对各个像素段进行卷积计算。
上述方法,首先判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目,若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,最后对各个像素段进行卷积计算。如此,在特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目时,将特征图行方向上像素以行为单位对行方向上的像素进行分段处理,且保证分段后得到的像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,再对分段后的像素段分别进行卷积计算,深度学习加速器乘法器的数目对拆分后的像素段分别进行处理,以实现特征图行像素的卷积计算,进而完成针对特征图的卷积计算。
步骤501中,在以行为单位对行方向上的像素进行分段处理时,根据所述第一数目以及所述第二数目,确定像素段的数目;根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
上述方法,首先根据特征图行方向上像素的第一数目和深度学习加速器处理像素的第二数目确定需要将特征图的行像素分为计算,随后在依据确定出的像素段的数目和深度学习加速器处理像素的第二数目对特征图行方向上像素进行分段处理。如此可以使得分段后的像素段中包括的像素的数目不大于深度学习加速器处理像素的数目,这样一次卷积计算可以完成一段像素段的卷积计算,将行像素的所有的像素段分段都计算完后可以简单求和得到行像素的卷积结果,进而的得到特征图的卷积结果。
下面给出一种对特征图行像素进行分段的方法:
如图6所示,假设加速器每次只能运算N个像素,特征图一行行像素为L个像素,分段数为M,假设特征图数据为那就需要对图像进行切割时,将特征图一行行像素数目除以加速器能处理的像素的数目,若余数为0,则M=L÷N;
若余数不为0,则M=L÷N+1。
例如:假设加速器每次只能运算32个像素,特征图一行行像素为128个像素,由于特征图行方向上像素的第一数目大于加速器每次处理的像素数目,古确定需要以行为单位对行方向上的像素进行分段处理;
由于128÷32=4,即128能够整除32,故将以行为单位将该特征图行方向上的像素分为4段。
需要说明的是,当特征图行方向上像素的第一数目小于或等于加速器每次处理的像素数目时,可以看做根据加速器每次处理的像素数目将特征图的一整行行像素作为一个分段,也可以看做不对特征图的行像素进行分段处理。
在对特征图行像素进行分段得到若干像素段后,将针对每一个像素段进行卷积计算。
可选的,所述对各个像素段进行卷积计算,包括:
在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
上述方法,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。如此可以通过对分段后的像素段中的卷积计算确定像素段所属的行像素的卷积计算,进而得到特征图的卷积结果。
下面以图3特征图数据的存储方式和图4中卷积核权重系数存储方式以及图6中的分段模型为例,简要说明本发明实施例中卷积计算过程,其中特征图的行分辨率为M,假设SRAM中最大可以存储2个目标数据,每个目标数据包括特征图的一行行像素和该行像素所属的特征图针对某一输出通道的卷积核中的一个权重系数。
在深度学习卷积训练一开始,深度学习卷积计算的加速器装置控制先从DDR中读取第1个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第一个像素段以及与该特征图0对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE0);再读取第2个目标数据,包括特征图0第一行像素数据(Src0_line0)的第二个像素段以及与特征图对应的输出通道(OUT0)的卷积核的第二个权重系数(Src0_OUT0_COE1),随后一并存储到SRAM中,将SRAM存满;
计算中心完成第1个目标数据的卷积计算后,随后将SRAM中的第2个目标数据输入计算中心中进行计算,并从DDR中读取第3个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第三个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第三个权重系数(Src0_OUT0_COE2),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第1个目标数据;
计算中心完成第2个目标数据的卷积计算后,将SRAM中的第3个目标数据输入计算中心中进行计算,并从DDR中读取第4个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第四个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第四个权重系数(Src0_OUT0_COE3),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第2个目标数据;
计算中心完成第3个目标数据的卷积计算后,随后将SRAM中的第4个目标数据输入计算中心中进行计算,并从DDR中读取第5个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)的第二个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE0),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第3个目标数据;
依次类推,计算中心完成第3个目标数据、……第30个目标数据、第31个目标数据的卷积计算后,计算中心对第32个目标数据进行卷积计算,其中第32个目标数据包括特征图0的第一行像素数据(Src0_line0)的第四个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第9个权重系数(Src0_OUT0_COE8),并从DDR中读取第33个目标数据,其中第33个目标数据包括特征图0的第二行像素数据(Src0_line1)的第一个像素段以及与该特征图对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE1),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第八个目标数据;
随后类比特征图0的第一行像素数据的处理方式,对特征图0的每一行行像素数据的处理,完成特征图0针对输出通道OUT0的卷积计算;
再类比特征图0针对输出通道OUT0的卷积计算的处理过程,计算书每一个特征图针对输出通道OUT0的卷积计算结果;
进一步的,类比各个特征图针对输出通道OUT0的卷积计算的过程,完成各个特征图针对其余31个输出通道的卷积计算结果。
其中,上述实施例中为了便于描述,仅以SRAM最多可以存储2个目标数据为例进行说明,具体实现过程中SRAM中可以存储多个目标数据,且具体的SRAM中可以存储的目标数据数目可以根据实际需求进行设定。
再进一步的,当SRAM中可以存储多个目标数据时,深度学习加速器装置可以在进行了多个目标数据的卷积计算后,在一次性从DDR中读取多个目标数据,将覆盖SRAM的存储空间中所有已进行卷积计算的目标数据;也可以在完成一个目标数据的卷积计算后,立即从DDR中读取一个目标数据覆盖所述已完成卷积计算的目标数据。
例如,当SRAM中可以存储8个目标数据时,可以设置每完成4个目标数据的卷积计算,从DDR中读取一次目标数据,一次读取4个目标数据;
也可以设置每完成4个目标数据的卷积计算,从DDR中读取一次目标数据,一次读取1个目标数据,具体实现可以依据具体需要设定,本发明实施例不对此进行限定。
下面将对本发明实施例中从DDR中读取目标数据的过程进行详细说明。
具体实施过程中,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据。
可选的,所述从DDR存储的目标数据中选择至少一个目标数据,包括:
确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
上述方法,首先确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;并确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;然后根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;并根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。如此即可确定出从DDR存储的目标数据中选择的目标数据,这样才能完成进一步的从DDR中读取所述目标数据。
例如:下面以图3特征图数据的存储方式和图4中卷积核权重系数存储方式以及图6中的分段模型为例,当前SRAM中最大可存储6个目标数据时,每完成3个目标数据的卷积计算后,确定需要从DDR存储的目标数据中选择目标数据,此时计算中心中进行卷积计算的目标数据为Src3_line5的第4个像素段和Src3_OUT4_COE3;
在选择需要从DDR存储的目标数据读取的目标数据时,首先确定计算中心中进行卷积计算的目标数据为特征图3的第五行像素数据的第4个像素段,目标数据中的Src3_OUT4_COE3为特征图3针对输出通道4进行卷积计算对应的卷积核的第4个权重系数;
随后确定SRAM存储的未进行卷积计算的目标数据的数目为2组,SRAM中存储的进行卷积计算的目标数据的数目3组;
这样,由于当前计算中心计算的目标数据的权重系数是目标数据所属的特征图3针对输出通道4进行卷积计算对应的卷积核的第4个权重系数,则SRAM存储的未进行卷积计算的目标数据分别对应特征图3针对输出通道4进行卷积计算对应的卷积核的第5个权重系数以及特征图3针对输出通道4进行卷积计算对应的卷积核的第6个权重系数,如此已知卷积核共有9个权重参数,特征图3的第五行像素数据的第4个像素段针对输出通道4的卷积计算还未完成,则确定从DDR中读取的第一个目标数据包括特征图3的第五行像素数据第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第7个权重系数(Src3_OUT4_COE6);同时SRAM中已完成卷积计算的目标数据有三个,确定需要从DDR存储的未进行卷积计算的目标数据中选择出3个目标数据;
如此选取出的目标数据分别为:
第一个目标数据:特征图3的第五行像素数据(Src3_line5)的第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第7个权重系数(Src3_OUT4_COE6);
第二个目标数据:特征图3的第五行像素数据(Src3_line5)的第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第8个权重系数(Src3_OUT4_COE7);
第三个目标数据:特征图3的第五行像素数据(Src3_line5)的第4个像素段以及特征图3针对输出通道4进行卷积计算对应的卷积核的第9个权重系数(Src3_OUT4_COE8)。
在确定出从DDR中选择的目标数据后,还需将这些目标数据有DDR红读取出来,并存储到SRAM中。
可选的,所述将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,包括:
根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
上述方法中,依据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址,再进一步的根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址,然后确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。如此才可以进一步的将SRAM存储的目标数据输入计算中心,完成卷积计算。
如图7所示,本发明实施例中提供一种特征图行像素分段的方法的详细流程示意图。
步骤700,判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目,如果大于,执行步骤701,否则执行步骤703;
步骤701,根据所述第一数目以及所述第二数目,确定像素段的数目;
步骤702,根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理;
步骤703,从DDR中读取若干个目标数据并存储到SRAM中,直至存储满SRAM;
步骤704,将SRAM存储的目标数据中的第一个目标数据传送到计算中心中进行卷积计算;
步骤705,在计算中心中完成该目标数据的卷积计算后,再次将SRAM存储的目标数据中的第一个目标数据传送到计算中心中进行卷积计算;
步骤706,判断是否从DDR存储的未进行卷积计算的目标数据中选择目标数据,如果是则执行步骤704,否则执行步骤703;
步骤707,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
步骤708,确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
步骤709,根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
步骤710,根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目;
步骤711,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
步骤712,根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
步骤713,根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
其中,在对特征图行方向上像素进行分段处理后,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据;
未对特征图行方向上像素进行分段处理时,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
基于同一发明构思,本申请实施例中还提供了一种特征图行像素分段的装置,由于该装置实施本申请实施例方法中步骤,并且该装置解决问题的原理与该方法相似,因此该终端的实施可以参见系统的实施,重复之处不再赘述。
如图8所示,本发明实施例提供一种特征图行像素分段的装置,该装置包括:
至少一个处理单元800以及至少一个存储单元801,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;对各个像素段进行卷积计算。
可选的,所述处理单元800具体用于:
以行为单位对行方向上的像素进行分段处理时,根据所述第一数目以及所述第二数目,确定像素段的数目;根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
可选的,所述处理单元800具体用于:
对各个像素段进行卷积计算时,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
可选的,所述处理单元800具体用于:
从存储器DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据时,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
可选的,所述处理单元800具体用于:
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
如图9所述,本发明实施例提供一种特征图行像素分段的装置,该装置包括:
判定模块900,用于判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;
分段模块901,用于若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;
运算模块902,用于对各个像素段进行卷积计算。
可选的,所述分段模块901具体用于:
以行为单位对行方向上的像素进行分段处理时,根据所述第一数目以及所述第二数目,确定像素段的数目;根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
可选的,所述运算模块902具体用于:
对各个像素段进行卷积计算时,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
可选的,所述运算模块902具体用于:
从存储器DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据时,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
可选的,所述运算模块902具体用于:
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
本申请实施例针对特征图行像素分段的方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本申请实施例上面任何一种特征图行像素分段时的方案。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种特征图行像素分段的方法,其特征在于,该方法包括:
判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;
若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;
对各个像素段进行卷积计算。
2.如权利要求1所述的方法,其特征在于,所述以行为单位对行方向上的像素进行分段处理,包括:
根据所述第一数目以及所述第二数目,确定像素段的数目;
根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
3.如权利要求1所述的方法,其特征在于,所述对各个像素段进行卷积计算,包括:
在计算中心对静态随机存取存储器SRAM存储的至少一个目标数据进行卷积计算后,从双倍速率同步动态随机存储器DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
4.如权利要求3所述的方法,其特征在于,所述从存储器DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据,包括:
确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
5.如权利要求3所述的方法,其特征在于,所述将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,包括:
根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
6.一种特征图行像素分段的装置,其特征在于,该装置包括:
至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;对各个像素段进行卷积计算。
7.如权利要求6所述的装置,其特征在于,所述处理单元具体用于:
以行为单位对行方向上的像素进行分段处理时,根据所述第一数目以及所述第二数目,确定像素段的数目;根据所述第二数目以及确定的所述像素段的数目对特征图行方向上像素进行分段处理。
8.如权利要求6所述的装置,其特征在于,所述处理单元具体用于:
对各个像素段进行卷积计算时,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为像素段的行像素数据和/或所述像素段所属的特征图的卷积计算权重数据。
9.如权利要求8所述的装置,其特征在于,所述处理单元具体用于:
从存储器DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据时,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述目标数据在所属的像素段编号、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
10.如权利要求8所述的装置,其特征在于,所述处理单元具体用于:
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在所属的特征图中的行数所述目标数据在所属的像素段编号、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
11.一种特征图行像素分段的装置,其特征在于,该装置包括:
判定模块,用于判断特征图行方向上像素的第一数目是否大于深度学习加速器处理像素的第二数目;
分段模块,用于若所述第一数目大于所述第二数目,则以行为单位对行方向上的像素进行分段处理,得到多个像素段,其中所述像素段中包括的像素的数目不大于深度学习加速器处理像素的数目;
运算模块,用于对各个像素段进行卷积计算。
12.一种计算机可存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910233391.4A CN110009644B (zh) | 2019-03-26 | 2019-03-26 | 一种特征图行像素分段的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910233391.4A CN110009644B (zh) | 2019-03-26 | 2019-03-26 | 一种特征图行像素分段的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110009644A true CN110009644A (zh) | 2019-07-12 |
CN110009644B CN110009644B (zh) | 2021-02-23 |
Family
ID=67168156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910233391.4A Active CN110009644B (zh) | 2019-03-26 | 2019-03-26 | 一种特征图行像素分段的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110009644B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009103A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种深度学习卷积计算的方法和装置 |
CN111028126A (zh) * | 2019-11-18 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu图像处理卷积过滤的实现方法 |
CN111080507A (zh) * | 2019-11-18 | 2020-04-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090310887A1 (en) * | 2008-06-17 | 2009-12-17 | El-Mahdy Ahmed Hazem Mohamed R | Spatially selective transformation of a spatially varying optical characteristic of an image in an array of pixels |
US7636497B1 (en) * | 2005-12-27 | 2009-12-22 | Advanced Micro Devices, Inc. | Video rotation in a media acceleration engine |
CN104346622A (zh) * | 2013-07-31 | 2015-02-11 | 富士通株式会社 | 卷积神经网络分类器及其分类方法和训练方法 |
CN105139338A (zh) * | 2015-07-24 | 2015-12-09 | 珠海奔图电子有限公司 | 多维查找表的生成方法及装置、图像缩放处理方法及装置 |
CN105869117A (zh) * | 2016-03-28 | 2016-08-17 | 上海交通大学 | 一种针对深度学习超分辨率技术的gpu加速方法 |
CN106548208A (zh) * | 2016-10-28 | 2017-03-29 | 杭州慕锐科技有限公司 | 一种照片图像快速智能风格化方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107506774A (zh) * | 2017-10-09 | 2017-12-22 | 深圳市唯特视科技有限公司 | 一种基于局部注意掩模的分段感知神经网络方法 |
CN108470211A (zh) * | 2018-04-09 | 2018-08-31 | 郑州云海信息技术有限公司 | 一种卷积计算的实现方法、设备和计算机存储介质 |
CN108595379A (zh) * | 2018-05-08 | 2018-09-28 | 济南浪潮高新科技投资发展有限公司 | 一种基于多级缓存的并行化卷积运算方法及系统 |
CN108629406A (zh) * | 2017-03-24 | 2018-10-09 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN108647568A (zh) * | 2018-03-30 | 2018-10-12 | 电子科技大学 | 基于全卷积神经网络的草地退化自动提取方法 |
CN109117187A (zh) * | 2018-08-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 卷积神经网络加速方法及相关设备 |
CN109254946A (zh) * | 2018-08-31 | 2019-01-22 | 郑州云海信息技术有限公司 | 图像特征提取方法、装置、设备及可读存储介质 |
-
2019
- 2019-03-26 CN CN201910233391.4A patent/CN110009644B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636497B1 (en) * | 2005-12-27 | 2009-12-22 | Advanced Micro Devices, Inc. | Video rotation in a media acceleration engine |
US20090310887A1 (en) * | 2008-06-17 | 2009-12-17 | El-Mahdy Ahmed Hazem Mohamed R | Spatially selective transformation of a spatially varying optical characteristic of an image in an array of pixels |
CN104346622A (zh) * | 2013-07-31 | 2015-02-11 | 富士通株式会社 | 卷积神经网络分类器及其分类方法和训练方法 |
CN105139338A (zh) * | 2015-07-24 | 2015-12-09 | 珠海奔图电子有限公司 | 多维查找表的生成方法及装置、图像缩放处理方法及装置 |
CN105869117A (zh) * | 2016-03-28 | 2016-08-17 | 上海交通大学 | 一种针对深度学习超分辨率技术的gpu加速方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN106548208A (zh) * | 2016-10-28 | 2017-03-29 | 杭州慕锐科技有限公司 | 一种照片图像快速智能风格化方法 |
CN108629406A (zh) * | 2017-03-24 | 2018-10-09 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN107506774A (zh) * | 2017-10-09 | 2017-12-22 | 深圳市唯特视科技有限公司 | 一种基于局部注意掩模的分段感知神经网络方法 |
CN108647568A (zh) * | 2018-03-30 | 2018-10-12 | 电子科技大学 | 基于全卷积神经网络的草地退化自动提取方法 |
CN108470211A (zh) * | 2018-04-09 | 2018-08-31 | 郑州云海信息技术有限公司 | 一种卷积计算的实现方法、设备和计算机存储介质 |
CN108595379A (zh) * | 2018-05-08 | 2018-09-28 | 济南浪潮高新科技投资发展有限公司 | 一种基于多级缓存的并行化卷积运算方法及系统 |
CN109117187A (zh) * | 2018-08-27 | 2019-01-01 | 郑州云海信息技术有限公司 | 卷积神经网络加速方法及相关设备 |
CN109254946A (zh) * | 2018-08-31 | 2019-01-22 | 郑州云海信息技术有限公司 | 图像特征提取方法、装置、设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
RICARDO TAPIADOR-MORALES ET AL.: "Event-based Row-by-Row Multi-convolution engine for Dynamic-Vision Feature Extraction on FPGA", 《2018 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN)》 * |
周华坤: "基于NOC结构的卷积神经网络加速器建模", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110009103A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种深度学习卷积计算的方法和装置 |
CN111028126A (zh) * | 2019-11-18 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu图像处理卷积过滤的实现方法 |
CN111080507A (zh) * | 2019-11-18 | 2020-04-28 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 |
CN111080507B (zh) * | 2019-11-18 | 2022-12-06 | 中国航空工业集团公司西安航空计算技术研究所 | 一种面向gpu硬件图像处理卷积过滤系统的tlm微结构 |
CN111028126B (zh) * | 2019-11-18 | 2023-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu图像处理卷积过滤的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110009644B (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109670558B (zh) | 使用深度学习的数字图像完成 | |
US11928595B2 (en) | Method of managing data representation for deep learning, method of processing data for deep learning and deep learning system performing the same | |
CN107862374A (zh) | 基于流水线的神经网络处理系统和处理方法 | |
CN110009644A (zh) | 一种特征图行像素分段的方法和装置 | |
WO2021109876A1 (zh) | 图像处理方法、装置、设备及存储介质 | |
CN113240580A (zh) | 一种基于多维度知识蒸馏的轻量级图像超分辨率重建方法 | |
CN111176820B (zh) | 一种基于深度神经网络的边缘计算任务的分配方法及装置 | |
CN107818367A (zh) | 用于神经网络的处理系统和处理方法 | |
CN107977414A (zh) | 基于深度学习的图像风格迁移方法及其系统 | |
CN106250931A (zh) | 一种基于随机卷积神经网络的高分辨率图像场景分类方法 | |
CN107886167A (zh) | 神经网络运算装置及方法 | |
CN109597965B (zh) | 基于深度神经网络的数据处理方法、系统、终端及介质 | |
CN112163601B (zh) | 图像分类方法、系统、计算机设备及存储介质 | |
US20220335272A1 (en) | Fast sparse neural networks | |
CN110210482B (zh) | 改进类别不平衡的目标检测方法 | |
CN111985597B (zh) | 模型压缩方法及装置 | |
CN107766292A (zh) | 一种神经网络处理方法及处理系统 | |
CN108875917A (zh) | 一种用于卷积神经网络处理器的控制方法及装置 | |
CN108985449A (zh) | 一种对卷积神经网络处理器的控制方法及装置 | |
CN110009103A (zh) | 一种深度学习卷积计算的方法和装置 | |
CN114499660A (zh) | 涡旋光束相位畸变校正方法、系统及通信装置 | |
US20220004849A1 (en) | Image processing neural networks with dynamic filter activation | |
CN107369138A (zh) | 基于高阶统计模型的图像最优化显示方法 | |
CN110047031A (zh) | 一种像素段拼接的方法和装置 | |
CN108875925A (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 |