【技术实现步骤摘要】
用于图形处理器的工作组的分配方法以及图形处理器
[0001]本公开的实施例涉及一种用于图形处理器的工作组的分配方法以及图形处理器。
技术介绍
[0002]图形处理器GPU(例如GPGPU,General-purpose computing on graphics processingunits,通用图形处理器)在图形图像处理等领域逐步得到广泛应用。由于GPU具有天生的并行计算体系结构,近十多年来,随着GPU硬件结构的发展,它在通用计算领域尤其是高性能计算领域得到了广泛应用。
[0003]GPU的硬件结构支持超大规模多线程的并发执行,并采用单指令多数据的程序执行模式。为了高效的调度并发执行的线程组(Dispatch,其是一组三维空间的并行运算的线程,执行相同的内核程序),首先从一个线程组中切分出一部分线程,即工作组(Workgroup),并且一个工作组分配在一个计算单元(CU)中;然后再从一个工作组中切分出线程,即线程粒度(Warp),线程粒度是GPU中调度的最小单元,并且每个线程粒度中包含多个线程,线程粒度在同一时刻执行相同的数据操作。
[0004]随着人们对算力需求的提升,GPU中实例化的并行计算单元数量也在不断增加,如何高效地管理这些计算单元以达到各个并行计算单元负载的均衡就变得至关重要。
技术实现思路
[0005]本公开的实施例提供了一种用于图形处理器的工作组的分配方法以及图形处理器,基于各个并行计算单元的实时负载情况将工作组分配给计算单元,达到各个计算单元负载均衡的目的,提高计 ...
【技术保护点】
【技术特征摘要】
1.一种用于图形处理器的工作组的分配方法,包括:实时请求将当前工作组分配到多个计算单元之一;根据所述多个计算单元中每个的实时负载状态以及所述当前工作组的大小,在所述多个计算单元中选择用于所述当前工作组运行的目标计算单元;将所述当前工作组分成多个线程粒度发送到所述目标计算单元。2.如权利要求1所述的工作组的分配方法,其中,根据所述多个计算单元中每个的实时负载状态以及所述当前工作组的大小,在所述多个计算单元中选择用于所述当前工作组运行的目标计算单元,包括:根据每个计算单元的实时负载状态与所述当前工作组的大小之间的匹配结果,实时获取用于所述当前工作组的至少一个可用计算单元,并从所述至少一个可用计算单元中选择一个作为所述当前工作组的所述目标计算单元,其中,所述可用计算单元是指实时负载状态可供所述当前工作组运行的计算单元。3.如权利要求2所述的工作组的分配方法,其中,响应于所得到的每个计算单元的实时负载状态与所述当前工作组的大小之间的匹配结果而实时获取当前所有计算单元中不存在一个用于所述当前工作组的可用计算单元,继续请求将所述当前工作组分配到所述多个计算单元之一,直至根据每个计算单元的实时负载状态和所述当前工作组的大小获取用于所述当前工作组的至少一个可用计算单元。4.如权利要求2所述的工作组的分配方法,其中,从所述至少一个可用计算单元中选择一个作为所述当前工作组的所述目标计算单元,包括:所述目标计算单元的负载小于所述至少一个可用计算单元中其他可用计算单元中的至少一个计算单元的负载。5.如权利要求2所述的工作组的分配方法,其中,从所述至少一个可用计算单元中选择一个作为所述当前工作组的所述目标计算单元,包括:从所述至少一个可用计算单元中选择负载最小的计算单元作为所述目标计算单元。6.如权利要求5所述的工作组的分配方法,还包括:根据所述当前工作组的大小,更新所述目标计算单元的负载状态。7.如权利要求6所述的工作组的分配方法,还包括:在所述目标计算单元的至少一个线程粒度执行完内核程序后,对所述目标计算单元进行负载释放,并且更新所述目标计算单元的负载状态。8.如权利要求7所述的工作组的分配方法,其中,每个所述计算单元的实时负载状态以实时负载状态值分别被存储在负载状态寄存器中。9.如权利要求8所述的工作组的分配方法,其中,从所述至少一个可用计算单元中选择负载最小的计算单元作为所述目标计算单元,包括:根据每个所述计算单元的实时负载状态与所述当前工作组的大小进行比较的匹配结果,选择出实时负载状态可供所述当前工作组运行的一个或多个计算单元,并在已选择出
的所述一个或多个计算单元中选出负载最小的计算单元作为所述目标计算单元。10.如权利要求9所述的工作组的分配方法,其中,从所述至少一个可用计算单元中选择负载最小的计算单元作为所述目标计算单元,包括:将每个所述计算单元的实时负载状态与所述当前工作组的大小之间的匹配结果,与每个所述计算单元的相应负载状态寄存器的实时负载状态值进行按位与运算,分别得到一布尔位运算结果,其中,所述匹配结果为0以表示不匹配,或1以表示能匹配,所述布尔位运算结果为零或负载状态寄存器的实时负载状态值;将多个所述计算单元对应的多个布尔位运算结果,通过比较器和选择器进行多次比较和选择,选出所述负载最小的计算单元。11.如权利要求8~10任一所述的工作组的分配方法,其中,所述负载状态值包括负载权值,其中,所述负载状态寄存器所存储的计算单元的所述负载权值越大时,所述负载状态寄存器对应的计算单元的负载越小;所述负载最小的计算单元是指负载权值最大的计算单元。12.如权利要求11所述的工作组的分配方法,还包括:在分发所述线程粒度时,实时地更新所述负载状态寄存器的负载权值,将所述负载状态寄存器的更新前的负载权值减去当前被分发的线程粒度的负载权值,得到更新后的负载权值;在所述线程粒度执行完内核程序后,实时地更新所述负载状态寄存器的负载权值,将所述负载状态寄存器的更新前的负载权值加上当前已执行完内核程序的线程粒度的负载权值,得到更新后的负载权值。13.如权利要求12所述的工作组的分配方法,其中,每个所述线程粒度的负载权值被存储在权值存储模块中;每个所述线程粒度的负载权值在其被分发时被写入所述权值存储模块;每个线程粒度的负载权值在其执行完内核程序后,根据线程粒度所在的计算单元的地址从所述权值存储模块中被读出。14.一种图形处理器,包括:多个计算单元;资源管理器,接收将所述当前工作组待分配到所述多个计算单元之一的实时请求,根据所述多个计算单元中每个的实时负载状态以及所述当前工作组的大小,得到所述多个计算单元中每个的实时负载状态与所述当前工作组的大小之间的匹配结果,以在所述...
【专利技术属性】
技术研发人员:鄢传钦,王斌,张剑峰,陈俊,
申请(专利权)人:海光信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。