【技术实现步骤摘要】
GPU以及相关方法
[0001]本申请涉及一种处理器,尤其涉及一种
GPU
以及相关方法
。
技术介绍
[0002]GPU
在执行内核代码
(kernel code)
时,会以线程束
(warp)
为单位在流处理器
(streaming processor,SP)
上执行
。
由于线程束被调度至流处理器时,需要占用流处理器上的寄存器的空间
。
也就是说,寄存器有限的空间会形成能够调度至流处理器的线程束数量的瓶颈之一,并成为本领域亟需解决的问题
。
技术实现思路
[0003]本申请的目的之一在于公开一种
GPU
以及相关方法,来解决上述问题
。
[0004]本申请的一实施例公开了一种
GPU
,用来执行内核代码,所述内核代码包括线程块,所述线程块包括多个线程束,所述
GPU
包括:多个流处理单元,每一个流处理单元包括:多个流处理器,每一个流处理器包括寄存器,其中各流处理器具有预设线程束数目上限,且所述寄存器具有预设寄存器容量上限;以及全局调度器,包括:寄存器占用状况表,用来记录各流处理单元的各流处理器中的线程束数目及寄存器的空间占用状况;线程块调度模块,用来依据线程束分类表以及所述寄存器占用状况表来将所述线程块调度至所述多个流处理单元中的第一流处理单元;以及线程束调度模块,用来依据线程束分类表以及所述寄存器占用状况表来将所 ...
【技术保护点】
【技术特征摘要】
1.
一种
GPU
,用来执行内核代码,所述内核代码包括线程块,所述线程块包括多个线程束,其特征在于,所述
GPU
包括:多个流处理单元,每一个流处理单元包括:多个流处理器,每一个流处理器包括寄存器,其中各流处理器具有预设线程束数目上限,且所述寄存器具有预设寄存器容量上限;以及全局调度器,包括:寄存器占用状况表,用来记录各流处理单元的各流处理器中的线程束数目及寄存器的空间占用状况;线程块调度模块,用来依据线程束分类表以及所述寄存器占用状况表来将所述线程块调度至所述多个流处理单元中的第一流处理单元,其中所述线程束分类表记录所述多个线程束的类型及被执行时所需的寄存器空间;以及线程束调度模块,用来依据所述线程束分类表以及所述寄存器占用状况表来将所述多个线程束调度至所述第一流处理单元中的多个流处理器
。2.
如权利要求1所述的
GPU
,其特征在于,所述线程块调度模块依据所述线程块的所需寄存器空间总和
、
线程束数目总和
、
各所述流处理单元的剩余可用寄存器空间以及剩余可接受线程束数目,来判断所述多个流处理单元中是否有符合第一条件的流处理单元,其中当各所述流处理单元中的任一流处理单元的所述剩余可用寄存器空间以及所述剩余可接受线程束数目分别不小于所述线程块的所需寄存器空间总和以及所述线程束数目总和时,所述任一流处理单元符合所述第一条件
。3.
如权利要求2所述的
GPU
,其特征在于,所述线程块调度模块依据所述寄存器占用状况表以及所述预设寄存器容量上限来得到各所述流处理单元的所述剩余可用寄存器空间
。4.
如权利要求2所述的
GPU
,其特征在于,所述线程块调度模块依据所述寄存器占用状况表以及所述预设线程束数目上限来得到各所述流处理单元的所述剩余可接受线程束数目
。5.
如权利要求2所述的
GPU
,其特征在于,所述线程块调度模块依据所述线程束分类表计算所述线程块的所述所需寄存器空间总和以及所述线程束数目总和
。6.
如权利要求2所述的
GPU
,其特征在于,所述所述多个线程束至少被分为第一类型与第二类型,对应所述第一类型的多个第一类型线程束的数目为第一数目,且各所述第一类型线程束被执行时所需的寄存器空间为第一寄存器空间,以及对应所述第二类型的多个第二类型线程束的数目为第二数目,且各所述第二类型线程束被执行时所需的寄存器空间为第二寄存器空间,其中所述第一寄存器空间不同于所述第二寄存器空间
。7.
如权利要求6所述的
GPU
,其特征在于,所述所述线程块调度模块还依据所述第一数目
、
所述第一寄存器空间
、
各所述流处理单元的各流处理器的剩余可接受线程束数目以及剩余可用寄存器空间来判断所述多个流处理单元中是否有符合第二条件的流处理单元,其中当各所述流处理单元中的任一流处理单元的多个流处理器能够接受所述多个线程束中所有的所述第一类型的线程束时,所述任一流处理单元符合所述第二条件
。8.
如权利要求7所述的
GPU
,其特征在于,所述所述线程块调度模块还依据所述第二数目
、
所述第二寄存器空间
、
各所述流处理单元的各流处理器的所述剩余可接受线程束数目以及所述剩余可用寄存器空间...
【专利技术属性】
技术研发人员:李浩然,孙飞,高源,黄古玥,仲睿光,张宸,
申请(专利权)人:阿里巴巴中国有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。