图形处理器计算簇的线程组调度模块、图形处理器和设备制造技术

技术编号:38996404 阅读:9 留言:0更新日期:2023-10-07 10:27
本申请提供一种图形处理器计算簇的线程组调度模块、图形处理器和设备,该模块包括:调度平衡控制器、指令调度条件检测器、指令调度仲裁器、线程组队列优先级编码器、线程组状态寄存器;指令调度仲裁器根据着色器线程组调度优先级、指令类型调度优先级和满足执行条件的指令类型,对调度线程组的指令类型进行调度;线程组队列优先级编码器基于指令调度仲裁器的调度选择线程组;线程组状态寄存器存储线程组队列的线程组的信息。本申请可根据着色器线程组调度优先级、指令类型调度优先级和满足执行条件的指令类型,对调度线程组的指令类型进行调度,优先调度长延时操作指令类型,有效缓解长延时操作导致的流水线空闲问题,提高资源利用率。利用率。利用率。

【技术实现步骤摘要】
图形处理器计算簇的线程组调度模块、图形处理器和设备


[0001]本申请涉及计算机图形处理
,尤其涉及一种图形处理器计算簇的线程组调度模块、图形处理器和设备。

技术介绍

[0002]SIMT(Single Instruction Mltiple Thread,单指令多线程)是目前一些GPU(Graphics Processing Unit,图形处理器)常规采用的并行执行模式,线程组或线程束(Warp)则是GPU中的一个基本调度单位。Warp是一组线程(Thread),所有线程都执行相同的指令,操作不同的数据。通常每个Warp所对应的线程数是固定的,使得这样的并行架构简单且易于维护。
[0003]GPU中有大量计算资源,但是很难得到充分利用,主要原因有2个:一是条件分支语句的存在,二是长延时操作导致的流水线停顿。
[0004]为了解决条件分支造成部分线程空闲引起的资源浪费问题,目前采用的主要技术是监控线程组中活跃线程数,监控一线程组中活跃线程的个数,根据该线程组空闲线程组个数和其它线程组活跃线程个数,选择另一线程组在该线程组空闲线程对应的计算核上执行。
[0005]上述方法虽然在一定程度提高了资源利用率,但其控制非常复杂,而且硬件开销大。仅仅考虑了条件分支造成的资源浪费,在图像渲染着色器中因为长延时操作导致的资源浪费更加严重。

技术实现思路

