掌桥专利:专业的专利平台
掌桥专利
首页

【技术领域】

本发明涉及异构计算领域,尤其涉及一种云端异构计算方法及设备

【背景技术】

异构计算是一种高效的并行和分布式计算方式,能协调的使用性能、结构各异的机器以满足不同的计算需求,并使代码或代码段能以获取最大总体性能方式来执行。异构计算可以由能同时支持simd方式和mimd方式的单个独立计算机来完成计算任务,也可以由高速网络互连的一组独立计算机来完成计算任务。

当前的异构计算方案中,常见的异构实现方式包括:CPU+GPU、CPU+FPGA和CPU+ASIC等。这几种常见的异构实现方式均是在本地设备完成全部异构计算。但是,随着互联网的爆炸式发展和信息化的普及,近几年兴起了许多领域,如机器学习、深度学习、人工智能、工业仿真等。这几种领域对计算性能的需求极高,远超过了传统CPU处理器的计算性能阈值。因此,出现了诸多如并行度不高、带宽不够、时延高等问题。现有技术中,解决上述问题的常见方法为:使用性能更好的处理器或者使用多个处理器进行计算。但是上述方法也存在着弊端,比如对硬件设备要求过高,从而增加成本,又或者是功耗增加,降低处理器寿命等。

【发明内容】

本发明实施例提供了一种云端异构计算方法及设备,能够降低对本地设备的性能要求进而降低本地设备的成本。

第一方面,本发明实施例提供了一种云端异构计算方法,包括:

本地设备获取当前业务应用的任务数据以及与所述当前业务应用关联的用户数据;

所述本地设备根据所述任务数据和所述用户数据,确定待执行计算任务;

所述本地设备根据本地硬件信息以及网络资源信息,将所述待执行计算任务划分为本地计算任务及云端计算任务;

所述本地设备基于异构运算执行所述本地计算任务,并将所述云端计算任务发送至云端处理设备,以由所述云端处理设备基于异构运算执行所述云端计算任务;

所述本地设备获取所述云端处理设备发送的对所述云端计算任务的执行结果。

上述方案中,通过本地设备和云端处理设备分别承担一部分异构运算,由此能够降低本地设备的计算处理负荷,达到优化系统资源利用率,降低对本地设备的性能要求。

其中一种可能的实现方式中,本地设备获取与所述当前业务应用关联的用户数据,包括:

所述本地设备从所述云端处理设备获取与所述当前业务应用关联的用户数据,其中,所述云端处理设备设置有张量数据库,所述张量数据库中存储有与所述当前业务应用关联的各类数据。

其中一种可能的实现方式中,所述用户数据包括:用户执行当前业务应用的习惯数据。

其中一种可能的实现方式中,所述待执行计算任务包括多个子任务;所述方法还包括:所述本地设备确定所述多个子任务的优先级;

所述本地设备根据本地硬件信息以及网络资源信息,将所述待执行计算任务划分为本地计算任务及云端计算任务,包括:

所述本地设备根据本地硬件信息、网络资源信息以及所述多个子任务的优先级,将所述多个子任务划分为本地计算任务及云端计算任务。

其中一种可能的实现方式中,所述本地硬件信息包括:

本地设备异构计算能力信息;本地设备最大负荷处理能力信息;

所述网络资源信息包括:网络通信质量信息;云端处理设备资源占用信息。

其中一种可能的实现方式中,还包括:

所述云端处理设备获取用户执行当前业务应用时的操作信息;

并在所述云端处理设备显示所述操作信息。

其中一种可能的实现方式中,所述本地设备将所述云端计算任务发送至云端处理设备,以及获取所述云端处理设备发送的对所述云端计算任务的执行结果,包括:

所述本地设备基于5G通信技术将所述云端计算任务发送至云端处理设备,以及获取所述云端处理设备发送的对所述云端计算任务的执行结果。

第二方面,本发明实施例提供一种云端异构计算设备,包括:

获取模块,用于当前业务应用的任务数据以及与所述当前业务应用关联的用户数据;

处理模块,用于根据所述任务数据和所述用户数据,确定待执行计算任务以及根据本地硬件信息以及网络资源信息,将所述待执行计算任务划分为本地计算任务及云端计算任务;

所述处理模块,还用于执行所述本地计算任务;

发送模块,用于将所述云端计算任务发送至云端处理设备;

所述获取模块,还用于获取所述云端处理设备发送的对所述云端计算任务的执行结果;

其中,发送模块可以基于5G通信技术将所述云端计算任务发送至云端处理设备;

所述获取模块可以基于5G通信技术获取所述云端处理设备发送的对所述云端计算任务的执行结果。

第三方面,本发明实施例提供一种云端异构计算设备,包括:

至少一个处理器;以及

