[发明专利]一种GPU线程调度优化方法有效
申请号: | 201310278628.3 | 申请日: | 2013-07-04 |
公开(公告)号: | CN103336718A | 公开(公告)日: | 2013-10-02 |
发明(设计)人: | 傅翠娇;王锐;栾钟治;钱德沛 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 线程 调度 优化 方法 | ||
技术领域
本发明涉及一种属于计算机系统结构中的多线程调度方法,特别涉及一种异构体系结构中的GPU线程调度方法。
背景技术
Graphics processing units(GPUs)已经成为一种执行普通并行应用程序的流行平台。像CUDA、ATI和OpenCL等编程系统允许编程人员把应用程序并行成执行相同代码的成千上万的线程。现有的研究也表明了应用程序运行在GPU上比运行在CPU上有巨大的加速。GPU之所以能取得如此巨大的加速是因为它比CPU有更多的具有同等计算能力的资源,编程人员通过开发线程间的并行性(TLP,thread-level parallelism)来充分利用GPU中丰富的计算资源。GPU中虽然有大量的计算资源,但是目前GPU核内的计算资源并没有得到充分利用,这主要有两个原因:1.条件分支语句的存在,2.长延迟操作造成的停顿。对于条件分支语句的问题可以通过更大的warp(大于目前的每一个warp中有32个线程)来解决。对于长延迟操作造成的停顿,最近的研究成果是采用两级调度的方式,通过避免核内所有warp在同一个时间停顿,在一定程度上提高了核内计算资源的利用率,但是由于一个块内的线程也需要同步与通信,如果一块内的大多数线程都在等待某些warp内的线程的完成,势必会造成整个系统的性能降低。
现有的GPU核(CUDA所指的SM)使用round-robin warp取指令策略,该策略对正在执行的warp赋予同样的优先级,在这种策略下,对以相同速率处理程序的warp比较有利,既然warp有许多的数据局部性,GPU的编程人员被鼓励使连续的线程访问连续的存储器位置,以便于访存请求可以被合并,这就暗含着不同的warp有大量的空间局部性。当一个warp产生了一个访存请求时,其他的warp也可能产生被影射到相同行缓冲的访存请求,只要产生的访存请求足够地接近,就能开发行缓冲的局部性。公平的round-robin允许这种情况发生,然而调度策略的结果是不平衡的warp进度破坏了这种局部性。但是一个纯round-robin调度策略倾向于使所有的warp在同一时间到达相同的长延迟操作,既然所有的warp都被停止,没有足够的warp来隐藏长延迟,结果就造成一些周期的FU空闲。
发明内容
本发明的目的是提供一种更好的GPU线程调度的方法,通过warp三级调度策略,解决了所有的warp在同一时间到达相同的长延迟操作的可能,一定程度上缓解了因为长延迟操作造成的FU周期的空闲,提高了GPU计算资源的利用率。
本发明是一种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上。
(D)同一个SM上的块有优先级,开始编号为0的优先级最高,1次之,以此类推。当编号为0的线程块停止时,优先级降为最低,1号线程块的优先级最高,以此类推。
步骤三:线程组
(A)对线程块内的warp进行分组,并对分组从0开始编号。
(B)分组的大小和SM流水的阶段数有关,一般8个warp分为一组。
(C)组有优先级,开始时组0具有最高的优先级,组1次之,当编号为0的线程组停止时,优先级降为最低,1号线程组的优先级最高,以此类推。
步骤四:warp调度过程
(A)线程块设置不同的优先级,线程块之间采用round-robin策略进行调度。
(B)对线程组设置不同的优先级,线程组之间采用round-robin策略进行调度。
(C)组内warp采用round-robin策略进行调度,每次从已经就绪的warp队列中选择一个warp进行发射。
本发明线程调度策略的优点在于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310278628.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种服务信息自动公告系统及方法
- 下一篇:一种由含钴溶液制备四氧化三钴的工艺