
技术摘要:
本发明提供一种数据分析处理方法及装置,所述方法包括:获取待处理的输入数据输入到神经网络模型;利用神经网络模型中的计算单元对输入数据进行卷积运算,神经网络模型根据输入数据确定输入到各计算单元的激活和权重,根据激活及权重确定激活矩阵及权重矩阵,对激活矩 全部
背景技术:
随着集成电路设计和制造工艺的进步,神经网络作为深度学习领域中最热门的网 络结构之一,目前已广泛应用在计算机视觉领域与语言处理领域,其中,卷积神经网络 (Convolutional Neural Networks,CNN)是一种源自人工神经网络的多层感知器,它对图 像的处理与特征提取具有高度的适应性使之成为当前模式识别和图像识别领域的研究热 点,现有的大部分CNN实现主要是基于通用处理器CPU,图形处理器GPU或是专用集成电路 (Application Specific Integrated Circuits,ASIC)实现的。CPU为了满足通用性,芯片 面积有很大一部分都用于复杂的数据控制流和Cache缓冲部分,现有的缓冲部分用于存储 对权值数据和图像数据的压缩编码,具体将片外存储空间中的压缩数据,通过解码单元解 码后数据存储在缓冲区域,依次进行后续的对权值数据和图像数据的调度工作,进行卷积 计算等操作,最后输入给全局缓冲区,经过编码单元将结果压缩输出给片外存储空间,而卷 积是神经网络的基本运算过程,而留给运算单元的面积并不多,所以无法充分地挖掘CNN内 部的并行性。 卷积核在输入的激活数据上滑动进行卷积计算输出新的数据,卷积计算如图1所 示,卷积核的个数为M,每个卷积核尺寸为R*S,通道数为C,输入激活的个数为N,尺寸为H*W, 通道数为C,输出数据的个数为N,尺寸为E*F,通道数为M。目前一个神经网络模型中通常包 含数以百万计甚至千万计的参数和十几层甚至几十层的网络,需要非常大的计算代价和存 储空间,现有技术中,在神经网络中采用加入激活函数以使神经网络具有非线性,并利用剪 枝蒸馏等方法,来减少神经网络的计算代价及存储空间,采用上述方式,能在不影响神经网 络性能的情况下,降低神经网络计算代价和存储空间。与此同时,神经网络的稀疏性大大增 加,其中稀疏性(Sparsity)指的是在二维矩阵中表示含有大量空值数据的程度。 对于进行稀疏处理后的神经网络中的激活和权重的压缩方式,现有技术上采用 RLC压缩编码方法,此种方式,虽然可以减少神经网络外部存储的资源需求与功耗,但在内 部计算时仍然使用原始数据(即神经网络中的各计算单元在计算时,仍有无效的数据被带 入计算),将权值数据和激活数据拆分为矩阵,映射到不同的计算单元内,进行卷积计算,计 算结果输出至其他计算单元进行累加,相较于将原始矩阵直接进行卷积计算,实际所需要 计算单元的数量并没有减少,且无效数据也要仍占用内部存储空间;采用增加卷积核个数 与通道数增加的方式,则需要更多的计算单元来完成计算,且计算单元之间仍需要不少的 交互次数,相应的,交互次数越多,相应地功耗越大,占用的缓存空间越多,处理速度越慢, 计算单元与存储器之间交互所需的功耗可能会要大于计算单元之间交互所需的功耗,在资 源有限地情况下,上述方式并不是合理的加速计算方式,而传统的硬件平台并不能很好的 利用神经网络数据结构的稀疏性,导致产生了大量的不必要的计算与数据搬移,造成了不 必要的功耗浪费,目前的神经网络领域中,亟待提出一种能够充分利用神经网络的稀疏性 4 CN 111553471 A 说 明 书 2/13 页 对数据进行分析处理的方法。
技术实现要素:
传统的硬件平台并不能很好的利用神经网络数据结构的稀疏性,导致产生了大量 的不必要的计算与数据搬移,造成了不必要的功耗浪费,目前的神经网络领域中,本发明提 供一种能够上述问题,充分利用神经网络的稀疏性对数据进行分析处理的方法。 本发明的第一方面提供一种数据分析处理方法,所述方法包括: 获取待处理的输入数据输入到神经网络模型; 利用神经网络模型中的计算单元对输入数据进行卷积运算,其中,神经网络模型对输 入各计算单元的输入数据及权重进行稀疏处理得到激活矩阵及权重矩阵,对所述激活矩阵 及权重矩阵的有效数据进行压缩编码,并存储所述有效数据及所述有效数据矩阵位置的编 码索引,卷积时根据所述编码索引读取对应的有效数据进行卷积运算; 根据卷积运算的结果,得到数据处理后的数据。 可选地,对所述激活矩阵及权重矩阵的有效数据进行压缩编码,包括: 利用完全状态编码CSC方式,根据所述激活矩阵/权重矩阵中有效激活数据/有效权重 数据所在的行数和列数,对有效激活数据/有效权重数据压缩编码。 可选地,存储所述有效数据之前,还包括: 将所述激活矩阵中有效激活数据压缩,按照第一预设映射规则映射为第一向量,所述 第一向量的末端包括结束索引标识; 将所述权重矩阵中的有效权重数据,按照第二预设映射规则映射为第二向量,所述第 二向量的末端包括结束索引标识。 可选地,对有效激活数据/有效权重数据压缩编码,包括: 分别确定有效激活数据/有效权重数据在激活矩阵/权重矩阵中的行数,得到对应的行 向量; 按照如下规则分别激活矩阵/权重矩阵中各列的映射数据,得到对应的地址向量: 确定激活矩阵/权重矩阵中当前列是否存在有效激活数据/有效权重数据,若是,将该 列及之前列的有效激活数据/有效权重数据总数作为映射数据,否则,将指定数据作为映射 数据。 可选地,所述行向量的末端包括结束索引标识,所述地址向量的末端包括结束索 引标识。 可选地,卷积时根据编码索读取对应的有效数据进行卷积运算,包括: 根据所述行向量确定当前读取的有效激活数据/有效权重数据在激活矩阵/权重矩阵 中的行数; 根据所述地址向量确定当前读取的有效激活数据/有效权重数据在激活矩阵/权重矩 阵中的列数; 按照卷积规则将激活矩阵中的有效激活数据与权重矩阵中对应位置的有效权重数据, 进行卷积运算。 可选地,存储所述有效数据及所述有效数据矩阵位置的编码索引,包括: 将所述有效数据按照第一存储规则,将所述编码索引按照第二存储规则,存储到外部 5 CN 111553471 A 说 明 书 3/13 页 存储单元; 其中,卷积时根据所述第一存储规则和第二存储规则,确定读取的编码索引解码的有 效数据的存储位置。 可选地,所述外部存储单元为如下至少一种:静态随机存取存储器SRAM、动态随机 存储器DRAM、增强动态随机存取存储器EDRAM、寄存器BP或非易失存储器NVM。 可选地,对所述激活矩阵及权重矩阵的有效数据压缩编码,包括: 根据所述激活矩阵及权重矩阵中有效数据的分布,确定所述激活矩阵及权重矩阵的稀 疏度; 确定所述稀疏度大于稀疏阈值时,对所述激活矩阵及权重矩阵的有效数据压缩编码。 可选地,还包括: 确定所述稀疏度不大于稀疏阈值时对所述激活矩阵中的全部数据和权重矩阵中的全 部数据分别进行转化存储; 卷积时读取激活矩阵和权重矩阵的全部数据进行卷积运算,所述全部数据包括无效数 据,确定当前运算的数据包含无效数据时,利用时钟门控方式跳过包含无效数据的运算步 骤。 可选地,对所述激活矩阵中的全部数据和权重矩阵中的全部数据分别进行转化存 储,包括: 将所述激活矩阵和权重矩阵中的全部数据,按所述全部数据的在矩阵中的排列顺序转 化为数据向量存储到外部存储单元,并将所述数据向量对应的行向量、地址向量固定为预 设值存储到外部存储单元。 本发明第二方面提供一种数据分析处理装置,所述装置包括如下单元: 数据输入单元,用于获取待处理的输入数据输入到神经网络模型; 编解码单元,用于利用神经网络模型中的计算单元对输入数据进行卷积运算,其中,神 经网络模型根据输入数据确定输入到各计算单元的激活和权重,根据所述激活及权重确定 激活矩阵及权重矩阵,对所述激活矩阵及权重矩阵的有效数据进行压缩编码,并存储所述 有效数据及所述有效数据矩阵位置的编码索引,卷积时根据所述编码索引读取对应的有效 数据进行卷积运算; 数据输出单元,用于根据卷积运算的结果,得到数据处理后的数据。 可选地,编解码单元对所述激活矩阵及权重矩阵的有效数据进行压缩编码,包括: 利用完全状态编码CSC方式,根据所述激活矩阵/权重矩阵中有效激活数据/有效权重 数据所在的行数和列数,对有效激活数据/有效权重数据压缩编码。 可选地,编解码单元存储所述有效数据之前,还包括: 将所述激活矩阵中有效激活数据压缩,按照第一预设映射规则映射为第一向量,所述 第一向量的末端包括结束索引标识; 将所述权重矩阵中的有效权重数据,按照第二预设映射规则映射为第二向量,所述第 二向量的末端包括结束索引标识。 可选地,编解码单元对有效激活数据/有效权重数据压缩编码,包括: 分别确定有效激活数据/有效权重数据在激活矩阵/权重矩阵中的行数,得到对应的行 向量; 6 CN 111553471 A 说 明 书 4/13 页 按照如下规则分别激活矩阵/权重矩阵中各列的映射数据,得到对应的地址向量: 确定激活矩阵/权重矩阵中当前列是否存在有效激活数据/有效权重数据,若是,将该 列及之前列的有效激活数据/有效权重数据总数作为映射数据,否则,将指定数据作为映射 数据。 可选地,所述行向量的末端包括结束索引标识,所述地址向量的末端包括结束索 引标识。 可选地,编解码单元卷积时根据编码索读取对应的有效数据进行卷积运算,包括: 根据所述行向量确定当前读取的有效激活数据/有效权重数据在激活矩阵/权重矩阵 中的行数; 根据所述地址向量确定当前读取的有效激活数据/有效权重数据在激活矩阵/权重矩 阵中的列数; 按照卷积规则将激活矩阵中的有效激活数据与权重矩阵中对应位置的有效权重数据, 进行卷积运算。 可选地,存储所述有效数据及所述有效数据矩阵位置的编码索引,包括: 将所述有效数据按照第一存储规则,将所述编码索引按照第二存储规则,存储到外部 存储单元; 其中,卷积时根据所述第一存储规则和第二存储规则,确定读取的编码索引解码的有 效数据的存储位置。 可选地,所述外部存储单元为如下至少一种:静态随机存取存储器SRAM、动态随机 存储器DRAM、增强动态随机存取存储器EDRAM、寄存器BP或非易失存储器NVM。 可选地,对所述激活矩阵及权重矩阵的有效数据压缩编码,包括: 根据所述激活矩阵及权重矩阵中有效数据的分布,确定所述激活矩阵及权重矩阵的稀 疏度; 确定所述稀疏度大于稀疏阈值时,对所述激活矩阵及权重矩阵的有效数据压缩编码。 可选地,编解码单元还包括: 确定所述稀疏度不大于稀疏阈值时,对所述激活矩阵中的全部数据和权重矩阵中的全 部数据分别进行转化存储; 卷积时读取激活矩阵和权重矩阵的全部数据进行卷积运算,所述全部数据包括无效数 据,确定当前运算的数据包含无效数据时,利用时钟门控方式跳过包含无效数据的运算步 骤。 可选地,编解码单元对所述激活矩阵中的全部数据和权重矩阵中的全部数据分别 进行转化存储,包括: 将所述激活矩阵和权重矩阵中的全部数据,按所述全部数据的在矩阵中的排列顺序转 化为数据向量存储到外部存储单元,并将所述数据向量对应的行向量、地址向量固定为预 设值存储到外部存储单元。 本发明第三方面提供一种计算机可读存储介质,计算机程序被处理器执行时实现 本发明第一方面提供的任一所述的方法。 利用本申请提供的方法,利用特定的压缩编码方式对激活及权重矩阵进行编码, 能够充分利用神经网络的稀疏性,提高了数据处理速度且降低了卷积运算占用的功耗。 7 CN 111553471 A 说 明 书 5/13 页 附图说明 图1为一种卷积计算方法示意图; 图2a为一种数据分析处理系统的示意图; 图2b为一种数据分析处理系统中计算单元的示意图; 图3为一种数据分析处理方法流程图; 图4为一种数据分析处理方法完整流程图; 图5为一种数据分析处理装置的单元结构图。