指令控制方法、装置及相关设备与流程

文档序号:34139234发布日期:2023-05-12 20:46阅读:37来源:国知局
指令控制方法、装置及相关设备与流程

本发明实施例涉及数据计算领域,具体涉及一种指令控制方法、装置及相关设备。


背景技术:

1、并行处理器,例如图形处理器(graphics processor unit,gpu)由于其高并行处理能力,在进行数据块并行处理算法上具有较大的优势。

2、然而,在并行处理器进行并行的数据处理时,由于受各种执行条件的影响,各个处理单元的处理进度并不完全相同,例如在通用图形处理器中,由于线程束的执行速率并不一致,导致了不同的线程束的数据处理进度并不一致,进而可能会造成逻辑混乱。因此,如何提供一种指令控制方法,以同步并行处理器中各个处理单元的处理进程,成为了本领域技术人员亟需解决的技术问题。


技术实现思路

1、有鉴于此,本申请实施例提供一种指令控制方法、装置及相关设备,能够实现多个子线程块上的线程束之间的同步,提高执行效率。

2、为实现上述目的,本申请实施例提供如下技术方案。

3、第一方面,本发明实施例提供一种指令控制方法,所述指令控制方法包括:

4、获取待处理线程束的指令信息,所述待处理线程束属于第一子线程块,所述第一子线程块为目标线程块分解后得到的至少两个子线程块中的一个子线程块;

5、根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量;

6、判断所述已获取的线程束数量是否匹配第一预设值;

7、若匹配,则所述第一子线程块已内部同步,判断与所述第一子线程块同属所述目标线程块的其他子线程块是否均已内部同步;

8、若是,控制所述目标线程块内的所有线程束的指令执行。

9、可选的,所述根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量,包括:判断所述指令信息对应的指令是否包括屏障指令,所述屏障指令使所述线程束与同属于第一子线程块内的其他线程束同步执行;若包括屏障指令,更新所述第一子线程块内已执行到屏障指令的线程束数量;以更新后的线程束数量作为所述第一子线程块内已获取的线程束数量。

10、可选的,所述根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量,包括:判断所述指令信息对应的指令是否包括屏障指令,所述屏障指令使所述待处理线程束与同属于所述第一子线程块内的其他线程束同步执行;若包括屏障指令,更新所述第一子线程块内已执行到屏障指令的线程束数量;以更新后的线程束数量作为所述第一子线程块内已获取的线程束数量。

11、可选的,所述更新所述第一子线程块内已执行到屏障指令的线程束数量,包括:当所述第一子线程块中的一个线程束执行到屏障指令时,所述第一子线程块的线程束计数器计数增加一个计数单位,以所述线程束计数器的计数作为所述已执行到屏障指令的线程束数量。

12、可选的,所述目标线程块分解后得到的所述至少两个子线程块被分配在同一个并行处理器的不同的计算单元。

13、可选的,所述目标线程块至少被分解为第一子线程块与第二子线程块,其中,所述第一子线程块用于实现从外部内存获取所述目标线程块的待处理数据的任务,所述第二子线程块用于实现处理所述第一子线程块获取的所述待处理数据的任务。

14、可选的,所述判断与所述第一子线程块同属所述目标线程块的其他子线程块是否已内部同步,包括:

15、判断所述第一子线程块是否收到与所述第一子线程块同属所述目标线程块的其他子线程块发出的同步完成信号,所述同步完成信号为当所述子线程块已内部同步后,向同属所述目标线程块的其他子线程块发送的指示信号;

16、若收到所述同步完成信号,则判定发出该同步完成信号的所述子线程块已内部同步。

17、可选的,所述第一预设值为所述第一子线程块内的所有线程束的数量。

18、第二方面,本申请实施例还提供一种指令控制装置,包括:

19、指令信息获取模块,用于获取待处理线程束的指令信息,所述待处理线程束属于第一子线程块,所述第一子线程块为目标线程块分解后得到的至少两个子线程块中的一个子线程块;

20、线程束数量确定模块,用于根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量;

21、内部同步判断模块,用于判断所述已获取的线程束数量是否匹配第一预设值;

22、目标线程块同步确定模块,用于判断与所述第一子线程块同属所述目标线程块的其他子线程块是否已内部同步;

23、指令执行控制模块,用于控制所述目标线程块内的所有线程束的指令执行。

