一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

任务分配方法、任务处理方法及处理架构与流程

2023-01-05 01:57:12 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,特别涉及一种任务分配方法、任务处理方法及处理架构。


背景技术:

2.计算机支持以精确的方式执行任务,即对于某一通用程序,编译器将其转换为等价的底层执行代码,处理器精确的按照代码指定的过程执行处理操作。在这种方式下,计算机的确定性成为了计算机可控制性的基础,使得计算机可以完全按照人的意愿解决问题。然而,随着近似计算技术的发展,计算机支持对专用程序的处理,其以适当的计算精度或执行过程的确定性作为牺牲,可以获得节约计算资源,提高处理速度的效果。但是,在相关技术中,通用程序通常由通用处理器进行处理,而专用程序通常由专用处理器进行处理,在任务分配时缺乏对通用处理器与专用处理器的负载均衡的考虑。


技术实现要素:

3.本公开提供一种任务分配方法、任务处理方法及处理架构、电子设备、计算机可读存储介质。
4.第一方面,本公开提供了一种任务分配方法,应用于对处理架构的待处理任务进行分配,且所述处理架构的编译方式包括通用编译方式和专用编译方式,所述处理架构的处理方式包括通用处理方式和专用处理方式,该任务分配方法包括:针对多个待处理任务,确定各个所述待处理任务采用所述通用处理方式对应的第一代价和采用所述专用处理方式对应的第二代价,其中,采用所述通用处理方式的待处理任务由所述通用编译方式进行编译处理,采用所述专用处理方式的待处理任务由所述专用编译方式进行编译处理;根据各个所述待处理任务对应的第一代价和第二代价、所述通用处理方式的第一可用算力、以及所述专用处理方式的第二可用算力,构建目标函数和约束条件;求解满足所述约束条件的目标函数的目标解,并根据所述目标解确定多个所述待处理任务的目标分配方案;其中,所述目标分配方案用于指示多个所述待处理任务的编译方式和/或编译顺序。
5.第二方面,本公开提供了一种任务处理方法,应用于处理架构,且所述处理架构的编译方式包括通用编译方式和专用编译方式,所述处理架构的处理方式包括通用处理方式和专用处理方式,该任务处理方法包括:获取多个待处理任务对应的目标分配方案,所述目标分配方案用于指示多个所述待处理任务的编译方式和/或编译顺序;根据所述目标分配方案,对各个所述待处理任务采用对应的编译方式和/或编译顺序进行编译处理,获得至少一个所述待处理任务的编译结果;基于与所述编译方式对应的处理方式对各个所述待处理任务的编译结果进行处理,获得多个所述待处理任务的处理结果;其中,所述编译结果包括采用所述通用编译方式进行编译处理的通用编译结果,以及采用所述专用编译方式进行编译处理的专用编译结果,且所述通用编译结果基于所述通用处理方式进行处理,所述专用编译结果基于所述专用处理方式进行处理。
6.第三方面,本公开提供了一种处理架构,该处理架构包括:任务分配模块,用于根据本公开实施例任一项所述的任务分配方法获得多个待处理任务的目标分配方案;编译系统,用于根据所述目标分配方案,采用对应的编译方式对多个所述待处理任务进行编译处理,获得编译结果;处理系统,用于采用与所述编译方式对应的处理方式对所述编译结果进行处理,获得多个所述待处理任务的处理结果;其中,所述编译方式包括通用编译方式和专用编译方式,所述处理方式包括通用处理方式和专用处理方式,且所述通用处理方式用于对采用所述通用编译方式获得的编译结果进行处理,所述专用处理方式用于对采用所述专用编译方式获得的编译结果进行处理。
7.第四方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的任务分配方法或者任务处理方法。
8.第五方面,本公开提供了一种电子设备,该电子设备包括:多个处理核;以及,片上网络,被配置为交互所述多个处理核间的数据和外部数据;其中,一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行上述的任务分配方法或者任务处理方法。
9.第六方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的任务分配方法或者任务处理方法。
10.本公开所提供的实施例,根据多个待处理任务在分别采用通用处理方式和专用处理方式时所需的代价、两种处理方式的可用算力等信息,可以构建出目标函数以及约束条件,通过求解满足约束条件的目标函数,即可获得目标解,进而能够根据目标解确定多个待处理任务的目标分配方案。在此过程中,考虑到了通用处理方式和专用处理方式的可用算力和各项任务采用不同处理方式所需代价,在兼顾算力和代价的同时,为各个待处理任务选取了合适的编译方式和处理方式,从而可以更加合理地利用两种不同处理方式的处理资源,且还能降低任务执行总时长。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
13.图1为相关技术提供的一种处理架构的示意图;
14.图2为本公开实施例提供的一种任务分配方法的流程图;
15.图3为本公开实施例提供的一种众核架构的工作过程示意图;
16.图4为本公开实施例提供的一种逼近子的逼近过程示意图;
17.图5为本公开实施例提供的一种逼近子的逼近过程示意图;
18.图6为本公开实施例提供的一种代价精度的示意图;
19.图7为本公开实施例提供的一种任务处理方法的流程图;
20.图8为本公开实施例提供的一种任务处理方法的工作过程示意图;
21.图9为本公开实施例提供的一种处理架构的框图;
22.图10为本公开实施例提供的一种任务分配装置的框图;
23.图11为本公开实施例提供的一种电子设备的框图;
24.图12为本公开实施例提供的一种电子设备的框图。
具体实施方式
25.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
26.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
27.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
28.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
29.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
30.在相关技术中,处理架构中虽然可以同时设置通用处理器和专用处理器,但是,通常情况下,仍然由通用处理器处理通用程序,由专用处理器处理专用程序,不存在交叉使用处理器的情况(即由通用处理器处理专用程序或者由专用处理器处理通用程序)。当通用处理器与专用处理器的负载不均衡时,容易导致处理时间较长,而且在该处理过程中,通用处理器和专用处理器中的一者可能处于空闲状态,从而导致处理资源的利用率不高。
31.图1为相关技术提供的一种处理架构的示意图。参照图1,处理架构100中设置有一个通用处理器110和一个专用处理器120,该处理架构100可利用通用处理器110和专用处理器120处理通用程序和专用程序。
32.如图1所示,针对通用程序,只能通过通用编译方式进行编译处理,并由通用处理器110执行对应的通用编译结果,获得该通用程序的执行结果;类似的,对于专用程序,只能通过专用编译方式进行编译处理,并由专用处理器120执行对应的专用编译结果,获得该专用程序的执行结果。
33.若在某一时间段内,处理架构接收到的多个待处理程序为专用程序,则专用处理器处于高效工作状态,但是通用处理器由于没有匹配的程序(即通用程序)要处理,因而处
于闲置状态,这种任务分配方式使得处理架构中各个处理器的负载不均衡,容易导致任务处理时间较长以及处理资源的利用率较低等问题。
34.根据本公开实施例的任务分配方法,考虑到了通用处理方式和专用处理方式的可用算力和各项任务采用不同处理方式所需代价,在兼顾算力和代价的同时,为各个待处理任务选取了合适的编译方式和处理方式,从而可以更加合理地利用两种不同处理方式的处理资源,同时还能降低任务执行总时长,另外,在任务分配过程中,还考虑到了各个待处理任务的优先级信息和/或执行依赖信息,使得各项待处理任务的编译顺序科学合理,缓解了由于任务优先级、任务执行时的依赖关系等导致无法按照给定的编译方式顺利执行任务的问题。
35.根据本公开实施例的任务分配方法、任务处理方法可以由终端设备或服务器等电子设备执行,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等,所述方法可以通过处理器调用存储器中存储的计算机可读程序指令的方式来实现。服务器可以是独立的物理服务器、由多个服务器组成的服务器集群或者能够进行云计算的云服务器。
36.本公开实施例第一方面提供一种任务分配方法。
37.图2为本公开实施例提供的一种任务分配方法的流程图,可以应用于对处理架构的待处理任务进行分配,且处理架构的编译方式包括通用编译方式和专用编译方式,处理架构的处理方式包括通用处理方式和专用处理方式。参照图2,该任务分配方法包括:
38.在步骤s21中,针对多个待处理任务,确定各个待处理任务采用通用处理方式对应的第一代价和采用专用处理方式对应的第二代价。
39.其中,采用通用处理方式的待处理任务由通用编译方式进行编译处理,采用专用处理方式的待处理任务由专用编译方式进行编译处理。
40.在步骤s22中,根据各个待处理任务对应的第一代价和第二代价、通用处理方式的第一可用算力、以及专用处理方式的第二可用算力,构建目标函数和约束条件。
41.在步骤s23中,求解满足约束条件的目标函数的目标解,并根据目标解确定多个待处理任务的目标分配方案。
42.其中,目标分配方案用于指示多个待处理任务的编译方式和/或编译顺序。
43.根据本公开的实施例,能够以兼顾算力和代价的方式,为各个待处理任务选取合适的编译方式和处理方式,从而可以更加合理地利用两种不同处理方式的处理资源,且还能降低任务执行总时长,同时,由于在任务分配过程中,还考虑到任务的属性信息,结合各个待处理任务的优先级信息和/或执行依赖信息进行编译处理,因此使得各项待处理任务的编译顺序科学合理,缓解了由于任务优先级、任务执行时的依赖关系等导致无法按照给定的编译方式顺利执行任务的问题。
44.在一些可选的实现方式中,待处理任务包括通用任务和专用任务,其中,通用任务即为通用类型的任务,通常对应通用程序,专用任务是指某些专用领域的任务(例如,神经网络领域的任务),通常对应专用程序。而且,通常情况下,专用程序只能在专用处理器中运行,因而专用任务只能由专用处理器执行。
45.示例性地,通用处理器包括通用处理组件,专用处理器包括专用处理组件。其中,
通用处理组件可以处理任何程序,而专用处理组件可以更高效的处理专用程序。例如,神经网络加速硬件作为一种专用处理组件,可以高效地处理神经网络任务,但对其他程序的处理能力较低甚至无法进行处理。
46.在本公开实施例中,无论待处理任务为通用任务还是专用任务,均可以采用通用编译方式和专用编译方式中的任意一种方式进行编译处理,并采用与编译方式对应的处理方式对编译结果进行处理。换言之,在本技术中,通用任务既可以由通用处理器执行,也可以由专用处理器执行,类似的,专用任务既可以由专用处理器执行,也可以由通用处理器执行。
47.在一些可选的实现方式中,处理架构包括编译系统和处理系统,其中,编译系统支持通用编译方式和专用编译方式,处理系统支持通用处理方式和专用处理方式。换言之,针对通用程序,该处理架构的编译系统既可以采用通用编译方式进行编译处理,也可以采用专用编译方式进行处理,类似的,针对专用程序,编译系统仍然可以采用专用编译方式进行编译处理,也可以采用通用编译方式进行编译处理。但是,经过通用编译方式获得的通用编译结果必须采用通用处理方式进行处理,采用专用编译方式获得的专用编译结果也必须采用专用处理方式进行处理。
48.图3为本公开实施例提供的一种众核架构的工作过程示意图。参照图3,处理架构300包括通用编译器311、通用处理器312、专用编译器321和专用处理器322,其中,通用编译器311支持通用编译方式,专用编译器321支持专用编译方式,通用处理器312支持通用处理方式,专用处理器322支持专用处理方式。
49.如图3所述,当处理架构300接收到的待处理任务对应通用程序时,可以由通用编译器311对该通用程序采用通用编译方式进行编译处理(对应路径1-1),获得通用编译结果,并将通用编译结果传输给通用处理器312进行处理(对应路径1-2),从而获得该通用程序的处理结果;另外,针对该通用程序,还可以由专用编译器321对该通用程序采用专用编译方式进行编译处理(对应路径2-1),获得专用编译结果,并将专用编译结果传输给专用处理器322进行处理(对应路径2-2),从而获得该通用程序的处理结果。
50.当处理架构接收到的待处理任务对应专用程序时,可以由通用编译器311对该专用程序采用通用编译方式进行编译处理(对应路径3-1),获得通用编译结果,并将通用编译结果传输给通用处理器312进行处理(对应路径3-2),从而获得该专用程序的处理结果;另外,针对该专用程序,也可以由专用编译器321对该专用程序采用专用编译方式进行编译处理(对应路径4-1),获得专用编译结果,并将专用编译结果传输给专用处理器322进行处理(对应路径4-2),从而获得该专用程序的处理结果。
51.需要说明的是,在采用通用编译方式时,无论待处理任务为通用任务还是专用任务,其均是将待处理任务对应的程序代码精确地转换为等价的底层执行代码,并通过通用处理方式执行该等价的底层执行代码,在此过程中未引入误差和精度损失。因此,在这种情况下,对于专用任务,其是以精确的方式进行编译和处理,较采用专用编译方式和专用处理方式执行该专用任务而言,效率可能有所降低。
52.在采用专用编译方式对专用任务进行编译处理时,由于专用任务与编译方式具有较高的适配性,因此,编译效果和编译效率往往较高。但是,在采用专用编译方式对通用任务进行编译处理时,其实质为采用专用程序逼近该通用任务的通用程序,获得的底层执行
代码为近似执行代码,因此,采用专用处理方式执行该近似执行代码,相当于近似处理该通用任务。在此过程中引入了精度损失,只不过该精度损失应处于预设的容许范围内。
53.还需要说明的是,正是由于可以针对任意类型的待处理任务采用通用编译方式和专用编译方式中的任意一种进行编译处理,因此,在执行任务时具备交叉使用处理方式的可能性,即:除了可以对通用程序采用通用编译方式进行编译,并采用通用处理方式执行编译结果之外,还可以对通用程序采用专用编译方式进行编译,并采用专用处理方式对编译结果进行处理,类似的,除了可以对专用程序采用专用编译方式进行编译,并采用专用处理方式执行编译结果之外,也可以对专用程序采用通过编译方式进行编译,并采用通过处理方式对编译结果进行处理。基于这种处理方式,提高了在编译过程中对任务进行分配的灵活性和合理性,从而能够提高处理器的负载均衡能力以及处理资源的利用率。
54.在一些可选的实现方式中,在步骤s21中,第一代价为采用通用处理方式处理待处理任务时所需的代价,第二代价为采用专用处理方式处理待处理任务时所需的代价,其中,代价包括为执行对应任务所耗费的各类资源(计算资源、存储资源、通信资源等),其与待处理任务对应的程序的规模、占用的资源类型、资源数量等信息相关。由于待处理任务包括通用任务和专用任务两种类型,使得第一代价可能存在如下情况:对通用任务进行通用处理的代价,以及对专用任务进行通用处理的代价;类似的,第二代价可能存在如下情况:对通用任务进行专用处理的代价,以及对专用任务进行专用处理的代价。
55.在一些可选的实现方式中,确定各个待处理任务采用通用处理方式对应的第一代价和采用专用处理方式对应的第二代价,包括:
56.在待处理任务为通用任务的情况下,根据预设的代价算法确定对待处理任务采用通用编译方式进行编译,并采用通用处理方式对通用编译结果进行处理的代价,作为待处理任务的第一代价;
57.在待处理任务为通用任务的情况下,根据待处理任务的临界精度和代价精度关联信息确定待处理任务的第二代价,临界精度表征待处理任务所容许的最低精度要求,代价精度关联信息用于表征在采用专用编译方式编译待处理任务并采用专用处理方式对专用编译结果进行处理的情况下,对应的代价与精度之间的关联关系;
58.在待处理任务为专用任务的情况下,根据代价算法确定对待处理任务采用通用编译方式进行编译,并采用通用处理方式对通用编译结果进行处理的代价,作为待处理任务的第一代价;
59.在待处理任务为专用任务的情况下,根据代价算法确定对待处理任务采用专用编译方式进行编译,并采用专用处理方式对专用编译结果进行处理的代价,作为待处理任务的第二代价。
60.由此可知,在确定第一代价和第二代价过程中,对应到图3所示的处理架构中,路径1-1、1-2所对应的第一代价、路径3-1、3-2所对应的第一代价、以及路径4-1、4-2所对应的第二代价,可以基于代价算法计算获得;对于路径2-1、2-2所对应的第二代价,则需要通过待处理任务的临界精度和代价精度关联信息进行确定。其中,预设的代价算法为用于计算代价的算法,且针对上述不同路径所对应的代价,可以采用相同或不同的代价算法,本公开实施例对此不作限制。
61.在一些可选的实现方式中,临界精度为待处理任务所容许的最低精度要求(或者
最大误差)。在待处理任务为人脸识别任务时,若可接受的精度要求为90%(即最大误差为10%),则临界精度为90%。
62.在一些可选的实现方式中,在待处理任务为通用任务的情况下,根据待处理任务的临界精度和代价精度关联信息确定待处理任务的第二代价,包括:在待处理任务为通用任务的情况下,根据临界精度,采用二分类方法,从预设的多个逼近子中选取待处理任务的目标逼近子,逼近子用于采用专用编译方式以近似逼近的方法编译待处理任务,以便采用专用处理方式对对应的专用编译结果进行处理;根据目标逼近子的代价精度关联信息,确定待处理任务的第二代价。
63.在一些可选的实现方式中,考虑到神经网络和查找表具有近似逼近能力,因此,可以通过神经网络或者查找表等方式实现近似编译(即对通用程序采用专用编译方式进行编译处理)。与之相应的,逼近子包括由输入层、隐藏层、输出层和激活函数构成的神经网络逼近子或者查找表逼近子。其中,神经网络和查找表的近似逼近能力,是指对图灵可终止函数而言,在有限的定义域内,且在给定精度要求的情况下,存在相应的神经网络或者查找表能够在满足精度要求的情况下逼近预设的目标函数(目标函数即待逼近的函数)。通常将具有上述逼近能力的算子成为逼近子。
64.在一些可选的实现方式中,神经网络逼近子包括多层感知机(multilayer perceptron,mlp)逼近子,其由输入层、隐藏层、输出层和激活函数组成,相当于一个分段线性函数。在进行近似逼近时,可以通过调整隐藏层的神经元数量以调整该逼近子对应的分段线性函数的分段数量,还可以通过调整神经网络的参数以调整分段拟合的位置。通过上述调整之后,使得目标函数与逼近子对应函数的拟合度较高,从而符合预设的拟合要求。
65.图4为本公开实施例提供的一种逼近子的逼近过程示意图。参照图4,该逼近过程包括:
66.步骤s41,确定逼近子。
67.示例性地,选取隐藏层具有n1个神经元的mlp逼近子作为初始的逼近子。其中,隐藏层具有n1个神经元的逼近子可以表示具有n1个段数的分段线性函数。而且通常情况下,隐藏层越大(例如,神经元数量越多则隐藏层越大),则其所能达到的逼近精度越高,但是相应的执行代价也越大。因此,可以兼顾逼近精度和代价两者,以得到合适的逼近子。
68.步骤s42,根据目标函数,将逼近子所对应的分段线性函数转换为神经网络的参数,得到神经网络。
69.其中,目标函数即为待逼近的函数。
70.在一些可选的实现方式中,可以通过预设的公式执行将分段线性函数转换为神经网络参数的操作。本公开实施例对转换方式不作限制。
71.步骤s43,对该神经网络进行训练,以使提高其逼近精度。
72.步骤s44,判断神经网络的逼近精度是否达到预设精度。
73.步骤s45,在未达到预设精度的情况下,增加逼近子的隐藏层神经元的数量,并跳转至步骤s42重新执行逼近操作。
74.步骤s46,在达到预设精度的情况下,确定逼近子对应的代价。
75.步骤s47,根据代价判断是否需要减少逼近子的隐藏层神经元的数量。
76.步骤s48,在确定需要的情况下,减少逼近子的隐藏层神经元数量,跳转至步骤s42
重新执行逼近操作。
77.步骤s49,在确定不需要减少逼近子的隐藏层神经元数量的情况下,确定该逼近子为合适的逼近子,结束逼近过程。
78.其中,合适的逼近子可视为目标逼近子。
79.在一些可选的实现方式中,逼近子为查找表逼近子,其相当于一个分段阶梯函数,通过调整查找表的大小可以改变其逼近精度。其中,查找表越大,其逼近精度越高,但是相应的占用的内存也越多,反之亦然。
80.图5为本公开实施例提供的一种逼近子的逼近过程示意图。参照图5,该逼近过程包括:
81.步骤s51,选取逼近子。
82.其中,该逼近子对应一个查找表,且该查找表的大小是既定的,查找表的内容根据后续步骤进行确定。而且,查找表越大,则其所能容纳的数据量越多,则对应的逼近精度也就越高,所占用的存储空间也就越大,反之亦然。
83.步骤s52,将目标函数划分为多个区间,针对各个区间,选取该区间的某一点的函数值作为该区间的目标函数值。
84.步骤s53,将各个区间与目标函数值的对应关系记录在查找表中。
85.在获得查找表之后,还可以进一步通过调整查找表的大小,从而调整该逼近子的逼近精度。
86.步骤s54,根据该查找表和目标函数确定逼近精度,并判断该逼近精度是否达到预设精度。
87.步骤s55,在未达到预设精度的情况下,增大逼近子的查找表,并跳转至步骤s52重新执行逼近操作。
88.步骤s56,在达到预设精度的情况下,确定逼近子对应的代价。
89.步骤s57,根据代价判断是否需要减小逼近子的查找表。
90.步骤s58,在确定需要的情况下,减小逼近子的查找表,跳转至步骤s52重新执行逼近操作。
91.步骤s59,在确定不需要减小逼近子的查找表的情况下,确定该逼近子为合适的逼近子,结束逼近过程。
92.其中,合适的逼近子可视为目标逼近子。
93.综上可知,对于神经网络逼近子而言,其通常需要占用大量的计算资源以及适量的存储资源,但是由于神经网络具有可训练能力,因此,可以通过训练提高其逼近精度。对于查找表逼近子而言,其需要占用大量的存储资源,但是在执行时只需极少的计算量即可,且查找表不可以进行训练,逼近精度的调整灵活性较差。因此,神经网络逼近子和查找表逼近子具有不同的优缺点,在进行逼近处理时,可以针对实际需求、计算资源以及存储资源的情况,综合选择较为合适的逼近子。
94.在一些可选的实现方式中,代价精度关联信息为代价精度(cost-precision,cp)曲线,其表征逼近子的逼近精度与代价之间的关联关系。
95.图6为本公开实施例提供的一种代价精度的示意图。如图6所示,横坐标表示代价,纵坐标表示误差。随着代价的增加,误差整体上表现出降低趋势。考虑到误差与精度之间具
有反相关关系,因此,随着代价的增加,精度在整体上呈现增加趋势。
96.在一些可选的实现方式中,为得到该cp曲线,可以采用穷举法进行绘制。例如,针对mlp逼近子,设置其隐藏层神经元的数量为[2,3,4,5,6,

,100],分别构造并训练一次,然后绘制相应的cp曲线。查找表逼近子的cp曲线绘制过程类似,在此不再展开描述。
[0097]
考虑到神经网络的训练以及多次生成查找表等较为耗时耗力,因此,在一些可选的实现方式中,可以采用二分法,以临界精度为必要条件,绘制cp曲线。基于这种方式绘制的cp曲线可能不是完整的曲线,但是根据已经绘制出的线段(或者点),可以确定出目标逼近子。
[0098]
例如,针对mlp逼近子,且设置其隐藏层神经元的数量为[2,3,4,5,6,

,100]时,可以先选取隐藏层神经元数量为36并确定其对应的代价精度关联关系,当其精度远大于临界精度时,则适当减少隐藏层神经元数量,从而选取隐藏层神经元数量为16并确定其对应的代价精度关联关系;当其精度小于临界精度时,则适当增加隐藏层神经元数量,从而选取隐藏层神经元数量为24并确定其对应的代价精度关联关系,以此类推,直到逼近子的精度“逼近”临界精度,将该逼近子作为目标逼近子,该目标逼近子对应的代价即为第二代价。此时基于二分法的搜索路径为:[32,16,24,

,p],其中,p为目标逼近子的隐藏层的神经元数量(p为介于16和24之间的整数)。通过这种方式,只需执行较少次数的训练过程,即可确定出目标逼近子,效率得到有效提高。
[0099]
在一些可选的实现方式中,在确定待处理任务的第一代价和第二代价之和,即可在步骤s22中,构建相应的目标函数和约束条件。
[0100]
在一些可选的实现方式中,通用处理方式的第一可用算力即为通用处理器的可支配算力,专用处理方式的第二可用算力即为专用处理器的可支配算力。
[0101]
在一些可选的实现方式中,步骤s22包括:针对各个待处理任务,任意选取对应的第一代价或者第二代价作为备选代价;将多个待处理任务的备选代价进行组合,获得多个备选分配方案;根据第一可用算力和第二可用算力,确定各个备选分配方案的通用处理时长和专用处理时长,通用处理时长表征采用通用处理方式对备选分配方案中的第一代价对应的待处理任务进行处理所需的处理时长,专用处理时长表征采用专用处理方式对备选分配方案中的第二代价对应的待处理任务进行处理所需的处理时长;基于各个备选分配方案的通用处理时长和专用处理时长,构建目标函数;最后,根据第一可用算力和第二可用算力,确定约束条件。
[0102]
示例性地,目标函数是关于多个待处理任务的执行总时长的函数,通过求解目标函数得到的目标解,可以使任务总时长最低;约束条件是关于可用算力的条件,通过该约束条件,可以保障执行任务所需的算力低于可用算力(通用处理方式的最高算力低于第一可用算力,且专用处理方式的最高算力低于第二可用算力)。
[0103]
在一些可选的实现方式中,待处理任务对应有属性信息,且待处理任务的属性信息包括任务优先级信息和/或任务执行依赖信息。其中,任务优先级信息用于表征各个待处理任务的处理优先等级,任务执行依赖信息表征各项待处理任务在执行顺序上的依赖性。例如,待处理任务a、b和c中,若待处理任务b的输入数据中包括待处理任务c的执行结果,待处理任务a的输入和输出与待处理任务b、c均无关,则任务执行顺序只能包括:c
→a→
b,b
→c→
a,以及b和c

