[发明专利]针对神经网络处理器的语言源程序生成方法和装置在审
申请号: | 201810257593.8 | 申请日: | 2018-03-27 |
公开(公告)号: | CN110308899A | 公开(公告)日: | 2019-10-08 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06N3/04 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 张宇园 |
地址: | 201203 上海市浦东*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 抽象概念 源程序 映射 神经网络处理器 神经网络算法 编程语言 神经网络 抽象 方法和装置 语言源程序 生成装置 编程 指令 | ||
1.一种针对神经网络处理器的源程序生成方法,其特征在于包括:
将神经网络算法映射为编程语言中的抽象概念,其中神经网络算法中的要素与抽象概念中的元素一一对应;
将编程语言中的抽象概念映射成源程序。
2.根据权利要求1所述的方法,其特征在于,所述神经网络算法中的要素包括以下至少一种:
神经网络中的层,网络的拓扑结构,神经网络数据。
3.根据权利要求2所述的方法,其特征在于,所述神经网络数据包括以下至少一种:
神经元,突触和参数。
4.根据权利要求2或3所述的方法,其特征在于,所述抽象概念中的元素包括以下至少一种:
块,对应神经网络中的层;
执行顺序,对应网络的拓扑结构;
数据结构,对应神经网络数据。
5.根据权利要求4所述的方法,其特征在于,将编程语言中的抽象概念映射成源程序包括:
将块映射成由基本语句和/或宏语句构成的一段代码;
将执行顺序映射成源文件中的代码段,表达了神经网络各层的计算顺序;
将数据结构映射成源文件中的数据段。
6.根据权利要求5所述的方法,其特征在于,所述源文件中的数据段包括数据的组织方式和/或摆放方式,包括静态可读写数据段、静态只读数据段和动态数据段。
7.根据权利要求1所述的方法,其特征在于,所述源文件格式包括:块定义,块调用以及数据段,其中,
所述块定义,包含了对神经网络中层算法的定义,块的定义是由基本语句和宏语句完成,其中,所述基本语句为可被直接映射为处理器机器指令的语句,和处理器的指令集对应,所述宏语句为由基本语句构成的可以执行特定任务的代码段;
所述块调用为已经定义了的块的使用,其映射到源文件中的代码段;
所述数据段,包含了对各类数据结构变量的声明以及定义。
8.根据权利要求7所述的方法,其特征在于,所述基本语句包括:计算语句,访存语句和控制语句,其中,
所述计算语句和处理器指令集中的计算指令对应;
所述访存语句和处理器中的访存指令对应;
控制语句和处理器中的控制指令对应。
9.根据权利要求7所述的方法,其特征在于,所述宏语句包括计算宏语句和访存宏语句,其中,
所述计算宏语句由计算基本语句和控制语句组成;
所述访存宏语句由访存语句和控制语句组成。
10.根据权利要求9所述的方法,其特征在于,每一所述宏语句为一段顺序执行的代码,各宏语之间并行或串行执行。
11.根据权利要求10所述的方法,其特征在于,各宏语句之间并行执行时包括:
将神经网络算法中的层划分为若干个段;
将每一个段映射到所需的计算操作和数据搬运操作上;
按照顺序排列每个段的计算操作和数据搬运操作,将没有关联的数据搬运操作和计算操作排列在并行区域内;
将对应的计算操作和数据搬运操作映射成基本语句。
12.根据权利要求7所述的方法,其特征在于,所述数据段中,包含了对各类数据结构变量的声明,以及定义,包括:
声明和定义神经元为一种多维数组,用于存储和表达神经网络算法中各层的输入输出数值;
声明和定义突触数据结构为用于表达和存储神经网络算法中用于连接神经网络层的输入和输出权值,也是一个多维数组;
声明和定义参数数据结构为一种标量结构,用于表示神经网络算法中的标量数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810257593.8/1.html,转载请声明来源钻瓜专利网。