[发明专利]一种GPU中用于分支处理的寄存器文件结构在审
申请号: | 201610030501.3 | 申请日: | 2016-01-18 |
公开(公告)号: | CN106648545A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 魏继增 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06T1/20 |
代理公司: | 天津市北洋有限责任专利代理事务所12201 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gpu 用于 分支 处理 寄存器 文件 结构 | ||
技术领域
本发明涉及通用GPU计算领域,特别是涉及一种GPU中用于分支处理的寄存器文件结构。
背景技术
随着集成电路技术的不断发展及集成度的不断提高,GPU的计算能力得到了不断的增强。当代的GPU已经不仅仅局限于处理图形应用,还能应用于通用计算领域,并且具有广阔的前景。为了使GPU能够更高效的执行通用计算,需要对GPU的微架构做进一步的优化。
当代的GPU以单指令流多线程流(Single-Instruction Multiple-Thread,SIMT)的方式在单指令流多数据流(Single-InstructionMultiple-Data,SIMD)的硬件流水线上执行。在这种执行模式中,线程被硬件组织成线程束(warp)。线程束中的每一个线程都对应一个SIMD通道,并且线程束中的线程,每一个线程都能拥有自己独立的指令控制流(例如作为Warp3的各个线程Thread96,Thread97,Thread98,…...Thread127选择(Warp ID,Reg ID)对应的寄存器(例如R3)中的Warp3的寄存器文件进行同时访问,如图1所示。多个线程束组成一个线程块(block),线程块的大小由程序员设定。
然而,当程序中有条件分支出现的时候,线程束中的线程可能会选择不同的路径(如路径A-F、路径A-B-C,D-E-G),如图2所示。GPU通过SIMD通道屏蔽的方法来串行执行每一条路径,并且为每一个线程束分配一个栈来维护每一条路径的信息,如图3所示。图3中的栈是图2中线程束W0的路径信息。栈的一个条目由三个域构成,其中PC表示W0(Wrap0的简写)要执行的下一条指令的地址,RPC表示分支程序流的汇合点,如图2中的E和G,Active Mask表示的是线程束中跳转到该路径的有效线程。GPU根据每一个线程束的Active Mask来判断当前路径中应该执行哪些线程。
当W0发生条件分支的时候(图2中的A点),GPU首先将汇合点的地址(G)写入栈顶(此时栈顶为条目①)的PC域,然后再向栈里弹入两个条目,即条目②和条目③,代表分支后的两条路径F和B。每个条目分别记录各自路径的PC,RPC以及Active Mask,然后GPU首先执行栈顶的条目所代表的路径B。随后B又发生条件分支,此时GPU将条目③的PC域改为分支汇合点E,并且弹入条目④和条目⑤分别代表路径C和D。GPU首先执行路径D,当栈顶的PC等于RPC的时候,表示当前执行的路径下一条指令将到达汇合点,此时需要将条目⑤弹出,从而可以执行下一条路径,即路径C。当程序再次到达汇合点时,将条目④弹出,执行路径E,GPU按照上述执行方式运行一直到程序结束。这种方式虽然保证了程序流的正确性,并且能够在程序到达汇合点之后恢复条件分支之前线程束中线程的并行度,却不能在执行分支路径的时候增加线程束中有效线程的个数,导致SMID利用率和性能的下降。
发明内容
基于上述现有技术,本发明提出了一种GPU中用于分支处理的寄存器文件结构,为了在执行分支路径时增加线程束中有效线程的个数,提高线程并行度和SIMD硬件利用率,改善性能,可以将同一个线程块的不同线程束中执行同一路径的所有线程进行压缩,使这些线程能够在同一个线程束中运行。而为了使压缩效率最大化,需要解除线程束中线程与SIMD通道的一一对应关系,使得位于任意通道的线程都能够被压缩到同一个线程束中,并且在访问寄存器文件的时候不会产生额外的访问冲突。
本发明公开了一种GPU中用于分支处理的寄存器文件结构,该寄存器文件结构中,把寄存器文件按照行平均分成N个bank,N是GPU中一个SM所能容纳的最多的线程束的个数;对于寄存器文件中寄存器的分配方法遵循以下约束条件:
(1)当应用程序中的每一个线程束所需要的寄存器的个数大于或等于每个bank中所包括的行数时,将寄存器文件中的寄存器连续地平均分配给每一个线程束;
(2)当应用程序中的每一个线程束所需要的寄存器的个数小于每个bank中所包括的行数时,此时每一个线程束独占一个bank;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610030501.3/2.html,转载请声明来源钻瓜专利网。