人工智能加速器的指令生成方法和装置、电子设备制造方法及图纸

技术编号:37990402 阅读:8 留言:0更新日期:2023-06-30 10:05
公开了一种人工智能加速器的指令生成方法、装置及电子设备,涉及集成电路领域。该方法包括:确定人工智能AI加速器需要处理的神经网络模型对应的第一中间表示指令序列;基于AI加速器的硬件资源,利用至少一种代码生成方式分别将第一中间表示指令序列转换为至少一个第二中间表示指令序列;基于AI加速器的硬件资源和至少一个第二中间表示指令序列,生成AI加速器可执行的指令。由于该技术方案中是在充分考虑了AI加速器的硬件资源的基础上,对神经网络模型进行编译以生成AI加速器可执行的指令的,因此使得最终生成的AI加速器可执行的指令能够更好发挥出AI加速器的性能,提高用户的使用体验。体验。体验。

【技术实现步骤摘要】
人工智能加速器的指令生成方法和装置、电子设备


[0001]本公开涉及集成电路
,尤其涉及一种人工智能加速器的指令生成方法和装置、电子设备。

技术介绍

[0002]在高性能人工智能(Artificial Intelligence,AI)加速器(或简称“AI加速器”)的编译器的优化过程(即将源程序处理生成为AI加速器可执行的机器指令的过程)中,涉及前端源程序解析、代码生成、指令调度、资源分配和汇编等步骤,这些步骤大多还处于独立运行和求解的状态,且部分步骤之间缺乏关联和协同。这样一来,导致编译器最终的运行结果不能满足全局最优要求,最终编译得到的机器指令不是全局最优解,不能充分发挥出AI加速器的性能。

技术实现思路

