多GPU通信的方法及装置、存储介质、电子装置
文献发布时间:2023-06-19 09:49:27
技术领域
本申请涉及计算机图像处理技术,具体地,涉及多GPU通信的方法及装置、存储介质、电子装置。
背景技术
在图像处理领域中,通常采用多片GPU之间相互协作,各自完成一部分图像处理的任务。
随着图像处理任务越来越复杂,GPU的整体性能成下降趋势。
针对相关技术中,当处理复杂图像处理任务时GPU整体性能不高的问题,目前尚未存在有效的解决方案。
发明内容
本申请实施例中提供了多GPU通信的方法及装置、存储介质、电子装置,以至少解决相关技术中当处理复杂图像处理任务时GPU整体性能不高的问题。
根据本申请实施例的第一个方面,提供了一种多GPU通信的方法,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,所述方法包括:接收图像处理任务;将所述图像处理任务分割,得到多个图像处理子任务;根据所述从GPU的个数分配所述多个图像处理子任务;接收所述从GPU对所述图像处理任务的处理结果;将所述处理结果合并后拼接得到目标图像。
根据本申请实施例的第二个方面,提供了一种多GPU通信的方法,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,所述方法包括:接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务;按照预设方式处理所述多个图像处理子任务;将所述图像处理任务的处理结果发送至所述主GPU。
根据本申请实施例的第三个方面,提供了一种多GPU通信的装置,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,所述装置包括:第一接收模块,用于接收图像处理任务;分割模块,用于将所述图像处理任务分割,得到多个图像处理子任务;分配模块,用于根据所述从GPU的个数分配所述多个图像处理子任务;所述第一接收模块,还用于接收所述从GPU对所述图像处理任务的处理结果;拼接模块,用于将所述处理结果合并后拼接得到目标图像。
根据本申请实施例的第四个方面,提供了一种多GPU通信的装置,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,所述装置包括:第二接收模块,用于接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务;处理模块,用于按照预设方式处理所述多个图像处理子任务;发送模块,用于将所述图像处理任务的处理结果发送至所述主GPU。
根据本申请实施例的第五个方面,提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请实施例的第六个方面,提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
采用本申请实施例中提供的多GPU通信的方法及装置、存储介质、电子装置,通过在主GPU接收上层系统发送的绘图任务,完成自动的绘图任务切割,将部分绘图任务分配到多个从GPU,并同时管理多个从GPU的负载,当从GPU绘制完成后,接收绘图结果合并拼接成整幅图像输出。通过本申请达到GPU协同完成复杂绘图和计算任务的目的,实现了提高GPU整体性能的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的系统结构示意图;
图2为本申请实施例中的多GPU通信的方法流程示意图;
图3为本申请实施例中的多GPU通信的装置结构示意图;
图4为本申请实施例中的多GPU通信的方法流程示意图;
图5为本申请实施例中的多GPU通信的装置结构示意图;
图6为本申请实施例中图像处理任务按绘图区均匀分配的示意图;
图7为本申请实施例中图像处理任务按绘图区非均匀分配的示意图。
具体实施方式
在实现本申请的过程中,发明人发现,在图像处理中通过多个GPU绘制图形然后进行显示,然而多个GPU无法并行协同处理任务,导致GPU整体性能不高。
针对上述问题,本申请实施例中提供了一种多GPU通信的方法,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,所述方法包括:接收图像处理任务;将所述图像处理任务分割,得到多个图像处理子任务;根据所述从GPU的个数分配所述多个图像处理子任务;接收所述从GPU对所述图像处理任务的处理结果;将所述处理结果合并后拼接得到目标图像。在本申请中采用多片GPU互联协同工作的方案,达到协同完成复杂绘图和计算任务的目的。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
本申请实施例一所提供的方法实施例可以在多GPU的系统或者类似架构的系统中执行。以运行在多GPU的系统上为例,图1是本发明实施例的多GPU通信的方法所实施的GPU系统结构示意图。如图1所示是一个主GPU,四个从GPU的GPU系统结构。主GPU与从GPU之间通过高速互联总线进行一对一通信。在所述主GPU接收上层的PCIE总线发送的绘图任务,将其通过高速互联总线传输到其余三个从GPU中,三个从GPU也存在高速互联总线互通,在主GPU和从GPU之间可以通过共享RAM以及共享Cache共享绘图过程中需要的数据。
在本实施例中提供了多GPU通信的方法,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,如图2所示,该流程包括如下步骤:
步骤S201,接收图像处理任务;
步骤S202,将所述图像处理任务分割,得到多个图像处理子任务;
步骤S203,根据所述从GPU的个数分配所述多个图像处理子任务;
步骤S204,接收所述从GPU对所述图像处理任务的处理结果;
步骤S205,将所述处理结果合并后拼接得到目标图像。
上述多GPU通信的方法,通过在主GPU接收上层系统发送的绘图任务,完成自动的绘图任务切割,将部分绘图任务分配到多个从GPU,并同时管理多个从GPU的负载,当从GPU绘制完成后,接收绘图结果合并拼接成整幅图像输出。通过本申请达到GPU协同完成复杂绘图和计算任务的目的,实现了提高GPU整体性能的技术效果。
上述步骤S201中通过所述主GPU接收所述图像处理任务。
在一种具体实施方式中,所述主GPU接收上层系统即CPU下发的图像处理任务。
在一种优选实施方式中,所述图像处理任务包括:绘图任务。
上述步骤S202中所述主GPU将所述图像处理任务分割之后得到多个图像处理子任务。
在一种具体实施方式中,所述主GPU根据上层系统发送的绘图任务进行分割,并根据所述从GPU的个数将所述绘图任务均匀的分配给多个从GPU。
在一种优选实施方式中,将所述绘图任务均匀的分配给多个从GPU时的传输采用通过高速互联总线。
上述步骤S203中所述主GPU根据所述从GPU的个数分配所述多个图像处理子任务。
在一种具体实施方式中,所述主GPU接收上层系统绘图任务,将所述从GPU需要的绘图数据打包,并将数据包发送给从GPU。
在一种优选实施方式中,在所述从GPU在接收到数据包之后进行解析,将数据存放到指定位置。当接收完毕之后,再向所述主GPU发送应答信息包。
上述步骤S204中所述主GPU接收所述从GPU对所述图像处理任务的处理结果,并且在所述主GPU也会同样进行所述图像任务的处理。
在一种优选实施方式中,所述图像处理任务包括:绘图任务。
在一种具体实施方式中,所述主GPU发送相关的绘图命令给所述从GPU进行处理。
在一种优选实施方式中,在所述从GPU中根据绘图命令和绘图数据自动执行完成绘图任务,在绘图任务完成后,向所述主GPU发送绘制完成信号。
上述步骤S205中所述主GPU将所述处理结果合并后拼接得到目标图像。
在一种具体实施方式中,将所述处理结果与所述主GPU自身的图像处理结果合并后拼接得到目标图像。
在一种优选实施方式中,所述主GPU在接收完成所有所述从GPU发送的绘图结果后,将绘图结果和其自身的绘图结果拼接成一幅完整的图像输出到显示端口。
在一种优选实施方式中,所述主GPU向所述从GPU连续多次重复发送不同的绘图数据以及绘图命令的现象,以驱动所述从GPU在同一副画面中绘制不同的图形的效果。从显示效果而言,即在同一副画面中,先画了一个图形,接着又需要绘制其他图形,以实现多副图形重叠与透视等效果。
作为本申请的可选实施方式,所述根据所述从GPU的个数分配所述多个图像处理子任务包括:将所述从GPU待分配的图像处理子任务中的绘图数据包送至所述从GPU;在所述从GPU将所述绘图数据包接收完毕的情况下,接收信息应答包。
具体实施时,所述主GPU接收上层系统绘图任务,将从GPU需要的绘图数据打包,并将数据包发送给从所述GPU。在所述从GPU在接收到数据包之后进行解析,将数据存放到指定位置,当接收完毕后,向主GPU发送应答信息包,并执行工作任务。
作为本申请的可选实施方式,所述根据所述从GPU的个数分配所述多个图像处理子任务,还包括:向所述从GPU发送图像处理任务命令;在从GPU根据所述图像处理任务命令和所述绘图数据包执行完成所述图像处理任务的情况下,接收所述图像处理任务的完成应答包;向所述从GPU发送图像处理任务结果允许接收请求;根据所述允许接收请求,接收所述图像处理任务的处理结果。
具体实施时,所述主GPU发送绘图命令给从GPU,在所述从GPU根据绘图命令和绘图数据自动执行完成绘图任务。并且在绘图任务完成后,向所述主GPU发送绘制完成信号。
作为本申请的可选实施方式,所述根据所述从GPU的个数分配所述多个图像处理子任务,还包括:根据所述目标图像的坐标将绘图区,按照所述从GPU和所述主GPU的数目划分得到目标区域;将属于不同绘图区的绘图数据包和图像处理任务命令,发送至对应的所述从GPU。
具体实施时,所述主GPU向所述从GPU发送绘图结果允许接收请求,所述从GPU向所述主GPU发送绘图结果。
作为本申请的可选实施方式,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信包括:在每个所述从GPU之间通过高速互联总线进行一对一通信;和/或,所述主GPU与每个所述从GPU之间通过共享RAM共享执行所述图像处理任务过程中所需的数据;和/或,所述主GPU与每个所述从GPU之间通过共享Cache共享执行所述图像处理任务过程中所需的数据。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例二
在本实施例中提供了多GPU通信的方法,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,如图4所示,该流程包括如下步骤:
步骤S401,接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务;
步骤S402,按照预设方式处理所述多个图像处理子任务;
步骤S403,将所述图像处理任务的处理结果发送至所述主GPU。
上述多GPU通信的方法,通过在主GPU接收上层系统发送的绘图任务,完成自动的绘图任务切割,将部分绘图任务分配到多个从GPU,并同时管理多个从GPU的负载,当从GPU绘制完成后,接收绘图结果合并拼接成整幅图像输出。通过本申请达到协同完成复杂绘图和计算任务的目的,实现了提高GPU整体性能的技术效果。
在所述步骤S401中在所述多个从GPU中接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务。
在一种具体实施方式中,所述主GPU根据上层系统发送的绘图任务进行分割,并根据所述从GPU的个数将所述绘图任务均匀的分配给多个从GPU。
在一种优选实施方式中,将所述绘图任务均匀的分配给多个从GPU时的传输采用通过高速互联总线。
在所述步骤S402中在所述多个从GPU中按照预设方式处理所述多个图像处理子任务。
在一种具体实施方式中,所述主GPU接收上层系统绘图任务,将所述从GPU需要的绘图数据打包,并将数据包发送给从GPU。
在一种优选实施方式中,在所述从GPU在接收到数据包之后进行解析,将数据存放到指定位置。当接收完毕之后,再向所述主GPU发送应答信息包。
在所述步骤S403中在所述从GPU将所述图像处理任务的处理结果发送至所述主GPU。
在一种优选实施方式中,所述图像处理任务包括:绘图任务。
在一种具体实施方式中,所述主GPU发送相关的绘图命令给所述从GPU进行处理。
在一种优选实施方式中,在所述从GPU中根据绘图命令和绘图数据自动执行完成绘图任务,在绘图任务完成后,向所述主GPU发送绘制完成信号。
在一种优选实施方式中,所述主GPU在接收完成所有所述从GPU发送的绘图结果后,将绘图结果和其自身的绘图结果拼接成一幅完整的图像输出到显示端口。
在一种优选实施方式中,所述主GPU向所述从GPU连续多次重复发送不同的绘图数据以及绘图命令的现象,以驱动所述从GPU在同一副画面中绘制不同的图形的效果。从显示效果而言,即在同一副画面中,先画了一个图形,接着又需要绘制其他图形,以实现多副图形重叠与透视等效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例三
在本实施例中还提供了多GPU通信的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的多GPU通信的装置的结构框图,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,如图3所示,该装置包括:
第一接收模块30,用于接收图像处理任务;
分割模块31,用于将所述图像处理任务分割,得到多个图像处理子任务;
分配模块32,用于根据所述从GPU的个数分配所述多个图像处理子任务;
所述第一接收模块30,还用于接收所述从GPU对所述图像处理任务的处理结果;
拼接模块33,用于将所述处理结果合并后拼接得到目标图像。
所述第一接收模块30中通过所述主GPU接收所述图像处理任务。
在一种具体实施方式中,所述主GPU接收上层系统即CPU下发的图像处理任务。
在一种优选实施方式中,所述图像处理任务包括:绘图任务。
所述分割模块31中所述主GPU将所述图像处理任务分割之后得到多个图像处理子任务。
在一种具体实施方式中,所述主GPU根据上层系统发送的绘图任务进行分割,并根据所述从GPU的个数将所述绘图任务均匀的分配给多个从GPU。
在一种优选实施方式中,将所述绘图任务均匀的分配给多个从GPU时的传输采用通过高速互联总线。
所述分配模块32中所述主GPU根据所述从GPU的个数分配所述多个图像处理子任务。
在一种具体实施方式中,所述主GPU接收上层系统绘图任务,将所述从GPU需要的绘图数据打包,并将数据包发送给从GPU。
在一种优选实施方式中,在所述从GPU在接收到数据包之后进行解析,将数据存放到指定位置。当接收完毕之后,再向所述主GPU发送应答信息包。
所述第一接收模块30中所述主GPU接收所述从GPU对所述图像处理任务的处理结果,并且在所述主GPU也会同样进行所述图像任务的处理。
在一种优选实施方式中,所述图像处理任务包括:绘图任务。
在一种具体实施方式中,所述主GPU发送相关的绘图命令给所述从GPU进行处理。
在一种优选实施方式中,在所述从GPU中根据绘图命令和绘图数据自动执行完成绘图任务,在绘图任务完成后,向所述主GPU发送绘制完成信号。
所述拼接模块33中所述主GPU将所述处理结果合并后拼接得到目标图像。
在一种具体实施方式中,将所述处理结果与所述主GPU自身的图像处理结果合并后拼接得到目标图像。
在一种优选实施方式中,所述主GPU在接收完成所有所述从GPU发送的绘图结果后,将绘图结果和其自身的绘图结果拼接成一幅完整的图像输出到显示端口。
在一种优选实施方式中,所述主GPU向所述从GPU连续多次重复发送不同的绘图数据以及绘图命令的现象,以驱动所述从GPU在同一副画面中绘制不同的图形的效果。从显示效果而言,即在同一副画面中,先画了一个图形,接着又需要绘制其他图形,以实现多副图形重叠与透视等效果。
实施例四
在本实施例中还提供了多GPU通信的装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的多GPU通信的装置的结构框图,用于在一个主GPU和多个从GPU之间进行通信,所述主GPU与每个所述从GPU之间通过高速互联总线进行一对一通信,如图5所示,该装置包括:
第二接收模块50,用于接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务;
处理模块51,用于按照预设方式处理所述多个图像处理子任务;
发送模块52,用于将所述图像处理任务的处理结果发送至所述主GPU。
所述第二接收模块50中在所述多个从GPU中接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务。
在一种具体实施方式中,所述主GPU根据上层系统发送的绘图任务进行分割,并根据所述从GPU的个数将所述绘图任务均匀的分配给多个从GPU。
在一种优选实施方式中,将所述绘图任务均匀的分配给多个从GPU时的传输采用通过高速互联总线。
所述处理模块51中在所述多个从GPU中按照预设方式处理所述多个图像处理子任务。
在一种具体实施方式中,所述主GPU接收上层系统绘图任务,将所述从GPU需要的绘图数据打包,并将数据包发送给从GPU。
在一种优选实施方式中,在所述从GPU在接收到数据包之后进行解析,将数据存放到指定位置。当接收完毕之后,再向所述主GPU发送应答信息包。
所述发送模块52中在所述从GPU将所述图像处理任务的处理结果发送至所述主GPU。
在一种优选实施方式中,所述图像处理任务包括:绘图任务。
在一种具体实施方式中,所述主GPU发送相关的绘图命令给所述从GPU进行处理。
在一种优选实施方式中,在所述从GPU中根据绘图命令和绘图数据自动执行完成绘图任务,在绘图任务完成后,向所述主GPU发送绘制完成信号。
在一种优选实施方式中,所述主GPU在接收完成所有所述从GPU发送的绘图结果后,将绘图结果和其自身的绘图结果拼接成一幅完整的图像输出到显示端口。
在一种优选实施方式中,所述主GPU向所述从GPU连续多次重复发送不同的绘图数据以及绘图命令的现象,以驱动所述从GPU在同一副画面中绘制不同的图形的效果。从显示效果而言,即在同一副画面中,先画了一个图形,接着又需要绘制其他图形,以实现多副图形重叠与透视等效果。
为了更好的理解上述多GPU通信的方法流程,以下结合优选实施例对上述技术方案进行解释说明,但不用于限定本发明实施例的技术方案。
在本申请中主GPU将需要从GPU执行的工作数据打包,并将数据包通过高速片间互联总线直接发送给从GPU;从GPU在接收到数据包之后进行解析,并执行工作任务;从GPU在任务执行完毕后,将任务结果数据打包,通过高速片间互联总线返回给主GPU。
以下以图像处理任务为绘图任务为例,GPU系统包括一个主GPU、三个从GPU进行详细说明。
在所述主GPU根据上层发送绘图任务进行分割,根据从GPU的个数,将绘图任务均匀的分配给多个从GPU,并且传输过程采用通过高速互联总线,具体包括如下步骤:
步骤S1,主GPU接收上层系统绘图任务,将从GPU需要的绘图数据打包,并将数据包发送给从GPU;
步骤S2,从GPU在接收到数据包之后进行解析,将数据存放到指定位置;当接收完毕后,向主GPU发送应答信息包,并执行工作任务;
步骤S3,主GPU发送绘图命令给从GPU的命令包;
步骤S4,从GPU根据绘图命令和绘图数据自动执行完成绘图任务,在绘图任务完成后,向主GPU发送绘制完成信号的应答包;
步骤S5,主GPU向从GPU发送绘图结果允许接收请求的数据包;
步骤S6,从GPU向主GPU发送绘图结果的数据包;
步骤S7,主GPU在完成所有从GPU发送的绘图结果后,将其拼接成一幅完整的图像输出到显示端口。
具体实施时,所述步骤S2到步骤S6可能出现不规则,以及多次循环反复的情况,即可能主GPU向从GPU连续多次重复发送不同的绘图数据以及绘图命令的现象,以驱动从GPU在同一副画面中绘制不同的图形的效果。即在同一副画面中,先画了一个图形,接着又需要绘制其他图形,以实现多副图形重叠与透视等效果。
上述绘图数据包格式中依次包括:作为起始定界符的包头、包属性字段、目的地址、数据长度、数据、校验码、作为结束定界符的包尾。
其中,所述包头,为一串连续特定的字符,该字符在数据包中,不会连续出现,以避免出现数据包接收时的解析错误。
所述包属性字段,表明当前数据包中数据的格式,可以为命令、数据、应答。
所述命令,用以指示当前数据包为,绘图命令,从设备需自动解析和完成绘图命令。
所述数据,用以指示接收的GPU,当前传输的为绘图数据或绘图结果,接收设备只需,完成数据包的解析,然后存放到指定的目的地址。
所述应答,是指当前数据包中的数据为:当前接收设备应答信息,具体包括:接收完成和校验信息,是表示当前从GPU接收完成。并且当从设备接收数据校验失败,此时发送设备需要决定是否重传。
所述允许发送,是指当前设备允许接收数据。
所述状态信息,是指当前接收设备的状态信息。
所述目的地址,是指当前数据包中数据需存放的目的地址。
所述数据长度,是指当前数据包中真实数据个数、
所述数据,是指数据包中的数据位,具体含义根据包属性字段解析;
所述校验码,是指因采用外部互联总线,数据传输过程中难免出错,必须对数据进行校验处理。
所述包尾,是指包头类似的连续特定字符,标识数据包结束。
如图6所示,所述主GPU根据图像坐标将绘图区根据GPU的数目划分为四块区域,将属于不同绘图区的绘图数据和绘图命令发送到指定的从GPU中,当某个从GPU完成绘图任务后,将会把自己管理区域的绘图结果发送到主GPU;由主GPU将所有从GPU的绘图结果收集同时与自身GPU的绘图结果拼接,恢复成上位系统所所需要图像,进行显示输出。
如图7所示,绘图任务是按图像密级与复杂度分配的情况。由于真实的绘图任务,并不是均匀布局于图像区域的,在某些时候,可能大部分的绘图任务集中某个特定区域,此时因主GPU需要等待所有从GPU以及自身GPU都绘制完成,才能收集和拼接最终的显示图像。在这个时候最长的时间即是绘图性能是由最复杂的区域决定。此时,所述主GPU将根据绘图复杂度来合理安排各个从GPU的绘图工作。如图7所示,当绘图任务全集中于图像上半区时,主GPU将自主分配三个GPU同时绘制上半区域,以平衡整体各个GPU的绘图负载,达到提高整体性能的目的。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,接收图像处理任务;
S2,将所述图像处理任务分割,得到多个图像处理子任务;
S3,根据所述从GPU的个数分配所述多个图像处理子任务;
S4,接收所述从GPU对所述图像处理任务的处理结果;
S5,将所述处理结果合并后拼接得到目标图像。
和/或,
S1,接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务;
S2,按照预设方式处理所述多个图像处理子任务;
S3,将所述图像处理任务的处理结果发送至所述主GPU。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S31,将所述从GPU待分配的图像处理子任务中的绘图数据包送至所述从GPU;
S32,在所述从GPU将所述绘图数据包接收完毕的情况下,接收信息应答包。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收图像处理任务;
S2,将所述图像处理任务分割,得到多个图像处理子任务;
S3,根据所述从GPU的个数分配所述多个图像处理子任务;
S4,接收所述从GPU对所述图像处理任务的处理结果;
S5,将所述处理结果合并后拼接得到目标图像。
和/或,
S1,接收所述主GPU将图像处理任务分割后得到的多个图像处理子任务;
S2,按照预设方式处理所述多个图像处理子任务;
S3,将所述图像处理任务的处理结果发送至所述主GPU。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 多GPU通信的方法及装置、存储介质、电子装置
- 通信系统中的电子装置和通信方法、计算机可读存储介质