[0006]为了解决上述技术缺陷之一,本申请提供了一种图形处理器计算簇的线程组调度模块、图形处理器和设备。
[0007]本申请第一个方面,提供了一种图形处理器计算簇的线程组调度模块,模块包括:调度平衡控制器、指令调度条件检测器、指令调度仲裁器、线程组队列优先级编码器、线程组状态寄存器;
[0008]指令调度仲裁器,用于从调度平衡控制器中获取着色器线程组调度优先级;从指令调度条件检测器中获取满足执行条件的指令类型;从线程组队列优先级编码器中获取调度线程组的指令类型;根据着色器线程组调度优先级、指令类型调度优先级和满足执行条件的指令类型,对调度线程组的指令类型进行调度;
[0009]线程组队列优先级编码器,用于基于指令调度仲裁器的调度选择线程组;
[0010]线程组状态寄存器,用于存储线程组队列的线程组的信息,以使选择的线程组在新的指令执行周期被执行。
[0011]可选地,着色器包括像素着色器和顶点着色器;
[0012]调度平衡控制器,用于在当前调度周期为当前周期的前N个调度周期时,确定像素着色器线程组的调度优先级高于顶点着色器线程组的调度优先级,否则,确定像素着色器
线程组的调度优先级低于顶点着色器线程组的调度优先级;
[0013]其中,一个周期中包括M个调度周期,M为正整数;N为平衡参数,N为正整数,且N<M。
[0014]可选地,指令调度条件检测器,用于检测各类型的指令是否满足执行条件,得到满足执行条件的指令类型。
[0015]可选地,检测各类型的指令是否满足执行条件,包括:
[0016]检测硬件资源是否允许执行各类型的指令所对应的操作。
[0017]可选地,线程组队列优先级编码器中的线程组队列的项数为模块所在计算簇同时存在最大线程组数+1;
[0018]线程组队列优先级编码器中的线程组队列中每项对应一个线程组,且每项均包括entry_active状态位、entry_valid状态位、所对应线程组的标识、所对应线程组的指令类型、所对应线程组的着色器类型;
[0019]entry_active状态位表示该项所对应线程组是否有效,entry_valid状态位表示该项所对应线程组是否可执行。
[0020]可选地,模块位于计算簇中,计算簇位于图形处理器中,图形处理器还包括管线控制器;
[0021]线程组由管线控制器产生,并被管线控制器分配至计算簇;在该计算簇的线程组队列的最后一项对应线程组的entry_active状态位为无效时,将线程组与该计算簇的线程组队列的最后一项对应;在该计算簇的线程组队列的最后一项对应线程组的entry_active状态位为有效时,将该计算簇的线程组队列的最后一项对应的线程组至首个连续有效线程组之间的线程组均往前移位之后,将线程组与该计算簇的线程组队列的最后一项对应;
[0022]其中,首个连续有效线程组之前的一个线程组的entry_active状态位为无效,首个连续有效线程组与最后一项对应的线程组之间的所有线程组的entry_active状态位均为有效。
[0023]可选地,线程组队列优先级编码器,用于根据entry_valid状态位,确定线程组队列中就绪线程组;按照着色器类型汇总就绪线程组的指令类型;根据获取到的指令调度仲裁器调度的指令类型从汇总的指令类型中确定最终的指令类型;确定最终的指令类型对应的最终着色器类型;根据最终的指令类型和最终的着色器类型,从就绪线程组中选择最老的线程组。
[0024]可选地,线程组状态寄存器存储的信息包括如下的一种或多种:选择的线程组的标识、选择的线程组的下一条指令的地址、选择的线程组的状态信息。
[0025]本申请第二个方面,提供了一种图形处理器,图形处理器包括管线控制器,多个计算簇,多个本地存储器,全局缓存,全局存储器;
[0026]其中,每个计算簇中均对应一个本地存储器,且每个计算簇中均包括一个如上述第一个方面所述的图形处理器计算簇的线程组调度模块;
[0027]管线控制器产生线程组后,将其分配至计算簇;
[0028]各计算簇中的图形处理器计算簇的线程组调度模块对分配的线程组进行调度,以对对应本地存储器或全局存储器中的数据进行操作;
[0029]各本地存储器均与全局缓存进行数据交互;
[0030]全局缓存与全局存储器进行数据交互。
[0031]本申请第三个方面,提供了一种电子设备,包括:如上述第二个方面所述的图形处理器。
[0032]本申请提供一种图形处理器计算簇的线程组调度模块、图形处理器和设备,该模块包括:调度平衡控制器、指令调度条件检测器、指令调度仲裁器、线程组队列优先级编码器、线程组状态寄存器;指令调度仲裁器,用于从调度平衡控制器中获取着色器线程组调度优先级;从指令调度条件检测器中获取满足执行条件的指令类型;从线程组队列优先级编码器中获取调度线程组的指令类型;根据着色器线程组调度优先级、指令类型调度优先级和满足执行条件的指令类型,对调度线程组的指令类型进行调度;线程组队列优先级编码器,用于基于指令调度仲裁器的调度选择线程组;线程组状态寄存器,用于存储线程组队列的线程组的信息,以使选择的线程组在新的指令执行周期被执行。本申请提供的图形处理器计算簇的线程组调度模块可根据着色器线程组调度优先级、指令类型调度优先级和满足执行条件的指令类型,对调度线程组的指令类型进行调度,优先调度长延时操作指令类型,有效缓解长延时操作导致的流水线空闲问题,提高资源利用率。
附图说明
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图形处理器计算簇的线程组调度模块,其特征在于,所述模块包括:调度平衡控制器、指令调度条件检测器、指令调度仲裁器、线程组队列优先级编码器、线程组状态寄存器;所述指令调度仲裁器,用于从所述调度平衡控制器中获取着色器线程组调度优先级;从所述指令调度条件检测器中获取满足执行条件的指令类型;从所述线程组队列优先级编码器中获取调度线程组的指令类型;根据着色器线程组调度优先级、指令类型调度优先级和满足执行条件的指令类型,对调度线程组的指令类型进行调度;所述线程组队列优先级编码器,用于基于所述指令调度仲裁器的调度选择线程组;所述线程组状态寄存器,用于存储所述线程组队列的线程组的信息,以使所述选择的线程组在新的指令执行周期被执行。2.根据权利要求1所述的模块,其特征在于,着色器包括像素着色器和顶点着色器;所述调度平衡控制器,用于在当前调度周期为当前周期的前N个调度周期时,确定像素着色器线程组的调度优先级高于顶点着色器线程组的调度优先级,否则,确定像素着色器线程组的调度优先级低于顶点着色器线程组的调度优先级;其中,一个周期中包括M个调度周期,M为正整数;N为平衡参数,N为正整数,且N<M。3.根据权利要求1所述的模块,其特征在于,所述指令调度条件检测器,用于检测各类型的指令是否满足执行条件,得到满足执行条件的指令类型。4.根据权利要求3所述的模块,其特征在于,所述检测各类型的指令是否满足执行条件,包括:检测硬件资源是否允许执行各类型的指令所对应的操作。5.根据权利要求1所述的模块,其特征在于,所述线程组队列优先级编码器中的线程组队列的项数为所述模块所在计算簇同时存在最大线程组数+1;所述线程组队列优先级编码器中的线程组队列中每项对应一个线程组,且每项均包括entry_active状态位、entry_valid状态位、所对应线程组的标识、所对应线程组的指令类型、所对应线程组的着色器类型;所述entry_active状态位表示该项所对应线程组是否有效,所述entry_valid状态位表示该项所对应线程组是否可执行。6.根据权利要求5所述的模块,其特征在于,所述模块位于计算...

【专利技术属性】
技术研发人员:刘丽霞林苍松
申请(专利权)人:长沙景美集成电路设计有限公司
类型:发明
国别省市:

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

1