用于处理GPU任务的方法、设备和计算机可读介质技术

技术编号:21714047 阅读:22 留言:0更新日期:2019-07-27 19:07
本公开实施例涉及用于处理GPU任务的方法、设备和计算机可读介质。在客户端侧实施的用于处理GPU任务的方法包括:接收来自应用的针对GPU任务的请求;确定请求是否涉及GPU任务的执行状态的查询;以及响应于请求涉及查询,向应用提供针对查询的肯定应答,而不向执行GPU任务的机器转发请求。相应地,在服务器侧实施的应用处理GPU任务的方法包括:接收来自机器的针对GPU任务的请求,该请求与GPU任务的执行状态的查询无关;以及执行请求所涉及的操作,包括:确定请求的处理是否依赖于在先请求的处理;以及响应于请求的处理依赖于在先请求的处理,暂停请求的处理直到在先请求的处理完成为止。由此降低同步时延,并减少不必要的网络传送,从而降低网络负荷。

Methods, devices and computer-readable media for GPU tasks

【技术实现步骤摘要】
用于处理GPU任务的方法、设备和计算机可读介质
本公开的实施例涉及计算机领域,并且更具体地涉及用于处理图形处理器(GPU)任务的方法、设备和计算机可读介质。
技术介绍
GPU由于其高性能而被广泛地使用,并被部署为诸如机器学习和深度学习之类的许多应用的加速器。由于GPU的价格非常高,如果用户只能以孤立的方式使用本地的GPU资源,则GPU的总体利用率将非常低,并且成本也将非常高。在这种情况下,GPU即服务(GPUasaservice,简称为GPUaaS)应运而生。GPUaaS是指通过构建客户端-服务器模型,将GPU功能作为一种服务提供,由此改善上述的总体利用率并降低成本。然而,在GPUaaS架构中GPU执行的功能效率与在具有本地GPU的设备中相比差别很大,因为不同的功能具有不同的行为,而对于某些功能而言在GPUaaS架构中GPU执行的时延可能被增大。因此,期望提供GPUaaS架构中的改进方案来进一步改善其功能效率。
技术实现思路
根据本公开的示例实施例,提供了GPUaaS架构中用于处理GPU任务的方案。在本公开的第一方面中,提供了一种用于处理GPU任务的方法。该方法包括:接收来自应用的针对GPU任务的请求;确定所述请求是否涉及所述GPU任务的执行状态的查询;以及响应于所述请求涉及所述查询,向所述应用提供针对所述查询的肯定应答,而不向执行所述GPU任务的机器转发所述请求。在本公开的第二方面中,提供了一种用于处理GPU任务的方法。该方法包括:接收来自机器的针对GPU任务的请求,所述请求与所述GPU任务的执行状态的查询无关;以及执行所述请求所涉及的操作,包括:确定所述请求的处理是否依赖于在先请求的处理;以及响应于所述请求的处理依赖于所述在先请求的处理,暂停所述请求的处理直到所述在先请求的处理完成为止。在本公开的第三方面中,提供了一种电子设备。该电子设备包括:处理单元;以及存储器,所述存储器存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:接收来自应用的针对GPU任务的请求;确定所述请求是否涉及所述GPU任务的执行状态的查询;以及响应于所述请求涉及所述查询,向所述应用提供针对所述查询的肯定应答,而不向执行所述GPU任务的机器转发所述请求。在本公开的第四方面中,提供了一种电子设备。该电子设备包括:处理单元;以及存储器,所述存储器存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:接收来自机器的针对GPU任务的请求,所述请求与所述GPU任务的执行状态的查询无关;以及执行所述请求所涉及的操作,包括:确定所述请求的处理是否依赖于在先请求的处理;以及响应于所述请求的处理依赖于所述在先请求的处理,暂停所述请求的处理直到所述在先请求的处理完成为止。在本公开的第五方面中,提供了一种计算机可读介质。该计算机可读介质上存储有计算机程序,所述程序被处理器执行时实现根据本公开的第一方面所述的方法。在本公开的第六方面中,提供了一种计算机可读介质。该计算机可读介质上存储有计算机程序,所述程序被处理器执行时实现根据本公开的第二方面所述的方法。应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。附图说明结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了本公开实施例可以在其中实施的示例GPUaaS架构的示意图;图2示出了根据本公开实施例的在客户端侧实施的用于处理GPU任务的方法的流程图;图3示出了根据本公开另一实施例的在客户端侧实施的用于处理GPU任务的方法的流程图;图4示出了根据本公开实施例的在服务器侧实施的用于处理GPU任务的方法的流程图;以及图5示出了可以实施本公开实施例的电子设备的框图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。在本公开的实施例的描述中,术语“机器”或“主机”可以理解为具有处理器和存储器的任意电子设备。术语“机器”或“主机”可以指代客户端或终端设备,也可以指代服务器设备。在本文中,为便于描述,“机器”和“主机”可以互换使用。如前面提及的,GPUaaS通过构建客户端-服务器模型的方式将GPU功能作为一种服务提供。下面结合图1对此进行具体描述。图1示出了本公开实施例可以在其中实施的示例GPUaaS架构100的示意图。如图1所示,架构100包括具有GPU接口的一个或多个第一主机110、网络120和具有GPU的第二主机130。第一主机110不具有GPU而只有可以请求GPU服务的GPU接口,而第二主机130可以提供GPU服务,即,处理GPU任务,例如执行GPU计算。网络120可以是本领域已知或未来开发的任意计算机网络,例如互联网、局域网、城域网、内联网等等。在架构100中,第一主机110可以通过网络120向第二主机130发送处理GPU任务的请求(如图1中的140所示)以及从第二主机130接收GPU任务的处理结果(如图1中的142所示)。在架构100中,第一主机100可以被视为客户端,第二主机130可以被视为服务器。在本公开的实施例中,该客户端-服务器模型可借助于远程过程调用(RPC)协议或类似协议来执行上述交互过程。在客户端和服务器之间需要建立RPC信道,以用于传送处理GPU任务的请求或GPU任务的处理结果,例如以GPU命令列表的形式。其中每个命令代表相应的GPU功能,例如统一计算设备架构(CUDA)的应用程序编程接口(API)调用,诸如memcpyH2D、runGPUfunction、memcpyD2H等等。然而,本专利技术人在针对诸如TensorFlow、Keras和Theano的主流GPU应用/框架的研究中发现,当前这种命令驱动的方式存在如下的问题:与具有本地GPU的设备中相比,在诸如架构100的GPUaaS架构中GPU执行的性能差别很大。本专利技术人注意到,这是因为不同的GPU应用具有不同的行为,例如同步模式、轮询模式、中断模式等等,而对于某些GPU应用而言在GPUaaS架构中执行的时延会增大,并且在网络条件差的情况下,这种时延将不可承受。鉴于此,本公开实施例的基本构思就在于,代替上述命令驱动的方式,采用数据驱动的方式来实现GPUaaS架构中对GPU任务的处理。通常,在命令驱动的方案中,来自应用的GPU命令经由RPC信道都被传送到具有GPU功能的机器,并在该机器处得以执行。而在本公开实施例的数据驱动的方案中,跟踪数据(即任务)执行的流水线,并且仅在必要时进行本文档来自技高网
...

