一种多计算精度神经网络处理方法和系统技术方案

技术编号:16701240 阅读:28 留言:0更新日期:2017-12-02 13:45
本发明专利技术涉及一种多计算精度神经网络处理方法与系统,该方法包括:步骤S1,从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;步骤S2,将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;步骤S3,分析该原始数据的位宽,关断计算单元阵列中的部分计算单元,并执行神经网络运算中的运算操作,生成计算数据;步骤S4,将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。本发明专利技术可使神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。

A multi computing precision neural network processing method and system

The invention relates to a method and system for processing multiple calculation accuracy of neural network, the method includes the following steps: step S1, read the instructions from the instruction storage unit, the instruction resolved memory address, obtaining input data and the weights from the storage address; step S2, the width of the input data and the bit width of the the weight of the maximum width of data decoding respectively expanding design for the processor generates the original data and the original weight; step S3, analysis the width of the original data, shutdown calculation unit in the array part calculation unit, and implementation of neural network arithmetic operations, generating data; step S4, the width of the encoding data the neural network is a layer of required data width, generate data package and the package data output. The invention can make different layers of neural network participate in computation with different data accuracy. Under the premise of guaranteeing the accuracy of calculation, it reduces the storage on chip and reduces the energy loss of data transmission.

【技术实现步骤摘要】
一种多计算精度神经网络处理方法和系统
本专利技术涉及神经网络模型计算的硬件加速领域,特别涉及一种多计算精度神经网络处理器。
技术介绍
深度神经网络是人工智能领域具有最高发展水平的感知模型之一,该类网络通过建立模型模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大数据处理任务的应用带来了突破性进展。由于神经网络模型对环境噪声及信号完整性问题具有足够的鲁棒性,因此计算数据的部分丢失不会对计算结果产生灾难性影响,实现神经网络运算的神经网络处理器可被看做为一种近似计算处理器。随着深度学习技术的快速进展,通用神经网络处理器深入到图像分类、语音识别、智能机器人等人工智能领域的不同应用领域,这些应用的共同特征为属于近似计算领域。该类应用通过采集海量数据集进行有效训练完成预测、分类等功能,而不过分依靠数值计算的准确性来得到最终结果,然而在嵌入式设备及小规模数据中心中,由于其系统结构特点及应用领域需求,处理器在实际工作时难以依托海量数据来实现高准确度计算的目的,因此通过近似计算的思想,利用神经网络模型内在的精度容忍性,通过在不同神经网络层采用不同数据位宽成为缓解片上资源、能耗、精度之间矛盾的行之有效方式。目前的神经网络处理器为了保证较高计算精度,通过需要计算数据具有在一定数据位宽,即数据精度,较大的位宽意味着较大存储容量和带宽访问,这将造成较大的能量损耗。本专利技术通过设计一款具有多计算精度的神经网络处理器,使该处理器可在神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。专利技术内容针对神经网络处理器的上述缺陷,本专利技术提供一款具有多计算精度的神经网络处理器,使该处理器可在神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。为实现上述目的,本专利技术提供了一种多计算精度神经网络处理方法,其中包括以下步骤:步骤S1,从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;步骤S2,将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;步骤S3,分析该原始数据的位宽,关断计算单元阵列中的部分计算单元,并执行神经网络运算中的运算操作,生成计算数据;步骤S4,将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。该多计算精度神经网络处理方法,其中该步骤S2包括:步骤S21,接收并存储该权重和该输入数据;步骤S22,对该权重和该输入数据进行移位处理,以使该权重和该输入数据的最高位与处理器最大数据位宽的最高位对齐,并将对齐后的数据发送至步骤S23;步骤S23,将对齐后的该数据扩展至原始数据完整位宽。该多计算精度神经网络处理方法,其中该步骤S4包括:步骤S41,根据下一层网络数据位宽对该计算数据进行向下截断舍入处理,生成舍入数据;步骤S42,对该舍入数据的排列结构进行移位调整,完成打包操作,生成打包数据;步骤S44,接收并存储该打包数据,并将该打包数据输出至下一神经计算层。该多计算精度神经网络处理方法,其中该步骤S3中,分析该原始数据的位宽信息关断部分计算单元具体为,通过分析该原始数据的总位数和实际有效位数,获得该原始数据的无效位数,在计算时关断用于计算该无效位数的计算单元。该多计算精度神经网络处理方法,其中该多计算精度神经网络处理方法还包括,步骤S31,将该计算单元阵列中每个计算行内数据对应存储于存储器中的每个存储字。本专利技术还提供了一种多计算精度神经网络处理系统,其中包括:控制单元,用于从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;解包器,用于将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;计算单元阵列,用于根据该原始数据位宽关断部分计算单元,执行神经网络运算中的运算操作,生成计算数据;打包器,用于将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。该多计算精度神经网络处理系统,其中该解包器包括:第一寄存器,用于接收并存储该权重和该输入数据;桶形移位器,用于对该权重和该输入数据进行移位处理,以使该权重和该输入数据的最高位与处理器最大数据位宽的最高位对齐,并将对齐后的数据发送至拓展器;拓展器,用于将对齐后的该数据扩展至原始数据完整位宽。该多计算精度神经网络处理系统,其中该打包器包括:舍入器,用于根据下一层网络数据位宽对该计算数据进行向下截断舍入处理,生成舍入数据;移位器,用于对该舍入数据的排列结构进行移位调整,完成打包操作,生成打包数据;第二寄存器,用于接收并存储该打包数据,并将该打包数据输出至下一神经计算层。该多计算精度神经网络处理系统,其中该计算单元阵列根据该原始数据位宽关断部分计算单元具体为,通过分析该原始数据的总位数和实际有效位数,获得该原始数据的无效位数,在计算时关断用于计算该无效位数的计算单元。该多计算精度神经网络处理系统,其中该多计算精度神经网络处理系统还包括,存储器,该存储器中每个存储字存储对应计算单元阵列中每个计算行内数据。本专利技术旨在提供一宗具有多计算精度的神经网络处理器,所述处理器可在神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。通过采用所述神经网络处理器,可以在给定存储资源及计算资源的前提下存储和处理更大的深度神经网络;或者,可以对于单一特定网络,减少面积和能量损耗。附图说明图1为本专利技术提供的神经网络处理器结构框图;图2为本专利技术提供的神经网络处理器工作流程图;图3为本专利技术提供的计算单元阵列示意图及基于计算列的数据存储方式示意图;图4为基于计算单元阵列的存储方式示例图;图5为本专利技术提供的解包器的电路结构图;图6为本专利技术提供的解包器的工作过程示意图;图7为本专利技术提供的打包器的电路结构图;图8为本专利技术提供的打包器的工作过程示意图;图9为本专利技术提供的适用于多精度计算的数据路径关断技术图。具体实施方式为实现上述目的,本专利技术提供了一种多计算精度神经网络处理方法,其中包括以下步骤:步骤S1,从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;步骤S2,将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;步骤S3,分析该原始数据的位宽,关断计算单元阵列中的部分计算单元,并执行神经网络运算中的运算操作,生成计算数据;步骤S4,将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。该多计算精度神经网络处理方法,其中该步骤S2包括:步骤S21,接收并存储该权重和该输入数据;步骤S22,对该权重和该输入数据进行移位处理,以使该权重和该输入数据的最高位与处理器最大数据位宽的最高位对齐,并将对齐后的数据发送至步骤S23;步骤S23,将对齐后的该数据扩展至原始数据完整位宽。该多计算精度神经网络处理方法,其中该步骤S4包括:步骤S41,根据下一层网络数据位宽对该计算数据进本文档来自技高网...
一种多计算精度神经网络处理方法和系统

