一种异构计算调度方法及装置、计算机可读存储介质,所述异构计算调度方法包括:加载目标神经网络模型;将所述目标神经网络模型分割成多个子模块;将所述多个子模块分配给所述终端设备中的至少一个硬件平台。采用上述方案,在部署神经网络模型时,实现神经网络模型在不同硬件平台上的统一调度,能够充分利用终端设备的硬件资源,提高推理效率。提高推理效率。提高推理效率。
【技术实现步骤摘要】
异构计算调度方法及装置、计算机可读存储介质
[0001]本专利技术涉及人工智能
,尤其涉及一种异构计算调度方法及装置、计算机可读存储介质。
技术介绍
[0002]在使用推理框架部署神经网络模型时,通常需要用户指定使用终端设备中特定的硬件平台,例如NCNN模型,支持GPU加速模型推理,但是不支持其他硬件平台(如NPU)进行模型推理。
[0003]可见,现有技术中,在部署神经网络模型时,难以在不同的硬件平台上统一调度,导致部署神经网络模型时,无法充分利用终端设备的硬件资源,影响神经网络模型部署时的推理效率。
技术实现思路
[0004]本专利技术实施例解决的是在部署神经网络模型时,无法充分利用终端设备的硬件资源,影响神经网络模型部署时的推理效率。
[0005]为解决上述技术问题,本专利技术实施例提供一种异构计算调度方法,应用于终端设备,包括:加载目标神经网络模型;将所述目标神经网络模型分割成多个子模块;将所述多个子模块分配给所述终端设备中的至少一个硬件平台。
[0006]可选的,所述将所述目标神经网络模型分割成多个子模块,包括:根据所述终端设备中各硬件平台的处理能力信息,确定所述终端设备中支持对所述子模块进行运算的目标硬件平台;根据各目标硬件平台的剩余算力,将所述目标神经网络模型分割成多个子模块。
[0007]可选的,所述根据各目标硬件平台的剩余算力,将所述目标神经网络模型分割成多个子模块,包括:根据各目标硬件平台的剩余算力,以及预设的分割条件和/或开销约束条件,确定最优的模型分割方式;所述分割条件包括如下至少一种:同一目标硬件平台上的连续子模块个数最大化、子模块的总数最小化、目标硬件平台的剩余算力利用效率最大化;所述开销约束条件包括以下至少一种:所述子模块对应的内存拷贝开销、所述子模块对应的通信开销;采用所述最优的模型分割方式,将所述目标神经网络模型分割成多个子模块。
[0008]可选的,所述根据各目标硬件平台的剩余算力,将所述目标神经网络模型分割成多个子模块,包括:根据各目标硬件平台的剩余算力,以及预设的分割条件和/或开销约束条件,搜索最优模型分割方式;根据搜索得到的最优模型分割方式,将所述目标神经网络模型分割成多个子模块。
[0009]可选的,所述将所述多个子模块分配给所述终端设备中的至少一个硬件平台,包括:根据所述各目标硬件平台对应的剩余算力,将所述多个子模块分配给至少一个目标硬件平台。
[0010]可选的,所述根据所述各目标硬件平台对应的剩余算力,将所述多个子模块分配给至少一个目标硬件平台,包括:若所述剩余算力最高的第一目标硬件平台对应的剩余算
力能够满足所述多个子模块运算所需的算力,则将所述多个子模块分配给所述第一目标硬件平台;若所述第一目标硬件平台对应的剩余算力无法满足所述多个子模块运算所需的算力,则按照剩余算力从高到低的顺序,将所述多个子模块分配给剩余算力最高的前N个目标硬件平台;N≥2。
[0011]可选的,所述按照剩余算力从高到低的顺序,将所述多个子模块分配给剩余算力最高的前N个目标硬件平台,包括:根据第i个目标硬件平台对应的剩余算力,确定所述第i个目标硬件平台的剩余算力能够运行的最大子模块个数M;为所述第i个目标硬件平台分配M个子模块;第i个目标硬件平台为剩余算力最高的前N
‑
1个目标硬件平台中的一个,且为前N
‑
1个目标硬件平台均分配子模块之后,剩余的子模块分配给第N个目标硬件平台。
[0012]可选的,所述为所述第i个目标硬件平台分配M个子模块,包括:为所述第i个目标硬件平台分配连续的M个子模块。
[0013]可选的,所述根据所述各目标硬件平台对应的剩余算力,将所述多个子模块分配给至少一个目标硬件平台,包括:将所述多个子模块分配给剩余算力最高的前N个目标硬件平台;所述剩余算力最高的前N个目标硬件平台的总剩余算力满足所述多个子模块运算所需的算力。
[0014]可选的,所述子模块包括如下至少一种:层、算子或者子图。
[0015]本专利技术实施例还提供了一种异构计算调度装置,包括:加载单元,用于加载目标神经网络模型;分割单元,用于将所述目标神经网络模型分割成多个子模块;分配单元,用于将所述多个子模块分配给所述终端设备中的至少一个硬件平台。
[0016]本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一种所述的异构计算调度方法的步骤。
[0017]本专利技术实施例还提供了另一种异构计算调度装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一种所述的异构计算调度方法的步骤。
[0018]与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:
[0019]将加载的目标神经网络分割成多个子模块,将多个子模块分配给终端设备的至少一个硬件平台。由此,可以由终端设备中不同的硬件平台对目标神经网络模型的一部分进行运算,从而能够实现神经网络模型在不同硬件平台上的统一调度,充分利用终端设备中不同的硬件平台的硬件资源,提高推理效率。
[0020]进一步,将多个连续的子模块分配给同一个目标硬件平台,可以减少通信开销和拷贝开销。
附图说明
[0021]图1是本专利技术实施例中的一种异构计算调度方法的流程图;
[0022]图2是本专利技术实施例中的一种模型分割成多个子模块的示意图;
[0023]图3是本专利技术实施例中的一种异构计算调度装置的结构示意图。
具体实施方式
[0024]如上述
技术介绍
中所述,在部署神经网络模型时,用户指定使用终端设备中特定的硬件平台,由该特定的硬件平台执行神经网络模型对应的运算。然而,仅由特定的硬件平台执行神经网络模型,无法充分利用终端设备中不同硬件平台的硬件资源。
[0025]在本专利技术实施例中,将加载的目标神经网络分割成多个子模块,将多个子模块分配给终端设备的至少一个硬件平台。由此,可以由终端设备中不同的硬件平台对目标神经网络模型的一部分进行运算,从而实现神经网络模型在不同硬件平台上的统一调度,能够充分利用终端设备中不同的硬件平台的硬件资源,提高推理效率。
[0026]为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。
[0027]本专利技术实施例提供了一种异构计算调度方法,参照图1,以下通过具体步骤进行详细说明。
[0028]步骤101,加载目标神经网络模型。
[0029]在具体实施中,当存在使用神经网络模型的应用需求时,可以选择与该应用需求对应目标神经网络模型,并加载所选择的目标神经网络模型。针对不同的应用需求,调度的神经网络模型可以不同。
[0030]在具体应用中,神经网络模型可以存储在终端设备的存储模块中,如终端设备的只读存储器(ROM)本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种异构计算调度方法,应用于终端设备,其特征在于,包括:加载目标神经网络模型;将所述目标神经网络模型分割成多个子模块;将所述多个子模块分配给所述终端设备中的至少一个硬件平台。2.如权利要求1所述的异构计算调度方法,其特征在于,所述将所述目标神经网络模型分割成多个子模块,包括:根据所述终端设备中各硬件平台的处理能力信息,确定所述终端设备中支持对所述子模块进行运算的目标硬件平台;根据各目标硬件平台的剩余算力,将所述目标神经网络模型分割成多个子模块。3.如权利要求2所述的异构计算调度方法,其特征在于,所述根据各目标硬件平台的剩余算力,将所述目标神经网络模型分割成多个子模块,包括:根据各目标硬件平台的剩余算力,以及预设的分割条件和/或开销约束条件,确定最优的模型分割方式;所述分割条件包括如下至少一种:同一目标硬件平台上的连续子模块个数最大化、子模块的总数最小化、目标硬件平台的剩余算力利用效率最大化;所述开销约束条件包括以下至少一种:所述子模块对应的内存拷贝开销、所述子模块对应的通信开销;采用所述最优的模型分割方式,将所述目标神经网络模型分割成多个子模块。4.如权利要求2所述的异构计算调度方法,其特征在于,所述根据各目标硬件平台的剩余算力,将所述目标神经网络模型分割成多个子模块,包括:根据各目标硬件平台的剩余算力,以及预设的分割条件和/或开销约束条件,搜索最优模型分割方式;根据搜索得到的最优模型分割方式,将所述目标神经网络模型分割成多个子模块。5.如权利要求2~4任一项所述的异构计算调度方法,其特征在于,所述将所述多个子模块分配给所述终端设备中的至少一个硬件平台,包括:根据所述各目标硬件平台对应的剩余算力,将所述多个子模块分配给至少一个目标硬件平台。6.如权利要求5所述的异构计算调度方法,其特征在于,所述根据所述各目标硬件平台对应的剩余算力,将所述多个子模块分配给至少一个目标硬件平台,包括:若所述剩余算力最高的第一目标硬件平台对应的剩余算力能够满足所述多个子模块运算所需的算力,则将所述多个子模块分配给所述第一目标硬件平台;若所述第一目标硬件平台对应的剩余算力无法满足所述...
【专利技术属性】
技术研发人员:牛孝通,许哲豪,
申请(专利权)人:展讯通信上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。