当前位置: 首页 > 专利查询>赛灵思公司专利>正文

神经网络编译方法、系统及相应异构计算平台技术方案

技术编号:24035007 阅读:26 留言:0更新日期:2020-05-07 01:39
本发明专利技术公开了一种神经网络编译方法、系统及相应异构计算平台。该方法包括:获取经训练的NN模型;将经训练的NN模型输入NN编译器,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。由此实现运行时的图优化。进一步地,上述图结构信息可以实现为NN二进制文件中的节点资源池,连同诸如文件头和自由分段设置,能够提升针对各类神经网络算法的编译普适性和灵活性。

Neural network compiling method, system and corresponding heterogeneous computing platform

【技术实现步骤摘要】
神经网络编译方法、系统及相应异构计算平台
本专利技术涉及深度学习领域,尤其涉及一种用于神经网络的编译方法、编译系统以及相应的异构计算平台。
技术介绍
人工智能近年得到迅速发展,在图像分类、检测、视频和语音处理等领域取得良好的应用效果,并且依然具备极大的发展前景。神经网络是人工智能应用的核心,深度学习神经网络算法是其中最常见的一种神经网络模型。由于其计算密集(计算所需乘加操作为G数量级)和数据密集(计算所需参数为M至数百M字节数量级)的特点,基于传统通用处理器CPU的计算平台并不能很好地满足深度学习算法的性能要求,近几年涌现出大量加速神经网络计算的异构平台。为此,利用FPGA、GPU、ASIC等高并行度异构计算平台进行神经网络加速器设计成为新的研究热点。不管是使用GPU,还是FPGA抑或是ASIC,都是凭借其架构对神经网络算法的友好性达到比CPU更好的效率。在这其中,FPGA和ASIC以其高定制性、高能效比和低延时等优势而拥有良好的市场前景。为了将训练之后的深度神经网络进行部署,需要将神经网络算法编译成计算平台所能执行的二进制指令码。如何针对各类神经网络及相应计算平台进行灵活的指令编译和优化,以确保计算平台对编译而成的二进制代码进行高效执行,是深度学习领域所面临的一大挑战。因此,需要一种针对神经网络的优化编译方案。
技术实现思路
为了解决上述至少一个问题,本专利技术提出了一种神经网络编译方法、系统及相应异构计算平台,通过在NN二进制文件中包含图结构信息,实现运行时代码图优化。进一步地,上述图结构信息可以实现为NN二进制文件中的节点资源池,连同诸如文件头和自由分段设置,能够提升针对各类神经网络算法的编译普适性和灵活性。根据本专利技术的一个方面,提出了一种用于神经网络(NN)的编译方法,包括:获取经训练的NN模型;将经训练的NN模型输入NN编译器,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。可选地,所述NN编译器可以包括NN优化编译器和NN汇编器,并且将经训练的NN模型输入NN编译器,以生成包括与所述NN模型相对应的图结构信息的NN汇编文件包括:将经训练的NN模型输入所述NN优化编译器,以生成包括与所述NN模型相对应的图结构信息的NN汇编文件;以及将NN汇编文件输入所述NN汇编器,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。可选地,所述NN优化编译器基于神经网络专用处理器的应用程序二进制接口(ABI)规则,生成所述NN汇编文件。可选地,所述NN二进制文件具有符合所述ABI规则的文件格式。可选地,所述NN二进制文件可以包括用于维护图结构各节点关系的节点资源池。可选地,所述节点资源池可以包括顺序编号的多个节点项,每个节点项可以包括用于存放其关联节点信息的索引子项。可选地,所述节点项还可以包括如下至少一项:参数信息项、代码信息项、输入特征图数据信息项、以及输出特征图数据信息项。这些信息项能够帮助实现动态调度以进行自动化部署。可选地,所述NN二进制文件还可以包括如下至少一项:用于描述执行所述NN二进制文件的神经网络计算平台相关信息的文件头;用于存放指令信息、参数数据信息、和/或特征图数据相关信息的分段;以及用于存放各分段相关符号的字符串名称的字符串表。根据本专利技术的另一方面,还提供了一种神经网络计算平台处理方法,包括:对根据如上任一项生成的NN二进制文件进行运行时优化,其中,所述运行时优化至少部分基于所述图结构信息进行。可选地,所述计算平台可以包括多个执行单元,并且所述NN二进制文件包括用于描述执行所述NN二进制文件的相关执行单元信息的文件头,所述处理方法还可以包括:所述执行单元基于所述文件头包含的相关执行单元信息执行所述NN二进制文件。根据本专利技术的另一方面,还提供了一种异构计算平台的编译方法,包括:执行根据如上任一项所述的方法以生成所述NN二进制文件;使用主机编译器工具链编译和汇编用户用高级语言开发的神经网络应用程序,依次生成相应的主机汇编文件和主机二进制文件,其中,所述NN二进制文件和所述主机二进制文件具有兼容的可执行格式。可选地,该方法还可以包括:使用主机链接器链接NN二进制文件和主机二进制文件,以生成单一的混合链接可执行文件。可选地,所述二进制文件可以是ELF二进制文件。根据本专利技术的另一方面,还提供了一种用于神经网络(NN)的编译系统,包括:NN优化编译器,用于接收经训练的神经网络(NN)模型,以生成包括与所述NN模型相对应的图结构信息的NN汇编文件;以及NN汇编器,用于接收所述NN汇编文件,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。可选地,所述NN优化编译器可以基于神经网络专用处理器的应用程序二进制接口(ABI)规则,生成所述NN汇编文件。可选地,所述NN汇编器可以生成符合所述ABI规则的所述NN二进制文件。可选地,所述NN二进制文件可以包括用于维护图结构各节点关系的节点资源池。可选地,所述节点资源池可以包括顺序编号的多个节点项,每个节点项可以包括用于存放其关联节点信息的索引子项,并且所述节点项还可以包括如下至少一项:参数信息项、代码信息项、输入特征图数据信息项、以及输出特征图数据信息项。可选地,所述NN二进制文件还可以包括如下至少一项:用于描述执行所述NN二进制文件的神经网络计算平台相关信息的文件头;用于存放指令信息、参数数据信息、和/或特征图数据相关信息的分段;以及用于存放各分段相关符号的字符串名称的字符串表。根据本专利技术的另一方面,还提供了一种异构计算平台的编译系统,包括:如上任一项所述的编译系统;主机编译器,用于编译用户用高级语言开发的神经网络应用程序,生成相应的主机汇编文件;以及主机汇编器,用于汇编主机汇编文件,生成主机二进制文件,其中,所述NN二进制文件和所述主机二进制文件具有兼容的可执行格式。可选地,该编译系统还可以包括:主机链接器,用于链接NN二进制文件和主机二进制文件,以生成单一的混合链接可执行文件。根据本专利技术的另一方面,还提供了一种异构计算平台,包括:主机加载器,用于将如上所述的主机二进制文件中的相关指令和数据加载到主机内存空间;神经网络专用处理器运行时引擎,用于对如上所述的NN二进制文件进行运行时优化,所述运行时优化至少部分基于所述图结构信息进行;神经网络专用处理器加载器,用于将经运行时优化的所述NN二进制文件的相关指令和数据加载到神经网络专用处理器内存空间;主机,用于执行基于所述主机二进制文件中的相关指令和数据进行操作;以及神经网络专用处理器,用于执行基于所述NN二进制文件中的相关指令和数据进行NN加速计算。所述计算平台还可以包括多个专用寄存器,各自用于寄存指定所述NN二进制文件中针对特定节点的分段信息的加载地址。本专利技术通过在NN二进制文件中包含图结构信息,实现了在代码在加载运行时的优化,由此进一步提升代码执行效率。上述图结构信息可以实现为符合专用ABI模型的文件结构,例本文档来自技高网...

