一种面向神经网络处理器的高效固件运行系统技术方案

技术编号:39058325 阅读:18 留言:0更新日期:2023-10-12 19:51
本发明专利技术属于嵌入式处理器固件技术领域,具体涉及一种面向神经网络处理器的高效固件运行系统,旨在解决现有的神经网络处理器的固件部署速度慢、占用空间大以及对神经网络编译器编译后生成的文件处理效率低的问题。本系统包括:文件预处理单元,配置为获取神经网络编译器编译后生成的文件并预处理,得到预处理文件;嵌入式硬件平台,配置为将预处理文件存储至设定内存地址;高效固件,配置为读取预处理文件并解析,获取神经网络模型对应的算子流文件,并通过预构建的算子执行高效优化方法顺序执行各算子,直至完成一次完整的神经网络模型的计算。本发明专利技术提升了对神经网络编译器编译后生成的文件处理效率,提高了固件部署速度,并减小了占用空间。减小了占用空间。减小了占用空间。

【技术实现步骤摘要】
一种面向神经网络处理器的高效固件运行系统


[0001]本专利技术属于嵌入式处理器固件
,具体涉及一种面向神经网络处理器的高效固件运行系统。

技术介绍

[0002]近年来,随着计算机算力的极大提升,神经网络技术成为人工智能学术研究方向及工业化实践的基础,并且已经在计算机视觉、语音处理、自然语言处理、模式识别等领域得到广泛应用,取得了瞩目的成绩。为了应对神经网络普遍具有计算量高、数据量高的特点,神经网络处理器专门针对神经网络的结构、算法、算子等进行了特别的加速优化。比起在通用处理器CPU、通用图形处理器GPU上进行计算,神经网络处理器具有处理更加快速、功耗更低等优点。因此,近年来,神经网络处理器的微型化、集成化愈发成熟,在终端小微型设备上的神经网络的快速部署与应用得以实现,在日常生活、工业生产等场景下发挥了重要作用。
[0003]神经网络处理器的硬件设计决定了其理论性能上限,与之对应的,神经网络处理器的固件直接决定了神经网络处理器对于上层应用的性能发挥程度,如果固件性能不佳,不仅部署速度慢、占用空间大,而且文件处理效率也比较低。因此,实现一个针对特定神经网络处理器的,并且契合其所在硬件平台的神经网络处理器高效固件(即对神经网络编译器编译后的文件处理固件)是非常重要的。其技术难点在于,首先要对神经网络处理器本身要有清晰的了解:神经网络处理器的架构、支持算子、算子执行流程、寄存器配置等;其次要对神经网络处理器所在的硬件平台,特别是通用处理器CPU要有清晰的了解:CPU的架构、CPU的指令集、中断处理、确认编写的固件在CPU上正确执行等;再者要对神经网络处理器在处理神经网络过程中所涉及到的其他硬件设备要有清晰的了解:内存、DMA、定时器等;最后,也要整体地从上游的神经网络应用,直至下游的神经网络处理器处理完毕为止的全流程要有清晰的了解:典型神经网络框架的使用、生成神经网络并训练、针对此神经网络处理器的神经网络编译器、神经网络模型的编译转换和文件预处理、在神经网络处理器的计算过程、计算完成后的后处理等。
[0004]本申请在解决以上难点的基础上,针对神经网络处理器及其所在硬件平台的特殊架构,研发出一套具有高效处理能力的固件处理系统。

技术实现思路

