[发明专利]一种GPU线程调度优化方法有效
申请号: | 201310278628.3 | 申请日: | 2013-07-04 |
公开(公告)号: | CN103336718A | 公开(公告)日: | 2013-10-02 |
发明(设计)人: | 傅翠娇;王锐;栾钟治;钱德沛 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 线程 调度 优化 方法 | ||
1.一种GPU线程调度方法,其特征在于是这样实现的:
步骤一:体系结构
(A)本文中提到的GPU体系结构指的是CUDA结构。
(B)内部包含多个SM(流多处理器),每个SM包含多个CUDA核。
(C)每个CUDA核有一个计算单元FU(FP Unit)。
(D)一个warp包含32个线程,同一个warp中的线程执行同一条指令,处理不同的数据。
步骤二:线程块
(A)一个kernel对应一个线程珊格,线程珊格是对应的kernel生成的所有的线程的总称,珊格的维度由编程人员在编程时指定。
(B)线程珊格中包含多个快,块的维度由编程人员指定。对线程块从0开始进行编号。
(C)线程块根据编号采用hash的方法影射到SM上,具体的影射方式是:(线程块编号)mod(SM数)。
(D)同一个SM上的块有优先级,开始编号最小的块优先级最高,编号次小的块次之,以此类推。当编号最小的线程块停止时,优先级降为最低,编号次小的块的优先级最高,以此类推。
步骤三:线程组
(A)对线程块内warp进行分组,并对分组从0开始编号。
(B)分组的大小和GPU核的流水的阶数有关,一般8个warp分为一组。
(C)组有优先级,开始时组0具有最高的优先级,组1次之,当编号为0的线程组停止时,优先级降为最低,1号线程组的优先级最高,以此类推。
步骤四:warp调度过程
(A)块的维度是由程序员确定的,块的大小也是固定的。对线程珊格中的所有块按顺序进行从0进行编号,然后按照hash的方式影射到SM上,具体的影射方式是:(线程块编号)mod(SM数)。例如共有16个线程块,8个SM,则,线程块0和8被影射到SM0上,如图3所示。在同一个SM中,开始时编号最小的块具有最高的优先级,当编号最小的块因为长延迟操作停顿时,使块编号次小的块具有最高的优先级,编号最小的块具有最低的优先级,以此类推。对线程块的调度采用round-robin策略进行。
(B)把块内所有并发执行的warp分成固定大小的取指组,一个组中有8个warp,这个和GPU核流水线的阶段数有关,例如32个warp,可以分成2组,编号为:0,1,2,3。组0具有最高的优先级,组1次之,以此类推。当组0因为长延迟操作停顿时,使组1具有最高的优先级,组0具有最低的优先级,以此类推。对线程组的调度是采用round-robin策略进行的。
(C)组内warp具有相同的优先级,采用round-robin策略进行调度,每次从已经就绪的warp队列中选择一个warp进行发射。
2.根据权利要求1所述的GPU线程调度方法,其特征在于:
对线程块进行编号:对线程珊格中的所有块按顺序从0进行编号。线程块到SM的影射方法是:把线程块按照hash的方式影射到SM上,具体的影射方式是:(线程块编号)mod(SM数)。块具有不同的优先级:块具有不同的优先级,并且优先级是轮转的,避免了使所有的warp在同一时刻处于停顿状态,提高了计算资源的利用率。
3.根据权利要求1所述的GPU线程调度方法,其特征在于:
通过warp三级调度策略,解决了所有的warp在同一时间到达相同的长延迟操作的可能,一定程度上缓解了因为长延迟操作造成的FU周期的空闲,提高了GPU计算资源的利用率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310278628.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种服务信息自动公告系统及方法
- 下一篇:一种由含钴溶液制备四氧化三钴的工艺