[发明专利]一种GPGPU寄存器文件动态扩展方法有效
申请号: | 201810408687.0 | 申请日: | 2018-05-02 |
公开(公告)号: | CN108595258B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 白跃彬;禹超;杨海龙;顾育豪;栾广强;王春阳;陈庆斌 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种GPGPU寄存器文件动态扩展方法,包括:1)在编译器中对GPGPU程序指令块进行划分,并分析每个指令块的活动寄存器;2)运行时,依据资源状态对每个线程块的资源分配方式进行决策;3)当寄存器文件限制了GPGPU的线程级并行性时,将部分寄存器分配在共享内存中,从而在逻辑上增大了寄存器文件的容量;4)在每个指令块被调度执行前,通过数据预取将指令块使用的分配在共享内存中的寄存器数据读取到一个高带宽的小容量操作数缓存中。本发明能够有效提高GPGPU片上资源的使用效率,最大限度提升GPGPU的线程级并发性,充分挖掘GPGPU的性能潜力。 | ||
搜索关键词: | 一种 gpgpu 寄存器 文件 动态 扩展 方法 | ||
【主权项】:
1.一种GPGPU寄存器文件动态扩展方法,其特征在于,包括以下步骤:(1)当GPGPU编译器编译GPGPU程序代码时,依据寄存器的权重由大到小对寄存器的声明顺序进行排序,然后对GPGPU程序的指令块进行划分,并对每个指令块的活动寄存器进行分析;(2)将指令块活动寄存器的分析结果通过指令的形式插在每个指令块的前面,并生成GPGPU可执行程序;(3)在运行时,将GPGPU可执行程序发送到GPGPU上执行,GPGPU依据程序指定的参数创建一定数量的线程块(Thread Block,以下简称TB或CTA);(4)CTA调度器调度各个CTA到流多处理器(Streaming Multiprocessor,以下简称SM)上执行,此时,SM上的资源分配器会依据当前SM的资源状态以及每个CTA的资源需求情况来计算每个SM上可以同时容纳的CTA数量上限CTAUpper以及下限CTALower,然后对每个CTA的资源分配方式进行决策;(5)如果一个CTA中有寄存器被分配在片上共享内存(Shared Memory,以下简称SHMEM)中,则依据一种双路分配策略在SHMEM上为CTA分配寄存器空间,并将该CTA的资源分配信息保存在寄存器分配表中;(6)每个分配完所需资源的CTA,其中的线程束(Warp)都被放到线程束池中对应的队列中,线程束池中包含3个队列:pending、schedulable以及prefetching;初始时,当一个CTA中有寄存器被分配在SHMEM中,就将该CTA中所有线程束放在prefetching队列中,其余CTA中的线程束放在schedulable队列中;(7)在每个时钟周期,寄存器预取器都会检查操作数缓存中是否有足够的空间来保存prefetching队列的首个线程束的下一个将要执行的指令块分配在SHMEM中的寄存器数据;如果操作数缓存具有足够的空间,就将线程束下一个指令块的分配在SHMEM中的寄存器数据预取到操作数缓存中,然后将线程束从prefetching队列移动到schedulable队列;(8)在每个时钟周期,线程束调度器都会从schedulable队列中调度线程束的指令去执行;(9)当一条指令被调度时,操作数收集器(Operand Collector)就会为其分配一个收集单元(Collector Unit)来读取操作数;(10)在读取操作数过程中,收集单元将线程束物理编号WarpID和需要的寄存器索引号Reg发送到寄存器文件(Register File,以下简称RF)中的Bank仲裁器,Bank仲裁器判断所需要的寄存器分配在RF还是SHMEM中;(11)如果判断寄存器分配在RF中,则直接从RF中读取寄存器数据;否则,从操作数缓存中读取对应的寄存器数据;(12)当一条指令对应的所有操作数都读取到收集单元中,就将这个发送到SIMD单元执行;(13)当一个线程束的一个指令块执行完成后,就将该线程束从schedulable队列移动到prefetching队列;(14)重复步骤(4)至(13)直至GPGPU程序执行完成。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810408687.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种云任务调度方法
- 下一篇:一种基于全局管理的内存池管理方法