循环间隔的确定方法、装置、设备、存储介质及芯片制造方法及图纸

技术编号:38864741 阅读:34 留言:0更新日期:2023-09-17 10:05
本申请提供了一种循环间隔的确定方法、装置、设备、存储介质及芯片,属于芯片与半导体技术领域。所述方法包括:基于输入的指令序列,构建关系图;基于所述关系图,确定循环间隔,所述循环间隔用于表示同一指令在相邻两次循环之中被调度时的最大时间间隔;采用梯度下降法,对所述循环间隔进行更新,在基于更新后的当前循环间隔内未能成功调度所述多个指令的情况下,将所述当前循环间隔的上一个循环间隔,作为目标循环间隔。上述技术方法能够实现了从能够保证成功调度的最大的循环间隔逐渐向下检索,以找到最小的循环间隔的目的,能够提高获取目标循环间隔的效率。上述指令序列可以通过读取人工智能领域中进行机器学习的模型得到。读取人工智能领域中进行机器学习的模型得到。读取人工智能领域中进行机器学习的模型得到。

【技术实现步骤摘要】
循环间隔的确定方法、装置、设备、存储介质及芯片


[0001]本申请涉及芯片与半导体
,特别涉及一种循环间隔的确定方法、装置、设备、存储介质及芯片。

技术介绍

[0002]近年来,AI(Artificial Intelligence,人工智能)迅猛发展。越来越多的人争相研发相关的AI基础设施。例如,在AI编译器后端的代码生成过程中,由于AI的基本计算单元中存在大量的循环指令结构,消耗了主要的AI芯片执行时间。如何提高AI芯片的代码生成效率是本领域研究的重点。
[0003]目前,通常采用的是软流水优化算法中的模调度算法,来优化循环指令结构的编译。模调度的目标,就是找到可以成功调度参与循环的所有指令的最小的循环间隔。具体地,先计算出循环间隔的下限值,该下限值并不一定能够成功调度所有指令;然后,从下限值按照上升顺序逐一进行尝试,直至成功调度所有的指令,首次成功调度所有的指令的循环间隔即为所需的目标循环间隔。
[0004]但是,在绝大部分情况下,如果基于循环间隔的调度失败,耗时通常是调度成功时的100~1000倍,才能得到调度失败的结果,存在数量级的差别。这就导致上述技术方案的过程需要花费大量的时间才能确定目标循环间隔,影响后续代码的生成效率。

技术实现思路

