[发明专利]一种GPU中用于分支处理的寄存器文件结构在审
申请号: | 201610030501.3 | 申请日: | 2016-01-18 |
公开(公告)号: | CN106648545A | 公开(公告)日: | 2017-05-10 |
发明(设计)人: | 魏继增 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06T1/20 |
代理公司: | 天津市北洋有限责任专利代理事务所12201 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种GPU中用于分支处理的寄存器文件结构,该寄存器文件结构中,把寄存器文件按照行平均分成N个bank,N是GPU中一个SM所能容纳的最多的线程束的个数;对于寄存器文件中寄存器的分配方法遵循以下约束条件(1)当应用程序中的每一个线程束所需要的寄存器的个数大于或等于每个bank中所包括的行数时,将寄存器文件中的寄存器连续地平均分配给每一个线程束;(2)当应用程序中的每一个线程束所需要的寄存器的个数小于每个bank中所包括的行数时,此时每一个线程束独占一个bank。与现有技术相比,本发明对GPU架构进行修改后,硬件利用率最高能提升3.1倍,平均(OA)的硬件利用率由62.7%提高到85.9%。而性能最高能够提升2.3倍,平均(HM)能够提升8.4%。 | ||
搜索关键词: | 一种 gpu 用于 分支 处理 寄存器 文件 结构 | ||
【主权项】:
一种GPU中用于分支处理的寄存器文件结构,其特征在于,该寄存器文件结构中,把寄存器文件按照行平均分成N个bank,N是GPU中一个流多处理器所能容纳的最多的线程束的个数;对于寄存器文件中寄存器的分配方法遵循以下约束条件:(1)当应用程序中的每一个线程束所需要的寄存器的个数大于或等于每个bank中所包括的行数时,将寄存器文件中的寄存器连续地平均分配给每一个线程束;(2)当应用程序中的每一个线程束所需要的寄存器的个数小于每个bank中所包括的行数时,此时每一个线程束独占一个bank;其中,线程束在访问寄存器文件的时候,其中的每一个线程都会产生一个访问请求,仲裁器将针对同一个bank的访问请求进行合并并且根据其中被访问的每个bank的线程束索引、线程索引以及寄存器索引,生成相应的访问地址及控制信号;每一个访问请求根据生成的访问地址和控制信号读出bank中的一行的寄存器数据,再用crossbar将这一行中有效的数据路由到相应的SIMD通道上面;如果线程束中该SIMD通道所对应的线程无效,则对应的交叉开关的输出端口的输出为零;对应同一SIMD通道的所有的crossbar的输出中至多有一个数据是有效的;最后,将各个crossbar的与SIMD通道相对应的输出端口进行“或”操作,过滤出其中的有效数据,输入到SIMD通道上面;线程任意的更换SIMD通道而且压缩后形成的线程束在访问寄存器文件的时候不会产生访问冲突。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610030501.3/,转载请声明来源钻瓜专利网。