a同时执行中的一种。
[0104]
在一些可选的实现方式中,在确定约束条件时,可以参考待处理任务的属性信息,以便在减少任务执行总时长的同时,使得各项待处理任务的编译顺序更加科学合理,从而缓解由于任务优先级、任务执行时的依赖关系等导致无法按照给定的编译方式顺利执行任务的问题。与之相应的,步骤s22包括:针对各个待处理任务,任意选取对应的第一代价或者第二代价作为备选代价;将多个待处理任务的备选代价进行组合,获得多个备选分配方案;根据第一可用算力和第二可用算力,确定各个备选分配方案的通用处理时长和专用处理时长,通用处理时长表征采用通用处理方式对备选分配方案中的第一代价对应的待处理任务进行处理所需的处理时长,专用处理时长表征采用专用处理方式对备选分配方案中的第二代价对应的待处理任务进行处理所需的处理时长;基于各个备选分配方案的通用处理时长和专用处理时长,构建目标函数,目标函数是关于多个待处理任务的执行总时长的函数;根据任务优先级信息和/或任务执行依赖信息,确定各个待处理任务的编译顺序要求;根据编译顺序要求,确定约束条件。
[0105]
在一些可选的实现方式中,通用处理时长为备选分配方案中的第一代价之和与第一可用算力的比值,专用处理时长为备选分配方案中的第二代价之和与第二可用算力的比值。
[0106]
示例性地,待处理任务包括a、b、c、d共4项,其中,a和b为通用任务,c和d为专用任务,且a对应的第一代价为cost
a1
,第二代价为cost
a2
,b对应的第一代价为cost
b1
,第二代价为cost
b2
,c对应的第一代价为cost
c1
,第二代价为cost
c2
,d对应的第一代价为cost
d1
,第二代价为cost
d2
。对于a而言,其可以选用cost
a1
、cost
a2
中的任意一者作为其备选代价,其他待处理任务类似。通过将上述4个待处理任务的备选代价进行组合,可以得到16个备选分配方案,包括:cost
a1
,cost
b1
,cost
c1
,cost
d1
;cost
a2
,cost
b1
,cost
c1
,cost
d1


