[发明专利]一种GPGPU寄存器文件动态扩展方法有效
申请号: | 201810408687.0 | 申请日: | 2018-05-02 |
公开(公告)号: | CN108595258B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 白跃彬;禹超;杨海龙;顾育豪;栾广强;王春阳;陈庆斌 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50;G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 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的总寄存器文件量R、SM的总共享内存量S、每个CTA需要的寄存器文件量RCTA、每个CTA需要的共享内存量SCTA以及每个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的Bank仲裁器,以下简称RF,Bank仲裁器判断所需要的寄存器分配在RF还是SHMEM中;
(11)如果判断寄存器分配在RF中,则直接从RF中读取寄存器数据;否则,从操作数缓存中读取对应的寄存器数据;
(12)当一条指令对应的所有操作数都读取到收集单元中,就将这个发送到SIMD单元执行;
(13)当一个线程束的一个指令块执行完成后,就将该线程束从schedulable队列移动到prefetching队列;
(14)重复步骤(4)至(13)直至GPGPU程序执行完成。
2.根据权利要求1所述的GPGPU寄存器文件动态扩展方法,其特征在于:所述步骤(1)中,依据寄存器的权重由大到小对寄存器的声明顺序进行排序,其中每个寄存器的权重是编译器通过计算每个寄存器的引用次数来估算寄存器的权重大小。
3.根据权利要求1所述的GPGPU寄存器文件动态扩展方法,其特征在于:所述步骤(1)中,对GPGPU程序的指令块进行划分,具体满足以下原则:
(1)当遇到内存栅栏或线程同步指令时,结束一个指令块;
(2)当遇到高延迟指令时,结束一个指令块;
(3)每一个指令块包括至少MinReg个活动寄存器,MinReg的值通过编译器设置;
(4)每一个指令块最多包括C/τ个活动寄存器,其中C为操作数缓存容量;
(5)每一个指令块不能跨越一个基本指令块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810408687.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种云任务调度方法
- 下一篇:一种基于全局管理的内存池管理方法