网络模型的运行控制方法、装置和设备与流程

文档序号:35378196发布日期:2023-09-08 23:19阅读:17来源:国知局
网络模型的运行控制方法、装置和设备与流程

本发明实施例涉及计算机领域,具体而言,涉及一种网络模型的运行控制方法、装置和设备。


背景技术:

1、近年来,依托于计算力的极大提高和大数据的获取便利,深度学习技术和网络模型的运用取得了巨大进步,越来越多的图像处理、自然语言分析等问题,能通过深度学习技术得到很好解决。

2、深度学习的网络模型目前一般运行在通用gpu(graphics processing unit,图形处理器)上,而网络模型的运行落地是深度学习应用的重要一环。设计支持网络模型运行的高效方式也就自然成为强烈需求。网络模型自有的运算特点,使其对存储资源有特定的要求。gpu的片上存储一般通过sram(static random access memory,静态随机访问存储)实现,sram的读写效率更高,但成本也更高,在设备中,sram资源往往有限,需要充分利用,可见,部署了深度学习的网络模型的推理设备的片上存储资源设计和使用尤为关键。


技术实现思路

1、本发明实施例提供了一种网络模型的运行控制方法、装置和设备,以至少解决相关技术中支持网络模型运行的静态存储空间的存储资源利用率较低的问题。

2、根据本发明的一个实施例,提供了一种网络模型的运行控制方法,包括:确定所述网络模型所包括的多个网络层中目标网络层的运行数据类型;在所述运行数据类型为静态数据类型的情况下,从第一存储空间中获取所述目标网络层的目标静态数据,其中,所述网络模型的运行场景中静态存储空间被划分为所述第一存储空间和第二存储空间,所述第一存储空间用于存储所述网络模型在运行过程中所使用的静态数据,所述第二存储空间用于存储所述网络模型在运行过程中所使用和输出的动态数据;至少使用所述目标静态数据运行所述目标网络层。

3、在一个示例性实施例中,所述从第一存储空间中获取所述目标网络层的目标静态数据,包括:从多个使用静态数据的网络层的运算类型中,确定所述目标网络层的目标运算类型;从具有对应关系的多个运算类型和多个存储子空间中,确定所述目标运算类型对应的目标存储子空间;从所述目标存储子空间读取所述目标网络层的所述目标静态数据。

4、在一个示例性实施例中,所述从具有对应关系的多个运算类型和多个存储子空间中,确定所述目标运算类型对应的目标存储子空间,包括:在所述目标运算类型为卷积运算的情况下,确定所述多个存储子空间中的第一子空间为所述目标存储子空间;在所述目标运算类型为激活运算的情况下,确定所述多个存储子空间中的第二子空间为所述目标存储子空间。

5、在一个示例性实施例中,所述从所述目标存储子空间读取所述目标网络层的所述目标静态数据,包括:在所述目标运算类型为卷积运算的情况下,从所述第一子空间读取所述目标网络层的卷积权重数据和偏置数据作为所述目标静态数据;在所述目标运算类型为激活运算的情况下,从所述第二子空间读取所述目标网络层的激活系数数据作为所述目标静态数据。

6、在一个示例性实施例中,所述方法还包括:确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,其中,所述当前分配方向与上一次在所述第二存储空间中为数据分配存储空间的分配方向相反;按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,其中,所述目标存储空间用于存储所述目标网络层输出的目标输出数据。

7、在一个示例性实施例中,所述确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,包括:从第一指针和第二指针中确定上一次在所述第二存储空间中为数据分配存储空间所使用的参考指针,其中,所述第一指针用于指示从所述第二存储空间的顶端向底端分配存储空间的顶端开始位置,所述第二指针用于指示从所述第二存储空间的底端向顶端分配存储空间的底端开始位置;在所述参考指针为所述第一指针的情况下,将所述第二指针确定为目标指针,并将所述第二指针所指示的分配方向确定为所述当前分配方向;在所述参考指针为所述第二指针的情况下,将所述第一指针确定为目标指针,并将所述第一指针所指示的分配方向确定为所述当前分配方向。

8、在一个示例性实施例中,所述按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,包括:在所述第二存储空间中从所述目标指针所指示的开始位置按照所述当前分配方向为所述目标网络层的输出数据分配所述目标存储空间;根据所述目标存储空间的结束位置对所述目标指针进行更新。

9、在一个示例性实施例中,在所述按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间之后,所述方法还包括:记录所述目标存储空间对应的剩余使用次数,其中,所述剩余使用次数的初始值为使用所述目标网络层的输出数据作为输入数据的网络层的数量;在所述目标网络层的输出数据被作为输入数据使用的情况下,将所述剩余使用次数减1;在所述剩余使用次数为0的情况下,释放所述目标存储空间,并更新所述目标指针。

