【技术实现步骤摘要】
运算方法、装置及相关产品
本公开涉及信息处理
,尤其涉及一种神经网络指令生成方法、装置及相关产品。
技术介绍
随着科技的不断发展,神经网络算法的使用越来越广泛。其在图像识别、语音识别、自然语言处理等领域中都得到了良好的应用。但由于神经网络算法的复杂度越来越高,其模型的规模不断增大。基于图形处理器(GraphicsProcessingUnit,简称GPU)、中央处理器(CentralProcessingUnit,简称CPU)的大规模的神经网络模型,要花费大量的计算时间,且耗电量大。相关技术中,对神经网络模型的处理速度进行加快的方式存在无法跨平台处理、处理效率低、开发成本高、易出错等问题。
技术实现思路
有鉴于此,本公开提出了一种神经网络指令生成方法、装置及相关产品,使其能够跨平台使用,提高处理效率,降低出错几率和开发成本。根据本公开的第一方面,提供了一种神经网络指令生成装置,所述装置包括:设备确定模块,用于根据接收到的宏指令,确定执行所述宏指令的运行设备;指令生成模块,用于根据所述宏指令和所述运行设备,生成运行指令。根据本公开的第二方面,提供了一种机器学习运算装置,所述装置包括:一个或多个上述第一方面所述的神经网络指令生成装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;当所述机器学习运算装置包含多个所述神经网络指令生成装置时,所述多个所述神经网络指令生成装置间可以通过特定的 ...
【技术保护点】
1.一种神经网络指令生成装置,其特征在于,所述装置包括:/n设备确定模块,用于根据接收到的宏指令,确定执行所述宏指令的运行设备;/n指令生成模块,用于根据所述宏指令和所述运行设备,生成运行指令。/n
【技术特征摘要】
1.一种神经网络指令生成装置,其特征在于,所述装置包括:
设备确定模块,用于根据接收到的宏指令,确定执行所述宏指令的运行设备;
指令生成模块,用于根据所述宏指令和所述运行设备,生成运行指令。
2.根据权利要求1所述的装置,其特征在于,所述设备确定模块,包括:
第一确定子模块,用于在确定所述宏指令中包含指定设备的标识,且所述指定设备的资源满足执行所述宏指令的执行条件时,将所述指定设备确定为所述运行设备,
其中,所述执行条件包括:所述指定设备中包含与所述宏指令相对应的指令集。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括:
资源获取模块,用于获取备选设备的资源信息,
所述设备确定模块,还包括:
第二确定子模块,用于在确定所述宏指令中不包含所述指定设备的标识时,根据接收到的宏指令和所述备选设备的资源信息,从所述备选设备中确定出用于执行所述宏指令的运行设备,
其中,所述资源信息包括所述备选设备所包含的指令集。
4.根据权利要求3所述的装置,其特征在于,所述设备确定模块,还包括:
第三确定子模块,在确定所述宏指令中包含所述指定设备的标识,且所述指定设备的资源不满足执行所述宏指令的执行条件时,根据所述宏指令和所述备选设备的资源信息,确定运行设备。
5.根据权利要求2-4任一项所述的装置,其特征在于,所述宏指令包含输入量和输出量中的至少一项,
所述指令生成模块,还用于确定所述宏指令的数据量,根据所述宏指令的数据量、所述宏指令和所述运行设备的资源信息,生成运行指令,
其中,所述数据量是根据所述输入量和所述输出量中的至少一项确定的,所述运行设备的资源信息还包括存储容量、剩余存储容量的至少一项。
6.根据权利要求5所述的装置,其特征在于,所述指令生成模块,包括:
第一指令生成子模块,用于在确定所述运行设备为一个,且所述运行设备的资源不满足执行所述宏指令的容量条件时,根据所述运行设备的运行数据量和所述数据量将所述宏指令拆分成多条运行指令,以使所述运行设备依次执行多条运行指令,
其中,所述运行设备的运行数据量是根据所述运行设备的资源信息确定的,每条运行指令包含运行输入量和运行输出量中的至少一项,所述运行输入量和所述运行输出量是根据所述运行数据量确定的。
7.根据权利要求5所述的装置,其特征在于,所述指令生成模块,包括:
第二指令生成子模块,用于在确定所述运行设备为多个时,根据每个运行设备的运行数据量和所述数据量对所述宏指令进行拆分,生成对应于每个运行设备的运行指令,
其中,每个运行设备的运行数据量是根据每个运行设备的资源信息确定的,所述运行指令包含运行输入量和运行输出量中的至少一项,所述运行输入量和所述运行输出量是根据执行所述运行指令的运行设备的运行数据量确定的。
8.根据权利要求1所述的装置,其特征在于,所述装置还包括:
队列构建模块,用于根据队列排序规则对所述运行指令进行排序,根据排序后的运行指令构建与所述运行设备相对应的指令队列。
9.根据权利要求2所述的装置,其特征在于,所述装置还包括:
宏指令生成模块,用于接收待执行指令,根据确定的指定设备的标识和所述待执行指令生成所述宏指令。
10.根据权利要求1所述的装置,其特征在于,所述装置还包括:
指令分派模块,用于将所述运行指令发送至所述运行设备,以使所述运行设备执行所述运行指令,
其中,所述指令分派模块,包括:
指令汇编子模块,用于根据所述运行指令生成汇编文件;
汇编翻译子模块,用于将所述汇编文件翻译成二进制文件;
指令发送子模块,用于将所述二进制文件发送至所述运行设备,以使所述运行设备根据所述二进制文件执行所述运行指令。
11.根据权利要求1所述的装置,其特征在于,
所述运行设备为CPU、GPU和NPU中的其中一种或任意组合;
所述装置设置于CPU和/或NPU中;
所述宏指令包括以下指令中的至少一种:计算宏指令、控制宏指令和数据搬运宏指令,
其中,所述计算宏指令包括神经网络计算宏指令、向量逻辑计算宏指令、矩阵向量计算宏指令、标量计算宏指令和标量逻辑计算宏指令中的至少一种,
所述控制宏指令包括无条件跳转宏指令和有条件跳转宏指令中的至少一种,
数据搬运宏指令包括读宏指令和写宏指令中的至少一种,所述读宏指令包括读神经元宏指令、读突触宏指令和读标量宏指令中的至少一种,所述写宏指令包括写神经元宏指令、写突触宏指令和写标量宏指令中的至少一种;
所述宏指令包含以下选项中的至少一项:用于执行所述宏指令的指定设备的标识、操作类型、输入地址、输出地址、输入量、输出量、操作数和指令参数,
所述运行指令包含以下选项中的至少一项:所述操作类型、所述输入地址、所述输出地址、所述操作数和所述指令参数。
12.一种机器学习运算装置,其特征在于,所述装置包括:
一个或多个如权利要求1-11任一项所述的神经网络指令生成装置,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其他处理装置;
当所述机器学习运算装置包含多个所述神经网络指令生成装置时,所述多个所述神经网络指令生成装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述神经网络指令生成装置通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述神经网络指令生成装置共享同一控制系统或拥有各自的控制系统;多个所述神经网络指令生成装置共享内存或者拥有各自的内存;多个所述神经网络指令生成装置的互联方式是任意互联拓扑。
13.一种组合处理装置,其特征在于,所述装置包括:
如权利要求12所述的机器学习运算装置、通用互联接口和其他处理装置;
所述机器学习运算装置与所述其他处理装置进行交互,共同完成用户指定的计算操作。
14.根据权利要求13所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其他处理装置连接,用于保存所述机器...
【专利技术属性】
技术研发人员:不公告发明人,
申请(专利权)人:中科寒武纪科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。