[0005]本申请实施例提供了一种循环间隔的确定方法、装置、设备、存储介质及芯片,能够提高获取目标循环间隔的效率。所述技术方案如下所示。
[0006]一方面,提供了一种循环间隔的确定方法,所述方法包括:
[0007]基于输入的指令序列,构建关系图,所述指令序列包括用于循环执行的多个指令,所述关系图中的节点用于表示所述指令序列中的指令,所述关系图中的边用于表示连接的两个节点所表示的指令之间的依赖关系;
[0008]基于所述关系图,确定循环间隔,所述循环间隔用于表示同一指令在相邻两次循环之中被调度时的最大时间间隔,所述循环间隔等于单次循环中依次调度所述多个指令所需的时长;
[0009]采用梯度下降法,对所述循环间隔进行更新,在基于更新后的当前循环间隔内未能成功调度所述多个指令的情况下,将所述当前循环间隔的上一个循环间隔,作为目标循环间隔,所述目标循环间隔用于表示能够成功调度所述多个指令的最小时长。
[0010]另一方面,提供了一种循环间隔的确定装置,所述装置包括:
[0011]第一构建模块,用于基于输入的指令序列,构建关系图,所述指令序列包括用于循环执行的多个指令,所述关系图中的节点用于表示所述指令序列中的指令,所述关系图中的边用于表示连接的两个节点所表示的指令之间的依赖关系;
[0012]确定模块,用于基于所述关系图,确定循环间隔,所述循环间隔用于表示同一指令
在相邻两次循环之中被调度时的最大时间间隔,所述循环间隔等于单次循环中依次调度所述多个指令所需的时长;
[0013]处理模块,用于采用梯度下降法,对所述循环间隔进行更新,在基于更新后的当前循环间隔内未能成功调度所述多个指令的情况下,将所述当前循环间隔的上一个循环间隔,作为目标循环间隔,所述目标循环间隔用于表示能够成功调度所述多个指令的最小时长。
[0014]在一些实施例中,所述确定模块,包括:
[0015]第一确定单元,用于基于所述关系图和当前时刻,从所述指令序列中确定至少一条第一指令,所述第一指令用于表示在符合依赖关系,且符合指令的调度时刻的情况下能够被调度的指令;
[0016]处理单元,用于对所述至少一条第一指令进行处理,得到处理结果,所述处理结果表示所述至少一条第一指令中的指令是否能够被成功调度;
[0017]更新单元,用于对所述当前时刻进行更新,得到第一时刻;
[0018]第二确定单元,用于在所述指令序列中所有的指令被成功调度情况下,基于所述第一时刻,确定所述循环间隔。
[0019]在一些实施例中,所述第一确定单元,包括:
[0020]第一确定子单元,用于基于所述关系图,从所述指令序列中确定至少一条第二指令,所述第二指令用于表示在符合依赖关系的情况下能够被调度的指令;
[0021]筛选子单元,用于基于所述当前时刻,从所述至少一条第二指令中,筛选出所述至少一条第一指令。
[0022]在一些实施例中,所述筛选子单元,用于对于任一条第二指令,获取所述第二指令所依赖的至少一个第三指令;对于任一条第三指令,获取所述第三指令的调度时刻和第一时长,所述第一时长用于表示从所述第三指令的调度时刻开始到所述第三指令的结果被所述第二指令获取的时长;基于所述调度时刻和所述第一时长,确定第二时刻;在所述第二指令对应的各个第三指令的第二时刻均未超出所述当前时刻的情况下,将所述第二指令作为第一指令。
[0023]在一些实施例中,所述处理单元,包括:
[0024]获取子单元,用于从所述至少一条第一指令中,获取目标指令;
[0025]检测子单元,用于检测所述目标指令的资源占用情况和第四指令的资源占用情况,所述资源占用情况用于表示对应的指令执行时所占用的硬件资源,所述第四指令为所述至少一条第一指令中已被调用的指令;
[0026]第二确定子单元,用于在所述目标指令的资源占用情况和所述第四指令的资源占用情况不冲突的情况下,确定所述目标指令的处理结果为所述目标指令在所述当前时刻能够被成功调用;
[0027]第二确定子单元,还用于在所述目标指令的资源占用情况和所述第四指令的资源占用情况冲突的情况下,确定所述目标指令的处理结果为所述目标指令在所述当前时刻不能够被成功调用。
[0028]在一些实施例中,所述获取子单元,用于执行下述至少一项:
[0029]从所述至少一条第一指令中,筛选出对应的节点在所述关系图中的高度最高的第
一指令,作为所述目标指令;
[0030]从所述至少一条第一指令中,筛选出对应的节点在所述关系图中存在后继节点最多的第一指令,作为所述目标指令;
[0031]从所述至少一条第一指令中,筛选出符合目标条件的第一指令,作为所述目标指令;
[0032]从所述至少一条第一指令中,筛选出占用资源最多的第一指令,作为所述目标指令;
[0033]从所述至少一条第一指令中,筛选出在所述指令序列中排序靠前的第一指令,作为所述目标指令。
[0034]在一些实施例中,所述装置还包括:
[0035]第二构建模块,用于对于任一指令,基于所述指令和能够成功调用所述指令的时刻,构建所述指令的调用信息对;
[0036]保存模块,用于将所述指令的调用信息对,保存在已调度集合中,所述已调度集合包括已被成功调用的指令。
[0037]在一些实施例中,所述装置还包括:
[0038]获取模块,用于获取所述多个指令的调用信息对,每个调用信息对包括对应的指令和指令能够被成功调度的调度时刻;
[0039]调整模块,用于基于所述多个指令的调用信息对,调整所述多个指令的结构。
[0040]另一方面本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种循环间隔的确定方法,其特征在于,所述方法包括:基于输入的指令序列,构建关系图,所述指令序列包括用于循环执行的多个指令,所述关系图中的节点用于表示所述指令序列中的指令,所述关系图中的边用于表示连接的两个节点所表示的指令之间的依赖关系;基于所述关系图,确定循环间隔,所述循环间隔用于表示同一指令在相邻两次循环之中被调度时的最大时间间隔,所述循环间隔等于单次循环中依次调度所述多个指令所需的时长;采用梯度下降法,对所述循环间隔进行更新,在基于更新后的当前循环间隔内未能成功调度所述多个指令的情况下,将所述当前循环间隔的上一个循环间隔,作为目标循环间隔,所述目标循环间隔用于表示能够成功调度所述多个指令的最小时长。2.根据权利要求1所述的方法,其特征在于,所述基于所述关系图,确定循环间隔,包括:基于所述关系图和当前时刻,从所述指令序列中确定至少一条第一指令,所述第一指令用于表示在符合依赖关系,且符合指令的调度时刻的情况下能够被调度的指令;对所述至少一条第一指令进行处理,得到处理结果,所述处理结果表示所述至少一条第一指令中的指令是否能够被成功调度;对所述当前时刻进行更新,得到第一时刻;在所述指令序列中所有的指令被成功调度情况下,基于所述第一时刻,确定所述循环间隔。3.根据权利要求2所述的方法,其特征在于,所述基于所述关系图和当前时刻,从所述指令序列中确定至少一条第一指令,包括:基于所述关系图,从所述指令序列中确定至少一条第二指令,所述第二指令用于表示在符合依赖关系的情况下能够被调度的指令;基于所述当前时刻,从所述至少一条第二指令中,筛选出所述至少一条第一指令。4.根据权利要求3所述的方法,其特征在于,所述基于所述当前时刻,从所述至少一条第二指令中,筛选出所述至少一条第一指令,包括:对于任一条第二指令,获取所述第二指令所依赖的至少一个第三指令;对于任一条第三指令,获取所述第三指令的调度时刻和第一时长,所述第一时长用于表示从所述第三指令的调度时刻开始到所述第三指令的结果被所述第二指令获取的时长;基于所述调度时刻和所述第一时长,确定第二时刻;在所述第二指令对应的各个第三指令的第二时刻均未超出所述当前时刻的情况下,将所述第二指令作为第一指令。5.根据权利要求2所述的方法,其特征在于,所述对所述至少一条第一指令进行处理,得到处理结果,包括:从所述至少一条第一指令中,获取目标指令;检测所述目标指令的资源占用情况和第四指令的资源占用情况,所述资源占用情况用于表示对应的指令执行时所占用的硬件资源,所述第四指令为所述至少一条第一指令中已被调用的指令;在所述目标指令的资源占用情况和所述第四指令的资源占用情况不冲突的情况下,确
定所述目标指令的处理结果为所述目标指令在所述当前时刻能够被成功调用;在所述目标...

【专利技术属性】
技术研发人员:田骅肖冉颜开蒋荣琳
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1