[0003]相关技术的人工智能加速器的编译器的优化过程中,各个关键步骤均是单独运行和求解,这样使得编译器最终编译得到的机器指令不是全局最优解,无法发挥出AI加速器的性能。
[0004]为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种人工智能加速器的指令生成方法和装置、电子设备。本公开提供的AI加速器的指令生成方案中,在编译神经网络模型的过程中,充分考虑到了硬件资源,可以使最终编译得到的机器指令达到全局最优解,进而使得机器指令能够更好发挥出AI加速器的性能。
[0005]根据本公开的一个方面,提供了一种人工智能加速器的指令生成方法,该方法包括:首先确定AI加速器需要处理的神经网络模型对应的第一中间表示指令序列;然后,基于AI加速器的硬件资源,利用至少一种代码生成方式分别将第一中间表示指令序列转换为至少一个第二中间表示指令序列;最后,基于AI加速器的硬件资源和至少一个第二中间表示指令序列,生成AI加速器可执行的指令。
[0006]根据本公开的一个方面,提供了一种人工智能加速器的指令生成装置,包括:确定模块、代码生成模块和指令生成模块。其中,确定模块,用于确定人工智能AI加速器需要处理的神经网络模型对应的第一中间表示指令序列;代码生成模块,用于基于AI加速器的硬件资源,利用至少一种代码生成方式分别将确定模块确定的第一中间表示指令序列转换为至少一个第二中间表示指令序列;指令生成模块,用于基于AI加速器的硬件资源和代码生成模块转换的至少一个第二中间表示指令序列,生成AI加速器可执行的指令。
[0007]根据本公开的一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一方面提供的方法。
[0008]根据本公开的一个方面,提供了一种电子设备,该电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一方面提供的方法。
[0009]基于上述方案,在对需要AI加速器进行运算的神经网络模型进行编译时,会在整体上考虑AI加速器的硬件资源的同时,采用多种代码生成方式得到多种低层次的中间表示指令序列(即第二中间表示指令序列),进而生成最终AI加速器可以执行的指令。可以看出,由于在对神经网络模型进行编译的整个过程中,充分考虑了AI加速器的硬件资源。因此,使得最终生成的AI加速器可执行的指令在AI加速器上运行时能够更好发挥出AI加速器的性能,提高用户的使用体验。
附图说明
[0010]通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
[0011]图1是相关技术提供的一种编译流程示意图。
[0012]图2是本公开提供的一种编译流程示意图。
[0013]图3是本公开提供的一种编译侧设备的结构示意图。
[0014]图4是本公开提供的一种运行侧设备的结构示意图。
[0015]图5是本公开提供的一种人工智能加速器的指令生成方法的流程示意图一。
[0016]图6是本公开提供的另一种编译流程示意图。
[0017]图7是本公开提供的一种人工智能加速器的指令生成方法的流程示意图二。
[0018]图8是本公开提供的一种神经网络模型的运算流程图。
[0019]图9是本公开提供的一种人工智能加速器的指令生成方法的流程示意图三。
[0020]图10是本公开提供的一种人工智能加速器的指令生成方法的流程示意图四。
[0021]图11是本公开提供的一种待处理对象的划分结果示意图。
[0022]图12是本公开提供的一种人工智能加速器的指令生成方法的流程示意图五。
[0023]图13是本公开提供的一种迭代拆分代码生成方式的迭代示意图。
[0024]图14是本公开提供的一种人工智能加速器的指令生成方法的流程示意图六。
[0025]图15是本公开提供的一种运算窗口的示意图。
[0026]图16是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图一。
[0027]图17是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图二。
[0028]图18是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图三。
[0029]图19是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图四。
[0030]图20是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图五。
[0031]图21是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图六。
[0032]图22是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图七。
[0033]图23是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图八。
[0034]图24是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图九。
[0035]图25是本公开提供的一种滑动窗口代码生成方式中的子中间表示指令序列的生成示意图十。
[0036]图26是本公开提供的一种人工智能加速器的指令生成方法的流程示意图七。
[0037]图27是本公开提供的一种人工智能加速器的指令生成方法的流程示意图八。
[0038]图28是本公开提供的一种人工智能加速器的指令生成方法的流程示意图九。
[0039]图29是本公开提供的一种人工智能加速器的指令生成方法的流程示意图十。
[0040]图30是本公开提供的一种滑动窗口代码生成方式生成的指令运行结果示意图。
[0041]图31是本公开提供的一种人工智能加速器的指令生成装置的结构示意图。
具体实施方式
[0042]为了解释本公开,下面将参考附图详细地描述本公开的示例实施例,显然,所描述的实施例仅是本公开的一部分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种人工智能加速器的指令生成方法,所述方法包括:确定人工智能AI加速器需要处理的神经网络模型对应的第一中间表示指令序列;基于所述AI加速器的硬件资源,利用至少一种代码生成方式分别将所述第一中间表示指令序列转换为至少一个第二中间表示指令序列;基于所述AI加速器的硬件资源和所述至少一个第二中间表示指令序列,生成所述AI加速器可执行的指令。2.根据权利要求1所述的方法,其中,所述基于所述AI加速器的硬件资源,利用至少一种代码生成方式分别将所述第一中间表示指令序列转换为至少一个第二中间表示指令序列,包括:根据所述第一中间表示指令序列,确定所述神经网络模型中各神经网络层对应的待处理对象,以及所述各神经网络层对应的待处理对象之间的第一依赖关系;根据所述AI加速器的硬件资源和所述第一依赖关系,生成所述至少一个第二中间表示指令序列中第三中间表示指令序列包括的多个第一子中间表示指令序列。3.根据权利要求2所述的方法,其中,所述根据所述AI加速器的硬件资源和所述第一依赖关系,生成所述第三中间表示指令序列中的多个第一子中间表示指令序列,包括:根据所述AI加速器的硬件资源和所述第一依赖关系,对所述待处理对象进行拆分得到多个待处理子对象;根据所述第一依赖关系,确定所述各神经网络层对应的多个待处理子对象之间的第二依赖关系;根据所述第二依赖关系,生成所述多个第一子中间表示指令序列。4.根据权利要求3所述的方法,其中,所述根据所述第二依赖关系,生成所述多个第一子中间表示指令序列,包括:根据所述第二依赖关系,确定与所述神经网络模型的输出对象中的多个第一待处理子对象存在依赖关系的第二待处理子对象;基于所述多个第一待处理子对象、与各所述第一待处理子对象存在依赖关系的所述第二待处理子对象,以及所述第一待处理子对象和所述第二待处理子对象之间的依赖关系,生成与所述多个第一待处理子对象对应的所述多个第一子中间表示指令序列。5.根据权利要求2所述的方法,其中,所述根据所述AI加速器的硬件资源和所述第一依赖关系,生成所述第三中间表示指令序列中的多个第一子中间表示指令序列,包括:根据所述AI加速器的硬件资源和所述第一依赖关系,确定所述各神经网络层对应的待处理对象的运算窗口;根据所述待处理对象的运算窗口和所述第一依赖关系,对所述待处理对象进行拆分得到多个待处理子对象,并确定所述各神经网络层对应的多个待处理子对象之间的第二依赖关系;根据所述第二依赖关系和所述待处理对象的运算窗口,生成所述多个第一子中间表示指令序列。6.根据权利要求1所述的方法,其中,所述基于所述AI加速器的硬件资源,利用至少一种代码生成方式分别将所述第一中间表示指令序列转换为至少一个第二中间表示指令序列,包括:
根据所述第一中间表示指令序列,确定所述神经网络模型的运算流程;基于所述AI加速器的硬件资源和所述神经网络模型的运算流程,生成所述至少一个第二中间表示指令序列中的第四中间表示指令序列。...

【专利技术属性】
技术研发人员:申俊志
申请(专利权)人:上海安亭地平线智能交通技术有限公司
类型:发明
国别省市:

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

1