与所述处理器通信连接的至少一个存储器,其中:

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。

应当理解的是,本发明实施例的第二~第四方面与本发明实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种云端异构计算方法的流程图;

图2为本发明实施例提供的一种云端异构计算设备的结构图;

图3为本发明实施例提供的一种电子设备的结构示意图。

【具体实施方式】

为了更好的理解本说明书的技术方案,下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。

当前的异构计算通常基于本地设备的处理部件来完成,对本地设备的硬件要求相对比较高,由此也可能会使硬件的功耗较高。为了解决上述问题,本发明实施例将云端异构计算与本地异构计算相结合,以在异构运算场景中降低对本地设备的硬件要求。

图1为本发明实施例提供的一种云端异构计算方法的流程图,如图1所示,上述云端异构计算方法可以包括:

步骤101,本地设备获取当前业务应用的任务数据以及与当前业务应用关联的用户数据。在一些实施例中,业务应用可以是基于本地设备或者与本地设备相连的设备上的一些应用程序。任务数据可以为运行当前业务应用需要处理的计算数据。例如当前业务应用为导航应用,当用户选择了导航目的地后,计算前往目的地的路线时的运算数据即为任务数据。

在一些实施例中,本地设备可以从云端处理设备中获取用户数据。具体的,可以在云端处理设备中,设置一个张量数据库,张量数据库中存储有与当前业务应用关联的各类数据。本地设备可以从张量数据库中的各类数据中,获取与当前业务应用关联的用户数据。

在一些实施例中,用户数据可以包括用户执行当前业务应用的习惯数据。习惯数据用于获得更加符合该用户习惯的计算结果。习惯数据可以为该用户执行当前业务应用时的习惯数据,也可以为与该用户相似的一个群体在执行当前业务应用时的习惯数据。通过获取习惯数据可以使计算结果更接近该用户的期望结果。

步骤102,本地设备根据任务数据和用户数据,确定待执行计算任务。

其中,用户数据用来确定当前任务的达成方式。根据用户数据的特点,确定用户数据的习惯数据,从而决定当前任务具体如何达成。在一些实施例中,当前任务可以为导航任务。确定带执行计算任务例如可以为:先获取用户的年龄数据,之后从云端处理设备的张量数据库中,搜索与用户年龄数据接近的用户群体的开车习惯数据。云端处理设备将搜索到的开车习惯数据发送给本地设备。本地设备根据开车习惯数据确定如何为当前导航任务规划路线。

在一些实施例中,还可以从云端处理设备的张量数据库中,搜索该用户的历史驾驶数据,根据该用户的历史驾驶数据的特征,确定待执行计算任务。例如,当前任务为导航任务,当用户确定了目的地后,本地设备从云端处理设备的张量数据库中获取该用户的历史驾驶数据。从历史驾驶数据中,确定该用户的驾驶习惯数据,例如该用户喜欢走高速公路,又或者该用户喜欢避开收费站等。根据上述驾驶习惯数据,为用户提供多条符合该用户开车习惯的多条导航路线。

在一些实施例中,待执行计算任务可以包括多个子任务。所以,本地设备还可以确定多个子任务的优先级。将待执行计算任务划分为多个子任务可以理解为将计算任务划分为几个具体计算步骤。将一些重要步骤的优先级划分的更高,可以有效的提高执行计算任务时的计算效率。

步骤103,本地设备根据本地硬件信息以及网络资源信息,将待执行计算任务划分为本地计算任务及云端计算任务。其中,本地硬件信息具体可以是本地设备异构计算能力信息与本地设备最大负荷处理能力信息。网络资源信息具体可以是网络通信质量信息和云端处理设备资源占用信息。通过获取本地设备的本地硬件信息,可以为本地设备划分更合理的任务,使本地计算任务的执行更快,从而提高本地设备的硬件利用率。而获取网络资源信息可以为待执行计算任务的执行提供辅助,当前网络信息较好时,可以将更多的任务划分为云端计算任务并交由云端处理设备来执行。本地设备的本地计算任务就会相对降低,进而提高本地设备的计算负荷,提高待执行计算任务的计算效率。

在一些实施例中,划分本地计算任务及云端计算任务可以为:本地设备根据本地设备的异构计算能力以及本地设备的处理能力,从待执行计算任务中,将一部分任务划分为本地任务。所述本地任务的任务量接近本地设备的最大处理数量,并将剩余的任务划分为云端计算任务。例如,可以给本地设备划分最大处理数量的80%的任务作为本地任务,将其余任务划分为云端计算任务交由云端处理设备进行计算处理。

在一些实施例中,还可以根据算法对待执行任务进行划分。例如,本地设备对于simd算法具有更高的计算效率,则可以将更多的simd算法的任务划分为本地计算任务。又或者云端处理设备对与mimd算法具有更高的计算效率,则可以将更多的mimd算法的任务划分为云端计算任务。