24、可选的,所述目标线程块分解后得到的所述至少两个子线程块被分配在同一个并行处理器的不同的计算单元。

25、可选的,所述第一预设值为所述第一子线程块内的所有线程束的数量。

26、第三方面,本申请实施例还提供一种图形处理器,包括指令调度模块,所述指令调度模块被配置为执行所述的指令控制方法。

27、第四方面,本申请实施例还提供一种计算机设备,包括:至少一个存储器和至少一个处理器;所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行所述的指令控制方法。

28、第五方面,本申请实施例还提供一种存储介质,所述存储介质存储一条或多条可执行指令,所述一条或多条可执行指令用于执行所述的指令控制方法。

29、本发明实施例提供了一种指令控制方法、装置及相关设备,所述方法包括:获取待处理线程束的指令信息,所述待处理线程束属于第一子线程块,所述第一子线程块为目标线程块分解后得到的至少两个子线程块中的一个子线程块;根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量;判断所述已获取的线程束数量是否匹配第一预设值;若匹配,则所述第一子线程块已内部同步,判断与所述第一子线程块同属所述目标线程块的其他子线程块是否均已内部同步;若是,控制所述目标线程块内的所有线程束的指令执行。

30、可以看出,本发明实施例提供的指令控制方法可以实现不同子线程块上的线程束之间的同步,从而解决了当一个任务对应的目标线程块被分解为多个子线程块时,各个子线程块内的线程束之间的同步问题,本发明实施例提供的指令控制方法可以有效的提高任务的执行效率。



技术特征:

1.一种指令控制方法,其特征在于,包括:

2.根据权利要求1所述的指令控制方法,其特征在于,所述根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量,包括:

3.根据权利要求2所述的指令控制方法,其特征在于,所述更新所述第一子线程块内已执行到屏障指令的线程束数量,包括:

4.根据权利要求1所述的指令控制方法,其特征在于,所述目标线程块分解后得到的所述至少两个子线程块被分配在同一个并行处理器的不同的计算单元。

5.根据权利要求4所述的指令控制方法,其特征在于,所述目标线程块至少被分解为第一子线程块与第二子线程块,其中,所述第一子线程块用于实现从外部内存获取所述目标线程块的待处理数据的任务,所述第二子线程块用于实现处理所述第一子线程块获取的所述待处理数据的任务。

6.根据权利要求1所述的指令控制方法,其特征在于,所述判断与所述第一子线程块同属所述目标线程块的其他子线程块是否已内部同步,包括:

7.根据权利要求1所述的指令控制方法,其特征在于,所述第一预设值为所述第一子线程块内的所有线程束的数量。

8.一种指令控制装置,其特征在于,包括:

9.根据权利要求8所述的指令控制装置,其特征在于,所述目标线程块分解后得到的所述至少两个子线程块被分配在同一个并行处理器的不同的计算单元。

10.根据权利要求8所述的指令控制装置,其特征在于,所述第一预设值为所述第一子线程块内的所有线程束的数量。

11.一种图形处理器,其特征在于,包括指令调度模块,所述指令调度模块被配置为执行如权利要求1-7任一权利要求所述的指令控制方法。

12.一种计算机设备,其特征在于,包括:至少一个存储器和至少一个处理器;所述存储器存储一条或多条计算机可执行指令,所述处理器调用所述一条或多条计算机可执行指令,以执行如权利要求1 7任一项所述的指令控制方法。

13.一种存储介质,其特征在于,所述存储介质存储一条或多条可执行指令,所述一条或多条可执行指令用于执行如权利要求1 7任一项所述的指令控制方法。


技术总结
本申请实施例提供一种指令控制方法、装置及相关设备。所述方法包括:获取待处理线程束的指令信息,所述待处理线程束属于第一子线程块,所述第一子线程块为目标线程块分解后得到的至少两个子线程块中的一个子线程块;根据所述指令信息,确定所述待处理线程束所属的第一子线程块内已获取的线程束数量;判断所述已获取的线程束数量是否匹配第一预设值;若匹配,则所述第一子线程块已内部同步,判断与所述第一子线程块同属所述目标线程块的其他子线程块是否均已内部同步;若是,控制所述目标线程块内的所有线程束的指令执行。本申请实施例提供的指令控制方法可以实现多个子线程块上的线程束之间的同步。

技术研发人员:喻琛,左航,潘于
受保护的技术使用者:海光信息技术股份有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1