网络模型的运行控制方法、装置和设备制造方法及图纸

技术编号:38738844 阅读:12 留言:0更新日期:2023-09-08 23:24
本发明专利技术实施例提供了一种网络模型的运行控制方法、装置和设备,其中,上述方法包括:确定网络模型所包括的多个网络层中目标网络层的运行数据类型;在运行数据类型为静态数据类型的情况下,从第一存储空间中获取目标网络层的目标静态数据,其中,网络模型的运行场景中静态存储空间被划分为第一存储空间和第二存储空间;至少使用目标静态数据运行目标网络层。通过本发明专利技术,解决了支持网络模型运行的静态存储空间的存储资源利用率较低的问题,进而达到了提高支持网络模型运行的静态存储空间的存储资源利用率的效果。的存储资源利用率的效果。的存储资源利用率的效果。

【技术实现步骤摘要】
网络模型的运行控制方法、装置和设备


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

技术介绍

[0002]近年来,依托于计算力的极大提高和大数据的获取便利,深度学习技术和网络模型的运用取得了巨大进步,越来越多的图像处理、自然语言分析等问题,能通过深度学习技术得到很好解决。
[0003]深度学习的网络模型目前一般运行在通用GPU(Graphics Processing Unit,图形处理器)上,而网络模型的运行落地是深度学习应用的重要一环。设计支持网络模型运行的高效方式也就自然成为强烈需求。网络模型自有的运算特点,使其对存储资源有特定的要求。GPU的片上存储一般通过SRAM(Static Random Access Memory,静态随机访问存储)实现,SRAM的读写效率更高,但成本也更高,在设备中,SRAM资源往往有限,需要充分利用,可见,部署了深度学习的网络模型的推理设备的片上存储资源设计和使用尤为关键。

技术实现思路