[0005]为了解决现有技术中的上述问题,即为了解决现有的神经网络处理器的固件部署速度慢、占用空间大以及对神经网络编译器编译后生成的文件处理效率低的问题,本专利技术第一方面,提出了一种面向神经网络处理器的高效固件运行系统,用于对神经网络编译器编译后生成的文件的处理,该系统包括:
[0006]文件预处理单元,配置为当检测到所述神经网络编译器编译完成后,获取所述神经网络编译器对输入的神经网络模型编译后生成的文件,作为输入文件;对所述输入文件
进行预处理,得到预处理文件,并发送至嵌入式硬件平台;所述预处理包括文件合并、文件转换、文件头设计;
[0007]嵌入式硬件平台,配置为将接收的预处理文件存储至设定内存地址;还配置为将编译好的高效固件加载至设定程序入口地址中进行启动运行;
[0008]高效固件,配置为建立与所述嵌入式硬件平台的连接,并确认所述嵌入式硬件平台各模块是否正常运行,若正常运行,则初始化硬件设备;所述初始化的硬件设备包括串口传输设备、神经网络处理器、中断设备、DMA、定时器;
[0009]还配置为读取所述嵌入式硬件平台存储的预处理文件并解析,获取神经网络模型对应的算子流文件,解析并初始化神经网络变量,并通过预构建的算子执行高效优化方法顺序执行所述算子流文件中的各算子,进而得到神经网络模型各中间层的输出文件及最终输出文件;所述神经网络变量包括数据节点算子个数、数据节点算子列表、数据输入节点和数据输出节点的个数。
[0010]在一些优选的实施方式中,对所述输入文件进行预处理,得到预处理文件,其方法为:
[0011]将神经网络处理器操作指令文件、神经网络模型的算子流文件、神经网络模型的权重文件、神经网络模型的输出配置文件4个文件进行合并,得到神经网络模型合并文件;
[0012]将神经网络编译器编译生成的神经网络模型的输入文件进行文件转换,得到神经网络输入文件;所述神经网络模型的输入文件包括图像、视频;
[0013]从神经网络编译器编译生成的所有神经网络正确输出文件中,选择需要的神经网络中间层正确输出文件,合并为神经网络中间层正确输出合并文件;
[0014]从神经网络编译器编译生成的所有神经网络正确输出文件中,选择所有神经网络最终正确输出文件,合并为神经网络最终正确输出合并文件。
[0015]在一些优选的实施方式中,所述神经网络模型合并文件,其文件头为32个字节,每8个字节描述一个文件,其中,每8字节中的前4个字节为此文件在所述神经网络模型合并文件中的偏置,后4个字节为此文件的大小;
[0016]对于所述神经网络模型合并文件中的每一个文件,其起始地址按16字节对齐,其结束若不能16字节对齐,则补充相应的0字节以对齐。
[0017]在一些优选的实施方式中,所述神经网络中间层正确输出合并文件,其文件头开始4个字节为神经网络中间层正确输出文件的个数,之后每8个字节描述一个选择的神经网络中间层正确输出文件,其中,每8字节中的前4个字节为选择的神经网络中间层正确输出文件对应的数据节点编号,后4个字节为选择的神经网络中间层正确输出文件在所述神经网络中间层正确输出合并文件中的偏置,而文件头的结束必然不能16字节对齐,因此在文件头结束补充相应的0字节以对齐;
[0018]每一个选择的神经网络中间层正确输出文件,其起始地址保证按16字节对齐,其结束如果不能16字节对齐,则补充相应的0字节以对齐。
[0019]在一些优选的实施方式中,所述神经网络最终正确输出合并文件,其文件头开始4个字节为最终正确输出文件的个数,之后每8个字节描述一个最终正确输出文件,其中,每8字节中的前4个字节为此最终正确输出文件在所述神经网络最终正确输出合并文件中的偏置,后4个字节为此文件的大小,而文件头的结束必然不能16字节对齐,因此在文件头结束
补充相应的0字节以对齐;
[0020]每一个最终正确输出文件,其起始地址保证按16字节对齐,其结束若不能16字节对齐,则补充相应的0字节以对齐。
[0021]在一些优选的实施方式中,所述算子流文件中的算子包括指令传输算子、权重传输算子、数据输入算子、数据输出算子、数据拼接算子、数据预处理算子、数据迁移算子、查找表传输算子、数据均一化算子、神经网络处理算子、数据节点算子。
[0022]在一些优选的实施方式中,通过预构建的算子执行高效优化方法顺序执行各算子,其方法为:
[0023]所述指令传输算子,从内存中的神经网络处理器操作指令文件中,根据算子参数设定的部分指令或全部神经网络处理器操作指令使用DMA高速传输到神经网络处理器的操作指令空间;
[0024]所述权重传输算子,从内存中的神经网络模型的权重文件中,将全部权重使用DMA高速传本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向神经网络处理器的高效固件运行系统,用于对神经网络编译器编译后生成的文件的处理,其特征在于,该系统包括:文件预处理单元,配置为当检测到所述神经网络编译器编译完成后,获取所述神经网络编译器对输入的神经网络模型编译后生成的文件,作为输入文件;对所述输入文件进行预处理,得到预处理文件,并发送至嵌入式硬件平台;所述预处理包括文件合并、文件转换、文件头设计;嵌入式硬件平台,配置为将接收的预处理文件存储至设定内存地址;还配置为将编译好的高效固件加载至设定程序入口地址中进行启动运行;高效固件,配置为建立与所述嵌入式硬件平台的连接,并确认所述嵌入式硬件平台各模块是否正常运行,若正常运行,则初始化硬件设备;所述初始化的硬件设备包括串口传输设备、神经网络处理器、中断设备、DMA、定时器;还配置为读取所述嵌入式硬件平台存储的预处理文件并解析,获取神经网络模型对应的算子流文件,解析并初始化神经网络变量,并通过预构建的算子执行高效优化方法顺序执行所述算子流文件中的各算子,进而得到神经网络模型各中间层的输出文件及最终输出文件;所述神经网络变量包括数据节点算子个数、数据节点算子列表、数据输入节点和数据输出节点的个数。2.根据权利要求1所述的一种面向神经网络处理器的高效固件运行系统,其特征在于,对所述输入文件进行预处理,得到预处理文件,其方法为:将神经网络处理器操作指令文件、神经网络模型的算子流文件、神经网络模型的权重文件、神经网络模型的输出配置文件4个文件进行合并,得到神经网络模型合并文件;将神经网络编译器编译生成的神经网络模型的输入文件进行文件转换,得到神经网络输入文件;所述神经网络模型的输入文件包括图像、视频;从神经网络编译器编译生成的所有神经网络正确输出文件中,选择需要的神经网络中间层正确输出文件,合并为神经网络中间层正确输出合并文件;从神经网络编译器编译生成的所有神经网络正确输出文件中,选择所有神经网络最终正确输出文件,合并为神经网络最终正确输出合并文件。3.根据权利要求2所述的一种面向神经网络处理器的高效固件运行系统,其特征在于,所述神经网络模型合并文件,其文件头为32个字节,每8个字节描述一个文件,其中,每8字节中的前4个字节为此文件在所述神经网络模型合并文件中的偏置,后4个字节为此文件的大小;对于所述神经网络模型合并文件中的每一个文件,其起始地址按16字节对齐,其结束若不能16字节对齐,则补充相应的0字节以对齐。4.根据权利要求2所述的一种面向神经网络处理器的高效固件运行系统,其特征在于,所述神经网络中间层正确输出合并文件,其文件头开始4个字节为神经网络中间层正确输出文件的个数,之后每8个字节描述一个选择的神经网络中间层正确输出文件,其中,每8字节中的前4个字节为选择的神经网络中间层正确输出文件对应的数据节点编号,后4个字节为选择的神经网络中间层正确输出文件在所述神经网络中间层正确输出合并文件中的偏置,而文件头的结束必然不能16字节对齐,因此在文件头结束补充相应的0字节以对齐;每一个选择的神经网络中间层正确输出文件,其起始地址保证按16字节对齐,其结束
如果不能16字节对齐,则补充相应的0字节以对齐。5.根据权利要求2所述的一种面向神经网络处理器的高效固件运行系统,其特征在于,所述神经网络最终正确输出合并文件,其文件头开始4个字节为最终正确输出文件的个数,之后每8个字节描述一个最终正确输出文件,其中,每8字节中的前4个字节为此最终正确输出文件在所述神经网络最终正确输出合并文件中的偏置,后4个字节为此文件的大小,而文件头的结束必然不能16字节对齐,因此在文件头结束补充相应的0字节以对齐;每一个最终正确输出文...

【专利技术属性】
技术研发人员:朴泉宇秦智勇陈雷孟晓庄伟侯国伟段海霞汪博梁恒官同鹏华阳孙潼
申请(专利权)人:北京时代民芯科技有限公司
类型:发明
国别省市:

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

1