本发明涉及图形处理,特别涉及通用图形处理器的线程束运行方法、装置、设备及介质。
背景技术:
1、随着深度学习技术的兴起,人工智能(artificial intelligence,即ai)也在飞速发展,人工智能的发展离不开三个方面:算法、大数据和算力,三者相辅相成,共同促进人工智能的发展。通用图形处理器(general-purpose computing on graphics processingunits,即gpgpu)作为并行计算的一种重要架构,被广泛应用于人工智能计算平台,因为通用图形处理器有着大量的高速并行计算,所以通用图形处理器更加注重频率和吞吐率。
2、通用图形处理器中线程块内的线程会被硬件组织为固定大小的线程束,以线程束的形式在流处理器中以流水线的方式进行取指、译码、操作数收集、执行、写回等操作。目前各个线程束中存在需要停顿的线程束时,其他线程束也要随之停顿,导致线程束运行效率较低,进而使得通用图形处理器的频率和吞吐率也较低。
3、综上可见,如何提升通用图形处理器的线程束运行效率是本领域有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种通用图形处理器的线程束运行方法、装置、设备及介质,提升通用图形处理器的线程束运行效率。其具体方案如下:
2、第一方面,本技术公开了一种通用图形处理器的线程束运行方法,应用于通用图形处理器,包括:
3、基于当前周期生成的冲突检测结果从各个线程束中筛选出当前周期的第一目标线程束和第二目标线程束;其中,所述第一目标线程束为冲突检测结果表征线程束无数据冲突的线程束,所述第二目标线程束为冲突检测结果表征线程束存在数据冲突的线程束;
4、利用仲裁器对所述第一目标线程束进行仲裁,得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束,以便在下一周期时将所述第三目标线程束中fifo队列的第一目标译码信息存入操作数收集器,并将所述第三目标线程束中译码信息暂存器的第二目标译码信息存入所述第三目标线程束的fifo队列;
5、判定所述第二目标线程束和所述第四目标线程束为当前周期的停顿线程束,并控制所述停顿线程束中fifo队列、译码信息暂存器保存的译码信息禁止发生变动。
6、可选的,所述通用图形处理器的线程束运行方法,还包括:
7、在当前周期中,利用各个记分牌检测对应的所述线程束是否存在数据冲突,以便在下一周期生成冲突检测结果。
8、可选的,所述利用各个记分牌检测对应的所述线程束是否存在数据冲突,包括:
9、确定当前的线程束中fifo队列的第一目标译码信息以及当前的线程束中译码信息暂存器的第二目标译码信息;
10、利用与当前的线程束对应的记分牌检测当前的线程束的第一目标译码信息与当前的线程束的第二目标译码信息之间是否存在数据冲突。
11、可选的,所述fifo队列的第一目标译码信息为fifo队列的当前待输出译码信息,所述译码信息暂存器的第二目标译码信息为译码信息暂存器的当前待输出译码信息。
12、可选的,所述控制所述停顿线程束中fifo队列、译码信息暂存器保存的译码信息禁止发生变动,包括:
13、将当前的所述停顿线程束中fifo队列的状态更新为满状态,以便该fifo队列阻塞当前的所述停顿线程束中译码信息暂存器接收新的译码信息以及禁止该译码信息暂存器向自身写入译码信息。
14、可选的,所述仲裁器为固定优先级仲裁器;
15、相应的,所述利用仲裁器对所述第一目标线程束进行仲裁,得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束,包括:
16、获取各个所述第一目标线程束的优先级;
17、利用仲裁器对所述第一目标线程束进行仲裁,以得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束;其中,所述第三目标线程束的优先级高于所述第四目标线程束。
18、可选的,所述仲裁器为轮询仲裁器;
19、相应的,所述利用仲裁器对所述第一目标线程束进行仲裁,得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束,包括:
20、获取上一周期中仲裁成功的第五目标线程束;
21、利用仲裁器对所述第一目标线程束进行仲裁,得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束;其中,所述第三目标线程束为所述第五目标线程束的下一线程束,所述第四目标线程束为所述第一目标线程束中除所述第三目标线程束以外的线程束。
22、第二方面,本技术公开了一种通用图形处理器的线程束运行装置,应用于通用图形处理器,包括:
23、线程束筛选模块,用于基于当前周期生成的冲突检测结果从各个线程束中筛选出当前周期的第一目标线程束和第二目标线程束;其中,所述第一目标线程束为冲突检测结果表征线程束无数据冲突的线程束,所述第二目标线程束为冲突检测结果表征线程束存在数据冲突的线程束;
24、线程束运行模块,用于利用仲裁器对所述第一目标线程束进行仲裁,得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束,以便在下一周期时将所述第三目标线程束中fifo队列的第一目标译码信息存入操作数收集器,并将所述第三目标线程束中译码信息暂存器的第二目标译码信息存入所述第三目标线程束的fifo队列;
25、线程束停顿模块,用于判定所述第二目标线程束和所述第四目标线程束为当前周期的停顿线程束,并控制所述停顿线程束中fifo队列、译码信息暂存器保存的译码信息禁止发生变动。
26、第三方面,本技术公开了一种电子设备,包括:
27、存储器,用于保存计算机程序;
28、处理器,用于执行所述计算机程序,以实现前述公开的通用图形处理器的线程束运行方法的步骤。
29、第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的通用图形处理器的线程束运行方法的步骤。
30、本技术有益效果为:本技术应用于通用图形处理器,包括:基于当前周期生成的冲突检测结果从各个线程束中筛选出当前周期的第一目标线程束和第二目标线程束;其中,所述第一目标线程束为冲突检测结果表征线程束无数据冲突的线程束,所述第二目标线程束为冲突检测结果表征线程束存在数据冲突的线程束;利用仲裁器对所述第一目标线程束进行仲裁,得到仲裁成功的第三目标线程束和仲裁失败的第四目标线程束,以便在下一周期时将所述第三目标线程束中fifo队列的第一目标译码信息存入操作数收集器,并将所述第三目标线程束中译码信息暂存器的第二目标译码信息存入所述第三目标线程束的fifo队列;判定所述第二目标线程束和所述第四目标线程束为当前周期的停顿线程束,并控制所述停顿线程束中fifo队列、译码信息暂存器保存的译码信息禁止发生变动。由此可见,本技术首先筛选出无数据冲突的线程束,即第一目标线程束,再对第一目标线程束进行仲裁,从中筛选出仲裁成功的线程束,即第三目标线程束,并在下一周期时,允许第三目标线程束中fifo队列的第一目标译码信息存入操作数收集器、译码信息暂存器的第二目标译码信息存入第三目标线程束的fifo队列,以实现第三目标线程束的运行,而不允许存在数据冲突或者仲裁失败的线程束的译码信息发生变动,即实现存在数据冲突或者仲裁失败的线程束的停顿,也就是说,本技术能够使得需要停顿的线程束的译码信息不发生变动,而无需停顿的线程束则可以继续运行,如此一来,当存在需要停顿的线程束时,避免所有线程束随之停顿,即尽量减少线程束的停顿,进而提升通用图形处理器的线程束运行效率。
1.一种通用图形处理器的线程束运行方法,其特征在于,应用于通用图形处理器,包括:
2.根据权利要求1所述的通用图形处理器的线程束运行方法,其特征在于,还包括:
3.根据权利要求2所述的通用图形处理器的线程束运行方法,其特征在于,所述利用各个记分牌检测对应的所述线程束是否存在数据冲突,包括:
4.根据权利要求1至3任一项所述的通用图形处理器的线程束运行方法,其特征在于,所述fifo队列的第一目标译码信息为fifo队列的当前待输出译码信息,所述译码信息暂存器的第二目标译码信息为译码信息暂存器的当前待输出译码信息。
5.根据权利要求1所述的通用图形处理器的线程束运行方法,其特征在于,所述控制所述停顿线程束中fifo队列、译码信息暂存器保存的译码信息禁止发生变动,包括:
6.根据权利要求1所述的通用图形处理器的线程束运行方法,其特征在于,所述仲裁器为固定优先级仲裁器;
7.根据权利要求1所述的通用图形处理器的线程束运行方法,其特征在于,所述仲裁器为轮询仲裁器;
8.一种通用图形处理器的线程束运行装置,其特征在于,应用于通用图形处理器,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的通用图形处理器的线程束运行方法的步骤。
