System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及芯片运算,尤其设计一种任务调度方法、装置、设备及介质。
技术介绍
1、人工智能(artificial intelligence,简称ai)芯片做运算时,需要访问大量的运算数据,ai芯片本身的存储数据能力有限,访问随机存取存储器(random access memory,简称ram)去取得计算相关的数据的延时很高。
2、目前,ai计算芯片都会通过缓存器来做数据的缓存,在缓存器中缓存当前计算任务所需要的数据,从而减少芯片中计算单元访问ram需要的延时。
3、但是,当执行的计算任务相关性不高,需要缓存器缓存不同的数据时,会增加缓存器访问ram的次数,增加缓存器切换数据的次数,降低了ai芯片的计算效率。
技术实现思路
1、本申请提供一种任务调度方法、装置、设备及介质,用来提升芯片计算效率。
2、一方面,本申请提供一种任务调度方法,包括:
3、从软件下发的任务中确定待调度任务,所述软件下发的任务设定有连续调度次数;
4、将所述待调度任务拆分成多个子任务,并按照所述待调度任务的连续调度次数,将所述多个子任务进行划分,得到所述待调度任务的至少一个区间任务;
5、针对所述待调度任务的每个区间任务,从所述待调度任务当前可见的资源中,为所述区间任务占据区间亲和资源,以及,将所述区间任务中的每个子任务连续调度至所述子任务对应的亲和资源,直至所述区间任务下的所有子任务均完成调度;其中,所述区间亲和资源包括所述区间任务中所有子
6、在一种实施例中,所述方法还包括:
7、若所述区间任务中的所有子任务均完成调度,则释放所述区间任务占据的所述区间亲和资源,其中被释放的资源对其它任务可见。
8、在一种实施例中,所述从所述待调度任务当前可见的资源中,为所述区间任务占据区间亲和资源,包括:
9、获取所述区间任务中子任务对应的资源掩码,所述子任务对应的资源掩码表征所述子任务对应的亲和资源;
10、将所述待调度任务当前可见的资源中所述掩码表征的资源,作为所述区间亲和资源,为所述区间任务占用所述区间亲和资源。
11、在一种实施例中,所述方法还包括:
12、通过解析所述任务调度指令,获得所述连续调度次数并记录在第一寄存器中;
13、基于第一更新条件,更新第二寄存器中的数据,所述第二寄存器中的数据表征当前已连续调度的次数;其中,所述第一更新条件包括:若当前已成功连续调度的次数达到所述第一寄存器中的连续调度次数,或者执行所述将所述待调度任务拆分成多个子任务的步骤后,或者收到针对所述待调度任务的终止调度指令,或者当前达到最大并行度,则对所述第二寄存器清零;否则,每次完成子任务的调度后,将所述第二寄存器执行加1处理;
14、基于第二更新条件,更新第三寄存器中的数据,所述第三寄存器中的数据表征当前需为所述区间任务占据的区间亲和资源;其中,所述第二更新条件包括:若当前已成功连续调度的次数达到所述第一寄存器中的连续调度次数,或者执行所述将所述待调度任务拆分成多个子任务的步骤后,或者收到针对所述待调度任务的终止调度指令,或者当前达到最大并行度,则清除所述第三寄存器中的数据;否则,每次完成子任务的调度后,从所述第三寄存器中删除该子任务的亲和资源。
15、在一种实施例中,所述将所述区间任务中的每个子任务连续调度至所述子任务对应的亲和资源,包括:
16、若所述第二寄存器中的数据未达到所述第一寄存器中的连续调度次数,则确定所述区间任务中未完成调度的子任务;
17、从所述未完成调度的子任务中选取待调度的子任务,将所述待调度的子任务调度至所述子任务对应的亲和资源,直至所述区间任务中所有子任务均完成调度。
18、在一种实施例中,所述软件下发的任务具有优先级;所述从软件下发的任务中确定待调度任务,包括:
19、根据当前的可用资源,按照优先级自高向低,从每个优先级对应的任务中选取至少一个任务作为所述待调度任务,直至当前的可用资源不包括任意任务对应的亲和资源;其中,不同待调度任务对应的亲和资源不同,所述可用资源包括除当前的所有待调度任务对应的亲和资源以外的资源。
20、在一种实施例中,所述从每个优先级对应的任务中选取至少一个任务作为所述待调度任务,包括:
21、若所述优先级对应的任务中存在亲和资源有重合的不同任务,则将当前所述不同任务中权重最大的任务作为所述待调度任务,并增加所述不同任务中其它任务的权重。
22、另一方面,本申请提供一种任务调度装置,包括:
23、确定模块,用于从软件下发的任务中确定待调度任务,所述软件下发的任务设定有连续调度次数;
24、处理模块,用于将所述待调度任务拆分成多个子任务,并按照所述待调度任务的连续调度次数,将所述多个子任务进行划分,得到所述待调度任务的至少一个区间任务;
25、处理模块,还用于针对所述待调度任务的每个区间任务,从所述待调度任务当前可见的资源中,为所述区间任务占据区间亲和资源,以及,将所述区间任务中的每个子任务连续调度至所述子任务对应的亲和资源,直至所述区间任务下的所有子任务均完成调度;其中,所述区间亲和资源包括所述区间任务中所有子任务对应的亲和资源的集合,其中被占据的资源对其它任务不可见。
26、在一种实施例中,所述处理模块,还用于若所述区间任务中的所有子任务均完成调度,则释放所述区间任务占据的所述区间亲和资源,其中被释放的资源对其它任务可见。
27、在一种实施例中,所述处理模块,具体用于获取所述区间任务中子任务对应的资源掩码,所述子任务对应的资源掩码表征所述子任务对应的亲和资源;
28、所述处理模块,具体还用于将所述待调度任务当前可见的资源中所述掩码表征的资源,作为所述区间亲和资源,为所述区间任务占用所述区间亲和资源。
29、在一种实施例中,所述处理模块,具体还用于通过解析所述任务调度指令,获得所述连续调度次数并记录在第一寄存器中;
30、所述处理模块,具体还用于基于第一更新条件,更新第二寄存器中的数据,所述第二寄存器中的数据表征当前已连续调度的次数;其中,所述第一更新条件包括:若当前已成功连续调度的次数达到所述第一寄存器中的连续调度次数,或者执行所述将所述待调度任务拆分成多个子任务的步骤后,或者收到针对所述待调度任务的终止调度指令,或者当前达到最大并行度,则对所述第二寄存器清零;否则,每次完成子任务的调度后,将所述第二寄存器执行加1处理;
31、所述处理模块,具体还用于基于第二更新条件,更新第三寄存器中的数据,所述第三寄存器中的数据表征当前需为所述区间任务占据的区间亲和资源;其中,所述第二更新条件包括:若当前已成功连续调度的次数达到所述第一寄存器中的连续调度次数,或者执行所述将所述待调度任务拆本文档来自技高网...
【技术保护点】
1.一种任务调度方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述从所述待调度任务当前可见的资源中,为所述区间任务占据区间亲和资源,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述区间任务中的每个子任务连续调度至所述子任务对应的亲和资源,包括:
6.根据权利要求1-5任一项所述的方法,其特征在于,所述软件下发的任务具有优先级;所述从软件下发的任务中确定待调度任务,包括:
7.根据权利要求6所述的方法,其特征在于,所述从每个优先级对应的任务中选取至少一个任务作为所述待调度任务,包括:
8.一种任务调度装置,其特征在于,包括:
9.根据权利要求8所述的装置,其特征在于,
10.根据权利要求8所述的装置,其特征在于,
11.根据权利要求8所述的装置,其特征在于,
12.根据权利要求11所述的装置,其特征在
13.根据权利要求8-12任一项所述的装置,其特征在于,
14.根据权利要求13所述的装置,其特征在于,
15.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
...【技术特征摘要】
1.一种任务调度方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述从所述待调度任务当前可见的资源中,为所述区间任务占据区间亲和资源,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的方法,其特征在于,所述将所述区间任务中的每个子任务连续调度至所述子任务对应的亲和资源,包括:
6.根据权利要求1-5任一项所述的方法,其特征在于,所述软件下发的任务具有优先级;所述从软件下发的任务中确定待调度任务,包括:
7.根据权利要求6所述的方法,其特征在于,所述从每个优先级对应的任务中选取至少一个任务作为所述待调度...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,请求不公布姓名,
申请(专利权)人:安徽寒武纪信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。