1.一种神经网络运行方法,其特征在于,所述方法用于异构智能芯片,所述异构智能芯片中集成有不同指令集合体系架构的多个处理器核心,至少包括集成有多个计算核心,所述方法包括:获取待运行的神经网络;
对所述神经网络进行网络层划分,得到所述神经网络的多个待运行层;其中,根据网络层的复杂程度,将相连的计算相关的多个网络层划分为一个待运行层,或者将所述神经网络中的每一个网络层划分为一个待运行层;
针对各待运行层,确定满足预设运行条件的计算核心,以使各计算核心按照预设运行顺序运行各待运行层;
所述针对各待运行层,确定满足预设运行条件的计算核心,包括:判断当前待运行层是否已完成运行;
若所述当前待运行层未完成运行,则获取所述当前待运行层的运算规则;基于所述运算规则,确定具有与所述运算规则相应的运行条件的计算核心;发送所述当前待运行层至所述计算核心,以使所述计算核心运行所述当前待运行层,其中,所述预设运行条件包括:运算速度、运算步长、响应时间;
在所述对所述神经网络进行网络层划分,得到所述神经网络的多个待运行层之后,所述方法还包括:通过分析得到各待运行层的计算量,并判断各待运行层的计算量是否大于预设阈值;
针对计算量大于所述预设阈值的待运行层,将所述待运行层依据数据对齐特征拆分为并行运行的多个并行子层;所述异构智能芯片的一个计算核心对应运行一个子层;
所述针对各待运行层,确定满足预设运行条件的计算核心,包括:判断当前待运行层是否已完成运行;
若所述当前待运行层未完成运行,则获取所述当前待运行层中各未运行的子层的运算规则;基于各运算规则,确定具有与该运算规则相应的运行条件的计算核心;发送各未运行的子层至相应的各计算核心,以使各计算核心运行各未运行的子层。
2.根据权利要求1所述的方法,其特征在于,所述获取待运行的神经网络,包括:按照预设网络优先级,从待运行的多个神经网络中获取优先级最高的神经网络。
3.根据权利要求1所述的方法,其特征在于,所述对所述神经网络进行网络层划分,得到所述神经网络的多个待运行层,包括:基于所述神经网络中网络层的数目,对所述神经网络进行划分,得到多个待运行层。
4.一种神经网络运行装置,其特征在于,所述装置中集成有异构智能芯片,所述异构智能芯片中集成集成有不同指令集合体系架构的多个处理器核心,至少包括有多个计算核心,所述装置包括:获取模块,用于获取待运行的神经网络;
网络解析模块,用于对所述神经网络进行网络层划分,得到所述神经网络的多个待运行层;其中,根据网络层的复杂程度,将相连的计算相关的多个网络层划分为一个待运行层,或者将所述神经网络中的每一个网络层划分为一个待运行层;
调度器模块,用于针对各待运行层,确定满足预设运行条件的计算核心,以使各计算核心按照预设运行顺序运行各待运行层;
所述调度器模块,具体用于:
判断当前待运行层是否已完成运行;
若所述当前待运行层未完成运行,则获取所述当前待运行层的运算规则;基于所述运算规则,确定具有与所述运算规则相应的运行条件的计算核心;发送所述当前待运行层至所述计算核心,以使所述计算核心运行所述当前待运行层,其中,所述预设运行条件包括:运算速度、运算步长、响应时间;
层拆分模块,用于通过分析得到各待运行层的计算量,并判断各待运行层的计算量是否大于预设阈值;针对计算量大于所述预设阈值的待运行层,将所述待运行层依据数据对齐特征拆分为并行运行的多个并行子层;所述异构智能芯片的一个计算核心对应运行一个子层;
所述调度器模块,具体用于:
判断当前待运行层是否已完成运行;
若所述当前待运行层未完成运行,则获取所述当前待运行层中各未运行的子层的运算规则;基于各运算规则,确定具有与该运算规则相应的运行条件的计算核心;发送各未运行的子层至相应的各计算核心,以使各计算核心运行各未运行的子层。
5.根据权利要求4所述的装置,其特征在于,所述获取模块,具体用于:按照预设网络优先级,从待运行的多个神经网络中获取优先级最高的神经网络。
6.根据权利要求4所述的装置,其特征在于,所述网络解析模块,具体用于:基于所述神经网络中网络层的数目,对所述神经网络进行划分,得到多个待运行层。
7.一种异构智能芯片,其特征在于,包括主核心、多个计算核心及存储介质,其中,所述存储介质,用于存放计算机程序;
所述主核心,用于执行所述存储介质上所存放的计算机程序时,实现权利要求1‑3任一所述的方法步骤,确定满足预设运行条件的计算核心;
各计算核心,用于按照预设运行顺序运行神经网络的各待运行层。
8.一种存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被主核心执行时实现权利要求1‑3任一所述的方法步骤。