本公开涉及人工智能领域,更具体地,涉及神经网络中kernel的选择和调度。
背景技术:
1、深度学习框架通常需要支持多种不同的硬件平台,这意味着同一种深度学习算法可能需要在不同的硬件平台上实现。在相同的硬件平台上,为了取得期望的性能,一种算法往往会采用多种不同的实现方案(在本申请中,将实现方案称为kernel),而不同的kernel一般被设计为应对不同的规模。但是,即使对于相同的规模,不同kernel的性能也表现出较大的不同,特别是在不同的kernel涵盖的规模发生重叠的情况下,如果无法选择性能最好的kernel,将无法充分发挥硬件的性能,并且导致算法性能表现差,进而影响整个网络的性能。
2、因此,如何选择具有较佳性能的规模是需要解决的问题。
技术实现思路
1、本公开的一个目的在于针对神经网络的规模来选择具有较佳性能的kernel,以充分发挥硬件的性能。
2、根据本公开的第一方面,提供一种在神经网络中调度kernel的方法,包括:确定神经网络的当前规模;从多个kernel中选择对所述当前规模具有匹配性能的优选kernel;以及通过计算接口来运行所述优选kernel,从而实现对kernel的调度。
3、根据本公开的第二方面,提供一种在神经网络中调度kernel的系统,包括:控制器,配置用于确定神经网络的当前规模;查询接口,配置用于从多个kernel中选择对所述当前规模具有匹配性能的优选kernel;以及计算接口,配置用于通过该计算接口来运行所述优选kernel,从而实现对kernel的调度。
4、根据本公开的第三方面,提供一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器中存储有计算机可执行指令,当所述计算机可执行指令由所述一个或多个处理器运行时,使得所述电子设备执行如上所述的方法。
5、根据本公开的第四方面,提供一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如上所述的方法。
6、通过本公开提供的方法,能够为不同规模的神经网络选择更为适合的kernel,从而显著地提升系统运行的效率。
1.一种在神经网络中调度kernel的方法,包括:
2.根据权利要求1所述的方法,进一步包括:
3.根据权利要求2所述的方法,进一步包括:
4.根据权利要求2或3所述的方法,其中,所述现有规模包括单个现有规模、多个离散的现有规模或连续的现有规模范围。
5.根据权利要求4所述的方法,其中,不同kernel的现有规模发生重叠。
6.根据权利要求2-5中任意一项所述的方法,其中,从多个kernel中选择对所述当前规模具有匹配性能的优选kernel包括:
7.根据权利要求6所述的方法,进一步包括:
8.根据权利要求1所述的方法,其中,通过与所述计算接口不同的查询接口,从多个kernel中选择对所述当前规模具有匹配性能的优选kernel。
9.根据权利要求8所述的方法,其中,从多个kernel中选择对所述当前规模具有匹配性能的优选kernel包括:
10.根据权利要求9所述的方法,其中,所述现有规模包括单个现有规模、多个离散的现有规模或连续的现有规模范围。
11.根据权利要求要求10所述的方法,其中,不同kernel的现有规模发生重叠。
12.根据权利要求8所述的方法,其中,从多个kernel中选择对所述当前规模具有匹配性能的优选kernel包括:
13.根据权利要求1-12中任意一项所述的方法,其中,性能包括下列中的至少一者:
14.一种在神经网络中调度kernel的系统,包括:
15.根据权利要求14所述的系统,其中,所述控制器进一步配置用于:
16.根据权利要求15所述的系统,所述控制器进一步配置用于:
17.根据权利要求15或16所述的系统,其中,所述现有规模包括单个现有规模、多个离散的现有规模或连续的现有规模范围。
18.根据权利要求17所述的系统,其中,不同kernel的现有规模发生重叠。
19.根据权利要求15至18中任意一项所述的系统,其中,所述查询接口配置用于:
20.根据权利要求19所述的系统,其中,所述查询接口配置用于进一步配置用于:
21.根据权利要求14所述的系统,其中,所述查询接口配置用于:
22.根据权利要求21所述的系统,其中,所述现有规模包括单个现有规模、多个离散的现有规模或连续的现有规模范围。
23.根据权利要求22所述的系统,其中,不同kernel的现有规模发生重叠。
24.根据权利要求14所述的系统,其中,所述查询接口配置用于:
25.根据权利要求14-24中任意一项所述的系统,其中,性能包括下列中的至少一者:
26.一种电子设备,包括:
27.一种计算机可读存储介质,包括计算机可执行指令,当所述计算机可执行指令由一个或多个处理器运行时,执行如权利要求1-13中任意一项所述的方法。