【技术保护点】
1.一种用于神经网络(NN)的编译方法,包括:/n获取经训练的NN模型;/n将经训练的NN模型输入NN编译器,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。/n

【技术特征摘要】
1.一种用于神经网络(NN)的编译方法,包括:
获取经训练的NN模型;
将经训练的NN模型输入NN编译器,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。


2.如权利要求1所述的方法,其中,所述NN编译器包括NN优化编译器和NN汇编器,并且将经训练的NN模型输入NN编译器,以生成包括与所述NN模型相对应的图结构信息的NN汇编文件包括:
将经训练的NN模型输入所述NN优化编译器,以生成包括与所述NN模型相对应的图结构信息的NN汇编文件;以及
将NN汇编文件输入所述NN汇编器,以生成包括与所述NN模型相对应的图结构信息的NN二进制文件。


3.如权利要求2所述的方法,其中,所述NN优化编译器基于神经网络专用处理器的应用程序二进制接口(ABI)规则,生成所述NN汇编文件。


4.如权利要求3所述的方法,其中,所述NN二进制文件具有符合所述ABI规则的文件格式。


5.如权利要求1所述的方法,其中,所述NN二进制文件包括用于维护图结构各节点关系的节点资源池。


6.如权利要求5所述的方法,其中,所述节点资源池包括顺序编号的多个节点项,每个节点项包括用于存放其关联节点信息的索引子项。


7.如权利要求6所述的方法,其中,所述节点项还包括如下至少一项:
参数信息项、代码信息项、输入特征图数据信息项、以及输出特征图数据信息项。


8.如权利要求5所述的方法,其中,所述NN二进制文件还包括如下至少一项:
用于描述执行所述NN二进制文件的神经网络计算平台相关信息的文件头;
用于存放指令信息、参数数据信息、和/或特征图数据相关信息的分段;以及
用于存放各分段相关符号的字符串名称的字符串表。


9.一种神经网络计算平台处理方法,包括:
对根据权利要求1-8中任一项生成的NN二进制文件进行运行时优化,其中,所述运行时优化至少部分基于所述图结构信息进行。


10.如权利要求9所述的方法,其中,所述计算平台包括多个执行单元,并且所述NN二进制文件包括用于描述执行所述NN二进制文件的相关执行单元信息的文件头,
所述方法还包括:
所述执行单元基于所述文件头包含的相关执行单元信息执行所述NN二进制文件。


11.一种异构计算平台的编译方法,包括:
执行根据权利要求1-8中任一项所述的方法以生成所述NN二进制文件;
使用主机编译器工具链编译和汇编用户用高级语言开发的神经网络应用程序,依次生成相应的主机汇编文件和主机二进制文件,
其中,所述NN二进制文件和所述主机二进制文件具有兼容的可执行格式。


12.如权利要求11所述的方法,还包括:
使用主机链接器链接NN二进制文件和主机二进制文件,以生成单一的混合链接可执行文件。


13.如...

【专利技术属性】
技术研发人员:王晓静孙晓明李天平
申请(专利权)人:赛灵思公司
类型:发明
国别省市:美国;US

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

1