一种任务编译方法、装置和编译器制造方法及图纸

技术编号:34553809 阅读:14 留言:0更新日期:2022-08-17 12:39
本发明专利技术实施例提供了一种任务编译方法、装置和编译器。该方法包括:编译器接收用户输入的至少一个编译任务,编译器判断编译任务是否包括多个分支任务,若判断出编译任务包括多个分支任务时,则根据多个分支任务对获取的嵌入式神经网络处理器NPU的硬件资源进行划分,生成硬件分配结果,根据硬件分配结果、用户输入的编译参数和获取的每个NPU核心计算需要的核心参数,生成第一编译指令;编译器将第一编译指令发送给调度器,以供调度器根据第一编译指令对硬件资源进行调度,从而通过编译器实现了合理分配NPU的硬件资源,提高了NPU的运算速度。度。度。

【技术实现步骤摘要】
一种任务编译方法、装置和编译器


[0001]本专利技术实施例涉及人工智能(Artificial Intelligence,AI)
,尤其涉及一种任务编译方法、装置和编译器。

技术介绍

[0002]随着科技的发展,AI产业发展迅速,对于图像或视频的处理需求在不断增加。嵌入式神经网络处理器(Nueral

Network Processing Unit,NPU)作为一种专门用于加速神经网络推理的处理器,NPU主要采用专用集成电路(Application Specific Integrated Circuit,ASIC)技术通过硬件模拟神经网络的方式,弥补了中央处理单元(Central Processing Unit,CPU)、图像处理单元(Graphics Processing Unit,GPU)对于神经网络计算架构设计上的不足,大大提高了AI芯片的运算速度。
[0003]相关技术中,为了进一步提高AI芯片的运算速度,对于NPU的设计不可避免地朝着多核架构的方向发展。目前,多核NPU的发展尚未形成完整的体系,缺乏成熟且具有针对性的编译器分析前端模型,无法根据任务对后端硬件配置进行合理分配,导致运算速度有所降低。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种任务编译方法、装置和编译器,通过编译器实现合理分配NPU的硬件资源,用以提高NPU的运算速度。
[0005]第一方面,本专利技术实施例提供了一种任务编译方法,所述方法包括:
[0006]接收用户输入的至少一个编译任务;
[0007]判断所述编译任务是否包括多个分支任务;
[0008]若判断出所述编译任务包括多个分支任务时,则根据多个分支任务对获取的嵌入式神经网络处理器NPU的硬件资源进行划分,生成硬件分配结果;
[0009]根据所述硬件分配结果、用户输入的编译参数和获取的每个NPU核心计算需要的核心参数,生成第一编译指令;
[0010]将所述第一编译指令发送给调度器,以供所述调度器根据所述第一编译指令对所述硬件资源进行调度。
[0011]可选地,所述根据多个分支任务对获取的嵌入式神经网络处理器NPU的硬件资源进行划分,生成硬件分配结果,包括:
[0012]对多个分支任务进行聚类,生成多个任务类别数据;
[0013]根据多个任务类别数据对所述硬件资源进行划分,生成硬件分配结果。
[0014]可选地,还包括:
[0015]若判断出所述编译任务不包括分支任务时,则根据所述编译参数和核心参数,生成第二编译指令;
[0016]将所述第二编译指令发送给调度器,以供所述调度器根据所述第二编译指令对所
述硬件资源进行调度。
[0017]可选地,所述编译任务的数量为多个,所述判断所述编译任务是否包括多个分支任务之前,还包括:
[0018]若判断出所述编译任务的数目小于或等于所述NPU集群的数目时,则将每个编译任务分配至对应的NPU集群,并行执行判断所述编译任务是否包括多个分支任务的步骤。
[0019]可选地,所述编译任务的数量为多个,所述方法还包括:
[0020]若判断出所述编译任务的数目大于所述NPU集群的数目时,则计算每个编译任务的计算需求量;
[0021]从用户输入的多个编译任务中选取出特定数目个编译任务,所述特定数目个编译任务的计算需求量均小于用户输入的多个编译任务中其它编译任务的计算需求量,所述特定数目等于所述NPU集群的数目;
[0022]将特定数目个编译任务中的每个编译任务分配至对应的NPU集群,并行执行判断所述编译任务是否包括多个分支任务的步骤。
[0023]第二方面,本专利技术实施例提供了一种任务编译装置,所述装置包括:
[0024]接收模块,用于接收用户输入的至少一个编译任务;
[0025]获取模块,用于获取NPU的硬件资源;
[0026]判断模块,用于判断所述编译任务是否包括多个分支任务;
[0027]生成模块,用于若所述判断模块判断出所述编译任务包括多个分支任务时,则根据多个分支任务对所述硬件资源进行划分,生成硬件分配结果;根据所述硬件分配结果、编译参数和核心参数,生成第一编译指令;
[0028]发送模块,用于将所述第一编译指令发送给调度器,以供所述调度器根据所述第一编译指令对所述硬件资源进行调度。
[0029]可选地,所述生成模块包括:
[0030]第一生成子模块,用于对多个分支任务进行聚类,生成多个任务类别数据;
[0031]第二生成子模块,用于根据多个任务类别数据对所述硬件资源进行划分,生成硬件分配结果。
[0032]可选地,还包括:
[0033]生成模块还用于若所述判断模块判断出所述编译任务不包括分支任务时,则根据所述编译参数和核心参数,生成第二编译指令;
[0034]发送模块还用于将所述第二编译指令发送给调度器,以供所述调度器根据所述第二编译指令对所述硬件资源进行调度。
[0035]第三方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行第一方面或第一方面任一可能的实现方式中的任务编译方法。
[0036]第四方面,本专利技术实施例提供一种编译器,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行第一方面或第一方面任一可能的实现方式中的任务编译方法。
[0037]本专利技术实施例提供的技术方案中,编译器接收用户输入的至少一个编译任务,编
译器判断编译任务是否包括多个分支任务,若判断出编译任务包括多个分支任务时,则根据多个分支任务对获取的嵌入式神经网络处理器NPU的硬件资源进行划分,生成硬件分配结果,根据硬件分配结果、用户输入的编译参数和获取的每个NPU核心计算需要的核心参数,生成第一编译指令;编译器将第一编译指令发送给调度器,以供调度器根据第一编译指令对硬件资源进行调度,从而通过编译器实现了合理分配NPU的硬件资源,提高了NPU的运算速度。
【附图说明】
[0038]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0039]图1为本专利技术实施例提供的一种任务编译方法的流程图;
[0040]图2为本专利技术实施例提供的另一种任务编译方法的流程图;
[0041]图3为本专利技术实施例提供的另一种任务编译方法的流程图;
[0042]图4为本专利技术实施例提供的一种任务编译装置的结构示意图;
[0043]图5为本专利技术实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务编译方法,其特征在于,所述方法包括:接收用户输入的至少一个编译任务;判断所述编译任务是否包括多个分支任务;若判断出所述编译任务包括多个分支任务时,则根据多个分支任务对获取的嵌入式神经网络处理器NPU的硬件资源进行划分,生成硬件分配结果;根据所述硬件分配结果、用户输入的编译参数和获取的每个NPU核心计算需要的核心参数,生成第一编译指令;将所述第一编译指令发送给调度器,以供所述调度器根据所述第一编译指令对所述硬件资源进行调度。2.根据权利要求1所述的方法,其特征在于,所述根据多个分支任务对获取的嵌入式神经网络处理器NPU的硬件资源进行划分,生成硬件分配结果,包括:对多个分支任务进行聚类,生成多个任务类别数据;根据多个任务类别数据对所述硬件资源进行划分,生成硬件分配结果。3.根据权利要求1所述的方法,其特征在于,还包括:若判断出所述编译任务不包括分支任务时,则根据所述编译参数和核心参数,生成第二编译指令;将所述第二编译指令发送给调度器,以供所述调度器根据所述第二编译指令对所述硬件资源进行调度。4.根据权利要求1所述的方法,其特征在于,所述编译任务的数量为多个,所述判断所述编译任务是否包括多个分支任务之前,还包括:若判断出所述编译任务的数目小于或等于所述NPU集群的数目时,则将每个编译任务分配至对应的NPU集群,并行执行判断所述编译任务是否包括多个分支任务的步骤。5.根据权利要求1所述的方法,其特征在于,所述编译任务的数量为多个,所述方法还包括:若判断出所述编译任务的数目大于所述NPU集群的数目时,则计算每个编译任务的计算需求量;从用户输入的多个编译任务中选取出特定数目个编译任务,所述特定数目个编译任务的计算需求量均小于用户输入的多个编译任务中其它编译任务的计算需求量,所述特定数目等于所述NP...

【专利技术属性】
技术研发人员:马海涛
申请(专利权)人:展讯通信天津有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1