一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图形处理器中基于WRR算法的片段调度方法与流程

2022-07-30 11:09:25 来源:中国专利 TAG:

一种图形处理器中基于wrr算法的片段调度方法
技术领域
1.本发明涉及图形处理器领域,尤其涉及一种图形处理器中基于wrr算法的片段调度方法。


背景技术:

2.片段调度是图形处理器中的关键技术,也是图形处理器性能提升的重要环节。
3.目前,如公开号为x的中国发明专利gpu中一种染色片段调度管理的硬件加速实现方法,该专利中raster是8通道像素扫描,每2个通道固定调度给4个gcu,也就是8个通道对应16个gcu,专利中主要描述raster的其中2个通道如何调度给4个gcu,通道0固定调度给 gcu0和gcu2,通道1固定调度给gcu1和gcu3。
4.上述方法虽然能够但在实际处理中解决了不同扫描图元以及同一图元不同通道扫描片段的先进先出关系,防止后续图元的片段优先于前面图元的片段被染色处理,raster模块主要扫描点、线和三角形图元,更多的时候扫描的是三角形图元,正由于三角形金字塔形状的特性,图中通道数值越小的通道扫描的片段数目越少,反之如果是倒三角,通道数值越大的通道扫描的片段数目越少,那么编号小的gcu或者编号大的gcu很容易出现没有足够多片段进行染色的情况。


技术实现要素:

