CN110009103A - 一种深度学习卷积计算的方法和装置 - Google Patents
一种深度学习卷积计算的方法和装置 Download PDFInfo
- Publication number
- CN110009103A CN110009103A CN201910231433.0A CN201910231433A CN110009103A CN 110009103 A CN110009103 A CN 110009103A CN 201910231433 A CN201910231433 A CN 201910231433A CN 110009103 A CN110009103 A CN 110009103A
- Authority
- CN
- China
- Prior art keywords
- target data
- convolutional calculation
- sram
- stored
- characteristic pattern
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 245
- 238000013135 deep learning Methods 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000003860 storage Methods 0.000 claims abstract description 168
- 238000012545 processing Methods 0.000 claims description 21
- 238000013500 data storage Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 15
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 230000003068 static effect Effects 0.000 claims description 4
- 241001269238 Data Species 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000001537 neural effect Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101000909637 Homo sapiens Transcription factor COE1 Proteins 0.000 description 2
- 102100024207 Transcription factor COE1 Human genes 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 101000909641 Homo sapiens Transcription factor COE2 Proteins 0.000 description 1
- 101000909628 Homo sapiens Transcription factor COE3 Proteins 0.000 description 1
- 101000909629 Homo sapiens Transcription factor COE4 Proteins 0.000 description 1
- 102100024204 Transcription factor COE2 Human genes 0.000 description 1
- 102100024200 Transcription factor COE3 Human genes 0.000 description 1
- 102100024201 Transcription factor COE4 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012549 training 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/08—Learning methods
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)
- Image Analysis (AREA)
Abstract
本发明公开了一种深度学习卷积计算的方法和装置,用以解决现有技术中存在深度学习需要大量SRAM支持卷积计算,运行成本比较高的问题。本发明实施例中,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。如此,对卷积计算的数据进行切分,SRAM中存储的数据只需要是目标数据的数据量的整数倍,SRAM的需求量比较小,降低成本。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种深度学习卷积计算的方法和装置。
背景技术
深度学习的概念源于人工神经网络的研究。随着深度学习研究的深入,卷积神经网络的运算量已经发生了极大地变化,为了满足深度学习中的运算能力的需求,现一般通过下列方式:(一)通过ASIC(Application Specific Integrated Circuits,专用集成电路)提升深度学习速率;(二)通过FPGA(Field-Programmable Gate Array,现场可编程门阵列)提升深度学习速率;(三)通过GPU(Graphics Processing Unit,图形处理器)方案提升深度学习速率。
现有技术中在通过GPU方案提升卷积神经网络计算速度时,通常在一次卷积计算过程中,需要将参与卷积计算的所有的特征图以及对应的权重数据从DDR(Double DataRate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器)中读取出来并存储到SRAM(Static Random-Access Memory,静态随机存取存储器)中,再由SRAM将这些数据传送到卷积计算中心进行计算。
然而SRAM的成本是比较高昂的,在深度学习应用领域的不断发展的今天,深度学习过程中参与卷积计算的数据量是十分庞大的,在一次卷积计算过程中,就需要使用大面积的SRAM支持卷积计算,这样无疑会极大地增加运行成本。
综上所述,现有技术中深度学习需要大量SRAM支持卷积计算,运行成本比较高。
发明内容
本发明提供一种深度学习卷积计算的方法和装置,用以解决现有技术中存在深度学习需要大量SRAM支持卷积计算,运行成本比较高的问题。
第一方面,本发明实施例提供一种深度学习卷积计算的方法,该方法包括:
在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
上述方法,首先在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;随后,将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。如此,本发明实施例中特征图的行像素数据和/或所述特征图的卷积计算权重数据作为目标数据,可以直接明了的看出,SRAM中存储的数据只需要是特征图的行像素数据和/或所述特征图的卷积计算权重数据的数据量的整数倍,相对于现有技术中将所有的卷积计算需要的数据都存储到SRAM中,本发明实施例中SRAM的需求量比较小,故而可以减少SRAM的设置,降低深度学习运行成本。
在一种可能的实施方式中,所述从DDR存储的目标数据中选择至少一个目标数据,包括:
根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据。
上述方法,在从DDR存储的目标数据中选择至少一个目标数据时,根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据,以便于后续根据选择出的目标数据进行读取并存储到SRAM中。
在一种可能的实施方式中,所述根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据,包括:
确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
上述方法,在根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据时,首先确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;随后确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;接着根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;最后根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。如此,在进行卷积计算时,可以依据当前计算中心中正在运行的目标数据的相关信息和当前时刻SRAM中目标数据的存储情况确定需要从DDR中何处开始读取新的目标数据以及对应的读取的目标数据的数目,以便能够完整的实现整个卷积计算过程。
在一种可能的实施方式中,所述将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,包括:
确定选择的目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
上述方法,在将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,首先确定选择的目标数据的存储地址;然后再根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。如此,即可准确的度DDR中读取出需要的目标数据,并将所述目标数据存储到SRAM中,覆盖SRAM中已完成卷积计算的目的数据,或者所述SRAM中的空白存储区域中,以便于后续由SRAM将缓存的目标数据输入计算中心进行卷积计算。
在一种可能的实施方式中,所述确定选择的目标数据的存储地址,包括:
根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。
上述方法,在确定选择的目标数据的存储地址时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。如此,确定出目标数据的存储地址后,才能根据确定的目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,以便后续进行卷积计算。
第二方面,本申请实施例还提供一种深度学习卷积计算的装置,所述装置包括:至少一个处理单元以及至少一个存储单元,该装置具有实现上述第一方面的各实施例的功能。
第三方面,本申请实施例还提供一种深度学习卷积计算的装置,所述装置包括:选择模块以及存储模块,该装置具有实现上述第一方面的各实施例的功能。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中神经卷积网络的结构模型;
图2为现有技术中神经网络卷积进行卷积计算的内部计算过程;
图3为本发明实施例提供的一种特征图像素数据存储方式;
图4为本发明实施例提供的一种卷积核权重系数存储方式;
图5为本发明实施例提供的一种深度学习卷积计算的方法的流程示意图;
图6为本发明实施例中提供一种深度学习卷积计算的方法的详细流程示意图;
图7为本发明实施例提供第一种深度学习卷积计算的装置的结构示意图;
图8为本发明实施例提供第二种深度学习卷积计算的装置的结构示意图。
具体实施方式
随着人工智能技术的发展,深度学习由于在图像识别方面的出色表现已成为人工智能识别技术中的一个重要发展方向。
深度学习的概念最初是源于人工神经网络的研究,例如含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
其次,深度学习是机器学习研究中的一个新的领域,是机器学习中一种基于对数据进行表征学习的方法,目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。
在现有的深度学习运用过程总,深度学习的卷积计算都是基于GPU进行的。基于GPU进行深度学习时,一般通过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,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
步骤501,将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
本发明实施例中,首先在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;随后,将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。如此,本发明实施例中以特征图的行像素数据和/或所述特征图的卷积计算权重数据作为目标数据,可以直接明了的看出,SRAM中存储的数据只需要是特征图的行像素数据和/或所述特征图的卷积计算权重数据的数据量的整数倍,相对于现有技术中将所有的卷积计算需要的数据都存储到SRAM中,本发明实施例中SRAM的需求量比较小,故而可以减少SRAM面积的设置,降低成本。
其中,本发明实施例中的SRAM是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持,当电力供应停止时,SRAM储存的数据还是会消失。
DDR=Double Data Rate双倍速率,DDR SDRAM=双倍速率同步动态随机存储器,人们习惯称为DDR。其中,SDRAM是同步动态随机存取存储器。而DDR SDRAM是Double DataRate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系。
下面以图3特征图数据的存储方式和图4中卷积核权重系数存储方式为例,简要说明本发明实施例中卷积计算过程,其中特征图的行分辨率为M,假设SRAM中最大可以存储2个目标数据,每个目标数据包括特征图的一行行像素和该行像素所属的特征图针对某一输出通道的卷积核中的一个权重系数。
在深度学习卷积训练一开始,深度学习卷积计算的加速器装置控制先从DDR中读取第一个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)以及与该特征图对应的输出通道(OUT0)的卷积核的第一个权重系数(Src0_OUT0_COE0);再读取第二个目标数据,包括特征图0第一行像素数据(Src0_line0)以及与特征图对应的输出通道(OUT0)的卷积核的第二个权重系数(Src0_OUT0_COE1),随后一并存储到SRAM中,将SRAM存满;
计算中心完成第一个目标数据的卷积计算后,随后SRAM将第二个目标数据输入计算中心中进行计算,并从DDR中读取第三个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)以及与该特征图对应的输出通道(OUT0)的卷积核的第三个权重系数(Src0_OUT0_COE2),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第一个目标数据;
计算中心完成第二个目标数据的卷积计算后,SRAM将第三个目标数据输入计算中心中进行计算,并从DDR中读取第四个目标数据,其中包括特征图0的第一行像素数据(Src0_line0)以及与该特征图对应的输出通道(OUT0)的卷积核的第四个权重系数(Src0_OUT0_COE3),并存储到SRAM中,覆盖SRAM存储的卷积计算已使用的第二个目标数据;
依次类推,计算中心完成第三个目标数据、……第七个目标数据、第八个目标数据的卷积计算后,计算中心对第九个目标数据进行卷积计算,其中第九个目标数据包括特征图0的第一行像素数据(Src0_line0)以及与该特征图对应的输出通道(OUT0)的卷积核的第9个权重系数(Src0_OUT0_COE8),并从DDR中读取第十个目标数据,其中第十个目标数据包括特征图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存储的目标数据中选择至少一个目标数据,包括:
根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据。
具体实施中,在从DDR存储的目标数据中选择至少一个目标数据时,需要根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据,以便于后续根据选择出的目标数据进行读取并存储到SRAM中。
具体实施中,所述根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据,分为下面四个步骤:
步骤一:确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号。
步骤二:确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目。
步骤三:根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
步骤四:根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
此过程中,首先确定计算中心中正在进行卷积计算目标数据是哪一个目标数据,再确定出SRAM中存储的未进行卷积计算的目标数据的数目,如此即可确定从DDR存储的目标数据中选择的目标数据中的初始目标数据;同时,根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目,如此即可确定从DDR存储的目标数据中选择的目标数据。
例如:当前SRAM中最大可存储6个目标数据时,每完成3个目标数据的卷积计算后,确定需要从DDR存储的目标数据中选择目标数据,此时计算中心中进行卷积计算的目标数据为Src3_line5和Src3_OUT4_COE3;
在选择需要从DDR存储的目标数据读取的目标数据时,首先确定计算中心中进行卷积计算的目标数据中Src3_line5为特征图3的第五行像素数据,目标数据中的Src3_OUT4_COE3为特征图3针对输出通道4进行卷积计算对应的卷积核的第4个权重系数;
随后确定SRAM存储的未进行卷积计算的目标数据的数目为2组,SRAM中存储的进行卷积计算的目标数据的数目3组;
这样,由于当前计算中心计算的目标数据的权重系数是目标数据所属的特征图3针对输出通道4进行卷积计算对应的卷积核的第4个权重系数,则SRAM存储的未进行卷积计算的目标数据分别对应特征图3针对输出通道4进行卷积计算对应的卷积核的第5个权重系数以及特征图3针对输出通道4进行卷积计算对应的卷积核的第6个权重系数,如此已知卷积核共有9个权重参数,特征图3的第五行像素数据针对输出通道4的卷积计算还未完成,则确定从DDR中读取的第一个目标数据包括特征图3的第五行像素数据(Src3_line5)以及特征图3针对输出通道4进行卷积计算对应的卷积核的第7个权重系数(Src3_OUT4_COE6);同时SRAM中已完成卷积计算的目标数据有三个,确定需要从DDR存储的未进行卷积计算的目标数据中选择出3个目标数据;
如此选取出的目标数据分别为:
第一个目标数据:特征图3的第五行像素数据(Src3_line5)以及特征图3针对输出通道4进行卷积计算对应的卷积核的第7个权重系数(Src3_OUT4_COE6);
第二个目标数据:特征图3的第五行像素数据(Src3_line5)以及特征图3针对输出通道4进行卷积计算对应的卷积核的第8个权重系数(Src3_OUT4_COE7);
第三个目标数据:特征图3的第五行像素数据(Src3_line5)以及特征图3针对输出通道4进行卷积计算对应的卷积核的第9个权重系数(Src3_OUT4_COE8)。
在确定出从DDR中选择的目标数据后,还需将这些目标数据有DDR红读取出来,并存储到SRAM中。
可选的,将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,首先确定选择的目标数据的存储地址。
在确定选择的目标数据的存储地址时,首先需要根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址。
对应上面的实施例,此处确定的就是特征图3的特征图像素数据存储地址以及特征图3的对应的所有权重系数编号存储地址。
进一步的,根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。
在此步骤中,将在确定出特征图3的特征图像素数据存储地址以及特征图3的对应的所有权重系数编号存储地址后,再根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,从确定出特征图3的特征图像素数据存储地址以及特征图3的对应的所有权重系数编号存储地址中确定出所述目标数据的存储地址。
最后,将根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
如此,即可准确的从DDR中读取出需要的目标数据,并将所述目标数据存储到SRAM中,覆盖SRAM中已完成卷积计算的目的数据,或者所述SRAM中的空白存储区域中,以便于后续由SRAM将缓存的目标数据输入计算中心进行卷积计算。
如图6所示,本发明实施例中提供一种深度学习卷积计算的方法的详细流程示意图。
步骤600,从DDR中读取若干个目标数据并存储到SRAM中,直至存储满SRAM;
步骤601,将SRAM存储的目标数据中的第一个目标数据传送到计算中心中进行卷积计算;
步骤602,在计算中心中完成该目标数据的卷积计算后,再次将SRAM存储的目标数据中的第一个目标数据传送到计算中心中进行卷积计算;
步骤603,判断是否从DDR存储的未进行卷积计算的目标数据中选择目标数据,如果是则执行步骤604,否则执行步骤603;
步骤604,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
步骤605,确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
步骤606,根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
步骤607,根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目;
步骤608,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
步骤609,根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址;
步骤610,根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
基于同一发明构思,本申请实施例中还提供了一种深度学习卷积计算的装置,由于该装置实施本申请实施例方法中步骤,并且该装置解决问题的原理与该方法相似,因此该终端的实施可以参见系统的实施,重复之处不再赘述。
如图7所示,本发明实施例提供一种深度学习卷积计算的装置,该装置包括:
至少一个处理单元700以及至少一个存储单元701,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
可选的,所述处理单元具体用于:
从DDR存储的目标数据中选择至少一个目标数据时,根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据。
可选的,所述处理单元700具体用于:
根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据时,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
可选的,所述处理单元700具体用于:
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,确定选择的目标数据的存储地址;根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
可选的,所述处理单元700具体用于:
确定选择的目标数据的存储地址时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。
如图8所示,本发明实施例提供一种深度学习卷积计算的装置,该装置包括:
选择模块800,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
存储模块801,将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
可选的,所述选择模块800具体用于:
从DDR存储的目标数据中选择至少一个目标数据时,根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据。
可选的,所述选择模块800具体用于:
根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据时,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
可选的,所述存储模块801具体用于:
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,确定选择的目标数据的存储地址;根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
可选的,所述存储模块801具体用于:
确定选择的目标数据的存储地址时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。
本申请实施例针对深度学习卷积计算的方法还提供一种计算设备可读存储介质,即断电后内容不丢失。该存储介质中存储软件程序,包括程序代码,当程序代码在计算设备上运行时,该软件程序在被一个或多个处理器读取并执行时可实现本申请实施例上面任何一种深度学习卷积计算时的方案。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种深度学习卷积计算的方法,其特征在于,该方法包括:
在计算中心对静态随机存取存储器SRAM存储的至少一个目标数据进行卷积计算后,从双倍速率同步动态随机存储器DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
2.如权利要求1所述的方法,其特征在于,所述从DDR存储的目标数据中选择至少一个目标数据,包括:
根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据。
3.如权利要求2所述的方法,其特征在于,所述根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据,包括:
确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;
确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;
根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;
根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
4.如权利要求1所述的方法,其特征在于,所述将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域,包括:
确定选择的目标数据的存储地址;
根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
5.如权利要求4所述的方法,其特征在于,所述确定选择的目标数据的存储地址,包括:
根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;
根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。
6.一种深度学习卷积计算的装置,其特征在于,该装置包括:
至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行下列过程:
在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
7.如权利要求6所述的装置,其特征在于,所述处理单元具体用于:
从DDR存储的目标数据中选择至少一个目标数据时,根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据。
8.如权利要求7所述的装置,其特征在于,所述处理单元具体用于:
根据预设的计算规则从DDR存储的目标数据中选择至少一个目标数据时,确定计算中心中正在进行卷积计算的目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、计算中心中正在进行的卷积计算对应的输出通道以及计算中心中正在进行的卷积计算的所述目标数据对应的权重编号;确定SRAM中存储的未进行卷积计算的目标数据的数目以及SRAM中存储的进行卷积计算的目标数据的数目;根据确定的所述目标数据所属的特征图的编号、所述目标数据在所属的特征图中的行数、所述卷积计算对应的输出通道以及SRAM中存储的未进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的初始目标数据;根据SRAM中存储的进行卷积计算的目标数据的数目确定从DDR存储的目标数据中选择的目标数据的数目。
9.如权利要求6所述的装置,其特征在于,所述处理单元具体用于:
将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域时,确定选择的目标数据的存储地址;根据确定的所述目标数据的存储地址从DDR存储的目标数据中读取所述目标数据并覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域。
10.如权利要求9所述的装置,其特征在于,所述处理单元具体用于:
确定选择的目标数据的存储地址时,根据特征图的编号和特征图像素数据存储地址之间的对应关系确定选择的目标数据所属的特征图的编号对应的特征图像素数据存储地址,以及根据特征图的编号和权重系数编号存储地址之间的对应关系,确定选择的目标数据所属的特征图的编号对应的权重系数编号存储地址;根据确定的所述目标数据所属的特征图的编号、确定目标数据所属的特征图的编号对应的权重系数编号存储地址、所述目标数据在自身所属的所述特征图中的行数、所述目标数据卷积计算对应的权重系数编号以及当前卷积的输出通道,确定所述目标数据的存储地址。
11.一种深度学习卷积计算的装置,其特征在于,该装置包括:
选择模块,在计算中心对SRAM存储的至少一个目标数据进行卷积计算后,从DDR存储的未进行卷积计算的目标数据中选择至少一个目标数据;
存储模块,将选择的DDR存储的至少一个目标数据覆盖所述SRAM存储的卷积计算已使用的至少一个目标数据或存储到所述SRAM中的空白存储区域;
其中,所述目标数据为特征图的行像素数据和/或所述特征图的卷积计算权重数据。
12.一种计算机可存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910231433.0A CN110009103B (zh) | 2019-03-26 | 2019-03-26 | 一种深度学习卷积计算的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910231433.0A CN110009103B (zh) | 2019-03-26 | 2019-03-26 | 一种深度学习卷积计算的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110009103A true CN110009103A (zh) | 2019-07-12 |
CN110009103B CN110009103B (zh) | 2021-06-29 |
Family
ID=67168148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910231433.0A Active CN110009103B (zh) | 2019-03-26 | 2019-03-26 | 一种深度学习卷积计算的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110009103B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021077427A1 (zh) * | 2019-10-25 | 2021-04-29 | 深圳市大疆创新科技有限公司 | 图像处理方法、设备和可移动平台 |
WO2021147567A1 (zh) * | 2020-01-21 | 2021-07-29 | 北京希姆计算科技有限公司 | 卷积运算方法及芯片 |
CN114202067A (zh) * | 2021-11-30 | 2022-03-18 | 山东产研鲲云人工智能研究院有限公司 | 面向卷积神经网络加速器的带宽优化方法及相关设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2315002A (en) * | 1996-07-01 | 1998-01-14 | Daewoo Electronics Co Ltd | Convolutional interleaver and method for generating address |
CN101697491A (zh) * | 2009-10-15 | 2010-04-21 | 浙江大学 | 一种使用sdram实现时域卷积交织和解交织的方法 |
CN102208005A (zh) * | 2011-05-30 | 2011-10-05 | 华中科技大学 | 一种2-d卷积器 |
CN107392309A (zh) * | 2017-09-11 | 2017-11-24 | 东南大学—无锡集成电路技术研究所 | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 |
CN107704923A (zh) * | 2017-10-19 | 2018-02-16 | 珠海格力电器股份有限公司 | 卷积神经网络运算电路 |
CN107844828A (zh) * | 2017-12-18 | 2018-03-27 | 北京地平线信息技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108108811A (zh) * | 2017-12-18 | 2018-06-01 | 北京地平线信息技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108416430A (zh) * | 2017-02-10 | 2018-08-17 | 耐能股份有限公司 | 卷积神经网络的池化运算装置及方法 |
CN108985450A (zh) * | 2018-06-28 | 2018-12-11 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
CN109324984A (zh) * | 2018-09-14 | 2019-02-12 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
US10241837B2 (en) * | 2016-12-09 | 2019-03-26 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
-
2019
- 2019-03-26 CN CN201910231433.0A patent/CN110009103B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2315002A (en) * | 1996-07-01 | 1998-01-14 | Daewoo Electronics Co Ltd | Convolutional interleaver and method for generating address |
CN101697491A (zh) * | 2009-10-15 | 2010-04-21 | 浙江大学 | 一种使用sdram实现时域卷积交织和解交织的方法 |
CN102208005A (zh) * | 2011-05-30 | 2011-10-05 | 华中科技大学 | 一种2-d卷积器 |
US10241837B2 (en) * | 2016-12-09 | 2019-03-26 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN108416430A (zh) * | 2017-02-10 | 2018-08-17 | 耐能股份有限公司 | 卷积神经网络的池化运算装置及方法 |
CN107392309A (zh) * | 2017-09-11 | 2017-11-24 | 东南大学—无锡集成电路技术研究所 | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 |
CN107704923A (zh) * | 2017-10-19 | 2018-02-16 | 珠海格力电器股份有限公司 | 卷积神经网络运算电路 |
CN107844828A (zh) * | 2017-12-18 | 2018-03-27 | 北京地平线信息技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108108811A (zh) * | 2017-12-18 | 2018-06-01 | 北京地平线信息技术有限公司 | 神经网络中的卷积计算方法和电子设备 |
CN108985450A (zh) * | 2018-06-28 | 2018-12-11 | 中国人民解放军国防科技大学 | 面向向量处理器的卷积神经网络运算向量化方法 |
CN109324984A (zh) * | 2018-09-14 | 2019-02-12 | 北京地平线机器人技术研发有限公司 | 在卷积运算中使用循环寻址的方法和装置 |
CN110009644A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种特征图行像素分段的方法和装置 |
Non-Patent Citations (3)
Title |
---|
AVISHEK BISWAS等: "Conv-RAM: An energy-efficient SRAM with embedded convolution computation for low-power CNN-based machine learning applications", 《2018 IEEE INTERNATIONAL SOLID - STATE CIRCUITS CONFERENCE - (ISSCC)》 * |
BISWAS A等: "CONV-SRAM: An Energy-Efficient SRAM With In-Memory Dot-Product Computation for Low-Power Convolutional Neural Networks", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》 * |
黄戈等: "SOC系统中高效的卷积解交织实现结构", 《电视技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021077427A1 (zh) * | 2019-10-25 | 2021-04-29 | 深圳市大疆创新科技有限公司 | 图像处理方法、设备和可移动平台 |
WO2021147567A1 (zh) * | 2020-01-21 | 2021-07-29 | 北京希姆计算科技有限公司 | 卷积运算方法及芯片 |
CN114202067A (zh) * | 2021-11-30 | 2022-03-18 | 山东产研鲲云人工智能研究院有限公司 | 面向卷积神经网络加速器的带宽优化方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110009103B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110009103A (zh) | 一种深度学习卷积计算的方法和装置 | |
CN108510194A (zh) | 风控模型训练方法、风险识别方法、装置、设备及介质 | |
CN111176758B (zh) | 配置参数的推荐方法、装置、终端及存储介质 | |
CN108427989B (zh) | 一种用于雷达回波外推的深度时空预测神经网络训练方法 | |
CN107578098A (zh) | 基于脉动阵列的神经网络处理器 | |
CN106204468A (zh) | 一种基于ReLU卷积神经网络的图像去噪方法 | |
CN106650928A (zh) | 一种神经网络的优化方法及装置 | |
CN107818367A (zh) | 用于神经网络的处理系统和处理方法 | |
CN110009644A (zh) | 一种特征图行像素分段的方法和装置 | |
CN106951960A (zh) | 一种神经网络及该神经网络的学习方法 | |
CN106056529A (zh) | 一种对用于图片识别的卷积神经网络训练的方法与设备 | |
CN108921789A (zh) | 基于递归残差网络的超分辨率图像重建方法 | |
CN108446694A (zh) | 一种目标检测方法及装置 | |
CN109146061A (zh) | 神经网络模型的处理方法和装置 | |
CN106779057A (zh) | 基于gpu的计算二值神经网络卷积的方法及装置 | |
CN109597965A (zh) | 基于深度神经网络的数据处理方法、系统、终端及介质 | |
CN110853110A (zh) | 一种基于生成对抗网络的图片自动调色方法 | |
JP7504120B2 (ja) | 高分解能なリアルタイムでのアーティスティックスタイル転送パイプライン | |
CN109492761A (zh) | 实现神经网络的fpga加速装置、方法和系统 | |
CN108564541A (zh) | 一种图像处理方法及装置 | |
CN108875917A (zh) | 一种用于卷积神经网络处理器的控制方法及装置 | |
CN108985449A (zh) | 一种对卷积神经网络处理器的控制方法及装置 | |
CN114648724A (zh) | 一种基于生成对抗网络的轻量化高效目标分割与计数方法 | |
CN109345604A (zh) | 图片处理方法、计算机设备和存储介质 | |
CN109359542A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240516 Address after: Room 6227, No. 999, Changning District, Shanghai 200050 Patentee after: Shenlan robot (Shanghai) Co.,Ltd. Country or region after: China Address before: Unit 1001, 369 Weining Road, Changning District, Shanghai, 200336 (9th floor of actual floor) Patentee before: DEEPBLUE TECHNOLOGY (SHANGHAI) Co.,Ltd. Country or region before: China |