申请日2018.02.11
公开(公告)日2018.08.24
IPC分类号G06N3/04; G06N3/08
摘要
本发明涉及一种面向人工智能计算的神经网络数据串行流水处理方法,包括:神经网络第一层的层数据处理模块接收到初始数据后,进行层内并行运算;中间层的层数据处理模块接收到上一层串行输出的运算结果后,进行层内并行运算;最后层的层数据处理模块接收到上一层串行输出的运算结果后,进行层内并行运算,并串行输出运算结果;若多次输入初始数据,则所有层数据处理模块对多次输入的初始数据进行流水处理。本发明通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,提高神经网络数据的处理效率。
权利要求书
1.一种面向人工智能计算的神经网络数据串行流水处理方法,其特征在于,包括:
神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果;
神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果;
神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果;
若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。
2.根据权利要求1所述的方法,其特征在于,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,所述方法还包括:
所述神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
3.根据权利要求1所述的方法,其特征在于,所述神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络第一层的层数据处理模块存储运算结果;
相应地,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络中间层的层数据处理模块存储运算结果;
相应地,所述神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络最后层的层数据处理模块存储运算结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置;
所述神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置;
所述神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
5.根据权利要求1所述的方法,其特征在于,所述层内并行运算为核间并行运算。
说明书
一种面向人工智能计算的神经网络数据串行流水处理方法
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种面向人工智能计算的神经网络数据串行流水处理方法。
背景技术
神经网络是人工智能领域中应用最多的一种工具,神经网络的种类有多种,以深度卷积神经网络为例,深度卷积神经网络不同的模型具有不同层数,但主要计算类型有六种方式:全连接、卷积、池化、非线性、向量运算和矩阵加,这六种方式属于成熟技术,本文不再赘述。
神经网络模型的计算方式本质都是小矩阵的乘加运算,巨大的并行度带来巨大数据量,不断从外部存储读写数据和参数是其最大的瓶颈,将产生大量功耗和延迟。
上述对问题的发现过程的描述,仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种面向人工智能计算的神经网络数据串行流水处理方法。
本发明实施例公开一种面向人工智能计算的神经网络数据串行流水处理方法,包括:
神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算,并串行输出运算结果;
神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算,并串行输出运算结果;
神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算,并串行输出运算结果;
若多次向所述神经网络输入初始数据,则所述神经网络第一层的层数据处理模块、神经网络中间层的层数据处理模块以及神经网络最后层的层数据处理模块对多次输入的初始数据进行流水处理。
可选的,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,所述方法还包括:
所述神经网络中间层的层数据处理模块判断接收到的串行数据是否满足层内并行运算的预设最低条件;若满足,则执行所述对本身所属层的层数据进行层内并行运算,并串行输出运算结果的步骤。
可选的,所述神经网络第一层的层数据处理模块接收到初始数据后,对第一层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络第一层的层数据处理模块存储运算结果;
相应地,所述神经网络中间层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对本身所属层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络中间层的层数据处理模块存储运算结果;
相应地,所述神经网络最后层的层数据处理模块接收到上一层的层数据处理模块串行输出的运算结果后,对最后层的层数据进行层内并行运算后,所述方法还包括:
所述神经网络最后层的层数据处理模块存储运算结果。
可选的,所述方法还包括:
所述神经网络第一层的层数据处理模块接收到层数据配置信息后,对第一层的层数据进行配置;
所述神经网络中间层的层数据处理模块接收到层数据配置信息后,对本身所属层的层数据进行配置;
所述神经网络最后层的层数据处理模块接收到层数据配置信息后,对最后层的层数据进行配置。
可选的,所述层内并行运算为核间并行运算。
可见,本发明实施例的至少一个实施例中,通过将神经网络每层分别对应不同的层数据处理模块,每个层数据处理模块对本层数据进行层内并行运算,不与外部交互,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题,同时对多次输入数据,可进行流水处理,从而提高了神经网络数据的处理效率。
可见,本发明实施例的至少一个实施例中,每个层数据处理模块对本层数据进行层内并行运算,运算过程中本层数据均在本层数据处理模块中存储,减少了运算过程中不断从外部存储读写数据和参数产生大量功耗和延迟的问题。