[0004]本专利技术实施例提供了一种网络模型的运行控制方法、装置和设备,以至少解决相关技术中支持网络模型运行的静态存储空间的存储资源利用率较低的问题。
[0005]根据本专利技术的一个实施例,提供了一种网络模型的运行控制方法,包括:确定所述网络模型所包括的多个网络层中目标网络层的运行数据类型;在所述运行数据类型为静态数据类型的情况下,从第一存储空间中获取所述目标网络层的目标静态数据,其中,所述网络模型的运行场景中静态存储空间被划分为所述第一存储空间和第二存储空间,所述第一存储空间用于存储所述网络模型在运行过程中所使用的静态数据,所述第二存储空间用于存储所述网络模型在运行过程中所使用和输出的动态数据;至少使用所述目标静态数据运行所述目标网络层。
[0006]在一个示例性实施例中,所述从第一存储空间中获取所述目标网络层的目标静态数据,包括:从多个使用静态数据的网络层的运算类型中,确定所述目标网络层的目标运算类型;从具有对应关系的多个运算类型和多个存储子空间中,确定所述目标运算类型对应的目标存储子空间;从所述目标存储子空间读取所述目标网络层的所述目标静态数据。
[0007]在一个示例性实施例中,所述从具有对应关系的多个运算类型和多个存储子空间中,确定所述目标运算类型对应的目标存储子空间,包括:在所述目标运算类型为卷积运算的情况下,确定所述多个存储子空间中的第一子空间为所述目标存储子空间;在所述目标运算类型为激活运算的情况下,确定所述多个存储子空间中的第二子空间为所述目标存储子空间。
[0008]在一个示例性实施例中,所述从所述目标存储子空间读取所述目标网络层的所述目标静态数据,包括:在所述目标运算类型为卷积运算的情况下,从所述第一子空间读取所
述目标网络层的卷积权重数据和偏置数据作为所述目标静态数据;在所述目标运算类型为激活运算的情况下,从所述第二子空间读取所述目标网络层的激活系数数据作为所述目标静态数据。
[0009]在一个示例性实施例中,所述方法还包括:确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,其中,所述当前分配方向与上一次在所述第二存储空间中为数据分配存储空间的分配方向相反;按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,其中,所述目标存储空间用于存储所述目标网络层输出的目标输出数据。
[0010]在一个示例性实施例中,所述确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,包括:从第一指针和第二指针中确定上一次在所述第二存储空间中为数据分配存储空间所使用的参考指针,其中,所述第一指针用于指示从所述第二存储空间的顶端向底端分配存储空间的顶端开始位置,所述第二指针用于指示从所述第二存储空间的底端向顶端分配存储空间的底端开始位置;在所述参考指针为所述第一指针的情况下,将所述第二指针确定为目标指针,并将所述第二指针所指示的分配方向确定为所述当前分配方向;在所述参考指针为所述第二指针的情况下,将所述第一指针确定为目标指针,并将所述第一指针所指示的分配方向确定为所述当前分配方向。
[0011]在一个示例性实施例中,所述按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,包括:在所述第二存储空间中从所述目标指针所指示的开始位置按照所述当前分配方向为所述目标网络层的输出数据分配所述目标存储空间;根据所述目标存储空间的结束位置对所述目标指针进行更新。
[0012]在一个示例性实施例中,在所述按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间之后,所述方法还包括:记录所述目标存储空间对应的剩余使用次数,其中,所述剩余使用次数的初始值为使用所述目标网络层的输出数据作为输入数据的网络层的数量;在所述目标网络层的输出数据被作为输入数据使用的情况下,将所述剩余使用次数减1;在所述剩余使用次数为0的情况下,释放所述目标存储空间,并更新所述目标指针。
[0013]在一个示例性实施例中,所述确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,包括:确定所述目标网络层的输出数据的数据属性;在所述数据属性用于指示在所述网络模型中不包括所述目标网络层的同组网络层的情况下,确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向。
[0014]在一个示例性实施例中,在所述确定所述目标网络层的输出数据的数据属性之后,所述方法还包括:在所述数据属性用于指示在所述网络模型中包括所述目标网络层的同组网络层,且所述同组网络层已分配了存储空间的情况下,从为所述同组网络层所在的网络层组已分配的存储空间中确定所述目标网络层的输出数据对应的存储空间,其中,所述同组网络层的输出数据与所述目标网络层的输出数据均输入到同一网络层;在所述数据属性用于指示在所述网络模型中包括所述目标网络层的同组网络层且所述同组网络层未分配存储空间的情况下,将所述目标网络层和所述同组网络层确定为参考网络层组,其中,所述同组网络层的输出数据与所述目标网络层的输出数据均输入到同一网络层;确定在所
述第二存储空间中为所述参考网络层组的输出数据分配存储空间的当前分配方向;按照所述当前分配方向在所述第二存储空间中为所述参考网络层组的输出数据分配存储空间;在为所述参考网络层组分配的存储空间中为所述参考网络层组中包括的每个网络层划分存储空间。
[0015]根据本专利技术的另一个实施例,提供了一种网络模型的运行控制虚拟装置,包括:第一确定模块,用于确定所述网络模型所包括的多个网络层中目标网络层的运行数据类型;获取模块,用于在所述运行数据类型为静态数据类型的情况下,从第一存储空间中获取所述目标网络层的目标静态数据,其中,所述网络模型的运行场景中静态存储空间被划分为所述第一存储空间和第二存储空间,所述第一存储空间用于存储所述网络模型在运行过程中所使用的静态数据,所述第本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络模型的运行控制方法,其特征在于,包括:确定所述网络模型所包括的多个网络层中目标网络层的运行数据类型;在所述运行数据类型为静态数据类型的情况下,从第一存储空间中获取所述目标网络层的目标静态数据,其中,所述网络模型的运行场景中静态存储空间被划分为所述第一存储空间和第二存储空间,所述第一存储空间用于存储所述网络模型在运行过程中所使用的静态数据,所述第二存储空间用于存储所述网络模型在运行过程中所使用和输出的动态数据;至少使用所述目标静态数据运行所述目标网络层。2.根据权利要求1所述的方法,其特征在于,所述从第一存储空间中获取所述目标网络层的目标静态数据,包括:从多个使用静态数据的网络层的运算类型中,确定所述目标网络层的目标运算类型;从具有对应关系的多个运算类型和多个存储子空间中,确定所述目标运算类型对应的目标存储子空间;从所述目标存储子空间读取所述目标网络层的所述目标静态数据。3.根据权利要求2所述的方法,其特征在于,所述从具有对应关系的多个运算类型和多个存储子空间中,确定所述目标运算类型对应的目标存储子空间,包括:在所述目标运算类型为卷积运算的情况下,确定所述多个存储子空间中的第一子空间为所述目标存储子空间;在所述目标运算类型为激活运算的情况下,确定所述多个存储子空间中的第二子空间为所述目标存储子空间。4.根据权利要求3所述的方法,其特征在于,所述从所述目标存储子空间读取所述目标网络层的所述目标静态数据,包括:在所述目标运算类型为卷积运算的情况下,从所述第一子空间读取所述目标网络层的卷积权重数据和偏置数据作为所述目标静态数据;在所述目标运算类型为激活运算的情况下,从所述第二子空间读取所述目标网络层的激活系数数据作为所述目标静态数据。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,其中,所述当前分配方向与上一次在所述第二存储空间中为数据分配存储空间的分配方向相反;按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,其中,所述目标存储空间用于存储所述目标网络层输出的目标输出数据。6.根据权利要求5所述的方法,其特征在于,所述确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,包括:从第一指针和第二指针中确定上一次在所述第二存储空间中为数据分配存储空间所使用的参考指针,其中,所述第一指针用于指示从所述第二存储空间的顶端向底端分配存储空间的顶端开始位置,所述第二指针用于指示从所述第二存储空间的底端向顶端分配存储空间的底端开始位置;在所述参考指针为所述第一指针的情况下,将所述第二指针确定为目标指针,并将所
述第二指针所指示的分配方向确定为所述当前分配方向;在所述参考指针为所述第二指针的情况下,将所述第一指针确定为目标指针,并将所述第一指针所指示的分配方向确定为所述当前分配方向。7.根据权利要求6所述的方法,其特征在于,所述按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间,包括:在所述第二存储空间中从所述目标指针所指示的开始位置按照所述当前分配方向为所述目标网络层的输出数据分配所述目标存储空间;根据所述目标存储空间的结束位置对所述目标指针进行更新。8.根据权利要求6所述的方法,其特征在于,在所述按照所述当前分配方向在所述第二存储空间中为所述目标网络层的输出数据分配目标存储空间之后,所述方法还包括:记录所述目标存储空间对应的剩余使用次数,其中,所述剩余使用次数的初始值为使用所述目标网络层的输出数据作为输入数据的网络层的数量;在所述目标网络层的输出数据被作为输入数据使用的情况下,将所述剩余使用次数减1;在所述剩余使用次数为0的情况下,释放所述目标存储空间,并更新所述目标指针。9.根据权利要求5所述的方法,其特征在于,所述确定在所述第二存储空间中为所述目标网络层的输出数据分配存储空间的当前分配方向,包括:确定所述目标网络层的输出数据的数据属性;在所述数据属性用于指示在所述...

【专利技术属性】
技术研发人员:姚海东刘隽常锐
申请(专利权)人:中兴智能科技南京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1