【技术保护点】
一种多计算精度神经网络处理方法,其特征在于,包括以下步骤:步骤S1,从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;步骤S2,将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;步骤S3,分析该原始数据的位宽,关断计算单元阵列中的部分计算单元,并执行神经网络运算中的运算操作,生成计算数据;步骤S4,将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。

【技术特征摘要】
1.一种多计算精度神经网络处理方法,其特征在于,包括以下步骤:步骤S1,从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;步骤S2,将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;步骤S3,分析该原始数据的位宽,关断计算单元阵列中的部分计算单元,并执行神经网络运算中的运算操作,生成计算数据;步骤S4,将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。2.如权利要求1所述的多计算精度神经网络处理方法,其特征在于,该步骤S2包括:步骤S21,接收并存储该权重和该输入数据;步骤S22,对该权重和该输入数据进行移位处理,以使该权重和该输入数据的最高位与处理器最大数据位宽的最高位对齐,并将对齐后的数据发送至步骤S23;步骤S23,将对齐后的该数据扩展至原始数据完整位宽。3.如权利要求1所述的多计算精度神经网络处理方法,其特征在于,该步骤S4包括:步骤S41,根据下一层网络数据位宽对该计算数据进行向下截断舍入处理,生成舍入数据;步骤S42,对该舍入数据的排列结构进行移位调整,完成打包操作,生成打包数据;步骤S44,接收并存储该打包数据,并将该打包数据输出至下一神经计算层。4.如权利要求1所述的多计算精度神经网络处理方法,其特征在于,该步骤S3中,分析该原始数据的位宽信息关断部分计算单元具体为,通过分析该原始数据的总位数和实际有效位数,获得该原始数据的无效位数,在计算时关断用于计算该无效位数的计算单元。5.如权利要求1所述的多计算精度神经网络处理方法,其特征在于,该多计算精度神经网络处理方法还包括,步骤S31,将该计算单元阵列中每个计算行内数据对应存储于存储器中的每个存储字,其中该计算行内数据包括该计算数据、该输入数据和该计算单元阵列运算时产生的...

【专利技术属性】
技术研发人员:韩银和许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1