;cost
a2
,cost
b2
,cost
c2
,cost
d2
。其中,“cost
a2
,cost
b1
,cost
c1
,cost
d1”表示对a采用专用处理方式,对b、c和d采用通用处理方式,其他备选分配方案与之类似,此处不再展开描述。
[0107]
假设第一可用算力p1,第二可用算力为p2,则对于备选分配方案cost
a1
,cost
b1
,cost
c1
,cost
d1
,由于其均采用通用处理方式,因此,其通用处理时长为t1_1=(cost
a1
cost
b1
cost
c1
cost
d1
)/p1,专用处理时长t1_2=0;对于备选分配方案cost
a2
,cost
b1
,cost
c1
,cost
d1
,由于b、c和d采用通用处理方式,a采用专用处理方式,因此,其通用处理时长为t2_1=(cost
b1
cost
c1
cost
d1
)/p1,专用处理时长t2_2=(cost
a1
)/p2,
……
,以此类推,对于备选分配方案cost
a2
,cost
b2
,cost
c2
,cost
d2
,由于其均采用专用处理方式,因此,其通用处理时长t16_2=0,专用处理时长为t16_2=(cost
a2
cost
b2
cost
c2
cost
d2
)/p2。
[0108]
然后,构建目标函数f=min(max(ti_1,ti_2)),其中,i表示备选分配方案的序号,ti_1表示第i个备选分配方案对应的通用处理时长,ti_2表示第i个备选分配方案对应的专用处理时长。
[0109]
进一步地,若上述四项待处理任务中,任务优先级排序为c、b、a、d,则构建约束条件q1,且q1表征对c的解析时间应早于对b的解析时间,对b的解析时间应早于对a的解析时间,且对a的解析时间应早于对d的解析时间。
[0110]
另外,若上述四项待处理任务中,任务执行依赖信息为c的执行依赖于a的执行,则构建约束条件q2,且q2表征对a的解析时间早于对c的解析时间。
[0111]
需要说明的是,针对一个目标函数,可以设置一个或多个约束条件(例如,既包括
基于编译顺序要求的约束条件,也包括基于可用算力的约束条件),本公开实施例对此不作限制。
[0112]
在一些可选的实现方式中,在构建完目标函数和约束条件之后,即可对其进行求解。在步骤s23中,求解满足约束条件的目标函数的目标解,包括:根据预设的分配优化算法,求解满足约束条件的目标函数的最优解作为目标解;其中,分配优化算法包括模拟退火算法(simulated annealing,sa)、启发式搜索算法中的至少一种。
[0113]
其中,模拟退火算法是基于monte-carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性,从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在求解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。启发式搜索算法是在状态空间中对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到确定目标。应用到本公开实施例中,即通过模拟退火算法或者启发式搜索算法,求解在满足约束条件的情况下,该目标函数的最优解,并将该最优解作为目标解。
[0114]
需要说明的是,以上对于分配优化算法仅是举例说明,本公开实施例对此不作限制。
[0115]
在得到目标解之后,即可根据目标解确定多个待处理任务的目标分配方案,该目标分配方案包括多个待处理任务的编译方式和/或编译顺序,在确定编译方式的情况下,即确定了对应的处理方式。
[0116]
示例性地,针对前述目标函数f=min(max(ti_1,ti_2))求解的最优解(目标解),应该为多个备选分配方案中,在满足约束条件的前提下,通用执行时长与专用执行时长中的最大值为所有备选分配方案中的最小值的情况。该最优解对应一个备选分配方案,则确定该备选分配方案为目标分配方案,根据该目标分配方案,执行各项待处理任务的编译和处理即可。
[0117]
需要说明的是,在本公开实施例中,若在某一时间段内,处理架构接收到的多个待处理任务为通用任务,且专用处理器的可用算力较高,则可以将其中的部分任务分配给专用处理器,在满足临界精度的情况下,由专用处理器对这些任务进行处理,从而缓解了通用处理器的处理压力,还能缩短任务处理总时长。对于多个待处理任务为专用任务的情况也可以采用类似的任务分配方案,在此不再展开描述。由此可知,在本公开实施例中,由于处理器可以交叉使用,在确定目标分配方案时,综合考虑了各种处理方式的可用算力以及代价等信息,因此,基于目标分配方案执行任务分配时,可以使各个处理器的负载更加均衡,同时还能尽量缩短任务处理总时长。
[0118]
本公开实施例第二方面提供一种任务处理方法。
[0119]
图7为本公开实施例提供的一种任务处理方法的流程图,应用于处理架构,且处理架构的编译方式包括通用编译方式和专用编译方式,处理架构的处理方式包括通用处理方式和专用处理方式。参照图7,该方法包括:
[0120]
步骤s71,获取多个待处理任务对应的目标分配方案。
[0121]
其中,目标分配方案用于指示多个待处理任务的编译方式和/或编译顺序。
[0122]
步骤s72,根据目标分配方案,对各个待处理任务采用对应的编译方式和/或编译顺序进行编译处理,获得至少一个待处理任务的编译结果。
[0123]
步骤s73,基于与编译方式对应的处理方式对各个待处理任务的编译结果进行处理,获得多个待处理任务的处理结果。
[0124]
其中,编译结果包括采用通用编译方式进行编译处理的通用编译结果,以及采用专用编译方式进行编译处理的专用编译结果,且通用编译结果基于通用处理方式进行处理,专用编译结果基于专用处理方式进行处理。
[0125]
在一些可选的实现方式中,为进一步缩短任务处理时长,提高处理效率,可以采用流式方式并行执行编译处理和任务处理。换言之,不必在完成所有待处理任务的编译处理之后再执行相应的任务处理,而是并行执行编译和任务处理。
[0126]
示例性地,在编译完一个待处理任务的情况下,即可由对应的处理器采用相应的处理方式对编译结果进行处理,以获得该待处理任务的处理结果,在对第一个待处理任务进行处理的同时,可以对下一个待处理任务进行编译,以便在完成编译时可以及时处理下一个待处理任务,以此类推,实现了编译处理和任务处理的流水式并行处理,进一步缩短了处理总时长,提高了任务处理效率。
[0127]
根据本公开的实施例,由于目标分配方案提供了多个待处理任务的编译方式和/或编译顺序,因此,能够根据目标分配方案准确地执行各项待处理任务的编译操作和处理操作,且由于目标分配方案综合考量了任务代价、可用算力以及任务属性等信息,因此,基于目标分配方案执行编译和处理操作时,提高了负载均衡性,缓解了处理资源的闲置情况,从而提高了处理资源的利用率。
[0128]
在一些可选的实现方式中,待处理任务包括通用任务和专用任务,对各个待处理任务采用对应的编译方式进行编译处理,包括:在待处理任务为通用任务的情况下,采用通用编译方式基于精确计算方法将待处理任务编译为第一等价执行指令,或者,采用专用编译方式基于近似逼近方法将待处理任务编译为近似执行指令;在待处理任务为专用任务的情况下,采用通用编译方式基于精确计算方法将待处理任务编译为第二等价执行指令,或者,采用专用编译方式将待处理任务编译为专用执行指令。其中,近似执行指令相当于第一等价执行指令的近似指令,在该过程中存在精度损失或者引入了误差,因此,近似执行指令的执行结果精度通常小于第一等价执行指令的精度;第二等价执行指令相当于采用精确计算的形式获得专用任务的可执行代码,对应的执行效率通常低于专用执行指令的执行效率。
[0129]
需要说明的是,针对通用程序而言,采用专用编译方式对通用程序进行编译,其本质为利用逼近子逼近该通用程序,从而获得一个满足临界精度的专用程序,相关内容可以参考本公开实施例中基于逼近子的逼近过程,在此不再展开描述。
[0130]
在一些可选的实现方式中,处理系统包括支持通用处理方式的通用组件和支持专用处理方式的专用组件;相应的,基于与编译方式对应的处理方式对多个待处理任务的编译结果进行处理,获得多个待处理任务的处理结果,包括:基于与编译方式对应的处理方式对多个待处理任务的编译结果进行处理,获得多个待处理任务的处理结果,包括:在待处理任务为通用任务,且采用通用编译方式的情况下,基于通用组件执行待处理任务对应的第一等价执行指令;在待处理任务为通用任务,且采用专用编译方式的情况下,基于专用组件执行待处理任务对应的近似执行指令;在待处理任务为专用任务,且采用通用编译方式的情况下,基于通用组件执行待处理任务对应的第二等价执行指令;在待处理任务为专用任
务,且采用专用编译方式的情况下,基于专用组件执行待处理任务对应的专用执行指令。
[0131]
换言之,当待处理任务为通用任务,对应通用程序时,若采用通用编译方式,使得通用处理组件可以以精确计算的形式处理该通用程序,若采用专用处理方式,则首先需要使用专用程序近似逼近该通用程序,然后利用专用处理组件执行该专用程序,相当于专用处理组件以近似处理的方式执行该通用程序,在该过程中引入精度损失,获得执行结果为通用程序的近似结果。当待处理任务为专用任务,对应专用程序时,若采用专用编译方式,则可以使用专用处理组件高效地执行该专用程序,效率较高,若采用通用编译方式时,则相当于通用处理组件以精确计算的形式处理该专用程序,处理效率通常低于直接采用专用编译方式和专用处理方式的情况。
[0132]
图8为本公开实施例提供的一种任务处理方法的工作过程示意图,参照图8,该方法包括:
[0133]
在步骤s801,接收多个待处理任务。
[0134]
其中,待处理任务包括通用任务和专用任务,分别对应通用程序和专用程序。不论是何种类型的待处理任务,均可以采用通用处理方式和专用处理方式中的任意一种进行处理。
[0135]
在步骤s802,待处理任务为通用任务,计算待处理任务的第一代价。
[0136]
在步骤s803,待处理任务为通用任务,获取待处理任务的临界精度。
[0137]
在步骤s804,根据临界精度,确定待处理任务的代价精度曲线,并根据代价精度曲线确定待处理任务的第二代价。
[0138]
在步骤s805,待处理任务为专用任务,计算待处理任务的第一代价。
[0139]
在步骤s806,待处理任务为专用任务,计算待处理任务的第二代价。
[0140]
在步骤s807,根据第一代价、第二代价、第一可用算力、第二可用算力以及待处理任务的属性信息,构建目标函数和约束条件,通过分配优化算法进行求解获得目标解,根据目标解确定目标分配方案。
[0141]
其中,目标分配方案中给出了各项待处理任务的编译方式和/或编译顺序。在确定目标分配方案之后,即可根据其采用







