一种动态补偿线程束warp的方法、处理器及计算机存储介质技术

技术编号:26790289 阅读:61 留言:0更新日期:2020-12-22 17:05
本发明专利技术实施例公开了一种动态补偿线程束warp的方法、处理器及计算机存储介质;该方法可以包括:相应于检测到当前warp基于执行分支语句出现处于空闲状态的空闲线程,获取用于在所述空闲线程处于空闲状态期间填充所述空闲线程的补偿warp;调度所述补偿warp进入执行状态并且调度所述当前warp中的空闲线程执行所述补偿warp。

【技术实现步骤摘要】
一种动态补偿线程束warp的方法、处理器及计算机存储介质
本专利技术实施例涉及图形处理器(GPU,GraphicsProcessingUnit)
,尤其涉及一种动态补偿线程束warp的方法、处理器及计算机存储介质。
技术介绍
单指令多线程(SIMT,Single-Instruction-Mltiple-Thread)是目前一些GPU常规采用的并行执行模式,而线程组或线程束(warp)则是GPU中的一个基本调度单位。在执行一些特定的应用或者在某些特定的场景下,并非warp中所包含的所有线程均处于活跃状态,以if-else语块为例,当处理器中的一个warp在处理该条件分支语块的过程中,基于条件判断结果会得出两个分支代码,其中,该warp中所包括的部分线程(比如M个线程)会由于遵循“if”判断结果为真而被执行,从而处于活动状态;该warp中所包括的其他部分线程(比如K-M个线程,K表示一个warp所包含的所有线程数量)则会由于遵循“if”判断结果为假的“else”路径而被暂时禁用或屏蔽(等待中),从而处于空闲状态。此时,处于空闲状态的K-M个线程所对应的计算资源就会由于其所处的空闲状态而没有被使用,直至等待执行“else”路径时才会因为K-M个线程由空闲状态变更为活动状态而被使用。上述现象造成了计算资源的浪费。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种动态补偿线程束warp的方法、处理器及计算机存储介质;能够充分利用空闲的执行资源,降低计算资源的浪费,提高GPU的性能。本专利技术实施例的技术方案是这样实现的:第一方面,本专利技术实施例提供了一种处理器,所述处理器包括:管线控制器、所执行线程被组织成多个线程组warp的多个核心;其中,每个warp能够在多个核心中执行,每个核心同一个时刻对应一个线程的执行;所述管线控制器,经配置为执行以下步骤:相应于检测到当前warp基于执行分支语句出现处于空闲状态的空闲线程,获取用于在所述空闲线程处于空闲状态期间填充所述空闲线程的补偿warp;调度所述补偿warp进入执行状态并且调度所述当前warp中的空闲线程执行所述补偿warp。第二方面,本专利技术实施例提供了一种动态补偿线程束warp的方法,所述方法包括:相应于检测到当前warp基于执行分支语句出现处于空闲状态的空闲线程,获取用于在所述空闲线程处于空闲状态期间填充所述空闲线程的补偿warp;调度所述补偿warp进入执行状态并且调度所述当前warp中的空闲线程执行所述补偿warp。第三方面,本专利技术实施例提供了一种计算机存储介质、所述计算机存储介质存储有动态补偿线程束warp的程序,所述动态补偿线程束warp的程序被至少一个处理器执行时实现第二方面所述的动态补偿线程束warp的方法的步骤。本专利技术实施例提供了一种动态补偿线程束warp的方法、处理器及计算机存储介质;在当前warp中的空闲线程处于空闲状态的时间段内,将补偿warp调度至空闲线程以执行,从而在并行执行分支语句的过程中,对空闲状态的线程进行填充利用,充分地利用了这部分线程所对应的计算资源,以此达到计算资源更高的利用率。附图说明图1为本专利技术实施例提供的一种处理器的组成示意图。图2为本专利技术实施例提供的一种基于时序的warp补偿示意图。图3为本专利技术实施例提供的另一种基于时序的warp动态补偿示意图。图4为本专利技术实施例提供的一种动态补偿线程束warp的方法流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。参见图1,其示出了能够实现本专利技术实施例技术方案的一种适用于SIMT执行模式的处理器100示意图,在一些示例中,该处理器100能够作为GPU实现高度并行计算的处理器集群阵列中的通用处理集群的一个,以实现并行地执行大量的线程,其中每个线程是程序的实例(instance)。在另一些示例中,该处理器100可以被实现为GPU中的流多处理器(SM,StreamingMultiprocessors)。在该处理器100中,可以包括被组织成warp的多个线程处理器或被称之为核心,每个核心同一个时刻对应一个线程的执行。在一些示例中,相应于处理器100被实现为SM,核心可以被实现为流处理器(SP,StreamingProcessor)。该处理器100可以包含J个warp104-1到104-J,每个warp具有K个核心106-1到106K。在一些示例中,warp104-1到104-J可以进一步地被组织成一个或多个线程块(block)102。在一些示例中,每个warp可具有32个核心;在其他示例中,每个warp可具有4个核心、8个核心、16个核心、或者多如数万个核心;如图1所示,本专利技术实施例以设定每个warp具有8个核心(即K=8)为例进行技术方案阐述,可以理解地,上述设定仅用于技术方案说明,并非对技术方案的保护范围进行限制,本领域技术人员可以很容易地将基于上述设定所阐述的技术方案适用于其他情况,在此不作赘述。在某些可替代的示例中,该处理器100可将核心仅组织成warp,省略线程块block的组织级别。进一步来说,处理器100还可以包括管线控制器108、共享存储器110、以及与warp104-1到104-J相关联的本地存储器112-1到112-J的阵列。管线控制器108通过数据总线114将任务分布到各个warp104-1到104-J。管线控制器108创建、管理、调度、执行并提供机制以将warp104-1到104-J同步。继续参见图1所示的处理器100,warp内的核心相互并行地执行。warp104-1到104-J通过存储器总线116与共享存储器110进行通信。warp104-1到104-J通过本地总线118-1到118-J分别与本地存储器112-1到112-J进行通信。例如图1中所示,warp104-J以通过本地总线118-J进行通信来利用本地存储器112-J。处理器100的某些实施例将共享存储器110的共享部分分配到每个线程块102,并允许由线程块102内的所有warp访问共享存储器110的共享部分。某些实施例包括仅使用本地存储器的warp。许多其他实施例包括平衡本地存储器和共享存储器110的使用的warp。对于图1所示的处理器100,在实际执行并行处理的过程中,单个warp的宽度(也可被称为warp所包含的线程数或核心的数目)通常是固定的。以K=8为例,根据目前并行处理方案执行分支语句的情况示意如图2所示,在图3中,纵向以顺序的处理周期表征时间顺序,各相邻的时刻点之间均相差一个处理周期cycle。由图中可以看出,从cycle-n至cycle-n+3的第一时间段以及从cycle-n+4至cycle-n+7的第二时间段分别对应着分支语句两个代码区域,warp中所包括的8个线程分别标记为T0、T1、T2、T3、T4、T5、T6和T7。在图2中,未被填充的线程表示其处于活跃状态或活动状态,也可被称之为活跃线本文档来自技高网...

