一种数据处理方法及装置、存储介质与流程

文档序号:28373429发布日期:2022-01-07 20:46阅读:76来源:国知局
一种数据处理方法及装置、存储介质与流程

1.本技术涉及深度学习领域,尤其涉及一种数据处理方法及装置、存储介质。


背景技术:

2.深度学习能够使机器模仿视听和思考等人类活动,解决了很多复杂的模式识别难题,深度学习所使用的神经网络在自然语言处理、图像识别、语音识别、数据挖掘等多个技术领域取得了非常大的进展。目前,对于深度学习加速器,在执行神经网络模型时,采用固定的数据调度方式,导致每层算法层在执行时的性能差别大,进而增加了硬件功耗。


技术实现要素:

3.本技术实施例提供一种数据处理方法及装置、存储介质,能够减少硬件功耗。
4.本技术的技术方案是这样实现的:
5.第一方面,本技术实施例提出一种数据处理方法,所述方法包括:
6.分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数;所述深度学习加速器用于运行所述神经网络模型;
7.根据所述硬件参数和所述算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果;
8.基于所述比较结果,从所述多种数据调度方式中确定所述第一算法层在所述深度学习加速器上的目标数据调度方式。
9.第二方面,本技术实施例提出一种数据处理装置,所述数据处理装置中部署上述的深度学习加速器;所述深度学习加速器为计算单元阵列;
10.所述计算单元阵列中沿第一方向上的每一组计算单元中依次加载一个通道对应的一组卷积核数据和一个通道对应的一个滑动窗口内的窗口特征数据;
11.所述计算单元阵列中沿第二方向的每一组计算单元中依次处理一个卷积核中一组通道对应的一组卷积核数据和一个滑动窗口对应的一组通道中的一组窗口特征数据;所述计算单元阵列中沿第二方向的一组计算单元进行级联,以对一组计算单元中每一个计算单元的输出特征数据进行累加操作,得到一组计算单元对应的一个输出特征数据。
12.第三方面,本技术实施例提出一种数据处理装置,所述数据处理装置包括:
13.获取单元,用于分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数;所述深度学习加速器用于运行所述神经网络模型;
14.比较单元,用于根据所述硬件参数和所述算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果;
15.确定单元,用于基于所述比较结果,从所述多种数据调度方式中确定所述第一算法层在所述深度学习加速器上的目标数据调度方式。
16.第四方面,本技术实施例提出一种数据处理装置,其特征在于,所述装置包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现如上述数据处理
方法。
17.第五方面,本技术实施例提出一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现上述数据处理方法。
18.本技术实施例提供了一种数据处理方法及装置、存储介质,该方法包括:分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数;深度学习加速器用于运行神经网络模型;根据硬件参数和算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果;基于比较结果,从多种数据调度方式中确定第一算法层在深度学习加速器上的目标数据调度方式。采用上述实现方案,根据深度学习加速器的硬件参数和第一算法层对应的算法层参数,分析多种数据调度方式下的数据流,得到多种数据调度方式之间的访存次数比较结果,由于访存次数极大的影响了数据传输的能耗,因此基于比较结果确定出的目标数据调度方式考虑了第一算法层在深度学习加速器上的访存次数,能够提高算法层在深度学习加速器上执行的性能,进而减少硬件功耗。
附图说明
19.图1为一种权重数据复用方式的卷积示意图一;
20.图2为一种权重数据复用方式的卷积示意图二;
21.图3为一种权重数据复用方式的卷积示意图三;
22.图4为一种权重数据复用方式的卷积示意图四;
23.图5为一种输入特征数据复用方式的卷积示意图一;
24.图6为一种输入特征数据复用方式的卷积示意图二;
25.图7为一种输入特征数据复用方式的卷积示意图三;
26.图8为本技术实施例提供的一种数据处理方法的流程图;
27.图9为本技术实施例提供的一种4
×
4的计算单元阵列的示意图;
28.图10为本技术实施例提供的一种计算单元的单元结构示意图;
29.图11为本技术实施例提供的一种将卷积运算映射到计算单元的示意图;
30.图12为本技术实施例提供的一种权重数据复用中将数据流映射到深度学习加速器的示意图;
31.图13为本技术实施例提供的一种输入特征数据复用中将数据流映射到深度学习加速器的示意图;
32.图14为本技术实施例提供的一种数据处理装置1的结构示意图一;
33.图15为本技术实施例提供的一种数据处理装置1的结构示意图二。
具体实施方式
34.应当理解,此处描述的具体实施例仅仅用以解释本技术。并不用于限定本技术。
35.目前,数据调度方式包括权重数据复用和输入特征数据复用两种方式,以下针对两种数据调度方式进行具体说明。
36.对于权重数据复用方式而言,复用准则为先将一个卷积核中的一组通道输入读取计算单元中,接着开始遍历输入特征图像数据,特征图像窗口沿着水平方向或者竖直方向进行遍历,遍历完成之后,切换到下一个通道组,等待一个卷积核中所有通道都遍历完成之
后,再进行卷积核的切换。
37.具体的,首先固定卷积核0的通道0,之后在通道0对应的输入特征数据中开始遍历滑动窗口,参考图1,可以从输入特征数据中最左边的滑动窗口开始滑动;直至通道0对应的输入特征数据中所有滑动窗口完成计算,如图2所示,此时,对于输出特征数据而言,生成一个中间结果1;之后,如图3所示,切换到卷积核0的通道1,并遍历通道1对应的输入特征数据,生成一个中间结果2,中间结果1和中间结果2进行叠加得到叠加结果1,依次类推,如图4所示,直至切换到卷积核0的最后一个通道n,并遍历通道n对应的输入特征数据,生成一个中间结果n,中间结果n和叠加结果n-1进行叠加,得到卷积核0对应的一组输出特征数据。之后,再固定卷积核1执行上述操作。
38.对于输入特征数据复用方式而言,复用准则为先固定输入特征数据的一个通道组数据,将其加载到计算单元阵列中,接着遍历不同卷积核对应的通道组,遍历完成后,切换到下一个通道组,直至通道组便利为完成,再切换到下一个卷积核,直至卷积核全部遍历完成。
39.具体的,首先固定通道0对应的输入特征数据中左上角的滑动窗口,然后从通道0的卷积核0开始,参考权重复用方式的图1,依次遍历通道0的卷积核,直至所有卷积核的通道0全部遍历完成,参考图5,得到一个中间结果1,之后,切换至通道1,并固定通道1对应的输入特征数据中左上角的滑动窗口,然后从通道1的卷积核0开始,依次遍历通道1的卷积核,直至所有卷积核的通道1全部遍历完成,参考图6,得到一个中间结果2,中间结果1和中间结果2进行叠加得到叠加结果1,依次类推,如图7所示,直至切换到通道0对应的输入特征数据中左上角的滑动窗口,并遍历通道n的卷积核,生成一个中间结果n,中间结果n和叠加结果n-1进行叠加,得到输入特征数据中左上角的滑动窗口对应的一组输出特征数据。之后,在固定输入特征数据中第二个滑动窗口执行上述操作。
40.由上述可知,不同的数据调度方式对应不同的数据访存方式,为解决采用固定的数据调度方式,导致每层算法层在执行时的性能差别大,进而增加了硬件功耗的问题,本技术实施例提供一种数据处理方法,如图8所示,该方法可以包括:
41.s101、分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数;深度学习加速器用于运行神经网络模型。
42.本技术实施例提出的数据处理方法适用于在深度学习加速器上运行神经网络模型的场景中。
43.本技术实施例中,神经网络模型可以为卷积神经网络(convolutional neural networks,cnn)、深度神经网络(deep neural networks,dnn),循环神经网络(recurrent neural network,rnn)等,具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
44.本技术实施例中,在深度学习加速器上运行神经网络模型的过程中,当深度学习加速器实现神经网络模型中的第一算法层的算法逻辑时,分别获取深度学习加速器的硬件参数和第一算法层对应的算法层参数。
45.需要说明的是,深度学习加速器的硬件参数为深度学习加速器上空间展开之后的参数,即深度学习加速器在输入特征张量、输出张量和权重张量三个维度上一次可处理的数据粒度;其中,深度学习加速器在输入特征张量维度上一次可处理的数据粒度包括:深度
学习加速器一次可处理的通道数量和深度学习加速器一次可加载的卷积核数量,深度学习加速器在输出张量维度上一次可处理的数据粒度包括:深度学习加速器中一个计算单元输出的特征图像的尺寸信息,深度学习加速器在权重张量维度上一次可处理的数据粒度包括:一个计算单元中的一条乘累加树一次可处理的卷积核尺寸信息;具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
46.需要说明的是,深度学习加速器为一个计算单元阵列,在计算单元阵列中的竖直方向上,每一个计算单元可以处理输入特征张量一个通道的数据,若计算单元阵列的竖直方向上包括n个计算单元,则深度学习加速器一次可处理的通道数量为n;在计算单元阵列中的水平方向上,每一个计算单元可以加载一个卷积核数据,若计算单元阵列的水平方向上包括c个计算单元,则深度学习加速器一次可加载的卷积核数量为c。
47.需要说明的是,针对深度学习加速器中的每一个计算单元而言,包括m条乘累加树,可一次处理m个窗口,每条乘累加树可以处理一个a
×
a个窗口的数据,对应的一次可处理的卷积核尺寸为a
×
a。
48.在本技术实施例中,基于深度学习加速器的硬件参数至少可以包括:深度学习加速器中一个计算单元输出的特征图像的尺寸信息、深度学习加速器一次加载的卷积核数量与通道数;其中,一个计算单元输出的特征图像的尺寸信息包括一个计算单元输出的特征图像的宽度信息和高度信息。
49.在本技术实施例中,神经网络模型中包括多个算法层,针对每一个算法层包括一组算法层参数,其中,神经网络模型中第一算法层的算法层参数至少可以包括:第一算法层对应的卷积核总数、第一算法层输出的特征数据的尺寸信息。需要说明的是,第一算法层的算法层参数还可以包括:第一算法层所需处理的总通道数量和输入特征张量的宽度信息和高度信息。具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
50.s102、根据硬件参数和算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果。
51.本技术实施例中,数据调度方式可以包括权重数据复用和输入特征数据复用等方式。还可以根据实际情况进行数据调度方式的增加和/或修改,本技术实施例不做具体的限定。在本技术实施例中,以权重数据复用和输入特征数据复用这两种方式进行后续的说明。
52.本技术实施例中,每一种数据调度方式下的访存次数包括权重数据访存次数和输入特征数据访存次数,则根据一个计算单元输出的特征图像的尺寸信息和第一算法层输出的特征数据的尺寸信息,确定多种数据调度方式对应的权重数据访存次数之比;根据深度学习加速器一次加载的卷积核数量、第一算法层对应的卷积核总数和一个计算单元输出的特征图像的宽度信息,确定多种数据调度方式对应的输入特征数据访存次数之比;一个计算单元输出的特征图像的宽度信息为一个计算单元输出的特征图像的尺寸信息中的宽度信息;权重数据访存次数的比较结果和输入特征数据访存次数的比较结果即为根据硬件参数和算法层参数,对多种数据调度方式下的访存次数进行比较、得到的比较结果。
53.定义深度学习加速器的硬件参数为how,hoh,hic,hoc,hkw,hkh,其中,how为一个计算单元输出的特征图像的宽度信息,hoh为一个计算单元输出的特征图像的高度信息,hic为深度学习加速器一次可处理的通道数量,hoc为深度学习加速器一次可加载的卷积核数量,hkw一个计算单元中的一条乘累加树一次可处理的卷积核的宽度信息,hkh为一个计
算单元中的一条乘累加树一次可处理的卷积核高度信息,hkw和hkh共同组成了一个计算单元一次可处理的卷积核尺寸信息;定义第一算法层的算法层参数为ic,tc,tw,th,iw,ih,其中,ic为第一算法层所需处理的总通道数量,tc为第一算法层对应的卷积核总数,tw为第一算法层输出的特征数据的宽度信息,th为第一算法层输出的特征数据的高度信息,tw和th共同组成了第一算法层输出的特征数据的尺寸信息;iw为输入特征张量的宽度信息,ih为输入特征张量的高度信息。
54.示例性的,在权重数据复用模式下,权重数据访存次数如公式(1)所示,
55.hkh
×
hkh
×
tc
×
ic
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
56.在权重数据复用模式下,输入特征数据访存次数如公式(2)所示,
[0057][0058]
在输入特征数据复用模式下,权重数据访存次数如公式(3)所示,
[0059][0060]
在输入特征数据复用模式下,输入特征数据访存次数如公式(4)所示,
[0061][0062]
基于上述计算得到的访存次数,利用公式(1)除以公式(3)得到权重数据访存次数的比较结果,定义为权重数据访存次数之比,具体的如公式(5)所示,
[0063][0064]
基于上述计算得到的访存次数,利用公式(2)除以公式(4)得到输入特征数据访存次数的比较结果,定义为输入特征数据访存次数之比,具体的如公式(6)所示,
[0065][0066]
s103、基于比较结果,从多种数据调度方式中确定第一算法层在深度学习加速器上的目标数据调度方式。
[0067]
由于越少的访存次数代表越低的功耗,在确定出比较结果之后,基于多种数据调度方式对应的权重数据访存次数之比和多种数据调度方式对应的输入特征数据访存次数之比,从多种数据调度方式中确定出访存次数最少的目标数据调度方式,以作为第一算法层在深度学习加速器上的目标数据调度方式。
[0068]
示例性的,根据公式(5)和公式(6)可知,针对神经网络模型中的不同的算法层,在tw和th比较小,但是tc较大的情况下,权重数据复用模式下的总访存次数更大,而对于tw和th比较大,但是tc较小的情况下,输入特征数据复用模式下的总访存次数更大。
[0069]
作为示例,若对于上述第一算法层,公式(5)的权重数据访存次数之比小于1,并且公式(6)的输入特征数据访存次数之比小于1,则可以确定权重数据复用模式的访存次数少于输入特征数据复用模式的访存次数,即可以确定权重数据复用模式是上述第一算法层在该深度学习加速器硬件架构上的目标数据调度方式。反之,若对于上述第一算法层,公式(5)的权重数据访存次数之比大于1,并且公式(6)的输入特征数据访存次数之比大于1,则可以确定权重数据复用模式的访存次数大于输入特征数据复用模式的访存次数,即可以确
定输入特征数据复用模式是上述第一算法层在该深度学习加速器硬件架构上的目标数据调度方式。此外,若公式(5)的权重数据访存次数之比小于1且公式(6)的输入特征数据访存次数之比大于1,或者公式(5)的权重数据访存次数之比大于1且公式(6)的输入特征数据访存次数之比小于1,则需要根据上述公式(1)(2)(3)(4)具体计算权重数据复用模式的访存次数和输入特征数据复用模式的访存次数,以确定访存次数最少的数据调度方式作为目标数据调度方式。
[0070]
综上所述,在上层编译器进行数据调度时,可根据深度学习加速器的硬件参数和神经网络模型中的每一个算法层对应的算法层参数,来进行不同数据复用模式的切换,能够适配不同的算法和深度学习加速器,使得数据调度过程更加合理。
[0071]
进一步地,在从多种数据调度方式中确定出第一算法层在所述深度学习加速器上的目标数据调度方式之后,根据所述目标数据调度方式,依次遍历输入特征数据和卷积核数据;并将每次遍历的输入特征数据和卷积核数据载入所述深度学习加速器中进行数据处理。
[0072]
需要说明的是,具体的根据所述目标数据调度方式,依次遍历输入特征数据和卷积核数据;并将每次遍历的输入特征数据和卷积核数据载入所述深度学习加速器中进行数据处理的过程,结合下述深度学习加速器的组成具体进行描述,在此不再赘述。
[0073]
可以理解的是,根据深度学习加速器的硬件参数和第一算法层对应的算法层参数,分析多种数据调度方式下的数据流,得到多种数据调度方式之间的访存次数比较结果,由于访存次数极大的影响了数据传输的能耗,因此基于比较结果确定出的目标数据调度方式考虑了第一算法层在深度学习加速器上的访存次数,能够提高算法层在深度学习加速器上执行的性能,进而减少硬件功耗。
[0074]
进一步地,在分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数之前,需先进行深度学习加速器的设计和第一算法层对应的算法层参数的微调的过程,具体的,确定对硬件资源的多种排列组合方式和多种排列组合方式对应的多组硬件参数;并获取第一算法层的初始算法层参数;基于预设算法性能指标和预设硬件性能指标,从多组硬件参数中确定硬件参数,以及对初始算法层参数进行调整,得到第一算法层对应的算法层参数;利用硬件参数进行深度学习加速器的建模。
[0075]
本技术实施例中,硬件资源可以为计算单元的总数,而对硬件资源的多种排列组合方式为将全部计算单元排布为多种计算单元阵列,每一种排列组合方式对应的硬件参数即可包括阵列的宽度和高度、一个计算单元输出的特征图像的尺寸信息、一个计算单元中的一条乘累加树一次可处理的卷积核尺寸信息。如,硬件资源为16个计算单元,则16个计算单元对应的计算单元阵列可包括:1
×
16阵列、2
×
8阵列、4
×
4阵列、8
×
2阵列和16
×
1阵列。
[0076]
本技术实施例中,在确定出多组硬件参数和初始算法层参数的情况下,可以同时从多组硬件参数中确定硬件参数,并对初始算法层参数进行调整,直至满足预设算法性能指标和预设硬件性能指标,则得到第一算法层对应的算法层参数和深度学习加速器对应的硬件参数。由此,可以在硬件参数和算法层参数之间进行均衡,确定出合适的硬件参数和算法层参数,在保证算法性能的基础上做到硬件资源的最优化利用。
[0077]
需要说明的是,基于上述实施例,本技术实施例还提出一种数据处理装置,数据处理装置中部署上述深度学习加速器,其中,深度学习加速器为计算单元阵列,
[0078]
所述计算单元阵列中沿第一方向上的每一组计算单元中依次加载一个通道对应的一组卷积核数据和一个通道对应的一个滑动窗口内的窗口特征数据;
[0079]
所述计算单元阵列中沿第二方向的每一组计算单元中依次处理一个卷积核中一组通道对应的一组卷积核数据和一个滑动窗口对应的一组通道中的一组窗口特征数据;所述计算单元阵列中沿第二方向的一组计算单元进行级联,以对一组计算单元中每一个计算单元的输出特征数据进行累加操作,得到一组计算单元对应的一个输出特征数据。
[0080]
本技术实施例中,部署深度学习加速器的数据处理装置可以为任何具备数据处理和存储功能的设备,例如:平板电脑、手机、个人计算机(personal computer,pc)、笔记本电脑、服务器等设备。
[0081]
本技术实施例中,第一方向为水平方向,则第二方向为竖直方向;或第一方向为竖直方向,则第二方向为水平方向,具体的可以根据实际情况进行选择,本技术实施例不做具体的限定,本技术实施例中以第一方向为水平方向、第二方向为竖直方向为例进行说明。
[0082]
本技术实施例中,以4
×
4的计算单元阵列为例进行说明,4
×
4的计算单元阵列如图9所示,在水平方向和竖直方向各有4个计算单元,水平方向上的每一个计算单元加载一个通道的不同卷积核数据,并载入一个通道对应的一个滑动窗口内的窗口特征数据。竖直方向上每一个计算单元处理一个卷积核中不同通道对应的一个卷积核数据和一个滑动窗口对应的不同通道对应的一个窗口特征数据,竖直方向上的计算单元进行级联,以对竖直方向上的每一个计算单元的输出特征数据进行累加操作。
[0083]
参考图9,示例性的,按照4
×
4计算单元阵列从右到左的顺序,第一行的4个计算单元分别加载卷积核k0-k3中通道0的卷积核数据,第二行的4个计算单元分别加载卷积核k0-k3中通道1的卷积核数据,第三行的4个计算单元分别加载卷积核k0-k3中通道2的卷积核数据,第四行的4个计算单元分别加载卷积核k0-k3中通道3的卷积核数据。同时,第一行的4个计算单元按照时间先后的顺序分别载入第0个滑动窗口~第4个滑动窗口对应滑动窗口对应的通道0的窗口特征数据;第二行的4个计算单元按照时间先后的顺序分别载入第0个滑动窗口~第4个滑动窗口的对应的通道1的窗口特征数据,第三行的4个计算单元按照时间先后的顺序分别载入第0个滑动窗口~第4个滑动窗口的对应的通道2的窗口特征数据,第四行的4个计算单元按照时间先后的顺序分别载入第0个滑动窗口~第4个滑动窗口的对应的通道3的窗口特征数据。此时,针对竖直方向而言,按照从右到左的顺序,在第一个时钟周期,第一列的4个计算单元分别处理通道0-通道3中卷积核k0的卷积核数据和第0个滑动窗口对应的窗口特征数据;在第二个时钟周期,第一列的4个计算单元分别处理通道0-通道3中卷积核k0的卷积核数据和第1个滑动窗口对应的窗口特征数据,第二列的4个计算单元分别处理通道0-通道3中卷积核k1的卷积核数据和第0个滑动窗口对应的窗口特征数据;在第三个时钟周期,第一列的4个计算单元分别处理通道0-通道3中卷积核k0的卷积核数据和第2个滑动窗口对应的窗口特征数据,第二列的4个计算单元分别处理通道0-通道3中卷积核k1的卷积核数据和第1个滑动窗口对应的窗口特征数据,第三列的4个计算单元分别处理通道0-通道3中卷积核k2的卷积核数据和第0个滑动窗口对应的窗口特征数据;在第四个时钟周期,第一列的4个计算单元分别处理通道0-通道3中卷积核k0的卷积核数据和第3个滑动窗口对应的窗口特征数据,第二列的4个计算单元分别处理通道0-通道3中卷积核k1的卷积核数据和第2个滑动窗口对应的窗口特征数据,第三列的4个计算单元分别处理通道0-通道
3中卷积核k2的卷积核数据和第1个滑动窗口对应的窗口特征数据,第四列的4个计算单元分别处理通道0-通道3中卷积核k3的卷积核数据和第0个滑动窗口对应的窗口特征数据。
[0084]
本技术实施例中,计算单元阵列中的一个计算单元用于处理一个通道对应的一个卷积核数据和一个滑动窗口内的窗口特征数据;一个计算单元中包括多条乘累加树;其中,乘累加树的数量与一个滑动窗口中的卷积窗口数量相同,每一条乘累加树的长度与一个卷积窗口内的特征数据的数量相同。
[0085]
示例性的,计算单元的单元结构图如图10所示,包括3条乘累加树,则对应一个计算单元可处理三个卷积窗口的窗口特征数据,每条乘累加树中加载的权重数据相同,每条乘累加树的长度为9,即每条乘累加树可进行9次窗口特征数据和权重数据的相乘操作后再进行一次相加,参考图10,乘累加树中的每一组乘法因子为卷积核中的一个权重数据f和一个窗口特征数据w。参考图11,可以将卷积运算映射到计算单元中,具体的,输入特征数据中的框2代表一个滑动窗口区域,每一个滑动窗口区域对应w个3
×
3的卷积窗口,依次读取w个3
×
3的卷积窗口的窗口特征数据,并进行展平操作,即得到w个长度为9的数据列,在每个计算单元中预存卷积操作所需要的权重信息,每个计算单元共享一个卷积核w0,之后,将w个长度为9的数据列分别载入计算单元内w条乘累加树中,计算单元进行乘法和累加操作,最终生成框2所示的输出特征数据。
[0086]
在一种可选的实施例中,针对权重数据复用的数据调度方式,具体的将数据流映射到深度学习加速器的方式参考图12,定义k0_c0~c3表示卷积核k0中通道0到通道3的卷积核数据,对于特征图像,win0_c0~c3代表输入特征数据中第0个滑动窗口对应的通道0到通道3中的窗口特征数据。
[0087]
按照从右到左的顺序,首先将k0-c0~c3依次载入第一列,将k1-c0~c3依次载入第二列,将k2-c0~c3依次载入第三列,将k3-c0~c3依次载入第四列;之后,将win0-c0~c3依次输入第一列、第二列、第三列和第四列进行卷积计算,再将win1-c0~c3依次输入第一列、第二列、第三列和第四列进行卷积计算;直至将winn-c0~c3依次输入第一列、第二列、第三列和第四列进行卷积计算后,完成第一轮权重复用。此时,进行k0_c4~c7、k1_c4~c7、k2_c4~c7、k3_c4~c7的载入,并遍历win0-c4~c7至winn-c4~c7中的数据进行卷积计算,依次类推,直至完成所有的权重复用过程。
[0088]
在另一种可选的实施例中,针对输入特征数据复用的数据调度方式,具体的将数据流映射到深度学习加速器的方式参考图13,按照从右到左的顺序,首先将win0-c0~c3分别载入第一列、第二列、第三列和第四列,之后,依次将k0-c0~c3输入第一列进行卷积运算,将k1-c0~c3输入第二列进行卷积运算,将k2-c0~c3输入第三列进行卷积运算,将k3-c0~c3输入第四列进行卷积运算;之后,保持输入特征数据不变,再将k4-c0~c3输入第一列进行卷积运算,将k5-c0~c3输入第二列进行卷积运算,将k6-c0~c3输入第三列进行卷积运算,将k7-c0~c3输入第四列进行卷积运算,完成第一轮图像数据复用;之后,将win0-c4~c7分别载入第一列、第二列、第三列和第四列,并遍历k0-c4~c7至k7-c4~c7中的数据进行卷积计算,依次类推,直至完成所有的输入特征数据复用过程。
[0089]
基于上述实施例,本技术实施例提供一种数据处理装置1。如图14所示,该装置1包括:
[0090]
获取单元10,用于分别获取深度学习加速器的硬件参数和神经网络模型中第一算
法层对应的算法层参数;所述深度学习加速器用于运行所述神经网络模型;
[0091]
比较单元11,用于根据所述硬件参数和所述算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果;
[0092]
确定单元12,用于基于所述比较结果,从所述多种数据调度方式中确定所述第一算法层在所述深度学习加速器上的目标数据调度方式。
[0093]
可选的,所述获取单元10,还用于分别获取所述深度学习加速器中一个计算单元输出的特征图像的尺寸信息、所述深度学习加速器一次加载的卷积核数量与通道数;并将所述一个计算单元输出的特征图像的尺寸信息和所述深度学习加速器一次加载的卷积核数量确定为所述硬件参数;分别获取所述第一算法层对应的卷积核总数、所述第一算法层输出的特征数据的尺寸信息;并将所述第一算法层对应的卷积核总数、所述通道数所述第一算法层输出的特征数据的尺寸信息确定为所述算法层参数。
[0094]
可选的,所述比较单元11,还用于根据所述一个计算单元输出的特征图像的尺寸信息和所述第一算法层输出的特征数据的尺寸信息,确定所述多种数据调度方式对应的权重数据访存次数之比;根据所述深度学习加速器一次加载的卷积核数量、所述第一算法层对应的卷积核总数和一个计算单元输出的特征图像的宽度信息,确定所述多种数据调度方式对应的输入特征数据访存次数之比;所述一个计算单元输出的特征图像的宽度信息为所述一个计算单元输出的特征图像的尺寸信息中的宽度信息。
[0095]
可选的,所述确定单元12,还用于基于所述多种数据调度方式对应的权重数据访存次数之比和所述多种数据调度方式对应的输入特征数据访存次数之比,确定所述多种数据调度方式中访存次数最少的数据调度方式,以作为所述第一算法层在所述深度学习加速器上的目标数据调度方式。
[0096]
可选的,所述装置还包括:建模单元;
[0097]
所述确定单元12,还用于确定对硬件资源的多种排列组合方式和所述多种排列组合方式对应的多组硬件参数;并获取所述第一算法层的初始算法层参数;基于预设算法性能指标和预设硬件性能指标,从所述多组硬件参数中确定所述硬件参数,以及对所述初始算法层参数进行调整,得到所述第一算法层对应的算法层参数;
[0098]
所述建模单元,用于利用所述硬件参数进行所述深度学习加速器的建模。
[0099]
可选的,所述装置还包括:遍历单元和数据处理单元;
[0100]
所述遍历单元,用于根据所述目标数据调度方式,依次遍历输入特征数据和卷积核数据;
[0101]
所述数据处理单元,用于将每次遍历的输入特征数据和卷积核数据载入所述深度学习加速器中进行数据处理。
[0102]
本技术实施例提供的一种数据处理装置,分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数;深度学习加速器用于运行神经网络模型;根据硬件参数和算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果;基于比较结果,从多种数据调度方式中确定第一算法层在深度学习加速器上的目标数据调度方式。由此可见,本实施例提出的数据处理装置,根据深度学习加速器的硬件参数和第一算法层对应的算法层参数,分析多种数据调度方式下的数据流,得到多种数据调度方式之间的访存次数比较结果,由于访存次数极大的影响了数据传输的能耗,因此基于比较结果
确定出的目标数据调度方式考虑了第一算法层在深度学习加速器上的访存次数,能够提高算法层在深度学习加速器上执行的性能,进而减少硬件功耗。
[0103]
图15为本技术实施例提供的一种数据处理装置1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图15所示,本实施例的数据处理装置1包括:处理器13、存储器14及通信总线15。
[0104]
在具体的实施例的过程中,上述获取单元10、比较单元11、确定单元12、建模单元、遍历单元和数据处理单元可由位于数据处理装置1上的处理器13实现,上述处理器13可以为特定用途集成电路(asic,application specific integrated circuit)、数字信号处理器(dsp,digital signal processor)、数字信号处理图像处理装置(dspd,digital signal processing device)、可编程逻辑图像处理装置(pld,programmable logic device)、现场可编程门阵列(fpga,field programmable gate array)、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
[0105]
在本技术实施例中,上述通信总线15用于实现处理器13和存储器14之间的连接通信;上述处理器13执行存储器14中存储的运行程序时实现如下的数据处理方法:
[0106]
分别获取深度学习加速器的硬件参数和神经网络模型中第一算法层对应的算法层参数;所述深度学习加速器用于运行所述神经网络模型;根据所述硬件参数和所述算法层参数,对多种数据调度方式下的访存次数进行比较,得到比较结果;基于所述比较结果,从所述多种数据调度方式中确定所述第一算法层在所述深度学习加速器上的目标数据调度方式。
[0107]
进一步的,上述处理器13,还用于分别获取所述深度学习加速器中一个计算单元输出的特征图像的尺寸信息、所述深度学习加速器一次加载的卷积核数量与通道数;并将所述一个计算单元输出的特征图像的尺寸信息和所述深度学习加速器一次加载的卷积核数量确定为所述硬件参数;分别获取所述第一算法层对应的卷积核总数、所述第一算法层输出的特征数据的尺寸信息;并将所述第一算法层对应的卷积核总数、所述通道数所述第一算法层输出的特征数据的尺寸信息确定为所述算法层参数。
[0108]
进一步的,上述处理器13,还用于根据所述一个计算单元输出的特征图像的尺寸信息和所述第一算法层输出的特征数据的尺寸信息,确定所述多种数据调度方式对应的权重数据访存次数之比;根据所述深度学习加速器一次加载的卷积核数量、所述第一算法层对应的卷积核总数和一个计算单元输出的特征图像的宽度信息,确定所述多种数据调度方式对应的输入特征数据访存次数之比;所述一个计算单元输出的特征图像的宽度信息为所述一个计算单元输出的特征图像的尺寸信息中的宽度信息。
[0109]
进一步的,上述处理器13,还用于基于所述多种数据调度方式对应的权重数据访存次数之比和所述多种数据调度方式对应的输入特征数据访存次数之比,确定所述多种数据调度方式中访存次数最少的数据调度方式,以作为所述第一算法层在所述深度学习加速器上的目标数据调度方式。
[0110]
进一步的,上述处理器13,还用于确定对硬件资源的多种排列组合方式和所述多种排列组合方式对应的多组硬件参数;并获取所述第一算法层的初始算法层参数;基于预设算法性能指标和预设硬件性能指标,从所述多组硬件参数中确定所述硬件参数,以及对
所述初始算法层参数进行调整,得到所述第一算法层对应的算法层参数;利用所述硬件参数进行所述深度学习加速器的建模。
[0111]
进一步的,上述处理器13,还用于根据所述目标数据调度方式,依次遍历输入特征数据和卷积核数据;并将每次遍历的输入特征数据和卷积核数据载入所述深度学习加速器中进行数据处理。
[0112]
本技术实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于数据处理装置中,该计算机程序实现如上述的数据处理方法。
[0113]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0114]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
[0115]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1