资源分配方法以及装置制造方法及图纸

技术编号:27580796 阅读:11 留言:0更新日期:2021-03-09 22:34
一种资源分配方法以及装置。资源分配方法包括:确定当前线程组单元需要使用的计算单元,计算单元包括M个寄存器,M个寄存器按照寄存器编号排列,计算单元中可用的寄存器的数量为B,当前线程组单元需要使用的寄存器数量为A,M、A和B均为正整数且M大于或等于B,B大于或等于A;在计算单元的可用的B个寄存器中选择A个寄存器,A个寄存器的寄存器编号是连续的或不连续的;以及分别获得A个寄存器的物理地址。该资源分配方法可以提高寄存器资源的利用率。该资源分配方法可以提高寄存器资源的利用率。该资源分配方法可以提高寄存器资源的利用率。

【技术实现步骤摘要】
资源分配方法以及装置


[0001]本公开的实施例涉及一种资源分配方法以及装置。

技术介绍

[0002]在当前设计的处理器中,一个线程组(TG,threadgroup),为由指令处理模块下发的最小线程组单元,例如线程组包括不超过2048个线程(thread),线程组会被拆分为多个线程组单元(wavefront)。线程组单元是着色器输入单元可以处理的最小单元。例如,每个线程组单元包括不超过64个线程。处理单元(CU,compute unit,例如为处理器内部的处理单元)包括多个计算单元(SIMD,single instruction multiple data)。每个计算单元包括多个通用寄存器(GPR,general purpose register)。着色器输入单元(SPI,Shader Processor Input)为线程组分配寄存器资源,计算单元将线程组的数据写入寄存器。处理单元中的着色序列器(SQ,shader sequencer)作为处理单元的控制逻辑在执行内核程序的过程中协调计算单元内部各资源的使用方式。

技术实现思路

