System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及芯片,尤其涉及一种寄存器分配方法、装置、设备以及存储介质。
技术介绍
1、随着计算机技术的进步,图形处理能力得到了显著提升,图形处理在众多应用领域中的需求日益增长。在图形处理中,通常需要对内存中的大量数据进行统一的计算处理,对处理完成的数据再写回到内存中,之后再对该数据进行下一步的处理。对于这种计算,需要专用处理器来进行处理,专用处理器一般是普通cpu处理性能的百倍以上,但对于这种专用处理器,在将算法程序编译成机器指令的过程中,寄存器的分配对其计算性能有较严重的影响。
2、现有的寄存器分配方法,专用处理器无法充分利用寄存器。因此,亟需提供一种寄存器分配方法,以解决寄存器利用不充分的问题。
技术实现思路
1、有鉴于此,本申请提供一种寄存器分配方法、装置、设备以及存储介质,用以解决寄存器利用不充分的问题。
2、具体地,本申请是通过如下技术方案实现的:
3、本申请第一方面提供一种寄存器分配方法,所述方法包括:
4、对目标程序的有向无环图进行分割,得到独立的多个子图;
5、依据所述子图呈现的依赖关系,确定所述子图中的各个节点的寄存器使用信息;
6、依据所述子图呈现的依赖关系、所述子图中的各个节点的寄存器使用信息、以及预设的最大寄存器消耗量,创建所述多个子图对应的层级结构;其中,所述层级结构包括级联的多个层级,所述多个层级中的任一个节点均在其向前依赖的前向依赖节点所在的层级之后的层级,所述多个层级中的每一层级中
7、按照所述层级结构指示的顺序,依序为所述层级结构中的各个节点分配寄存器。
8、本申请第二方面提供一种寄存器分配装置,所述装置包括分割模块、确定模块、创建模块和分配模块;其中,
9、所述分割模块,用于对目标程序的有向无环图进行分割,得到独立的多个子图;
10、所述确定模块,用于依据所述子图呈现的依赖关系,确定所述子图中的各个节点的寄存器使用信息;
11、所述创建模块,用于依据所述子图呈现的依赖关系、所述子图中的各个节点的寄存器使用信息、以及预设的最大寄存器消耗量,创建所述多个子图对应的层级结构;其中,所述层级结构包括级联的多个层级,所述多个层级中的任一个节点均在其向前依赖的前向依赖节点所在的层级之后的层级,所述多个层级中的每一层级中的任意两个节点相互独立,所述每一层级中的所有节点对寄存器的累加消耗量小于所述最大寄存器消耗量;
12、所述分配模块,用于按照所述层级结构指示的顺序,依序为所述层级结构中的各个节点分配寄存器。
13、本申请第三方面提供一种寄存器分配设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面提供的任一项所述方法的步骤。
14、本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请第一方面提供的任一项所述方法的步骤。
15、本申请提供的寄存器分配方法、装置和设备,通过对目标程序的有向无环图进行分割,得到独立的多个子图,并依据所述子图呈现的依赖关系,确定所述子图中的各个节点的寄存器使用信息,进而依据所述子图呈现的依赖关系、所述子图中的各个节点的寄存器使用信息、以及预设的最大寄存器消耗量,创建所述多个子图对应的层级结构,从而按照所述层级结构指示的顺序,依序为所述层级结构中的各个节点分配寄存器。其中,所述层级结构包括级联的多个层级,所述多个层级中的任一个节点均在其向前依赖的前向依赖节点所在的层级之后的层级,所述多个层级中的每一层级中的任意两个节点相互独立,所述每一层级中的所有节点对寄存器的累加消耗量小于所述最大寄存器消耗量。这样,最后依据层级结构为各个节点分配寄存器,能够让程序充分利用寄存器,提高了程序的执行效率。
本文档来自技高网...【技术保护点】
1.一种寄存器分配方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述子图中的各个节点的寄存器使用信息,包括:
3.根据权利要求1所述的方法,其特征在于,所述创建所述多个子图对应的层级结构之后,所述方法还包括:
4.根据权利要求1或3所述的方法,其特征在于,所述依据所述子图呈现的依赖关系、所述子图中的各个节点的寄存器使用信息、以及预设的最大寄存器消耗量,创建所述多个子图对应的层级结构,包括:
5.根据权利要求4所述的方法,其特征在于,所述依据所述第一节点的依赖关系,从所述空层级结构中选择一个层级作为所述第一节点的备选层级,包括:
6.根据权利要求3所述的方法,其特征在于,对所述层级结构中的每一层级内的所有节点进行重排序,得到所述层级结构对应的重排序结果,包括:
7.根据权利要求2所述的方法,其特征在于,所述依据所述关键路径,对所述子图中的所有节点进行排序,得到排序结果,包括:
8.一种寄存器分配装置,其特征在于,所述装置包括:分割模块、确定模块、创建模块和分配模
9.一种寄存器分配设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
...【技术特征摘要】
1.一种寄存器分配方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述子图中的各个节点的寄存器使用信息,包括:
3.根据权利要求1所述的方法,其特征在于,所述创建所述多个子图对应的层级结构之后,所述方法还包括:
4.根据权利要求1或3所述的方法,其特征在于,所述依据所述子图呈现的依赖关系、所述子图中的各个节点的寄存器使用信息、以及预设的最大寄存器消耗量,创建所述多个子图对应的层级结构,包括:
5.根据权利要求4所述的方法,其特征在于,所述依据所述第一节点的依赖关系,从所述空层级结构中选择一个层级作为所述第一节点的备选层级,包括:
6.根据权利要求3所述的方法,其特征...
【专利技术属性】
技术研发人员:南矮峰,
申请(专利权)人:深圳云天励飞技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。