System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 核函数调用方法、装置、设备、存储介质和程序产品制造方法及图纸_技高网

核函数调用方法、装置、设备、存储介质和程序产品制造方法及图纸

技术编号:40108681 阅读:9 留言:0更新日期:2024-01-23 18:49
本申请涉及一种核函数调用方法、装置、设备、存储介质和程序产品。所述方法包括:通过GPU从任务队列中获取第一核函数执行任务,并检测第一核函数执行任务对应的当前核函数中是否存在递归调用关系,递归调用关系用于表征在执行当前核函数的过程中是否需要调用其他核函数,若当前核函数中存在递归调用关系,GPU则执行其他核函数对应的第二核函数执行任务,并在第二核函数执行任务执行完成的情况下,继续执行第一核函数执行任务。采用本方法能够降低具有递归调用关系的核函数的执行复杂度。

【技术实现步骤摘要】

本申请涉及高性能计算机,特别是涉及一种核函数调用方法、装置、设备、存储介质和程序产品


技术介绍

1、随着计算机技术的发展,高性能计算机被广泛使用,其中,以异构加速器为主要计算单元的高性能计算机体系结构成为高性能计算机的主要结构。异构加速器,如gpu(graphics processing unit,图形处理器)、mic(microchip,微芯)、dsp(digital signalprocessing,数字处理信号芯片)、fpga(field-programmable gate array,现场可编程门阵列)等,通常使用特定指令集,执行并发量大而逻辑简单的并行算法,从而具有低功耗高浮点的计算性能。而在并行算法中,递归调用是一种十分常见的调用方式,即一个核函数调用包括自身在内的核函数。

2、相关技术在实现核函数的递归调用时,通常是基于hip(heterogeneous-computeinterface for portability,并行编程模型),将具有递归调用关系的多个核函数转换为非递归调用关系,使得具有递归调用关系的核函数能够进行非递归调用,但是,具有递归调用关系的核函数进行非递归调用时存在执行复杂度高的问题。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够降低存在递归调用关系的核函数调用的执行复杂度的核函数调用方法、装置、设备、存储介质和程序产品。

2、第一方面,本申请提供了一种核函数调用方法。该方法用于服务器,服务器中配置有gpu。该方法包括:

3、gpu从任务队列中获取第一核函数执行任务,并检测第一核函数执行任务对应的当前核函数中是否存在递归调用关系,递归调用关系用于表征在执行当前核函数的过程中是否需要调用其他核函数;

4、若当前核函数中存在递归调用关系,gpu则执行其他核函数对应的第二核函数执行任务,并在第二核函数执行任务执行完成的情况下,继续执行第一核函数执行任务。

5、上述实施例中,若第一核函数执行任务对应的当前核函数存在递归调用关系,gpu则首先执行当前核函数递归调用的其他核函数所对应的第二核函数执行任务,当执行完成第二核函数执行任务之后才会继续执行第一核函数执行任务,完成当前核函数的递归调用,避免了传统技术中对具有递归调用关系的核函数进行非递归调用所导致的执行复杂度高的问题,本申请实施例中,gpu通过执行各具有递归调用关系的核函数所对应的核函数执行任务,以实现核函数的递归调用,在当前核函数体内即可实现其他核函数的递归调用,降低了具有递归调用关系的核函数的执行复杂度。

6、在其中一个实施例中,其他核函数的数量为多个,且各其他核函数之间存在递归调用关系,gpu则执行其他核函数对应的第二核函数执行任务,并在第二核函数执行任务执行完成的情况下,继续执行第一核函数执行任务,包括:

7、gpu依次执行各其他核函数对应的第二核函数执行任务,并在各第二核函数执行任务执行完成的情况下,继续执行第一核函数执行任务。

8、在本实施例中,当前核函数中存在的递归调用关系为多层嵌套的递归调用的情况下,gpu对各其他核函数对应的第二核函数执行任务依次执行,以递归调用多个具有递归调用关系的其他核函数,递归调用的深度更深,有利于提升本申请实施例的实施推广。

9、在其中一个实施例中,服务器中还配置有cpu,方法还包括:

10、gpu生成其他核函数对应的递归调用请求,并将递归调用请求写入预设缓冲区,递归调用请求携带有其他核函数对应的执行配置数据包;

11、cpu若监测到预设缓冲区中发生数据更新,则锁定其他gpu针对预设缓冲区的访问操作,并从预设缓冲区中读取递归调用请求;

12、cpu根据递归调用请求向任务队列中发送第二核函数执行任务,第二核函数执行任务包括执行配置数据包以及其他核函数对应的执行未完成标记信息。