10、在一个示例性实施例中,所述确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,包括:确定所述目标网络层的输出数据的数据属性;在所述数据属性用于指示在所述网络模型中不包括所述目标网络层的同组网络层的情况下,确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向。

11、在一个示例性实施例中,在所述确定所述目标网络层的输出数据的数据属性之后,所述方法还包括:在所述数据属性用于指示在所述网络模型中包括所述目标网络层的同组网络层,且所述同组网络层已分配了存储空间的情况下,从为所述同组网络层所在的网络层组已分配的存储空间中确定所述目标网络层的输出数据对应的存储空间,其中,所述同组网络层的输出数据与所述目标网络层的输出数据均输入到同一网络层;在所述数据属性用于指示在所述网络模型中包括所述目标网络层的同组网络层且所述同组网络层未分配存储空间的情况下,将所述目标网络层和所述同组网络层确定为参考网络层组,其中,所述同组网络层的输出数据与所述目标网络层的输出数据均输入到同一网络层;确定在所述第二存储空间中为所述参考网络层组的输出数据分配存储空间的当前分配方向;按照所述当前分配方向在所述第二存储空间中为所述参考网络层组的输出数据分配存储空间;在为所述参考网络层组分配的存储空间中为所述参考网络层组中包括的每个网络层划分存储空间。

12、根据本发明的另一个实施例,提供了一种网络模型的运行控制虚拟装置,包括:第一确定模块,用于确定所述网络模型所包括的多个网络层中目标网络层的运行数据类型;获取模块,用于在所述运行数据类型为静态数据类型的情况下,从第一存储空间中获取所述目标网络层的目标静态数据,其中,所述网络模型的运行场景中静态存储空间被划分为所述第一存储空间和第二存储空间,所述第一存储空间用于存储所述网络模型在运行过程中所使用的静态数据,所述第二存储空间用于存储所述网络模型在运行过程中所使用和输出的动态数据;运行模块,用于至少使用所述目标静态数据运行所述目标网络层。

13、根据本发明的另一个实施例,提供了一种网络模型的运行控制设备,包括:处理器和静态存储器,其中,所述静态存储器划分为第一存储空间和第二存储空间,所述第一存储空间用于存储网络模型在运行过程中的静态数据,所述第二存储空间用于存储所述网络模型在运行过程中的动态数据,所述网络模型包括多个网络层;所述处理器,用于确定所述多个网络层中目标网络层的运行数据类型;在所述运行数据类型为静态数据类型的情况下,从所述第一存储空间中获取所述目标网络层的目标静态数据;至少使用所述目标静态数据运行所述目标网络层。

14、在一个示例性实施例中,所述第一存储空间,包括:第一子空间和第二子空间,其中,所述第一子空间,用于存储运算类型为卷积运算的网络层的权重数据和偏置数据;所述第二子空间,用于存储运算类型为激活运算的网络层的激活系数数据。

15、在一个示例性实施例中,所述处理器,包括:卷积处理单元和激活处理单元,其中,所述卷积处理单元,用于从所述第一子空间获取运算类型为卷积运算的所述目标网络层的目标权重数据和目标偏置数据作为所述目标静态数据;所述激活处理单元,用于从所述第二子空间获取运算类型为激活运算的所述目标网络层的目标激活系数数据作为所述目标静态数据。

16、在一个示例性实施例中,所述处理器,包括:数据采集端口和数据处理单元,其中,所述数据采集端口,用于确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,其中,所述当前分配方向与上一次在所述第二存储空间中为数据分配存储空间的分配方向相反;所述数据处理单元,用于按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,其中,所述目标存储空间用于存储所述目标网络层输出的目标输出数据。

17、根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

18、根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

19、通过本发明,由于网络模型的运行场景中静态存储空间被划分为第一存储空间和第二存储空间,第一存储空间用于存储网络模型在运行过程中所使用的静态数据,第二存储空间用于存储网络模型在运行过程中所使用和输出的动态数据,对于网络模型所包括的多个网络层中的目标网络层,如果其运行数据类型为静态数据类型,则可以从第一存储空间中获取该目标网络层的目标静态数据,并至少使用获取到的目标静态数据运行该目标网络层,从而使得网络模型的各个网络层在运行时能够更加合理地使用运行场景中的静态存储空间,既能满足网络模型运行的存储分配需要,又能使存储空间充分利用,使网络模型的运行场景更好的支持网络模型高效运行。因此,可以解决支持网络模型运行的静态存储空间的存储资源利用率较低问题,达到提高支持网络模型运行的静态存储空间的存储资源利用率效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1