[发明专利]针对神经网络处理器的可执行程序生成装置和方法有效
申请号: | 201810257595.7 | 申请日: | 2018-03-27 |
公开(公告)号: | CN110308909B | 公开(公告)日: | 2023-08-01 |
发明(设计)人: | 请求不公布姓名 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N3/063 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 任岩 |
地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 神经网络 处理器 可执行 程序 生成 装置 方法 | ||
1.一种针对神经网络处理器的可执行程序生成装置,其特征在于包括:
源程序分割模块,接收源文件为输入,根据源文件中的格式,识别并提取代码段和数据段的位置,并生成包含代码段的中间文件和包含数据段的中间文件;
数据处理模块,用于输入包含数据的中间文件,处理数据的摆放,输出内存分配信息和数据摆放方式;
神经网络算法映射模块,用于输入包含代码段的中间文件,将代码中的用块表示的神经网络算法映射为宏语句构成的算法流程,之后再映射成硬件相关的指令;
并行代码生成模块,用于输入硬件相关的指令,对其进行并行化的处理和优化,输出优化后的程序;
重定位模块,输入数据摆放方式、内存分配信息和优化后的程序,将优化后的程序中的相对地址替换为绝对地址;
机器码生成模块,用于将所述重定位模块将重定位之后的程序翻译成神经网络处理器可以识别的字符串。
2.根据权利要求1所述的装置,其特征在于,所述数据处理模块还用于进行数据划分,将神经网络每一层的输入输出数据进行划分,划分后能放入神经网络处理器的片上存储单元中。
3.根据权利要求1所述的装置,其特征在于,所述神经网络算法映射模块包括:
计算划分模块,用于将大规模的计算划分成规模相对小的子计算模块;
指令映射模块,用于将算法映射成神经网络处理器指令集中的指令。
4.根据权利要求1所述的装置,其特征在于,所述代码段中包含了神经网络算法的语句、块、以及相应的定义。
5.一种采用权利要求1-4任一所述装置的可执行程序生成方法,其特征在于包括:采用源程序分割模块,接收源文件为输入,并根据源文件中的格式,识别出代码段和数据段的位置并提取,并生成包含代码段的中间文件和包含数据段的中间文件;
采用数据处理模块,输入包含数据的中间文件,处理数据的摆放,输出内存分配信息和数据摆放方式;
采用神经网络算法映射模块,输入包含代码段的中间文件,将代码中的用块表示的神经网络算法映射为宏语句构成的算法流程,之后再映射成硬件相关的指令;
采用并行代码生成模块,输入硬件相关的指令,对其进行并行化的处理和优化,输出优化后的程序;
采用重定位模块,输入数据摆放方式、内存分配信息和优化后的程序,将优化后的程序中的相对地址替换为绝对地址;
采用机器码生成模块,将所述重定位模块将重定位之后的程序翻译成神经网络处理器可以识别的字符串。
6.根据权利要求5所述的方法,其特征在于,还包括:
采用所述数据处理模块进行数据划分,将神经网络每一层的输入输出数据进行划分,划分后放入神经网络处理器的片上存储单元中。
7.根据权利要求5所述的方法,其特征在于,所述代码段中包含了神经网络算法的语句、块、以及相应的定义。
8.根据权利要求5所述的方法,其特征在于,并行代码生成模块中的并行化处理和优化包括:通过模拟和/或推理方法,调整语句顺序提高并行效果。
9.根据权利要求5所述的方法,其特征在于,还包括:
采用数据处理模块将神经元被分割为多个数据块,将多个数据块顺序的存储到存储单元中,在计算过程中,所述数据块会被加载到片上存储器中进行进一步的计算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810257595.7/1.html,转载请声明来源钻瓜专利网。