13、在本实施例中,cpu通过预设的缓冲区接收gpu发送的其他核函数的递归调用请求生成其他核函数对应的第二核函数执行任务,然后,将第二核函数执行任务发送至任务队列中,以便gpu通过执行任务队列中的第二核函数执行任务完成了当前核函数对其他核函数的递归调用,递归调用的逻辑简单,且锁定预设缓冲区,避免其他gpu对预设缓冲区进行访问操作,提高了cpu获取预设缓冲区中的数据内容的准确性。

14、在其中一个实施例中,方法还包括:

15、cpu生成发送成功反馈信息,并将发送成功反馈信息写入预设缓冲区中;

16、gpu若从预设缓冲区中读取发送成功反馈信息,gpu则生成发送成功反馈信息对应的确认信息,并将确认信息写入预设缓冲区;

17、cpu从预设缓冲区中读取到确认信息的情况下,对预设缓冲区中的数据内容进行清除,并解除针对预设缓冲区的访问操作锁定。

18、本实施例中,cpu在成功发送第二核函数执行任务后,对预设缓冲区中的数据内容进行清除并解除预设缓冲区的访问操作锁定,使得其他gpu可以访问预设缓冲区,确保了预设缓冲区中数据内容的安全性,提高了递归调用核函数时的准确性。

19、在其中一个实施例中,gpu则执行其他核函数对应的第二核函数执行任务之前,方法还包括:

20、gpu将第一核函数执行任务标记为阻塞状态,阻塞状态用于指示禁止gpu执行第一核函数执行任务;

21、gpu继续执行第一核函数执行任务之后,方法还包括:

22、在第一核函数执行任务执行完成的情况下,gpu将第一核函数执行任务标记为执行完成状态。

23、本实施例中,通过对第一核函数执行任务进行标记,确定是否完成当前核函数的递归调用,增加了递归调用的安全性。

24、在其中一个实施例中,方法还包括:

25、cpu获取当前核函数文件;

26、cpu在对核函数文件进行编译的过程中,若确定核函数文件对应的核函数中存在递归调用关系,则在核函数文件对应的核函数参数列表中增加隐式参数,隐式参数为地址指针,地址指针用于指向预设缓冲区。

27、本实施例中,cpu在获取多个核函数文件后,为存在递归调用关系的核函数添加地址指针,址指针指向预设缓冲区,能够使gpu确定预设缓冲区的地址,便于后续gpu对存在递归调用关系的核函数进行递归调用。

28、第二方面,本申请还提供了一种核函数调用装置。该装置用于服务器,服务器中配置有多个gpu。该装置包括:

29、gpu检测模块,用于gpu从任务队列中获取第一核函数执行任务,并检测第一核函数执行任务对应的当前核函数中是否存在递归调用关系,递归调用关系用于表征在执行当前核函数的过程中是否需要调用其他核函数;

30、gpu执行模块,用于若当前核函数中存在递归调用关系,gpu则执行其他核函数对应的第二核函数执行任务,并在第二核函数执行任务执行完成的情况下,继续执行第一核函数执行任务。

31、本文档来自技高网...

【技术保护点】

1.一种核函数调用方法,其特征在于,用于服务器,所述服务器中配置有GPU,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述其他核函数的数量为多个,且各所述其他核函数之间存在递归调用关系,所述GPU则执行所述其他核函数对应的第二核函数执行任务,并在所述第二核函数执行任务执行完成的情况下,继续执行所述第一核函数执行任务,包括:

3.根据权利要求1所述的方法,其特征在于,所述服务器中还配置有CPU,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述GPU则执行所述其他核函数对应的第二核函数执行任务之前,所述方法还包括:

6.根据权利要求3-5任一项所述的方法,其特征在于,所述方法还包括:

7.一种核函数调用装置,其特征在于,用于服务器,所述服务器中配置有GPU,所述装置包括:

8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种核函数调用方法,其特征在于,用于服务器,所述服务器中配置有gpu,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述其他核函数的数量为多个,且各所述其他核函数之间存在递归调用关系,所述gpu则执行所述其他核函数对应的第二核函数执行任务,并在所述第二核函数执行任务执行完成的情况下,继续执行所述第一核函数执行任务,包括:

3.根据权利要求1所述的方法,其特征在于,所述服务器中还配置有cpu,所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,所述gpu则执行所述其他核函数对应的第二核函数执行任务之前,所述方法...

【专利技术属性】
技术研发人员:肖熠刘浩伟刘培文
申请(专利权)人:曙光信息产业北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1