资源调度方法、装置、设备及存储介质与流程

专利查询3月前  31



1.本公开涉及神经网络技术领域,尤其涉及一种资源调度方法、装置、设备及存储介质。


背景技术:

2.神经网络的一个父节点通常情况下连接有多个子节点。每个子节点可以包括一个或多个算子。终端设备在运行该多个子节点时,一般使用串行的方式。例如,某个父节点具有两个子节点,分别为子节点1和子节点2。终端设备先运行子节点1,在运行完子节点1之后,再运行子节点2。
3.但是,终端设备一般设置有多个处理器(central processing units,cpu)。终端设备使用串行的方式运行该多个子节点,虽然可以降低cpu的运行压力,但是可能会降低神经网络的处理效率。


技术实现要素:

4.本公开提供一种资源调度方法、装置、设备及存储介质,可以提高神经网络的处理效率。
5.本公开实施例的技术方案如下:
6.根据本公开实施例的第一方面,提供一种资源调度方法,该方法可以包括:资源调度装置获取终端设备的资源利用率;当终端设备的资源利用率小于第一阈值时,确定神经网络中父节点的多个子节点中每个子节点配置的cpu数量;其中,该神经网络是在终端设备内运行的;资源调度装置并行运行该多个子节点,其中,每个子节点使用该子节点配置的cpu运行该子节点中的算子。
7.可选地,上述“确定神经网络中父节点的多个子节点中每个子节点配置的cpu数量”具体可以包括:确定神经网络的父节点的多个子节点中每个子节点的单线程运行时间;根据每个子节点的单线程运行时间以及终端设备的cpu总数量、资源利用率,确定每个子节点配置的cpu数量。
8.可选地,每个子节点配置的cpu数量满足预设公式,预设公式为m*(1-n)*t/t,其中,m表示终端设备的cpu总数量,n表示终端设备的资源利用率,t表示子节点的单线程运行时间,t表示多个子节点的单线程运行时间的总和。
9.可选地,该方法还包括:当终端设备的资源利用率大于第二阈值,且小于第一阈值时,资源调度装置使用第一预设数量的cpu处理父节点中的每个子节点,第一预设数量小于终端设备的cpu总数量,第二阈值小于第一阈值。
10.可选地,上述“确定神经网络的父节点的多个子节点中每个子节点的单线程运行时间”具体可以包括:获取每个子节点的一个或多个算子的计算量;根据一个或多个算子的计算量以及终端设备的资源,确定对应的子节点的单线程运行时间。
11.可选的,该方法还可以包括:当终端设备的资源利用率大于或等于第一阈值时,资
源调度装置使用第二预设数量的cpu依次运行多个子节点中的每个算子,第二预设数量小于第一预设数量。
12.根据本公开实施例的第二方面,提供一种资源调度装置,该装置可以包括:获取单元、确定单元、处理单元;获取单元,用于获取终端设备的资源利用率;确定单元,用于当终端设备的资源利用率小于第一阈值时,确定神经网络中父节点的多个子节点中每个子节点配置的cpu数量;该神经网络实在终端设备内运行的;处理单元,还用于使用每个子节点配置的cpu并行运行各自对应的子节点中的每个算子。
13.可选地,该确定单元,具体用于确定神经网络的父节点的多个子节点中每个子节点的单线程运行时间;根据每个子节点的单线程运行时间以及找到设备的cpu总数量、资源利用率,确定每个子节点配置的cpu数量。
14.可选地,每个子节点配置的cpu数量满足预设公式,该预设公式为m*(1-n)*t/t,其中,m表示终端设备的cpu总数量,n表示终端设备的资源利用率,t表示子节点的单线程运行时间,t表示多个子节点的单线程运行时间的总和。
15.可选地,处理单元,具体用于当终端设备的资源利用率大于第二阈值,且小于第一阈值时,使用第一预设数量的cpu处理父节点中的每个子节点,第一预设数量小于终端设备的cpu总数量,第二阈值小于第一阈值。
16.可选的,该处理单元,具体用于:获取每个子节点的一个或多个算子的计算量;根据一个或多个算子的计算量以及找到设备的资源,确定对应的子节点的单线程运行时间。
17.根据本公开实施例的第三方面,提供一种计算设备,可以包括:处理器和用于存储处理器可执行指令的存储器;其中,处理器被配置为执行所述指令,以实现上述第一方面中任一种可选地资源调度方法。
18.根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由计算设备的处理器执行时,使得所述计算设备能够执行上述第一方面中任一种可选地资源调度方法。
19.根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在计算设备上运行时,使得计算设备执行如第一方面中任一种可选地实现方式所述的资源调度方法。
20.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
21.本公开的实施例提供的技术方案至少带来以下有益效果:
22.基于上述任一方面,本公开中,资源调度装置可以在当前找到设备的资源利用率较低时,确定神经网络的父节点的每个子节点配置的cpu数量,并使用每个子节点配置的cpu并行运行各自对应的子节点的算子。如此,相较于现有技术中串行的方式依次运行每个子节点的算子,本技术中可以采取并行运行的方式,在合理利用终端设备的cpu的同时可以提高神经网络的运行效率。
附图说明
23.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
24.图1示出了本公开实施例提供的一种神经网络的父节点的结构示意图;
25.图2示出了本公开实施例提供的一种通信系统的结构示意图;
26.图3示出了本公开实施例提供的一种资源调度方法的流程示意图;
27.图4示出了本公开实施例提供的又一种资源调度方法的流程示意图;
28.图5示出了本公开实施例提供的又一种资源调度方法的流程示意图;
29.图6示出了本公开实施例提供的又一种资源调度方法的流程示意图;
30.图7示出了本公开实施例提供的又一种资源调度方法的流程示意图;
31.图8示出了本公开实施例提供的一种资源调度装置的结构示意图;
32.图9示出了本公开实施例提供的又一种资源调度装置的结构示意图。
具体实施方式
33.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
34.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
35.还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
36.本公开所涉及的数据可以为经用户授权或者经过各方充分授权的数据。
37.如背景技术中所描述,当神经网络在终端设备中运行时,终端设备通常采用串行的方式依次运行父节点的每个子节点的算子。串行的方式虽然可以降低cpu的运行压力,但是在一定程度上,降低了神经网络的处理效率。其中,神经网络可以包括多个父节点,每个父节点可以包括一个或多个子节点。子节点也可以称为子图。每个子节点可以包括一个或多个算子。
38.在神经网络中,算子是一个函数空间到函数空间上的映射。广义上来讲,对任何函数进行某一项操作都可以认为是一个算子。简言之,算子可以是映射、关系或者变换。深度学习框架需要将神经网络映射的计算图结构所表达的深度学习任务具体化成可以在cpu执行的指令和数据。在这个过程中,深度学习框架采用算子作为落实计算任务的具体元素,为每个算子都提供了在cpu上执行的核函数。根据计算图,深度学习框架调度执行计算图中每个算子对应的核函数,完成整个神经网络的计算。
39.例如,如图1所示,一个父节点(节点a)可以包括2个子节点(如子节点1和子节点2)。子节点1可以包括3个算子,分别为算子b、算子c、算子d。子节点2可以包括2个算子,分别为算子e和算子f。子节点1和子节点2可以分别与算子g连接。或者,算子g也可以作为子节点1或子节点2中的一个算子。
40.鉴于此,本公开提供了一种资源调度方法,该方法包括:资源调度装置获取终端设备的资源利用率;在终端设备的资源利用率低于第一阈值的情况下,资源调度装置确定神
经网络的父节点的每个子节点配置的cpu数量;资源调度装置使用每个子节点配置的cpu并行运行各自对应的子节点的算子。
41.以下结合附图对本公开实施例提供的资源调度方法进行示例性说明:
42.图2为本公开实施例提供的一种通信系统示意图,如图2所示,该通信系统中可以包括:服务器110和终端设备120。服务器110可以通过有线网络或无线网络与终端设备120之间建立连接。
43.其中,服务器110,可以用于向终端设备120下发运算任务。例如,该运算任务可以包括一个或多个神经网络。
44.一些实施例中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器(或者微服务器)构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本公开对服务器110的具体实现方式也不作限制。
45.终端设备120,可以用于运行神经网络。例如,终端设备120可以包括多个cpu。终端设备120可以使用该多个cpu运行神经网络。
46.一些实施例中,终端设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等可以安装并使用内容社区应用(如快手)的设备,本公开对该终端的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。
47.可选地,上述图2所示的通信系统中服务器110可以与至少一个终端设备120连接。本公开对终端设备120的数量及类型均不作限制。
48.本公开实施例提供的资源调度方法可以应用于前述图2所示的终端设备。
49.需要说明的是,本公开提供的资源调度方法的执行主体为资源调度装置。资源调度装置可以是终端设备,也可以是终端设备中芯片或片上系统等,不予限制。
50.如图3所示,本公开实施例提供的资源调度方法可以包括:
51.s301、资源调度装置获取终端设备的资源利用率。
52.其中,资源调度装置可以为图2中的终端设备120,也可以为终端设备120中器件,例如,可以为终端设备120的芯片。终端设备可以为图2中的终端设备120。终端设备可以用于运行神经网络。
53.其中,终端设备的资源利用率可以反映终端设备的负载情况。资源利用率越高,终端设备的负载越大;资源利用率越低,终端设备的负载越小。例如,终端设备的资源利用率可以为终端设备的cpu利用率,也可以为终端设备的内存利用率等,不予限制。
54.一种示例中,资源调度装置可以周期性的获取终端设备的资源利用率,或者,资源调度装置可以响应于终端设备的下载神经网络的操作,获取终端设备的资源利用率。
55.s302、当终端设备的资源利用率小于第一阈值时,资源调度装置确定神经网络中父节点的多个子节点配置的cpu数量。
56.其中,该神经网络是在终端设备内运行的。第一阈值可以根据需要设置,例如,可以为70%,不予限制。
57.其中,子节点配置的cpu可以用于运行该子节点中的算子。
58.一种示例中,资源调度装置可以根据每个子节点的运算量,将终端设备的cpu分配给每个子节点。具体的,后续将进行详细说明。此处不予赘述。
59.s303、资源调度装置并行运行多个子节点。
60.其中,每个子节点使用该子节点配置的cpu运行该子节点中的算子。并行运行可以是指资源调度装置同时运行,也即,资源调度装置可以同时使用每个子节点配置的cpu运行对应的子节点的算子。例如,结合图1,资源调度装置为子节点1配置的cpu分别为cpu1、cpu2、cpu3,为子节点2配置的cpu分别为cpu4和cpu5。资源调度装置可以在使用cpu1、cpu2和cpu3运行子节点1的每个算子的同时,使用cpu3和cpu4运行子节点2的每个算子。
61.上述实施例提供的技术方案至少带来以下有益效果:由s201-s203可知,资源调度装置可以在当前找到设备的资源利用率较低时,确定神经网络的父节点的每个子节点配置的cpu数量,并使用每个子节点配置的cpu并行运行各自对应的子节点的算子。如此,相较于现有技术中串行的方式依次运行每个子节点的算子,本技术中可以采取并行运行的方式,在合理利用终端设备的cpu的同时可以提高神经网络的运行效率。
62.在一种实施例中,结合图3,如图4所示,上述s302中,资源调度装置确定神经网络中父节点的多个子节点中每个子节点配置的cpu数量的方法,具体可以包括s401和s402。
63.s401、资源调度装置确定神经网络的父节点的多个子节点中每个子节点的单线程运行时间。
64.其中,子节点的单线程运行时间可以是指子节点的全部算子的运行时间的总和。例如,结合图1,子节点1的单线程运行时间可以为算子b、算子c以及算子d的运行时间总和。每个算子的运行时间可以是指使用终端设备使用预设数量的cpu运行完该算子的时间。
65.s402、资源调度装置根据每个子节点的单线程运行时间以及终端设备的cpu总数量、资源利用率,确定每个子节点配置的cpu。
66.上述实施例提供的技术方案至少带来以下有益效果:由s401和s402可知,资源调度装置可以根据子节点的单线程运行时间、终端设备的cpu总数量以及资源利用率等多个维度,确定为子节点配置的cpu总数量,全面准确。
67.在一种实施例中,上述每个子节点配置的cpu数量可以满足预设公式。该预设公式的参数可以包括子节点的单线程运行时间、终端设备的cpu总数量、终端设备的资源利用率。
68.一种示例中,该预设公式可以为m*(1-n)*t/t,其中,m表示终端设备的cpu总数量,n表示终端设备的资源利用率,t表示子节点的单线程运行时间,t表示多个子节点的单线程运行时间的总和。
69.例如,以终端设备的cpu总数量为8个,父节点为图1中节点a,子节点1的单线程运行时间为50秒,子节点2的单线程运行时间为60秒,终端设备当前的资源利用率为70%为例,则子节点1配置的cpu数量为8*(1-70%)*50/110≈1,子节点2配置的cpu数量为8*(1-70%)*60/110≈1。也即,终端设备可以各使用1个cpu并行运行子节点1和子节点2的每个算子。终端设备使用的cpu可以为终端设备的多个cpu中承载的运算量最小的两个cpu。
70.上述实施例提供的技术方案至少带来以下有益效果:由上述技术方案可知,终端设备可以根据预设公式直接确定每个子节点配置的cpu数量,简单方便。
71.在一种实施例中,结合图3,如图5所示,该方法还可以包括s501。
72.s501、当终端设备的资源利用率大于第二阈值且小于第一阈值时,资源调度装置使用第一预设数量的cpu处理父节点中的每个子节点。
73.其中,第一预设数量小于终端设备的cpu总数量。第二阈值小于第一阈值。第一预设数量、第二阈值可以根据需要设置,例如,当终端设备的cpu数量为8个,第一阈值为70%时,第一预设数量可以为6个,第二阈值可以为50%。也即上述预设公式中,终端设备的cpu总数量可以替换为第一预设数量。
74.一种示例中,若终端设备的资源利用率从40%增加至60%,也即,终端设备的资源利用率增大,此时,资源调度装置可以减少每个节点配置的cpu数量。具体的,终端设备可以使用上述预设公式再次确定每个子节点配置的cpu数量。
75.上述实施例提供的技术方案至少带来以下有益效果:由s501可知,资源调度装置可以在终端设备的资源利用率增大的情况下,减少每个子节点配置的cpu数量,用以减轻终端设备的cpu的运算压力。
76.在一种实施例中,结合图4,如图6所示,上述s401中,资源调度装置确定神经网络的父节点的多个子节点中的每个子节点的单线程运行时间的方法具体可以包括s601和s602。
77.s601、资源调度装置获取每个子节点的一个或多个算子的计算量。
78.其中,算子的计算量可以反映算子的运算数据的大小。例如,一个算子对应一个核函数,该核函数的运行量可以为该算子的计算量。比如,算子的计算量可以为每秒浮点运算次数(floating point operations per second,flops)。
79.s602、资源调度装置根据该一个或多个算子的计算量以及终端设备的资源,确定对应的子节点的单线程运行时间。
80.其中,终端设备的资源可以用于运行该一个或多个算子。例如,终端设备的资源可以包括用于运行该多个子节点的cpu。
81.一种示例中,终端设备可以将终端设备资源与子节点的一个或多个算子的计算量总和之间的比值作为该子节点的单线程运行时间。
82.又一种示例中,终端设备可以将多个子节点的算子的计算量总和之间的比值作为多个子节点的单线程运行时间的比值。例如,图1中,子节点1的算子的计算量总和为算子b的计算量+算子c的计算量+算子d的计算量,子节点2的算子的计算量总和为算子e的计算量+算子f的计算量。也即,子节点1和子节点2的单线程运行时间的比值为(算子的计算量总和为算子b的计算量+算子c的计算量+算子d的计算量)/(算子的计算量总和为算子b的计算量+算子c的计算量+算子d的计算量)。此时,上述预设公式中,子节点的运行时间可以替换为子节点的算子的计算量。
83.上述实施例提供的技术方案至少带来以下有益效果:由s601和s602可知,资源调度装置可以根据每个子节点的一个或多个算子的计算量和终端设备的资源,确定子节点的单线程运行时间。由于每个子节点的算子的计算量和终端设备的资源是已知的,因此,终端设备可以快速准确的确定子节点的单线程运行时间。
84.在一种实施例中,结合图6,如图7所示,该方法还可以包括:
85.s701、当终端设备的资源利用率大于或等于第一阈值时,资源调度装置使用第二预设数量的cpu依次运行多个子节点中的每个算子。
86.其中,第二预设数量小于第一预设数量。第二预设数量的大小可以根据需要设置,例如,当第一预设数量为6个时,第二预设数量可以为4个,不予限制。
87.上述实施例提供的技术方案至少带来以下有益效果:由s701可知,在终端设备的资源负载较高时,终端设备依然可以使用串行的方式依次运行每个子节点,减轻了cpu的压力,同时,还可以包括神经网络的运行。
88.可以理解的,在实际实施时,本公开实施例所述的资源调度装置可以包含有用于实现前述对应资源调度方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
89.基于这样的理解,本公开实施例还对应提供一种资源调度装置。图8示出了本公开实施例提供的资源调度装置的结构示意图。如图8所示,该资源调度装置可以包括:获取单元801、确定单元802、处理单元803。
90.获取单元801,用于获取终端设备的资源利用率;确定单元802,用于当资源利用率小于第一阈值时,确定神经网络中父节点的多个子节点配置的cpu数量;处理单元803,用于并行运行该多个子节点,其中,每个子节点使用该子节点配置的cpu运行该子节点中的算子。例如,结合图3,处理单元803用于执行s303。
91.可选地,确定单元802,具体用于:确定神经网络的父节点的多个子节点中每个子节点的单线程运行时间;根据每个子节点的单线程运行时间以及找到设备的cpu总数量、资源利用率,确定每个子节点配置的cpu数量。
92.可选的,确定神经网络的父节点的多个子节点中每个子节点的单线程运行时间;根据每个子节点的单线程运行时间以及找到设备的cpu总数量、资源利用率,确定每个子节点配置的cpu数量
93.可选地,处理单元803,具体用于:当终端设备的资源利用率大于第二阈值,且小于第一阈值时,使用第一预设数量的cpu处理父节点中的每个子节点,第一预设数量小于终端设备的cpu总数量,第二阈值小于第一阈值。
94.可选的,处理单元803,具体用于:获取每个子节点的一个或多个算子的计算量;根据一个或多个算子的计算量以及找到设备的资源,确定对应的子节点的单线程运行时间。
95.如上所述,本公开实施例可以根据上述方法示例对资源调度装置进行功能模块的划分。其中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。另外,还需要说明的是,本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
96.关于上述实施例中的资源调度装置,其中各个模块执行操作的具体方式、以及具备的有益效果,均已经在前述方法实施例中进行了详细描述,此处不再赘述。
97.本公开实施例还提供一种资源调度装置。图9示出了本公开实施例提供的资源调度装置的结构示意图。该资源调度装置可以包括至少一个处理器91,通信总线92,存储器93
以及至少一个通信接口94。
98.处理器91可以是一个处理器(central processing units,cpu),微处理单元,asic,或一个或多个用于控制本公开方案程序执行的集成电路。作为一个示例,结合图9,资源调度装置中的确定单元802实现的功能与图9中的处理器91实现的功能相同。
99.通信总线92可包括一通路,在上述组件之间传送信息。
100.通信接口94,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如服务器、以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。作为一个示例,结合图8,资源调度装置中的获取单元801实现的功能与图9中的通信接口94实现的功能相同。
101.存储器93可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
102.其中,存储器93用于存储执行本公开方案的应用程序代码,并由处理器91来控制执行。处理器91用于执行存储器93中存储的应用程序代码,从而实现本公开方法中的功能。
103.在具体实现中,作为一种实施例,处理器91可以包括一个或多个cpu,例如图9中的cpu0和cpu1。
104.在具体实现中,作为一种实施例,终端可以包括多个处理器,例如图9中的处理器91和处理器95。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
105.在具体实现中,作为一种实施例,资源调度装置还可以包括输入设备96和输出设备97。输入设备96和输出设备97通信,可以以多种方式接受用户的输入。例如,输入设备96可以是鼠标、键盘、触摸屏设备或传感设备等。输出设备97和处理器91通信,可以以多种方式来显示信息。例如,输出设备91可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备等。
106.本领域技术人员可以理解,图9中示出的结构并不构成对资源调度装置的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
107.本公开还提供了一种包括指令的计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机能够执行上述所示实施例提供的资源调度方法。例如,计算机可读存储介质可以为包括指令的存储器93,上述指令可由资源调度装置的处理器91执行以完成上述方法。又例如,计算机可读存储介质可以为包括指令的存储器93,上述指令可由服务器的处理器91执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例
如,所述非临时性计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。
108.本公开还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当所述计算机指令在资源调度装置上运行时,使得所述资源调度装置执行上述图3-图7任一附图所示的资源调度方法。
109.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
110.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术特征:
1.一种资源调度方法,其特征在于,所述方法包括:获取终端设备的资源利用率;当所述终端设备的资源利用率小于第一阈值时,确定神经网络中父节点的多个子节点中每个子节点配置的中央处理器cpu数量;所述神经网络是在所述终端设备内运行的;并行运行所述多个子节点,其中,每个子节点使用所述子节点配置的cpu运行所述子节点中的算子。2.根据权利要求1所述的方法,其特征在于,所述确定父节点的多个子节点中每个子节点配置的cpu数量,包括:确定所述神经网络的父节点的多个子节点中每个子节点的单线程运行时间;根据所述每个子节点的单线程运行时间以及所述终端设备的cpu总数量、资源利用率,确定所述每个子节点配置的cpu数量。3.根据权利要求2所述的方法,其特征在于,所述每个子节点配置的cpu数量满足预设公式,所述预设公式为m*(1-n)*t/t,其中,m表示所述终端设备的cpu总数量,n表示所述终端设备的资源利用率,t表示所述子节点的单线程运行时间,t表示多个子节点的单线程运行时间的总和。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:当所述终端设备的资源利用率大于第二阈值,且小于所述第一阈值时,使用第一预设数量的cpu处理所述父节点中的每个子节点,所述第一预设数量小于所述终端设备的cpu总数量,所述第二阈值小于所述第一阈值。5.根据权利要求2所述的方法,其特征在于,所述确定所述神经网络的父节点的多个子节点中每个子节点的单线程运行时间,包括:获取每个子节点的一个或多个算子的计算量;根据所述一个或多个算子的计算量以及所述终端设备的资源,确定对应的子节点的单线程运行时间。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:当所述终端设备的资源利用率大于或等于所述第一阈值时,使用第二预设数量的cpu依次运行所述多个子节点中的每个算子,所述第二预设数量小于所述第一预设数量。7.一种资源调度装置,其特征在于,所述装置包括获取单元、确定单元和处理单元;所述获取单元,用于获取终端设备的资源利用率;所述确定单元,用于当所述终端设备的资源利用率小于第一阈值时,确定神经网络中父节点的多个子节点中每个子节点配置的cpu数量;所述神经网络是在所述终端设备内运行的;所述处理单元,用于并行运行所述多个子节点,其中,每个子节点使用所述子节点配置的cpu运行所述子节点中的算子。8.一种计算设备,其特征在于,所述计算设备包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1-6中任一项所述的资源调度方法。
9.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由计算设备的处理器执行时,使得所述计算设备能够执行如权利要求1-6中任一项所述的资源调度方法。10.一种计算机程序产品,包括指令,其特征在于,当所述指令在计算设备上运行时,使得所述计算设备执行如权利要求1-6中任一项所述的资源调度方法。

技术总结
本公开关于一种资源调度方法、装置、设备及存储介质,涉及神经网络技术领域,本公开中,资源调度装置在获取运行神经网络的终端设备的资源利用率后,在终端设备的资源利用率较低的情况下,确定父节点下的每个子节点对应的CPU数量,并使用每个子节点的CPU并行运行各自对应的子节点的算子。如此,资源调度装置可以采取并行运行的方式,在合理利用终端设备的CPU的同时提高神经网络的运行效率。CPU的同时提高神经网络的运行效率。CPU的同时提高神经网络的运行效率。


技术研发人员:涂小兵
受保护的技术使用者:北京达佳互联信息技术有限公司
技术研发日:2021.11.11
技术公布日:2022/3/8

最新回复(0)