【技术实现步骤摘要】
人工智能加速器的指令生成方法和装置、电子设备
[0001]本公开涉及集成电路
,尤其涉及一种人工智能加速器的指令生成方法和装置、电子设备。
技术介绍
[0002]在高性能人工智能(Artificial Intelligence,AI)加速器(或简称“AI加速器”)的编译器的优化过程(即将源程序处理生成为AI加速器可执行的机器指令的过程)中,涉及前端源程序解析、代码生成、指令调度、资源分配和汇编等步骤,这些步骤大多还处于独立运行和求解的状态,且部分步骤之间缺乏关联和协同。这样一来,导致编译器最终的运行结果不能满足全局最优要求,最终编译得到的机器指令不是全局最优解,不能充分发挥出AI加速器的性能。
技术实现思路
[0003]相关技术的人工智能加速器的编译器的优化过程中,各个关键步骤均是单独运行和求解,这样使得编译器最终编译得到的机器指令不是全局最优解,无法发挥出AI加速器的性能。
[0004]为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种人工智能加速器的指令生成方法和装置、电子设备。本公开提供的AI加速器的指令生成方案中,在编译神经网络模型的过程中,充分考虑到了硬件资源,可以使最终编译得到的机器指令达到全局最优解,进而使得机器指令能够更好发挥出AI加速器的性能。
[0005]根据本公开的一个方面,提供了一种人工智能加速器的指令生成方法,该方法包括:首先确定AI加速器需要处理的神经网络模型对应的第一中间表示指令序列;然后,基于AI加速器的硬件资源,利用至少一种代码生成方式 ...
【技术保护点】
【技术特征摘要】
1.一种人工智能加速器的指令生成方法,所述方法包括:确定人工智能AI加速器需要处理的神经网络模型对应的第一中间表示指令序列;基于所述AI加速器的硬件资源,利用至少一种代码生成方式分别将所述第一中间表示指令序列转换为至少一个第二中间表示指令序列;基于所述AI加速器的硬件资源和所述至少一个第二中间表示指令序列,生成所述AI加速器可执行的指令。2.根据权利要求1所述的方法,其中,所述基于所述AI加速器的硬件资源,利用至少一种代码生成方式分别将所述第一中间表示指令序列转换为至少一个第二中间表示指令序列,包括:根据所述第一中间表示指令序列,确定所述神经网络模型中各神经网络层对应的待处理对象,以及所述各神经网络层对应的待处理对象之间的第一依赖关系;根据所述AI加速器的硬件资源和所述第一依赖关系,生成所述至少一个第二中间表示指令序列中第三中间表示指令序列包括的多个第一子中间表示指令序列。3.根据权利要求2所述的方法,其中,所述根据所述AI加速器的硬件资源和所述第一依赖关系,生成所述第三中间表示指令序列中的多个第一子中间表示指令序列,包括:根据所述AI加速器的硬件资源和所述第一依赖关系,对所述待处理对象进行拆分得到多个待处理子对象;根据所述第一依赖关系,确定所述各神经网络层对应的多个待处理子对象之间的第二依赖关系;根据所述第二依赖关系,生成所述多个第一子中间表示指令序列。4.根据权利要求3所述的方法,其中,所述根据所述第二依赖关系,生成所述多个第一子中间表示指令序列,包括:根据所述第二依赖关系,确定与所述神经网络模型的输出对象中的多个第一待处理子对象存在依赖关系的第二待处理子对象;基于所述多个第一待处理子对象、与各所述第一待处理子对象存在依赖关系的所述第二待处理子对象,以及所述第一待处理子对象和所述第二待处理子对象之间的依赖关系,生成与所述多个第一待处理子对象对应的所述多个第一子中间表示指令序列。5.根据权利要求2所述的方法,其中,所述根据所述AI加速器的硬件资源和所述第一依赖关系,生成所述第三中间表示指令序列中的多个第一子中间表示指令序列,包括:根据所述AI加速器的硬件资源和所述第一依赖关系,确定所述各神经网络层对应的待处理对象的运算窗口;根据所述待处理对象的运算窗口和所述第一依赖关系,对所述待处理对象进行拆分得到多个待处理子对象,并确定所述各神经网络层对应的多个待处理子对象之间的第二依赖关系;根据所述第二依赖关系和所述待处理对象的运算窗口,生成所述多个第一子中间表示指令序列。6.根据权利要求1所述的方法,其中,所述基于所述AI加速器的硬件资源,利用至少一种代码生成方式分别将所述第一中间表示指令序列转换为至少一个第二中间表示指令序列,包括:
根据所述第一中间表示指令序列,确定所述神经网络模型的运算流程;基于所述AI加速器的硬件资源和所述神经网络模型的运算流程,生成所述至少一个第二中间表示指令序列中的第四中间表示指令序列。...
【专利技术属性】
技术研发人员:申俊志,
申请(专利权)人:上海安亭地平线智能交通技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。