在一些实施例中,还可以根据网络资源进行划分。例如,当前的网络通信质量比较好时,可以将更多的任务划分为云端计算任务。又或者云端设备处理资源占用较低,云端处理设备比较空闲时,可以将更多的任务划分为云端计算任务。

步骤104,本地设备基于异构运算执行本地计算任务,并将云端计算任务发送至云端处理设备。在一些实施例中,将云端计算任务发送至云端处理设备时,可以采用无线通信技术进行数据传输。在一个具体示例中,可以采用5G通信技术将云端计算任务发送至云端处理设备。由于5G通信技术具有带宽高、传输速率快、延迟低等特点。因此,采用5G通信技术进行数据传输可以提高任务的传输效率。

步骤105,云端处理设备基于异构运算执行云端计算任务并将执行结果发送至本地设备。在一些实施例中,云端处理设备将云端计算任务的执行结果发送至本地设备时,可以采用无线通信技术进行数据传输。在一个具体示例中,可以采用5G通信技术将云端计算任务的执行结果发送至本地设备。

步骤106,本地设备获取云端处理设备发送的对云端计算任务的执行结果。其中,本地设备将云端计算任务的执行结果与本地任务执行结果进行总结,并将待执行计算任务的计算结果呈献给用户。例如,当前业务应用为导航应用时,对应的待执行计算任务为到达目的地的可选路线。当完成所有待执行计算任务时,将几条符合用户要求的备选路线呈现给用户供用户选择。

在一些实施例中,云端处理设备还可以获取用户执行当前业务应用时的操作信息并加以显示。其中,操作信息可以为用户手动更改导航路线的操作信息、用户在当前导航路线中的定位信息或者用户当前的行车状况信息。

在一些实施例中,操作信息还可以是用户当前的驾驶状态信息,例如用户是否疲劳驾驶或者双手离开方向盘等。具体的,云端处理设备可以通过本地设备获取用户当前的驾驶状态信息。本地设备可以通过设置摄像头或通过其它方式,获得具体的驾驶状态信息。

通过获取用户执行当前业务应用时的操作信息,可以增加云端处理设备的张量数据库中,用户数据的丰富度,使张量数据库更加完善。进一步,云端处理设备也可以观测到用户当前的驾驶状态,保证用户的交通安全。

对应上述云端异构计算方法,本发明实施例提供了一种云端异构计算系统,如图2所示,云端异构计算系统可以包括云端处理设备和本地设备。其中本地设备中可以包括:获取模块21、处理模块22和发送模块23。

获取模块21,用于当前业务应用的任务数据以及与所述当前业务应用关联的用户数据;

处理模块22,用于根据任务数据和用户数据,确定待执行计算任务以及根据本地硬件信息以及网络资源信息,将待执行计算任务划分为本地计算任务及云端计算任务;

可选的,处理模块22还用于执行所述本地计算任务;

发送模块23,用于将云端计算任务发送至云端处理设备;

可选的,获取模块21还用于获取云端处理设备发送的对云端计算任务的执行结果;

可选的,发送模块23可以基于5G通信技术将云端计算任务发送至云端处理设备;

可选的,获取模块21可以基于5G通信技术获取云端处理设备发送的对所述云端计算任务的执行结果。

图2所示实施例提供的云端异构计算系统可用于执行本说明书图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。

图3为本说明书电子设备一个实施例的结构示意图,如图3所示,上述电子设备可以包括至少一个处理器;以及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图1所示实施例提供的云端异构计算方法。

图3示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图3显示的电子设备仅仅是一个示例,不应对本说明书实施例的功能和使用范围带来任何限制。

如图3所示,电子设备以通用计算设备的形式表现。电子设备的组件可以包括但不限于:一个或者多个处理器310,存储器330,连接不同系统组件(包括存储器330和处理单元310)的通信总线340。

通信总线340表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。

电子设备典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器330可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器330可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块的程序/实用工具,可以存储在存储器330中,这样的程序模块包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书所描述的实施例中的功能和/或方法。

处理器310通过运行存储在存储器330中的程序,从而执行各种功能应用以及数据处理,例如实现本说明书图1所示实施例提供的云端异构计算方法。

本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行本说明书图1所示实施例提供的云端异构计算方法。

上述非暂态计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable ProgrammableRead Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。

取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

需要说明的是,本说明书实施例中所涉及的终端可以包括但不限于个人计算机(Personal Computer;以下简称:PC)、个人数字助理(Personal Digital Assistant;以下简称:PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3播放器、MP4播放器等。

在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

相关技术
  • 一种云端异构计算方法及设备
  • 一种异构密码卡并行计算方法、装置及设备
技术分类

06120112376710