【技术实现步骤摘要】
一种动态补偿线程束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的性能。本专利技 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。