【技术保护点】
1.一种用于处理图形处理器(GPU)任务的方法,包括:接收来自应用的针对GPU任务的请求;确定所述请求是否涉及所述GPU任务的执行状态的查询;以及响应于所述请求涉及所述查询,向所述应用提供针对所述查询的肯定应答,而不向执行所述GPU任务的机器转发所述请求。

【技术特征摘要】
1.一种用于处理图形处理器(GPU)任务的方法,包括:接收来自应用的针对GPU任务的请求;确定所述请求是否涉及所述GPU任务的执行状态的查询;以及响应于所述请求涉及所述查询,向所述应用提供针对所述查询的肯定应答,而不向执行所述GPU任务的机器转发所述请求。2.根据权利要求1所述的方法,还包括:响应于所述请求涉及所述GPU任务的执行,向所述机器转发所述请求;以及向所述应用提供针对所述执行的肯定应答。3.根据权利要求1所述的方法,还包括:响应于所述请求涉及所述GPU任务的执行结果的获取,向所述机器转发所述请求;从所述机器接收针对所述GPU任务的执行结果;以及将所述执行结果转发给所述应用。4.根据权利要求1所述的方法,其中所述请求涉及以下至少一项:同步模式、轮询模式、中断模式。5.一种用于处理图形处理器(GPU)任务的方法,包括:接收来自机器的针对GPU任务的请求,所述请求与所述GPU任务的执行状态的查询无关;以及执行所述请求所涉及的操作,包括:确定所述请求的处理是否依赖于在先请求的处理;以及响应于所述请求的处理依赖于所述在先请求的处理,暂停所述请求的处理直到所述在先请求的处理完成为止。6.根据权利要求5所述的方法,其中执行所述操作还包括:响应于所述请求涉及所述GPU任务的执行,执行所述GPU任务,以得到针对所述GPU任务的执行结果。7.根据权利要求5所述的方法,其中执行所述操作还包括:响应于所述请求涉及所述GPU任务的执行结果的获取,将所述执行结果发送给所述机器。8.根据权利要求5所述的方法,其中所述请求涉及以下至少一项:同步模式、轮询模式、中断模式。9.一种电子设备,包括:处理单元;以及存储器,所述存储器存储有指令,所述指令在被所述处理单元执行时使得所述电子设备:接收来自应用的针对图形处理器(GPU)任务的请求;确定所述请求是否涉及所述GPU任务的执行状态的查询;以及响应于所述请求涉及所述查询,向所述应用提供针对所述查询的肯定应答,而不向执行所述GPU任务的机...

【专利技术属性】
技术研发人员:崔嵬王鲲赵军平
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:美国,US

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

1