所示的方式进行编译处理。
[0142]
在步骤s808中,对于目标分配方案中的任意一项待处理任务,针对第

种情况采用通用编译方式进行编译处理;针对第

种情况采用专用编译方式进行编译处理;针对第

种情况采用通用编译方式进行编译处理;针对第

种情况采用专用编译方式进行编译处理。
[0143]
换言之,若目标分配方案中指示对某一项通用任务采用通用处理方式,则其属于第

种情况,按照对应方式进行处理即可,若指示对某一项通用任务采用专用处理方式,则其属于第

种情况,按照对应方式进行处理即可,若指示对某一项专用任务采用通用处理方式,则其属于第

种情况,按照对应方式进行处理即可,若指示对某一项专用任务采用专用处理方式,则其属于第

种情况,按照对应方式进行处理即可。
[0144]
在步骤s809中,通过通用处理方式执行通用编译结果。
[0145]
其中,通用编译结果是采用通用编译方式进行编译获得的结果,对应图中的第



种情况。
[0146]
在步骤s810中,通过专用处理方式执行专用编译结果。
[0147]
其中,专用编译结果是采用专用编译方式进行编译获得的结果,对应图中的第



种情况。
[0148]
本公开实施例第三方面提供一种处理架构。
[0149]
图9为本公开实施例提供的一种处理架构的框图。参照图9,该处理架构900包括:
[0150]
任务分配模块910,用于根据本公开实施例任一项的任务分配方法获得多个待处理任务的目标分配方案。
[0151]
编译系统920,用于根据目标分配方案,采用对应的专用编译方式对多个待处理任务进行编译处理,获得编译结果。
[0152]
处理系统930,用于采用与编译方式对应的处理方式对编译结果进行处理,获得多个待处理任务的处理结果。
[0153]
其中,编译方式包括通用编译方式和专用编译方式,处理方式包括通用处理方式和专用处理方式,且通用处理方式用于对采用通用编译方式获得的编译结果进行处理,专用处理方式用于对采用专用编译方式获得的编译结果进行处理。
[0154]
本公开实施例第四方面提供一种任务分配装置。
[0155]
图10为本公开实施例提供的一种任务分配装置的框图,可应用于对处理架构的待处理任务进行分配,且处理架构的编译方式包括通用编译方式和专用编译方式,处理架构的处理方式包括通用处理方式和专用处理方式。参照图10,该任务分配装置1000包括:
[0156]
确定模块1010,用于针对多个待处理任务,确定各个待处理任务采用通用处理方式对应的第一代价和采用专用处理方式对应的第二代价。
[0157]
其中,采用通用处理方式的待处理任务由通用编译方式进行编译处理,采用专用处理方式的待处理任务由专用编译方式进行编译处理。
[0158]
构建模块1020,用于根据各个待处理任务对应的第一代价和第二代价、通用处理方式的第一可用算力、以及专用处理方式的第二可用算力,构建目标函数和约束条件。
[0159]
求解模块1030,用于求解满足约束条件的目标函数的目标解,并根据目标解确定多个待处理任务的目标分配方案。
[0160]
其中,目标分配方案用于指示多个待处理任务的编译方式和/或编译顺序。
[0161]
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
[0162]
此外,本公开还提供了电子设备、计算机可读存储介质,上述均可用来实现本公开提供的任一种任务分配方法或任务处理方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
[0163]
图11为本公开实施例提供的一种电子设备的框图。
[0164]
参照图11,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器1101;至少一个存储器1102,以及一个或多个i/o接口1103,连接在处理器1101与存储器1102之间;其中,存储器1102存储有可被至少一个处理器1101执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器1101执行,以使至少一个处理器1101能够执行上述的任务分配方法或者任务处理方法。
[0165]
图12为本公开实施例提供的一种电子设备的框图。
[0166]
参照图12,本公开实施例提供了一种电子设备,该电子设备包括多个处理核1201以及片上网络1202,其中,多个处理核1201均与片上网络1202连接,片上网络1202用于交互多个处理核间的数据和外部数据。
[0167]
其中,一个或多个处理核1201中存储有一个或多个指令,一个或多个指令被一个或多个处理核1201执行,以使一个或多个处理核1201能够执行上述的任务分配方法或者任务处理方法。
[0168]
在一些实施例中,该电子设备可以是类脑芯片,由于类脑芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(double data rate,ddr)同步动态随机存储器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。
[0169]
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的任务分配方法或者任务处理方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
[0170]
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述任务分配方法或者任务处理方法。
[0171]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
[0172]
如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom)、静态随机存取存储器(sram)、闪存或其他存储器技术、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0173]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0174]
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0175]
这里所描述的计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
[0176]
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0177]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0178]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0179]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0180]
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当
被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献