[0003]本公开的实施例提供一种资源分配方法以及装置。该资源分配方法可以提高寄存器资源的利用率。
[0004]本公开至少一个实施例提供了一种资源分配方法以及装置,该资源分配方法包括:确定当前线程组单元需要使用的计算单元,其中,所述计算单元包括M个寄存器,所述M个寄存器按照寄存器编号排列,所述计算单元中可用的寄存器的数量为B,所述当前线程组单元需要使用的寄存器数量为A,M、A和B均为正整数且M大于或等于B,B大于或等于A;在所述计算单元的可用的B个寄存器中选择A个寄存器,其中,所述A个寄存器的寄存器编号是连续的或不连续的;以及分别获得所述A个寄存器的物理地址。
[0005]例如,在本公开至少一实施例提供的资源分配方法中,所述A个寄存器中至少两个的寄存器编号不是连续的。
[0006]例如,在本公开至少一实施例提供的资源分配方法中,分别获得所述A个寄存器的物理地址包括:获取所述A个寄存器对应的掩码向量,根据所述计算单元可以取得的最大地址及所述掩码向量得到所述A个寄存器的物理地址。
[0007]例如,在本公开至少一实施例提供的资源分配方法中,根据所述计算单元可以取得的最大地址及所述掩码向量得到所述A个寄存器的物理地址,包括:将所述掩码向量的各位数值进行取反以得到虚拟掩码向量,对所述虚拟掩码向量使用二分法进行转化,分别得到所述A个寄存器的虚拟地址以分别使用所述最大地址减去所述A个寄存器的每个的虚拟地址,从而得到所述A个寄存器每个的物理地址。
[0008]例如,在本公开至少一实施例提供的资源分配方法中,对所述虚拟掩码向量使用二分法进行转化以分别得到所述A个寄存器中的虚拟地址,包括:按照所述A个寄存器的寄存器编号由小到大的顺序依次得到所述A个寄存器的每个对应的虚拟地址,以获得A个寄存
器每个的物理地址,其中,当计算所述A个寄存器的第N个寄存器的虚拟地址之后,将所述第N个寄存器在掩码向量中对应的数值清零并得到更新的掩码向量,根据所述更新的掩码向量计算所述第N+1个寄存器的虚拟地址,N为正整数且N小于A。
[0009]例如,在本公开至少一实施例提供的资源分配方法中,在所述计算单元的所述可用的寄存器中选择所述A个寄存器,包括:在所述计算单元的所述可用的寄存器中,按照所述可用的寄存器的寄存器编号从小到大或从大到小的顺序依次选择所述A个寄存器。
[0010]例如,本公开至少一实施例提供的资源分配方法还包括:判断所述寄存器是否按照单个线程组单元需求进行配置,当判断为是时确定所述当前线程组单元需要使用的寄存器。
[0011]例如,在本公开至少一实施例提供的资源分配方法中,当前执行任务包括至少一个线程组,所述至少一个线程组每个包括多个线程组单元,其中,所述至少一个线程组的数量小于预设值时,判断所述寄存器是按照所述单个线程组单元需求进行配置。
[0012]例如,本公开至少一实施例提供的资源分配方法还包括:根据所述A个寄存器的物理地址将所述当前线程组单元的数据对应写入所述A个寄存器中。
[0013]例如,在本公开至少一实施例提供的资源分配方法中,根据所述A个寄存器的物理地址将所述当前线程组单元的数据对应写入所述A个寄存器中,包括:将所述当前线程组单元对应在线程组中的线程编号写入所述A个寄存器以得到所述线程编号与所述A个寄存器的对应关系,其中,所述线程组包括所述当前线程组单元,根据所述线程编号与所述A个寄存器的对应关系,将所述A个寄存器分配给所述当前线程组单元,以将所述当前线程组单元的数据对应写入所述A个寄存器中。
[0014]例如,在本公开至少一实施例提供的资源分配方法中,将所述当前线程组单元对应在线程组中的线程编号写入所述A个寄存器以得到所述线程编号与所述A个寄存器的对应关系,包括:将所述线程编号设置在至少一个维度,根据所述A个寄存器的物理地址,将所述至少一个维度每个的线程编号按照所述至少一个维度的排列顺序写入所述A个寄存器,从而确定所述至少一个维度每个的线程编号与所写入的所述A个寄存器每个的物理地址一一对应。
[0015]本公开至少一个实施例还提供了一种资源分配装置,该资源分配装置包括计算单元选择模块、寄存器选择模块以及物理地址获得模块。计算单元选择模块配置为确定当前线程组单元需要使用的计算单元,其中,所述计算单元包括M个寄存器,所述M个寄存器按照寄存器编号排列,所述计算单元中可用的寄存器的数量为B,所述当前线程组单元需要使用的寄存器数量为A,M、A和B均为正整数且M大于或等于B,B大于或等于A;寄存器选择模块配置为在所述计算单元的可用的B个寄存器中选择A个寄存器,其中,所述A个寄存器的寄存器编号是连续的或不连续的;物理地址获得模块配置为分别获得所述A个寄存器的物理地址。
[0016]本公开至少一实施例提供的一种资源分配方法以及装置,可以在计算单元的可用的寄存器中选择当前线程组单元需要使用的寄存器并分别获得该寄存器的物理地址,该寄存器的寄存器编号不限于是连续的,也就是说可以直接选择离散的寄存器并获得该寄存器的物理地址,以将离散的寄存器使用起来,增加并行程序的个数,进而提高了寄存器的利用率。
附图说明
[0017]为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0018]图1A为计算单元的掩码表的示意图;
[0019]图1B为计算单元的寄存器的当前空闲状态的向量示意图;
[0020]图2A为需要分配寄存器的线程组的需求向量的示意图;
[0021]图2B为图2A所示的需求向量取反后的示意图;
[0022]图2C为图2B所示的向量与图1B所示的向量进行逻辑运算后的结果示意图;
[0023]图3为本公开至少一实施例提供的一种资源分配方法的流程示意图;
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种资源分配方法,包括:确定当前线程组单元需要使用的计算单元,其中,所述计算单元包括M个寄存器,所述M个寄存器按照寄存器编号排列,所述计算单元中可用的寄存器的数量为B,所述当前线程组单元需要使用的寄存器数量为A,M、A和B均为正整数且M大于或等于B,B大于或等于A;在所述计算单元的可用的B个寄存器中选择A个寄存器,其中,所述A个寄存器的寄存器编号是连续的或不连续的;以及分别获得所述A个寄存器的物理地址。2.根据权利要求1所述的资源分配方法,其中,所述A个寄存器中至少两个的寄存器编号不是连续的。3.根据权利要求1所述的资源分配方法,其中,分别获得所述A个寄存器的物理地址包括:获取所述A个寄存器对应的掩码向量,根据所述计算单元可以取得的最大地址及所述掩码向量得到所述A个寄存器的物理地址。4.根据权利要求3所述的资源分配方法,其中,根据所述计算单元可以取得的最大地址及所述掩码向量得到所述A个寄存器的物理地址,包括:将所述掩码向量的各位数值进行取反以得到虚拟掩码向量,对所述虚拟掩码向量使用二分法进行转化以分别得到所述A个寄存器的虚拟地址,分别使用所述最大地址减去所述A个寄存器的每个的虚拟地址,从而得到所述A个寄存器每个的物理地址。5.根据权利要求4所述的资源分配方法,其中,对所述虚拟掩码向量使用二分法进行转化以分别得到所述A个寄存器中的虚拟地址,包括:按照所述A个寄存器的寄存器编号由小到大的顺序依次得到所述A个寄存器的每个对应的虚拟地址,以获得A个寄存器每个的物理地址,其中,当计算所述A个寄存器的第N个寄存器的虚拟地址之后,将所述第N个寄存器在掩码向量中对应的数值清零并得到更新的掩码向量,根据所述更新的掩码向量计算所述第N+1个寄存器的虚拟地址,N为正整数且N小于A。6.根据权利要求1所述的资源分配方法,其中,在所述计算单元的所述可用的寄存器中选择所述A个寄存器,包括:在所述计算单元的所述可用的寄存器中,按照所述可用的寄存器的寄存器编号从小到大或从大到小的顺序依次选择所述A个寄存器。7.根据权利要求1所述的资源分配方法,还包括:判断所...

【专利技术属性】
技术研发人员:王陶然
申请(专利权)人:海光信息技术股份有限公司
类型:发明
国别省市:

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

1