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

调度搜索方法和装置、云服务提供方法、电子设备以及计算机可读存储介质与流程

2022-02-20 19:49:34 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种调度搜索方法和装置、云服务提供方法、电子设备以及计算机可读存储介质。


背景技术:

2.在机器学习中,为了提高算子的计算效率,在现有技术中,一般硬件厂商会提供通用计算加速库,即适合其硬件规格的计算方案,能够充分发挥其硬件优势来优化算子的计算方案,通过人工的方式,对算子进行优化。
3.但是,由于ai模型的快速发展以及硬件的发展,这样由硬件厂商提供的通用加速库就不能很好地应对在实际中大量使用的各种算子的效率提高。在现有技术中,也可以由于通过富有经验的开发人员来对算子进行人工优化,但是这样需要耗费大量的人力进行人工优化,因此,仅能够实现针对通用算子(常见类型或常见尺寸)的高效优化,难以实现规模化的实施。因此,对于大量的非通用算子,仍有较大的效率提升空间。


技术实现要素:

4.本技术实施例提供一种调度搜索方法和装置、云服务提供方法、电子设备以及计算机可读存储介质,以解决现有技术中执行调度搜索浪费算力的缺陷。
5.为达到上述目的,本技术实施例提供了一种调度搜索方法,包括:
6.获取通用计算加速库执行目标算子的第一执行时间;
7.在第一搜索空间中,针对所述目标算子执行搜索以获取第一调度;
8.获取所述第一调度执行所述目标算子的第二执行时间;
9.根据所述第一执行时间和所述第二执行时间确定所述目标算子的最终调度。
10.本技术实施例还提供了一种云服务提供方法,包括:
11.根据接收到的用户的云服务请求确定对应的云计算任务;
12.对所述云计算任务进行解析以获得用于执行所述云计算任务的至少一个目标算子;
13.获取通用计算加速库执行目标算子的第一执行时间;
14.在第一搜索空间中,针对所述目标算子执行搜索以获取第一调度;
15.获取所述第一调度执行所述目标算子的第二执行时间;
16.根据所述第一执行时间和所述第二执行时间确定所述目标算子的最终调度;
17.利用基于所述最终调度的所述目标算子来执行所述云计算任务。
18.本技术实施例还提供了一种调度搜索装置,包括:
19.第一获取模块,用于获取通用计算加速库执行目标算子的第一执行时间;
20.第一搜索模块,用于在第一搜索空间中,针对所述目标算子执行搜索以获取第一调度;
21.第二获取模块,用于获取所述第一调度执行所述目标算子的第二执行时间;
22.确定模块,用于根据所述第一执行时间和所述第二执行时间确定所述目标算子的最终调度。
23.本技术实施例还提供了一种电子设备,包括:
24.存储器,用于存储程序;
25.处理器,用于运行所述存储器中存储的所述程序,所述程序运行时执行本技术实施例提供的调度搜索方法,或者执行本技术实施例提供的云服务提供方法。
26.本技术实施例还提供了一种计算机可读存储介质,其上存储有可被处理器执行的计算机程序,其中,该程序被处理器执行时实现如本技术实施例提供的调度搜索方法,或者实现本技术实施例提供的云服务提供方法。
27.本技术实施例提供的调度搜索方法和装置、云服务提供方法、电子设备以及计算机可读存储介质,能够通过以通用计算加速库的执行时间作为基准,并且以粗粒度的小范围的搜索空间执行试探搜索,从而比较两种方案获得的调度所能够实现的性能,例如执行时间。因此,可以通过两种方案实现的执行时间的比值来确定该目标算子是否值得继续使用搜索空间的方案来寻找更优调度,并且如果值得,即比值大于阈值,则使用迭代的方式来继续寻找更优调度,并且如果不值得,即,比值小于阈值,则结束该搜索空间的搜索处理,直接使用通用加速库的方案作为调度。通过该方式,能够综合考虑目标算子的执行效率来确定目标算子的调度方案,从而在能够节省算力的情况下保证算子调度的优化。
28.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
29.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
30.图1a为本技术实施例提供的调度搜索方法的应用场景示意图;
31.图1b为本技术实施例提供的应用于ai计算的调度搜索系统的场景示意图;
32.图2为本技术提供的调度搜索方法一个实施例的流程图;
33.图3为本技术提供的调度搜索方法另一个实施例的流程图;
34.图4为本技术提供的调度搜索装置实施例的结构示意图;
35.图5为本技术提供的电子设备实施例的结构示意图。
具体实施方式
36.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
37.实施例一
38.本技术实施例提供的方案可应用于任何具有算子的代码生成能力的计算系统,例如安装有自动代码生成模块的计算服务器等等。图1a为本技术实施例提供的调度搜索方法的应用场景示意图,图1a所示的场景仅仅是本技术的技术方案可以应用的场景的示例之一。
39.在机器学习中,用于执行计算任务的各种计算操作称为算子。一个算子在实施计算时可以有多种计算实施方案方式,每种计算方式方案可以称为一种调度,不同的调度虽然执行的结果相同,但是执行起来耗费的时间存在着差异不同。因此,采用的调度的执行时间越短,则该算子的计算效率越高。
40.当使用硬件来执行机器学习的某个计算任务时,实际上是分别执行该计算任务的各个算子。具体而言,硬件在执行机器学习的计算任务时,先根据计算任务中的各个算子来确定其对应的代码,这也被称为算子的代码化过程。因此,对于一个算子来说,在硬件上进行具体实施计算时可以有多种实施方案,也就是多种代码,每种方案可以称为一种调度,不同的调度虽然执行的结果相同,但是执行耗费的时间存在着差异。因此,采用的调度的执行时间越短,则该算子的计算效率越高。
41.为了提高算子的计算效率,在现有技术中,一般硬件厂商会提供通用计算加速库,即适合其硬件规格的计算方案,或者说提供了根据算子自动生成代码的方案,以便于能够充分发挥其硬件优势来优化算子的计算效率的计算方案。但是,由于其基于自身特定硬件构造来优化算子的计算效率并且通常是由硬件厂商的专家人员来根据经验构造更优的调度的算子优化方式,因此这样的通用计算加速库通常只对于常见的算子比较有效,即能够提高其计算效率,但是由于ai模型的快速发展以及硬件的发展,出现了大量各种各样的算子,而这样由硬件厂商提供的通用加速库需要耗时耗力来进行开发,从而就不能很好地应对在实际中大量使用的各种算子的效率提高。此外,在现有技术中,也可以通过富有经验的开发人员来对算子进行人工优化,但是这样需要耗费大量的人力,难以实现规模化的实施。因此,对于大量的非通用算子,仍有较大的效率提升空间。现有技术中也已经出现了使用人工智能技术来自动或半自动地生成算子的代码的过程,该过程实际上并不是代替传统的专家人员来进行专门的开发,而是一个对于算子搜索更优调度的过程,但是该过程所使用的搜索空间是直接影响该优化处理的性能上限的重要因素。例如,扩大搜索空间意味着有更多机会找到更优的调度方案,但是会付出更大的代价,例如消耗大量的计算资源并且相应地需要更多的搜索时间,而缩小搜索空间则可以减少所付出的代价,即减少消耗的计算资源并且响应地减少了搜索时间,但是这样可能导致最终找到的调度方案并非是符合要求的,甚至可能差于通用加速库的方案。因此,在当前面对需要处理成千上万个算子的各种系统来说,需要平衡对于算子的更优调度的搜索以及系统的整体吞吐率。
42.因此,在本技术实施例中,可以在发现新的算子要执行时,先使用通用加速库来执行新的算子,即目标算子,并测量其执行时间,从而以该执行时间作为基准。根据申请人的发现,在本技术领域中,通常只有很少一部分的算子在使用通过搜索确定的调度方案,即代码化方案能够实现超过使用通用计算加速库的效率,并且很少一部分的算子使用通过搜索确定的调度方案实现的性能或效率接近使用通用加速库实现的效率,而剩余的大部分算子即使通过使用较大的搜索空间进行搜索而确定的调度方案也无法实现超越通用计算加速库所能够实现的性能或效率。因此,在本技术中,以利用通用加速库作为调度执行算子的执
行时间作为基准,来针对上述较少一部分的算子进行搜索,而剩余的大部分算子则提前结束搜索,以节省算力。因此,在本技术实施例中,先使用通用加速库来执行目标算子并从而确定基准执行时间。在确定了基准执行时间之后,在本技术实施例中,先在较小的调度搜索空间,即粗粒度的搜索空间中执行调度搜索,并且以在该调度搜索空间中确定的更优调度来执行目标算子并且测量以该调度执行算子的执行时间,之后可以将其与基准执行时间进行比较。例如,可以将以搜索空间中的调度执行算子的执行时间与基准执行时间的比值来作为判断依据。例如当该比值大于预设阈值时,例如,当该比值大于预设阈值并小于1时,通常可以表示在该搜索空间中找到的更优调度实现的性能(即执行时间)与使用通用加速库执行算子而实现的性能差距不大,或者当该比值大于1时,则通常表示在该搜索空间中找到的更优调度实现的性能(即执行时间)已经超越了使用通用加速库执行算子而实现的性能,因此,这样的结果可以表示使用搜索空间进行搜索的方案是有机会超越通用计算加速库来执行算子的方案。换言之,这意味着对于该目标算子,应该使用搜索方案来确定其调度。例如,至少可以使用当前的粗粒度的搜索空间或者甚至可以扩大搜索空间或者说使用更细粒度的搜索空间来执行调度搜索。因此,通过本技术的调度搜索方法,能够通过以通用计算加速库的执行时间作为基准,并且以粗粒度的小范围的搜索空间执行试探搜索,从而比较两种方案获得的调度所能够实现的性能,例如执行时间。因此,可以通过两种方案实现的执行时间的比值来确定该目标算子是否值得继续使用搜索空间的方案来寻找更优调度,并且如果值得,即比值大于阈值,则使用迭代的方式来继续寻找更优调度,并且如果不值得,即,比值小于阈值,则结束该搜索空间的搜索处理,直接使用通用加速库的方案作为调度。通过该方式,能够在综合考虑通用计算加速库和搜索空间的搜索方案的在目标算子的执行效率方面的优劣来选择使用哪种方案作为目标算子的调度方案,从而能够节省不必要的算力浪费并且确保了对于算子的调度的优化。
43.图1b为本技术实施例提供的应用于ai计算的调度搜索系统的场景示意图。如图1b所示,在本技术实施例中,需要利用ai模型进行计算任务,例如人脸识别的计算任务时,可以将该人脸识别的任务被拆分为多个算子(算子1、算子2、
……
、算子n),例如,算子1可以是用于计算特征区域的分区算子,算子2可以是用于计算人脸中的特征部位的特征值的特征值算子等等。在本技术实施例中,这些算子被发送到调度搜索系统,以获取各个算子所对应的最终调度。以计算特征区域的算子1为例,调度搜索系统首先通过当前的ai模型计算所使用的的硬件提供的通用计算加速库计算算子1的基准时间。然后,可以基于额外获取的其他人开发的或者在互联网上获取的搜索空间中,针对该算子1执行搜索以获取第一调度,以及相应的执行时间。即,在本技术实施例中,可以在当前确定了要执行的算子的情况下,在图1b中所示的场景中,已经确定了算子1为计算特征区域的分区算子,因此,可以通过所使用的的硬件和基于互联网获取的其他搜索空间来分别寻找不同的实施代码,即调度,并且分别计算执行时间。当利用通用计算加速库的基准时间与在搜索空间搜索的调度的执行时间的比值小于预设阈值时,将通用计算加速库中的调度作为算子1的最终调度,即使用通用加速库中提供的分区算子的代码作为该人脸识别的计算任务中计算特征分区的实施代码。当基准时间与执行时间的比值大于或等于预设阈值时,说明使用非通用加速库的搜索空间能够实现更大的效率提升,因此可以通过调整预设阈值与搜索空间的搜索范围,以重复执行搜索调度的迭代操作,直至基准时间与执行时间的比值小于预设阈值,从而确定最终的实
施代码,即调度。
44.在本技术实施例中,利用通用计算加速库计算ai模型的计算任务中各算子的执行时间,以作为基准时间。在确定了基准时间之后,先在较小的搜索空间,即粗粒度的搜索空间中执行调度搜索,并且以在该搜索空间中确定的更优调度来执行算子并且测量以该调度执行算子的执行时间,之后可以将其与基准时间进行比较,从而筛选出满足预设条件的较少部分的算子。然后,通过增大预设阈值以及扩大搜索空间的搜索范围,来对较少部分的算子进行迭代搜索,而剩余的大部分算子则提前结束搜索。因此能够综合考虑算子的执行效率来确定算子的调度方案,从而在节省算力的情况下保证算子调度的优化,进而可以较大地提高ai模型的计算效率。
45.此外,在本技术实施例中,在用户使用应用有本技术实施例的调度搜索方法的云服务时,可以根据用户对于云服务的使用请求来确定其要通过应用有本技术的调度搜索方法的云服务器要执行的云计算任务,例如搜索或数据库等服务。在确定了针对用户的云服务使用请求的云计算任务之后,可以使用本技术实施例的调度搜索方法对相应的计算任务进行解析,例如,可以将其解析为多个算子,从而根据使用算子执行搜索调度的结果来为用户确定适合的计算加速库。因此,用户在使用应用了本技术实施例的调度搜索方法的云服务时,能够对于用户的服务请求提供更高效的计算响应。
46.上述实施例是对本技术实施例的技术原理和示例性的应用框架的说明,下面通过多个实施例来进一步对本技术实施例具体技术方案进行详细描述。
47.实施例二
48.图2为本技术提供的调度搜索方法一个实施例的流程图,该方法的执行主体可以为任何具有算子的代码生成能力的计算系统,例如安装有自动代码生成模块的计算服务器等等,也可以为集成在这些设备上的装置或芯片。如图2所示,该调度搜索方法包括如下步骤:
49.s201,获取通用计算加速库执行目标算子的第一执行时间。
50.在本技术实施例中,在接收到智能计算任务时,通过将其解析为多个算子,每个算子对应于一个操作任务。在步骤s201中,可以对于每个算子使用通用计算加速库来执行对应的操作并且测量其执行时间,以作为基准执行时间。在本技术领域中,通常只有很少一部分的算子在使用通过搜索确定的调度方案,即代码化方案能够实现超过使用通用计算加速库的效率,并且很少一部分的算子使用通过搜索确定的调度方案实现的性能或效率接近使用通用加速库实现的效率,而剩余的大部分算子即使通过使用较大的搜索空间进行搜索而确定的调度方案也无法实现超越通用计算加速库所能够实现的性能或效率。因此,在本技术中,以利用通用加速库作为调度执行算子的执行时间作为基准,来挑选出适合于进行搜索处理的上述较少一部分的算子,以进行搜索,而剩余的大部分算子则提前结束搜索,以节省算力。
51.s202,在第一搜索空间中,针对目标算子执行搜索以获取第一调度。
52.在步骤s201中确定了作为基准执行时间的第一执行时间之后,在本技术实施例中,可以在步骤s202中先在较小的调度搜索空间,即粗粒度的搜索空间中执行调度搜索,以确定在该粗粒度的搜索空间中的更优调度作为第一调度,换言之,该第一调度是该第一搜索空间中执行目标算子的执行时间较短的调度,优选地,可以选择执行时间最短的调度作
为第一调度。
53.s203,获取第一调度执行目标算子的第二执行时间。
54.在步骤s202中确定了第一搜索空间中的更优调度之后,可以在步骤s203中以在该调度搜索空间中确定的更优调度来执行目标算子,从而测量出以该调度执行算子的执行时间,以便于后续与在步骤s201中确定的作为基准执行时间的第一执行时间比较。
55.s204,根据第一执行时间和第二执行时间确定目标算子的最终调度。
56.在步骤s204中,可以将在步骤s203中测量确定的第一搜索空间中的更优调度执行目标算子的执行时间,即第二执行时间与在步骤s201中确定的第一执行时间进行比较。例如,可以将以第一搜索空间中的调度执行算子的第二执行时间与使用通用计算加速库执行算子的第一执行时间的比值来作为判断依据。例如,当该比值小于预设阈值时,意味着在第一搜索空间中确定的调度执行算子的执行性能低于使用通用计算加速库实现的性能。因此,可以在步骤s304中将通用计算加速库中的调度直接作为目标算子的调度,并相应地结束对于该目标算子的搜索处理。
57.因此,本技术实施例提供的调度搜索方案,能够通过以通用计算加速库的执行时间作为基准,并且以粗粒度的小范围的搜索空间执行试探搜索,从而比较两种方案获得的调度所能够实现的性能,例如执行时间。因此,可以通过两种方案实现的执行时间的比值来确定该目标算子是否值得继续使用搜索空间的方案来寻找更优调度,并且如果值得,即比值大于阈值,则使用迭代的方式来继续寻找更优调度,并且如果不值得,即,比值小于阈值,则结束该搜索空间的搜索处理,直接使用通用加速库的方案作为调度。通过该方式,能够综合考虑目标算子的执行效率来确定目标算子的调度方案,从而在能够节省算力的情况下保证算子调度的优化。
58.实施例三
59.图3为本技术提供的调度搜索方法另一个实施例的流程图,该方法的执行主体可以为任何具有算子的代码生成能力的计算系统,例如安装有自动代码生成模块的计算服务器等等,也可以为集成在这些设备上的装置或芯片。如图3所示,该调度搜索方法包括如下步骤:
60.s301,获取通用计算加速库执行目标算子的第一执行时间。
61.在本技术实施例中,在接收到智能计算任务时,通过将其解析为多个算子,每个算子对应于一个操作任务。在步骤s201中,可以对于每个算子使用通用计算加速库来执行对应的操作并且测量其执行时间,以作为基准执行时间。在本技术领域中,通常只有较少一部分的算子在使用通过搜索确定的调度方案,即代码化方案能够实现超过使用通用计算加速库的效率,并且很少一部分的算子使用通过搜索确定的调度方案实现的性能或效率接近使用通用加速库实现的效率,而剩余的大部分的算子即使通过使用较大的搜索空间进行搜索而确定的调度方案也无法实现超越通用计算加速库所能够实现的性能或效率。因此,在本技术中,以利用通用加速库作为调度执行算子的执行时间作为基准,来挑选出适合于进行搜索处理的上述较少一部分的算子,以进行搜索,而剩余的大部分算子则提前结束搜索,以节省算力。
62.s302,在第一搜索空间中,针对目标算子执行搜索以获取第一调度。
63.在步骤s301中确定了作为基准执行时间的第一执行时间之后,在本技术实施例
中,可以在步骤s302中先在较小的调度搜索空间,即粗粒度的搜索空间中执行调度搜索,以确定在该粗粒度的搜索空间中的更优调度作为第一调度,换言之,该第一调度是该第一搜索空间中执行目标算子的执行时间最短的调度。
64.s303,获取第一调度执行目标算子的第二执行时间。
65.在步骤s302中确定了第一搜索空间中的更优调度之后,可以在步骤s203中以在该调度搜索空间中确定的更优调度来执行目标算子,从而测量出以该调度执行算子的执行时间,以便于后续与在步骤s201中确定的作为基准执行时间的第一执行时间比较。
66.s304,当第一执行时间与第二执行时间的比值小于预设阈值时,将通用计算加速库中的调度作为目标算子的最终调度。
67.在步骤s304中,可以将在步骤s303中测量确定的第一搜索空间中的更优调度执行目标算子的执行时间,即第二执行时间与在步骤s301中确定的第一执行时间进行比较。例如,可以将以第一搜索空间中的调度执行算子的第二执行时间与使用通用计算加速库执行算子的第一执行时间的比值来作为判断依据。例如,当该比值小于预设阈值时,意味着在第一搜索空间中确定的调度执行算子的执行性能低于使用通用计算加速库实现的性能。因此,可以在步骤s304中将通用计算加速库中的调度直接作为目标算子的调度,并相应地结束对于该目标算子的搜索处理。
68.此外,例如当该比值大于或等于预设阈值时,例如,当该比值大于预设阈值并小于1时,通常可以表示在该搜索空间中找到的更优调度实现的性能(即执行时间)与使用通用加速库执行算子而实现的性能差距不大,或者当该比值大于1时,则通常表示在该搜索空间中找到的更优调度实现的性能(即执行时间)已经超越了使用通用加速库执行算子而实现的性能,因此,这样的结果可以表示使用搜索空间进行搜索的方案是有机会超越通用计算加速库来执行算子的方案。换言之,这意味着对于该目标算子,应该使用搜索方案来确定其调度。则在该情况下,可以对于目标算子执行迭代操作以搜索更优调度。例如,可以执行下述操作:
69.s305,增加预设阈值并扩大第一搜索空间的搜索范围。
70.如上所述,例如,当通过在步骤s302中执行初步搜索确定的第一调度执行目标算子的执行时间为使用通用计算加速库执行目标算子的执行时间的70%以上,即在步骤s304中的比值大于0.7时,这表示,使用搜索方案有可能能够获得性能超越通用计算加速库的方案的调度,因此,可以在步骤s305中扩大在步骤s302中执行初步搜索时的调度搜索空间的搜索范围并且相应地将预设阈值从0.7例如调整到1,以尝试获得能够实现更好性能的调度。
71.因此,根据本技术实施例,可以以步骤s305中扩大后的搜索范围执行步骤s306,即在扩大后的第一搜索空间中,针对目标算子进行搜索以重新获取第一调度,在该情况下,第一调度是在扩大后的第一搜索空间中执行目标算子的执行时间最短的调度。并且相应地,执行步骤s307,获取新获得的第一调度执行目标算子的第二执行时间,并且根据测量获得的第二执行时间来执行步骤s308,即当第一执行时间与第二执行时间的比值小于在步骤s305中设置的预设阈值时,将在该迭代操作中执行的步骤s306中获得的第一调度确定为目标算子的最终调度,并结束所述迭代操作。
72.此外,当第一执行时间与所述第二执行时间的比值大于或等于预设阈值时,重复
执行迭代操作。
73.因此,通过上述迭代操作,可以基于在步骤s302的初次搜索中使用的粗粒度的搜索空间来逐步扩大搜索空间或者说使用逐渐更细粒度的搜索空间来迭代执行调度搜索,直到找到更优的调度。
74.此外,在本技术实施例中,为了防止上述迭代搜索操作难以收敛,可以进一步包括:
75.s309,当第一执行时间与第二执行时间的比值大于或等于预设阈值时,判断第一搜索空间的搜索范围是否达到预设搜索范围。
76.s310,当第一搜索空间的搜索范围达到了预设的搜索范围时,结束迭代操作,并且将通用计算加速库中的调度作为目标算子的最终调度。
77.在步骤s309中,可以在判断在步骤s306中确定的搜索空间中的更优调度的执行效率仍然不如通用计算加速库的效率时,可以进一步判断搜索空间是否已经足够大,或者说是否已经执行了足够的搜索,从而可以在确定已经达到了预设的搜索范围时,搜索到的调度的执行效率仍然不如通用计算加速库时,就及时终止该搜索,以节省算力。
78.在本技术实施例中,还可以根据用户输入的指令,来调整预设阈值的大小,通过与用户进行交互,来尽快确定适合的阈值,从而有利于搜索迭代过程的快速收敛。例如,可以在迭代开始之前或者在迭代过程中,将所确定的搜索空间的信息以及对应的执行时间输出给用户,以便于用户根据其需求或使用情况来例如通过发出针对该输出的指令来调整预设的阈值,从而加快收敛或者进一步扩大搜索。从而系统可以根据用户输入的这样的针对当前搜索空间与对应的执行时间的调整指令来调整阈值或者根据用户输入的阈值来继续执行迭代操作。
79.此外,在本技术实施例中,第一搜索空间的确定也可以是根据当前所使用的ai模型来确定,即根据用户当前要处理的应用场景来确定,从而可以实现针对不同ai模型或者说不同的应用场景来使用不同的搜索空间作为第一搜索空间来执行迭代操作。例如,系统可以获取当前的ai模型的分类标识,从而根据分类标识选择对应的搜索空间作为第一搜索空间,或者系统可以将当前的搜索空间信息输出给用户,从而用户可以下达指令来指定所希望使用的搜索空间。
80.此外,在本技术中,除了上述迭代操作之后,还可以使用代价模型来对于那些有希望通过搜索实现超越通用计算加速库的调度的算子寻找适合的调度。在本技术的技术领域中,代价模型时基于历史的训练数据来进行训练而生成的空间搜索模型,因此,其在效果上也可以实现上述迭代操作的提前收敛。因此,在本技术中,也可以结合该代价模型来进一步提高寻找更优调度的效率。
81.例如,在本技术实施例中,可以以对于各算子的调度与对应的计算效率为参数并基于代价函数来构建代价模型,在这里,代价函数可以表示调度与计算效率之间的对应关系,即系数。从而可以通过利用已有的每次确定的算子的调度以及与其实际执行的计算效率之间的对应关系的历史数据来对该模型进行训练而获得这样的模型。因此,在本技术实施例中,可以将其作为本技术方案的替代方案,来针对每个算子将确定的调度输入到代价模型中来找到使得代价函数取最小值时的计算效率与调度之间的对应关系,从而可以使用该对应关系来限定搜索下一个调度时的步长,从而也能够实现与上述多个探索空间中进行
探索的快速收敛。此外,也可以使用代价模型来作为本技术实施例的多个探索空间中进行探索的方案的补充方案,即,在每次执行探索之前,先使用代价模型来预测当前各调度的计算效率,并选择能够最快收敛的调度方案来执行当前的调度探索,从而能够加快本技术的调度搜索方案的收敛。
82.因此,本技术实施例提供的调度搜索方案,能够通过以通用计算加速库的执行时间作为基准,并且以粗粒度的小范围的搜索空间执行试探搜索,从而比较两种方案获得的调度所能够实现的性能,例如执行时间。因此,可以通过两种方案实现的执行时间的比值来确定该目标算子是否值得继续使用搜索空间的方案来寻找更优调度,并且如果值得,即比值大于阈值,则使用迭代的方式来继续寻找更优调度,并且如果不值得,即,比值小于阈值,则结束该搜索空间的搜索处理,直接使用通用加速库的方案作为调度。通过该方式,能够综合考虑目标算子的执行效率来确定目标算子的调度方案,从而在能够节省算力的情况下保证算子调度的优化。
83.实施例四
84.图4为本技术提供的调度搜索装置实施例的结构示意图,可用于执行如图2和图3所示的方法步骤。如图4所示,该调度搜索装置可以包括:第一获取模块41、第一搜索模块42、第二获取模块43和确定模块44。
85.第一获取模块41可以用于获取通用计算加速库执行目标算子的第一执行时间。
86.在本技术实施例中,在接收到智能计算任务时,通过将其解析为多个算子,每个算子对应于一个操作任务。可以对于每个算子使用通用计算加速库来执行对应的操作并且通过第一获取模块41来测量其执行时间,以作为基准执行时间。在本技术领域中,通常只有很少一部分的算子在使用通过搜索确定的调度方案,即代码化方案能够实现超过使用通用计算加速库的效率,并且很少一部分的算子使用通过搜索确定的调度方案实现的性能或效率接近使用通用加速库实现的效率,而剩余的大部分算子即使通过使用较大的搜索空间进行搜索而确定的调度方案也无法实现超越通用计算加速库所能够实现的性能或效率。因此,在本技术中,以利用通用加速库作为调度执行算子的执行时间作为基准,来挑选出适合于进行搜索处理的上述较少一部分的算子,以进行搜索,而剩余的大部分算子则提前结束搜索,以节省算力。
87.第一搜索模块42可以用于在第一搜索空间中,针对目标算子执行搜索以获取第一调度。
88.当第一获取模块41确定了作为基准执行时间的第一执行时间时,在本技术实施例中,第一搜索模块42可以先在较小的调度搜索空间,即粗粒度的搜索空间中执行调度搜索,以确定在该粗粒度的搜索空间中的更优调度作为第一调度,换言之,该第一调度是该第一搜索空间中执行目标算子的执行时间较短的调度,优选地,可以选择执行时间最短的调度作为第一调度。
89.第二获取模块43用于获取第一调度执行所述目标算子的第二执行时间。
90.在第一搜索模块42确定了第一搜索空间中的更优调度的情况下,第二获取模块43可以用于以在该调度搜索空间中确定的更优调度来执行目标算子,从而测量出以该调度执行算子的执行时间,以便于后续与第一获取模块41确定的作为基准执行时间的第一执行时间比较。
91.确定模块44可以用于根据第一执行时间和第二执行时间确定目标算子的最终调度。
92.确定模块44可以将第二获取模块43测量确定的第一搜索空间中的更优调度执行目标算子的执行时间,即第二执行时间与第一获取模块41确定的第一执行时间进行比较。例如,可以将以第一搜索空间中的调度执行算子的第二执行时间与使用通用计算加速库执行算子的第一执行时间的比值来作为判断依据。例如,当该比值小于预设阈值时,意味着在第一搜索空间中确定的调度执行算子的执行性能低于使用通用计算加速库实现的性能。因此,可以确定模块44可以将通用计算加速库中的调度直接作为目标算子的调度,并相应地结束对于该目标算子的搜索处理。
93.此外,例如当该比值大于预设阈值时,例如,当该比值大于预设阈值并小于1时,通常可以表示在该搜索空间中找到的更优调度实现的性能(即执行时间)与使用通用加速库执行算子而实现的性能差距不大,或者当该比值大于1时,则通常表示在该搜索空间中找到的更优调度实现的性能(即执行时间)已经超越了使用通用加速库执行算子而实现的性能,因此,这样的结果可以表示使用搜索空间进行搜索的方案是有机会超越通用计算加速库来执行算子的方案。换言之,这意味着对于该目标算子,应该使用搜索方案来确定其调度。则在该情况下,本技术的调度搜索装置可以进一步包括迭代控制模块45,其可以对于目标算子执行迭代操作以搜索更优调度。例如,可以执行下述操作:
94.增加预设阈值并扩大第一搜索空间的搜索范围。
95.如上所述,例如,当第一搜索模块42执行初步搜索确定的第一调度执行目标算子的执行时间为使用通用计算加速库执行目标算子的执行时间的70%以上,即确定模块44确定的比值大于0.7时,这表示,使用搜索方案有可能能够获得性能超越通用计算加速库的方案的调度,因此,可以扩大第一搜索模块42执行初步搜索时的调度搜索空间的搜索范围并且相应地将预设阈值从0.7例如调整到1.1,以尝试获得能够实现更好性能的调度。
96.因此,根据本技术实施例,第一搜索模块42可以以扩大后的搜索范围重复执行搜索操作,即在扩大后的第一搜索空间中,针对目标算子进行搜索以重新获取第一调度,在该情况下,第一调度是在扩大后的第一搜索空间中执行目标算子的执行时间最短的调度。并且相应地,迭代控制模块45可以控制第二获取模块43获取新获得的第一调度执行目标算子的第二执行时间,并且根据测量获得的第二执行时间来控制确定模块44,即当第一执行时间与第二执行时间的比值小于新设置的预设阈值时,将在该迭代操作中通过控制第一搜索模块42获得的第一调度确定为目标算子的最终调度,并结束迭代操作。
97.此外,迭代控制模块45可以当第一执行时间与所述第二执行时间的比值大于或等于预设阈值时,重复执行迭代操作。
98.因此,通过上述迭代操作,可以基于第一搜索模块42在初次搜索中使用的粗粒度的搜索空间来逐步扩大搜索空间或者说使用逐渐更细粒度的搜索空间来迭代执行调度搜索,直到找到更优的调度。
99.此外,在本技术实施例中,为了防止上述迭代搜索操作难以收敛,迭代控制模块45的迭代操作可以进一步包括:
100.当第一执行时间与第二执行时间的比值大于或等于预设阈值时,判断第一搜索空间的搜索范围是否达到预设搜索范围。
101.当第一搜索空间的搜索范围达到了预设的搜索范围时,结束迭代操作,并且将通用计算加速库中的调度作为所述目标算子的最终调度。
102.因此,可以在确定模块44确定搜索空间中的更优调度的执行效率仍然不如通用计算加速库的效率时,迭代控制模块45可以进一步判断搜索空间是否已经足够大,或者说是否已经执行了足够的搜索,从而可以在确定已经达到了预设的搜索范围时,搜索到的调度的执行效率仍然不如通用计算加速库时,就及时终止该搜索,以节省算力。
103.此外,在本技术中,除了上述迭代操作之后,还可以使用代价模型来对于那些有希望通过搜索实现超越通用计算加速库的调度的算子寻找适合的调度。在本技术的技术领域中,代价模型时基于历史的训练数据来进行训练而生成的空间搜索模型,因此,其在效果上也可以实现上述迭代操作的提前收敛。因此,在本技术中,也可以结合该代价模型来进一步提高寻找更优调度的效率。
104.因此,本技术实施例提供的调度搜索方案,能够通过以通用计算加速库的执行时间作为基准,并且以粗粒度的小范围的搜索空间执行试探搜索,从而比较两种方案获得的调度所能够实现的性能,例如执行时间。因此,可以通过两种方案实现的执行时间的比值来确定该目标算子是否值得继续使用搜索空间的方案来寻找更优调度,并且如果值得,即比值大于阈值,则使用迭代的方式来继续寻找更优调度,并且如果不值得,即,比值小于阈值,则结束该搜索空间的搜索处理,直接使用通用加速库的方案作为调度。通过该方式,能够在综合考虑通用计算加速库和搜索空间的搜索方案的在目标算子的执行效率方面的优劣来选择使用哪种方案作为目标算子的调度方案,从而能够节省不必要的算力浪费并且确保了对于算子的调度的优化。
105.实施例五
106.以上描述了调度搜索装置的内部功能和结构,该装置可实现为一种电子设备。图5为本技术提供的电子设备实施例的结构示意图。如图5所示,该电子设备包括存储器51和处理器52。
107.存储器51,用于存储程序。除上述程序之外,存储器51还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
108.存储器51可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
109.处理器52,不仅仅局限于中央处理器(cpu),还可能为图形处理器(gpu)、现场可编辑门阵列(fpga)、嵌入式神经网络处理器(npu)或人工智能(ai)芯片等处理芯片。处理器52,与存储器51耦合,执行存储器51所存储的程序,该程序运行时执行上述实施例二和三的调度搜索方法。
110.进一步,如图5所示,电子设备还可以包括:通信组件53、电源组件54、音频组件55、显示器56等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。
111.通信组件53被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子
设备可以接入基于通信标准的无线网络,如wifi,3g、4g或5g,或它们的组合。在一个示例性实施例中,通信组件53经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件53还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
112.电源组件54,为电子设备的各种组件提供电力。电源组件54可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
113.音频组件55被配置为输出和/或输入音频信号。例如,音频组件55包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器51或经由通信组件53发送。在一些实施例中,音频组件55还包括一个扬声器,用于输出音频信号。
114.显示器56包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
115.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
116.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献