【技术保护点】
1.一种处理器,其特征在于,所述处理器包括:管线控制器、所执行线程被组织成多个线程组warp的多个核心;其中,每个warp能够在多个核心中执行,每个核心同一个时刻对应一个线程的执行;/n所述管线控制器,经配置为执行以下步骤:/n相应于检测到当前warp基于执行分支语句出现处于空闲状态的空闲线程,获取用于在所述空闲线程处于空闲状态期间填充所述空闲线程的补偿warp;/n调度所述补偿warp进入执行状态并且调度所述当前warp中的空闲线程执行所述补偿warp。/n

【技术特征摘要】
1.一种处理器,其特征在于,所述处理器包括:管线控制器、所执行线程被组织成多个线程组warp的多个核心;其中,每个warp能够在多个核心中执行,每个核心同一个时刻对应一个线程的执行;
所述管线控制器,经配置为执行以下步骤:
相应于检测到当前warp基于执行分支语句出现处于空闲状态的空闲线程,获取用于在所述空闲线程处于空闲状态期间填充所述空闲线程的补偿warp;
调度所述补偿warp进入执行状态并且调度所述当前warp中的空闲线程执行所述补偿warp。


2.根据权利要求1所述的处理器,其特征在于,所述管线控制器,经配置以执行:
从当前尚未执行的warp队列中选择warp宽度与所述空闲线程数目相同的目标warp;将选择出的所述目标warp作为所述补偿warp。


3.根据权利要求1所述的处理器,其特征在于,所述管线控制器,经配置以执行:
按照所述空闲线程数目从任务队列中选择屏蔽了设定数目线程的warp作为所述补偿warp。


4.根据权利要求1所述的处理器,其特征在于,所述管线控制器,还经配置以执行:
将warp队列中尚未执行的warp调度至所述当前warp继续执行;
在当前warp继续执行过程中,相应于所述当前warp执行分支语句而出现新的空闲线程,获取用于在所述新的空闲线程处于空闲状态期间填充所述新的空闲线程的新的补偿warp;
调度所述新的补偿warp进入执行状态并且调度所述当前warp中所述新的空闲线程执行所述新的补偿warp。


5.根据权利要求4所述的处理器,其特征在于,所述管线控制器,还经配置以执行:
若继续执行过程中所出现的新的空闲线程,根据所述新的空闲线程数目从当前已有且尚未执行结束的补偿warp队列中查找匹配warp,并将查找得到所述匹配warp作为新的补偿warp。


6.根据权利要求1所述的处理器,其特征在于,所述管线控制器,还经配置以执行:
若当前warp执行分支语句结束,但补偿warp尚未执行完成,则根据所述补偿warp的宽度以及所述当前warp的宽度确定继续执行的warp,并调度当前warp中除补偿warp以外的其他线程以执行所述继续执行的warp。


7.一种动态补偿线程束warp的方法,其特征在于,所述方法包括:
相应于检测...

【专利技术属性】
技术研发人员:黄虎才李洋刘周平
申请(专利权)人:西安芯瞳半导体技术有限公司
类型:发明
国别省市:陕西;61

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

1