5.本发明要解决的技术问题是克服现有技术存在的缺陷,本发明提出了一种能够提高所有 gcu均衡性的图形处理器中基于wrr算法的片段调度方法。
6.为解决上述技术问题,本发明采用的技术方案是:一种图形处理器中基于wrr算法的片段调度方法,包括如下步骤:
7.s1、通过wrr算法为像素扫描模块内多个通道进行权重配比;
8.s2、调度模块将像素扫描模块扫描产生的多个数据片段以与通道对应权重依次调度给片段染色器,以与权重对应片段数量或通道内空状态确定调度结束,其中片段数量与单个片段染色中处理器数量、处理器线程数相关;
9.s3、调度模块重复s2至所有像素扫描模块调度结束,同时将每轮对应调度结束的片段染色器id与调度片段数量串入列表;
10.s4、调度模块依次选取id最小的片段染色器对调度结束的片段进行染色,并依据s3列表内先进先出原则读取片段染色器染色完成信息,再次调度至像素处理模块。
11.进一步的,所述步骤s1中权重配比具体包括:当像素扫描模块为行扫描时,其内部通道权重配比全为1,当像素扫描模块为块扫描时,其内部通道配比权重依据块扫描片段数量。
12.进一步的,所述调度模块以每拍调速一个片段速度进行调度。
13.进一步的,所述每个通道内包括1-32个属性。
14.进一步的,所述像素扫描模块为4通道或8通道。
15.与现有技术相比,本发明的有益效果包括:通过调度模块统一调度的方式,可以保证所有gcu的调度均衡性,防止某些gcu过于空闲或者忙碌的情况出现,通过wrr算法能够对gcu 内部通道调度片段数量灵活配置,适用于多种片段扫描方式,gcu调度均衡性更可靠。
附图说明
16.参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:
17.图1为本发明一较佳实施例的调配流程示意图。
具体实施方式
18.容易理解,根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
19.根据本发明的一实施方式结合图1示出一种图形处理器中基于wrr算法的片段调度方法,包括如下步骤:
20.s1、通过wrr算法为像素扫描模块内多个通道进行权重配比;
21.s2、调度模块将像素扫描模块扫描产生的多个数据片段以与通道对应权重依次调度给片段染色器,以与权重对应片段数量或通道内空状态确定调度结束,其中片段数量与单个片段染色中处理器数量、处理器线程数相关;
22.s3、调度模块重复s2至所有像素扫描模块调度结束,同时将每轮对应调度结束的片段染色器id与调度片段数量串入列表;
23.s4、调度模块依次选取id最小的片段染色器对调度结束的片段进行染色,并依据s3列表内先进先出原则读取片段染色器染色完成信息,再次调度至像素处理模块。
24.调度模块调度的数据来源是像素扫描模块(raster)产生的片段信息,每个片段包含颜色、坐标等最多32个属性,为了产生足够多的片段用于像素处理模块内片段染色器(gcu) 染色用,raster模块需要足够多的通道同时扫描片段信息,但同时又要考虑到染色器(gcu) 的染色效率,故一般我们设计4通道或者8通道的像素扫描模块(raster)
25.片段调度模块的作用是以最快的速度将raster模块产生的片段信息调度给gcu模块用于片段染色,每次调度给gcu模块的片段个数为32个,这是由gcu内处理器个数和每个处理器线程数共同决定。
26.为了达到更大的灵活调度性,本发明采用了weight round robin(wrr)算法来实现,首先给每个通道配置不同或者相同的权重,然后从通道0开始根据其权重调度对应的片段个数,随后通道1/2/3轮训调度,从而完成一轮调度,期间每完成当前gcu的32个片段调度,就选择下一个空闲的gcu进行调度,直至所有的片段调度完毕。
27.通过统一调度方式,将raster 4个通道的片段通过wrr算法轮训调度给同一个gcu,然后再依次调度给下一个gcu,同时将已经调度过的gcu id串成一个列表,在片段染色结束时根据先进先出的顺序调度给像素处理模块(rop),这样既能避免调度不均衡的情况,又能保证片段先进先出的顺序,还有一个最大的好处在于可以配置不同通道的权重达到最
大的灵活性。
28.为了防止瓶颈不出现在调度模块,需要保证调度模块以每拍调度一个片段属性的速度进度调度,从而达到最大的调度效率。
29.raster模块根据行扫描或者块扫描方式,4通道同时扫描片段信息写到对应的fifo(通道)中,每个完整的片段信息包含1-32个属性;
30.配置4个fifo的weight权重值分别为w0、w1、w2、w3,此权重值用于单轮需要调度片段个数;
31.调度模块先从所有空闲的gcu中找出一个id最小的gcu,每个gcu可以调度32个片段信息;
32.然后从fifo 0开始调度片段信息到上面所选中的gcu,当调度w0个片段或者fifo 0位空时,开始调度fifo 1,同样当调度w1个片段或者fifo 1位空时,开始调度fifo 2,依次直到4个fifo全部调度完毕,此时为一轮调度结束,然后开始下一轮调度;
33.调度过程中,只要调度满32个片段,则继续选择剩余空闲gcu中id最小的gcu进行下一个32个片段的调度;
34.每调度完一个gcu时,将gcu id和调度片段个数串入列表,根据先进先出的原则,从最先串入列表的gcu中读取片段染色完成信息,然后再次调度给像素处理模块(rop);
35.根据以上三个调度策略完成所有扫描模块片段的调度。
36.此调度方案最大的优劣在于极大的配置灵活性,当raster采用行扫描方式时,可以将 weight值全部配置为1,那么4个raster通道每次调度一个片段,每个gcu调度32个片段相当于4*8的扫描块,可以提高单个gcu中在纹理贴图时cache的命中率;当raster采用块扫描方式时,可以将weight值配置为块扫描片段个数值,那么调度到同一个gcu的片段都为同一个通道中的片段块,也同样可以提高单个gcu中在纹理贴图时cache的命中率;
37.此调度方案由于采用了统一调度方式,可以保证所有gcu的调度均衡性,防止某些gcu 过于空闲或者忙碌的情况出现,不过前提是采用已调度gcu id串列表的方式,保证先进先出的顺序。
38.一般的3d渲染应用场景中,每个片段包含1~2个属性,每个gcu调度32个片段,按照本发明每个节拍调度一个属性计算,那么调度一个gcu则需要32~64个节拍,调度完一轮 gcu需要512~1024个节拍,远小于gcu染色器完成32个片段的染色时间,当片段包含更多属性时,此时调度时间变长,而染色时间也需要根据实际染色程序的复杂程度进行计算对比。
39.本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员可以在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献