System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于gpgpu线程束调度,具体涉及一种冲突线程束调度方法及gpgpu寄存器文件访存方法、系统。
技术介绍
1、gpgpu,是general-purpose graphics processing unit的简称,通用图形处理器。
2、gpgpu通过大量线程束交替调度的方式进行高速数据处理,因此gpgpu中的寄存器文件通常采用大容量设计,从而机箱内线程束的零开销切换。除了容量的需求,gpgpu的寄存器文件还需要高访存带宽以满足线程束操作数并行读写的需求。线程束调度则是根据gpgpu中可用存储资源和计算资源的状况,选取就绪的线程束进行调度执行。因此,线程束调度的方式将直接影响整个gpgpu任务的执行效率。
3、但是,寄存器文件的面积随着读写端口的增加而快速扩大,导致很难采用多端口设计方案。为了满足寄存器的高带宽访存需求并限制寄存器文件的面积,gpgpu寄存器文件通常采用多板块的存储结构来实现并行访问。在使用双端口存储器的多板块设计中,寄存器读写端口数量相同,但gpgpu程序主要包括:只进行多操作数读取的分支、跳转和控制指令;只进行单操作数写回的控制指令;同时需要多操作数读取和单操作数写回的运算指令。由于分支、跳转和运算指令出现频率较高,寄存器读端口的多板块设计获得的访问性能提升显著,但仅写回的控制指令出现频率较低且运算指令只进行单操作数的写回,寄存器写端口的多板块设计存储带宽利用率低,造成了端口资源的浪费,因此目前gpgpu通常采用的多板块单端口的存储结构,此种存储结构必然存在寄存器高带宽访存需求与
技术实现思路
1、第一方面,本申请实施例提供一种冲突线程束调度方法,包括如下步骤:
2、s1.获取已调度线程束需要操作寄存器的第一地址,以及待调度线程束需要操作寄存器的第二地址;
3、s2.识别第二地址间是否存在冲突,并当存在冲突时,从冲突的两个第二地址对应的两个待调度线程束中选出一个调度,以及当不存在冲突时,进入步骤s3;
4、s3.识别第一地址与第二地址是否存在冲突,并当不存在冲突时,按照轮询方式调度待调度线程束,以及在存在冲突时,暂停对应待调度线程束,执行与第一地址不存在冲突的部分待调度线程束。在本方案中,通过获取并识别线程束操作寄存器的地址冲突,避免了寄存器访问冲突导致的线程束调度延迟,提高了gpgpu的执行效率。
5、进一步地,还包括如下步骤:
6、ss1.设置冲突控制器,对线程束指令的读写寄存器信息进行记录,标记各寄存器地址被使用的状态,并根据标记的寄存器地址的被使用状态对待调度线程束的调度顺序进行实时调整。本优选的方案中,冲突控制器的设置能够实时记录线程束指令的读写寄存器信息,标记寄存器地址的使用状态,并据此调整线程束的调度顺序,减少了冲突发生的概率。
7、进一步地,步骤ss1包括如下步骤:
8、ss11.冲突控制器通过冲突控制表标记各寄存器地址被使用的状态;
9、ss12.冲突控制器通过调度器并根据冲突控制表选择不存在冲突的待调度线程进行调度。本优选的方案中,通过冲突控制表和调度器的协同工作,能够精确选择不存在冲突的待调度线程束,进一步提升了gpgpu的性能。
10、第二方面,本申请实施例还提供一种应用第一方面所述冲突线程束调度方法的gpgpu寄存器文件访存方法,包括如下步骤:
11、s101.线程束调度单元根据冲突线程束调度方法选择不存在冲突的待调度线程束进行调度;
12、s102.操作数访存单元根据选择的调度线程束的指令,从单端口多地址寄存器文件中并行读取或写回操作数。本方案中,结合冲突线程束调度方法,实现了对单端口多地址寄存器文件的高效并行访问,提高了数据读写速度。
13、进一步地,步骤s101具体步骤如下:
14、s1011.线程束调度单元通过指令预取队列从待调度线程束中取出指令并解码,在将解码后指令存入指令队列;
15、s1012.线程束调度单元通过冲突控制器记录线程束指令的读写寄存器信息,并对各寄存器地址被使用的状态进行标记,再根据标记的寄存器地址的被使用状态对待调度线程束的调度顺序进行实时调整,选择出不存在地址冲突的待调度线程束;
16、s1013.线程束调度单元通过冲突控制器将选择出的待调度线程束存储到调度队列中。本优选的方案中,通过指令预取队列、冲突控制器和调度队列的协同工作,实现了对线程束指令的精确调度,避免了寄存器访问冲突,提高了gpgpu的运算效率。
17、进一步地,步骤s102具体步骤如下:
18、s1021.操作数访存单元通过操作数收集器对线程束中指令的操作数所在寄存器地址、操作数是否执行完成状态以及操作数数据进行记录;
19、s1022.操作数访存单元根据操作数收集器仲裁出可以访存的寄存器文件的地址条目,并行从单端口多地址寄存器文件中读写操作数,并在某个寄存器地址的操作数被成功读取或写回时,将操作数收集器中操作数是否执行完成状态进行置位。本优选的方案中,操作数收集器的设置能够精确记录操作数的地址、状态和数据,访存执行器能够据此并行访问寄存器文件,提高了数据访问的并行度和效率。
20、第三方面,本申请实施例还提供一种应用第二方面所述冲突线程束调度方法的gpgpu寄存器文件访存系统,包括:
21、线程束调度单元,采用冲突线程束调度方选择不存在冲突的待调度线程束进行调度;
22、操作数访存单元,根据选择的调度线程束的指令,从单端口多地址寄存器文件中并行读取或写回操作数;
23、执行单元,在完成运算后将操作数写回请求发送回线程束调度单元,并进入待调度线程束。本方案中,结合了冲突线程束调度方法和高效的寄存器文件访存方法,实现了对gpgpu资源的充分利用,提高了系统的整体性能。
24、进一步地,线程束调度单元包括:
25、指令预取队列,对被调度执行的待调度线程束取出指令,并进行解码后存入指令队列;
26、冲突控制器,对线程束指令的读写寄存器信息进行记录,标记各寄存器地址被使用的状态,并根据标记的寄存器地址的选择不存在冲突的待调度线程进行调度;
27、调度队列,存储选择的不存在冲突的待调度线程束,等待调度。本优选的方案中,通过指令预取队列、冲突控制器和调度队列的协同工作,实现了对线程束指令的精确调度和冲突避免,提高了gpgpu的运算效率。
28、进一步地,操作数访存单元包括:
29、操作数收集器,对线程束中指令的操作数所在寄存器地址、操作数是否执行完成状态以及操作数数据进行记录;
30、单端口多板块寄存器文件,包括若干个单端口存储器,存储线程束的操作数对应操作对象,并在同一周期内允许执行读取或写回操作;
31、访存执行器,根据操作数收集器仲裁出可以访存的寄存器文件的地址条目,并本文档来自技高网...
【技术保护点】
1.一种冲突线程束调度方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的冲突线程束调度方法,其特征在于,还包括如下步骤:
3.如权利要求2所述的冲突线程束调度方法,其特征在于,步骤SS1包括如下步骤:
4.一种应用权利要求1至3中任一项所述冲突线程束调度方法的GPGPU寄存器文件访存方法,其特征在于,包括如下步骤:
5.根据权利要求4所述的GPGPU寄存器文件访存方法,其特征在于,步骤S101具体步骤如下:
6.根据权利要求5所述的GPGPU寄存器文件访存方法,其特征在于,步骤S102具体步骤如下:
7.一种应用权利要求1至3中任一项所述冲突线程束调度方法的GPGPU寄存器文件访存系统,其特征在于,包括:
8.根据权利要求7所述的GPGPU寄存器文件访存系统,其特征在于,线程束调度单元包括:
9.根据权利要求8所述的GPGPU寄存器文件访存系统,其特征在于,操作数访存单元包括:
10.根据权利要求7所述的GPGPU寄存器文件访存系统,其特征在于,操作数收集器包括:<
...【技术特征摘要】
1.一种冲突线程束调度方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的冲突线程束调度方法,其特征在于,还包括如下步骤:
3.如权利要求2所述的冲突线程束调度方法,其特征在于,步骤ss1包括如下步骤:
4.一种应用权利要求1至3中任一项所述冲突线程束调度方法的gpgpu寄存器文件访存方法,其特征在于,包括如下步骤:
5.根据权利要求4所述的gpgpu寄存器文件访存方法,其特征在于,步骤s101具体步骤如下:
6.根据权利要求...
【专利技术属性】
技术研发人员:孟凡琨,王帅,赵鑫鑫,姜凯,
申请(专利权)人:山东浪潮科学研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。