CN107423816A - 一种多计算精度神经网络处理方法和系统 - Google Patents

一种多计算精度神经网络处理方法和系统 Download PDF

Info

Publication number
CN107423816A
CN107423816A CN201710182542.9A CN201710182542A CN107423816A CN 107423816 A CN107423816 A CN 107423816A CN 201710182542 A CN201710182542 A CN 201710182542A CN 107423816 A CN107423816 A CN 107423816A
Authority
CN
China
Prior art keywords
data
bit wide
neural network
calculating
computing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710182542.9A
Other languages
English (en)
Other versions
CN107423816B (zh
Inventor
韩银和
许浩博
王颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201710182542.9A priority Critical patent/CN107423816B/zh
Publication of CN107423816A publication Critical patent/CN107423816A/zh
Application granted granted Critical
Publication of CN107423816B publication Critical patent/CN107423816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

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

Description

一种多计算精度神经网络处理方法和系统
技术领域
本发明涉及神经网络模型计算的硬件加速领域,特别涉及一种多计算精度神经网络处理器。
背景技术
深度神经网络是人工智能领域具有最高发展水平的感知模型之一,该类网络通过建立模型模拟人类大脑的神经连接结构,通过多个变换阶段分层对数据特征进行描述,为图像、视频和音频等大数据处理任务的应用带来了突破性进展。由于神经网络模型对环境噪声及信号完整性问题具有足够的鲁棒性,因此计算数据的部分丢失不会对计算结果产生灾难性影响,实现神经网络运算的神经网络处理器可被看做为一种近似计算处理器。
随着深度学习技术的快速进展,通用神经网络处理器深入到图像分类、语音识别、智能机器人等人工智能领域的不同应用领域,这些应用的共同特征为属于近似计算领域。该类应用通过采集海量数据集进行有效训练完成预测、分类等功能,而不过分依靠数值计算的准确性来得到最终结果,然而在嵌入式设备及小规模数据中心中,由于其系统结构特点及应用领域需求,处理器在实际工作时难以依托海量数据来实现高准确度计算的目的,因此通过近似计算的思想,利用神经网络模型内在的精度容忍性,通过在不同神经网络层采用不同数据位宽成为缓解片上资源、能耗、精度之间矛盾的行之有效方式。
目前的神经网络处理器为了保证较高计算精度,通过需要计算数据具有在一定数据位宽,即数据精度,较大的位宽意味着较大存储容量和带宽访问,这将造成较大的能量损耗。本发明通过设计一款具有多计算精度的神经网络处理器,使该处理器可在神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。
发明内容
针对神经网络处理器的上述缺陷,本发明提供一款具有多计算精度的神经网络处理器,使该处理器可在神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。
为实现上述目的,本发明提供了一种多计算精度神经网络处理方法,其中包括以下步骤:
步骤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,根据下一层网络数据位宽对该计算数据进行向下截断舍入处理,生成舍入数据;
步骤S42,对该舍入数据的排列结构进行移位调整,完成打包操作,生成打包数据;
步骤S44,接收并存储该打包数据,并将该打包数据输出至下一神经计算层。
该多计算精度神经网络处理方法,其中该步骤S3中,分析该原始数据的位宽信息关断部分计算单元具体为,通过分析该原始数据的总位数和实际有效位数,获得该原始数据的无效位数,在计算时关断用于计算该无效位数的计算单元。
该多计算精度神经网络处理方法,其中该多计算精度神经网络处理方法还包括,步骤S31,将该计算单元阵列中每个计算行内数据对应存储于存储器中的每个存储字。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
本发明旨在提供一种具有多计算精度的神经网络处理器,所述处理器可在神经网络不同层采用不同的数据精度参与计算,在保证计算精度的前提下,减少了片上存储量,降低了数据传输能量损耗。通过采用所述神经网络处理器,可以在给定存储资源及计算资源的前提下存储和处理更大的深度神经网络;或者,可以对于单一特定网络,减少面积和能量损耗。
图1为本发明提供的一种多计算精度的神经网络处理器系统101示意图,该神经网络处理器系统101架构由七个部分构成,包括至少一个输入数据存储单元102、至少一个控制单元103、至少一个输出数据存储单元104、至少一个权重存储单元105、至少一个指令存储单元106和至少一个计算单元阵列107。
输入数据存储单元102与计算单元阵列107相连,用于存储参与计算的数据,该数据包括原始特征图数据和参与中间层计算的数据;输出数据存储单元104与计算单元阵列107相连,用于存储计算得到的神经元响应值;指令存储单元106存储参与计算的指令信息,指令被解析为控制流来调度神经网络计算;权重存储单元105用于存储已经训练好的神经网络权重。
控制单元103分别与输出数据存储单元104、权重存储单元105、指令存储单元106、计算单元阵列107相连,控制单元103获得保存在指令存储单元106中的指令并且解析该指令,控制单元103可根据解析指令得到的控制信号控制计算单元进行神经网络计算。
计算单元阵列107包含多个计算单元,用于根据控制单元103产生的控制信号来执行相应的神经网络计算。计算单元阵列107与一个或多个存储单元相关联,计算单元阵列107可以从与其相关联的输入数据存储单元102中的数据存储部件获得数据以进行计算,并且可以向与其相关联的输出数据存储单元104写入数据。计算单元阵列107完成神经网络算法中的大部分运算,即向量乘加操作、池化和局部相应归一化等操作。
所述计算单元为实现多计算精度的功能,在其输入端设有解包器,将存储在存储器内较低位宽的数据扩展为完整数据位宽(处理器设计最大数据位宽);在输出端设有打包器,将具有完整数据位宽的计算结果编码为神经网络下一层所需计算位宽的数据。
图2为本发明提供的具有多计算精度神经网络处理器的工作流程:
步骤1,控制单元对指令存储单元寻址,读取并解析下一步需要执行的指令,并对该指令进行解析得到存储地址;
步骤2,根据该存储地址从输入存储单元和指令存储单元中分别获取输入数据及权重;
步骤3,将该输入数据及该权重分别读入数据解包器和权重解包器,解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;
步骤4,将该原始数据和原始权重载入至计算单元阵列;
步骤5,计算单元阵列根据该原始数据位宽关断部分计算单元,并执行神经网络运算中的运算操作,生成计算数据,其中该计算数据为原始数据位宽;
步骤6,将该计算数据输入至打包器,打包器将该计算数据编码为神经网络下一层所需数据位宽,生成打包数据;
步骤7,将该打包数据存储至输出数据存储器中。
本发明所述神经网络处理依据图层深度方式进行计算,如图3所示。在计算单元阵列中,每一行计算单元对应计算深度。
为提高数据利用率并充分利用带宽,在本发明中,存储器数据存储宽度与计算单元计算深度保持一致,即每个存储字内均存储了计算单元在图层深度所需要的数据量,如图3。
本发明将计算单元中位于相同列但是不同行的数据称为计算列,位于相同行但是不同列的数据称为计算行,在存储器中每个存储字内存储的数据对应于计算单元阵列中每个计算行内数据,其中该计算行内数据包括。
本发明提出的基于计算列的数据存储方式如图3。根据计算单元列数量N将存储器分为N个计算列,每个计算列对应于计算单元中每一列的计算单元。输入至第0列的权重均存储至计算列0中,输入至第1列的权重均存储至计算列1中……依此类推,直至计算列N位置。假设最大数据位数为16,那么在存储器的每个存储字内首先存储计算列0的前16位,计算列1的16位紧跟其后,计算单元中每一列的数据映射到相同的计算列中,每个解包器在工作过程中对应于一个计算单元。
图4举例描述了所述基于计算单元阵列的存储方式。图4例中最大数据位宽为8位,计算单元行数为1,列数为2,数据位宽为3位。每个计算列的宽度与最大数据位宽相匹配,均为4位。第一个存储字包含(d0,b2...b0,c0,a2...a0),包括数据a和b的全部3位数字加上权重d和c的第0位;同样道理,第二个存储字包含(f1...f0,d2...d1,e1...e0,c2...c1)。解包器按照顺序(b,a),(d,c),(f,e)分批次递送数据。在本例所述情况下,每个计算列均需要一个解包器,共需要两个解包器。每个解包器负责计算列中四位数据的解码工作。
本发明所述解包器的电路结构如图5所示。解包器包括两个寄存器组,每个寄存器组的宽度为神经网络处理器最大数据位宽;一个桶形移位器,桶形移位器位宽为两寄存器组位宽之和;扩展器,用于数位扩展及符号位扩展。
本发明所述解包器的工作过程如下:
步骤31,读入第一组数据至寄存器组中;
步骤32,读入第二组数据至寄存器组中;
步骤33,将两组寄存器中的值读入至桶形移位器中;
步骤34,将读入至桶形移位器中的数据进行移位,保证输入数据最高位与处理器最大数据位宽的最高位对齐,并将对齐后的数据发送至步骤35;
步骤35,将对齐后的该数据扩展至原始数据完整位宽,包括位数扩展和符号位扩展两部分。
本发明以图6为例描述本发明所述解包器的工作过程。为方便起见,以处理器最大数据位宽为4,当前层输入数据位宽为3为例,解释所述解包器的工作过程。首先,将(e1,e0,c2,c1)和(c0,a2,a1,a0)两组数据读入至寄存器组中;接着,桶形移位器移动数据,将输入数据最高位与处理器最大数据位宽对齐;最后将移位调整后的数据读入至扩展器中,将低位进行零扩展。在本例中,三位数据包括符号位。
本发明所述打包器的电路结构如图7所示,打包器包括一个舍入器,用于将数据进行截断舍入处理;一个移位器,功能为通过移位调整数据排列结构;两个寄存器组,每个寄存器组的宽度为处理器最大数据位宽。
本发明所述打包器的工作过程如下:
步骤61,读入计算数据至舍入器,打包器根据下一层网络数据位宽进行向下截断舍入处理,生成舍入数据;
步骤62,将该舍入数据读入至移位器中;
步骤63,移位器对该舍入数据的排列结构进行移位调整,以完成打包操作,生成打包数据;
步骤64,将该打包数据存储至输出数据存储单元中。
本发明以图8为例描述本发明所述打包器的工作过程。为方便起见,以处理器最大数据位宽为4,当前层数据位宽为3为例,解释所述打包器的工作过程。首先将计算单元的计算结果(a3,a2,a1,a0)载入至打包器中的舍入器中;接着,舍入器根据下一层数据位数,采用向下截断的方式,舍弃数据低位部分,得到数据(a3,a2,a1,0);最后,将经过舍入处理的数据载入移位器中,调整当前数据(a3,a2,a1,0)与前组数据(b3,b2,b1,0)的排列位置,得到存储格式的数据(a1,b3,b2,b1),并读出。
本发明提出一种适用于上述多精度计算单元的数据路径关断技术。计算单元的数据路径被划分为多个独立通道,当数据位宽(位数)改变时,通过打开或关断部分数据通道的方式可以匹配数据位宽。
图9以两个12位二进制数参与乘法运算为例具体描述本发明提出的数据路径关断技术。两个操作数原始数据A15-0和B15-0为16位操作数,实际有效位为12位,在计算时抛弃低4位数据,具体工作流程如下:
数据A15-0和数据B15-0中的低8位A7-0和B7-0接入到八位乘法器①中,计算结果P115-8作为中间计算结果接入到8位乘法器③中,计算结果P17-0作为最终计算结果P31-0的低8位;
A15-8和B7-0接入到8位乘法器②中,其中A11-8接入到4位乘法器2-1和2-3中,A15-12接入到4位乘法器2-2和2-4中,B3-0接入到4位乘法器2-1和2-2中,B7-4接入到4位乘法器2-3和2-4中,由于A15-12不含有效数值,因此4位乘法器2-2和2-4处于关断状态,计算结果P27-0作为中间计算结果接入至8位乘法器③中,计算结果P215-8作为中间计算结果接入至8位乘法器④中;
A7-0和A15-8接入到8位乘法器③中,其中A3-0接入到4位乘法器3-1和3-3中,A7-4接入到4位乘法器3-2和3-4中,B11-8接入到4位乘法器3-1和3-2中,B15-12接入到4位乘法器2-3和2-4中,由于B15-12不含有效数值,因此4位乘法器3-3和3-4处于关断状态,计算结果P315-8作为中间计算结果接入至8位乘法器③中,计算结果P37-0作为最终计算结果P31-0的P15-8
A15-8和B15-8接入到8位乘法器④中,其中A11-8接入到4位乘法器4-1和4-3中,A15-12接入到4位乘法器4-2和4-4中,B11-8接入到4位乘法器4-1和4-2中,B15-12接入到4位乘法器4-3和4-4中,由于B15-12不含有效数值,因此4位乘法器4-2、4-3和4-4处于关断状态,计算结果P415-8作为最终计算结果P31-0的P31-24,计算结果P47-0作为最终计算结果P31-0的P23-16
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
本发明还提供了一种多计算精度神经网络处理系统,其中包括:
控制单元,用于从指令存储单元读取需要执行的指令,对该指令进行解析得到存储地址,并从该存储地址获取输入数据和权重;
解包器,用于将该输入数据的位宽及该权重的位宽分别解码拓展为处理器设计最大数据位宽,生成原始数据和原始权重;
计算单元阵列,用于根据该原始数据位宽关断部分计算单元,执行神经网络运算中的运算操作,生成计算数据;
打包器,用于将该计算数据的位宽编码为神经网络下一层所需数据位宽,生成打包数据,并将该打包数据输出。
该多计算精度神经网络处理系统,其中该解包器包括:
第一寄存器,用于接收并存储该权重和该输入数据;
桶形移位器,用于对该权重和该输入数据进行移位处理,以使该权重和该输入数据的最高位与处理器最大数据位宽的最高位对齐,并将对齐后的数据发送至拓展器;
拓展器,用于将对齐后的该数据扩展至原始数据完整位宽。
该多计算精度神经网络处理系统,其中该打包器包括:
舍入器,用于根据下一层网络数据位宽对该计算数据进行向下截断舍入处理,生成舍入数据;
移位器,用于对该舍入数据的排列结构进行移位调整,完成打包操作,生成打包数据;
第二寄存器,用于接收并存储该打包数据,并将该打包数据输出至下一神经计算层。
该多计算精度神经网络处理系统,其中该计算单元阵列根据该原始数据位宽关断部分计算单元具体为,通过分析该原始数据的总位数和实际有效位数,获得该原始数据的无效位数,在计算时关断用于计算该无效位数的计算单元。
该多计算精度神经网络处理系统,其中该多计算精度神经网络处理系统还包括,存储器,该存储器中每个存储字存储对应计算单元阵列中每个计算行内数据。
综上所述,本发明针对神经网络处理器中存在的运算数据规模大、片上资源需求高及电路能量消耗大等问题,提出一种多计算精度的神经网络处理器,在保证神经网络计算精度同时,降低片上资源开销及能量损耗。
应当理解,虽然本说明书是按照各个实施例描述的,但并非每个实施例仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
以上所述仅为本发明示意性的具体实施方式,并非用以限定本发明的范围。任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所作的等同变化、修改与结合,均应属于本发明保护的范围。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710182542.9A CN107423816B (zh) 2017-03-24 2017-03-24 一种多计算精度神经网络处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710182542.9A CN107423816B (zh) 2017-03-24 2017-03-24 一种多计算精度神经网络处理方法和系统

Publications (2)

Publication Number Publication Date
CN107423816A true CN107423816A (zh) 2017-12-01
CN107423816B CN107423816B (zh) 2021-10-12

Family

ID=60423655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710182542.9A Active CN107423816B (zh) 2017-03-24 2017-03-24 一种多计算精度神经网络处理方法和系统

Country Status (1)

Country Link
CN (1) CN107423816B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256645A (zh) * 2018-01-19 2018-07-06 上海兆芯集成电路有限公司 数据位宽可调适的处理器
CN108416431A (zh) * 2018-01-19 2018-08-17 上海兆芯集成电路有限公司 神经网络微处理器与宏指令处理方法
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN109146060A (zh) * 2018-08-09 2019-01-04 郑州云海信息技术有限公司 一种基于卷积神经网络处理数据的方法及装置
CN109325590A (zh) * 2018-09-14 2019-02-12 中国科学院计算技术研究所 用于实现计算精度可变的神经网络处理器的装置
CN110046703A (zh) * 2019-03-07 2019-07-23 中国科学院计算技术研究所 一种用于神经网络的片上存储处理系统
WO2019165679A1 (zh) * 2018-03-01 2019-09-06 中国科学院计算技术研究所 一种包括比特转换装置的神经网络处理器及其方法
CN110600019A (zh) * 2019-09-12 2019-12-20 东南大学 基于实时场景下语音信噪比预分级的卷积神经网络计算电路
CN111626414A (zh) * 2020-07-30 2020-09-04 电子科技大学 一种动态多精度神经网络加速单元
CN112836806A (zh) * 2021-02-26 2021-05-25 上海阵量智能科技有限公司 一种数据格式调整方法、装置、计算机设备和存储介质
WO2021168644A1 (zh) * 2020-02-25 2021-09-02 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法
WO2023116923A1 (zh) * 2021-12-24 2023-06-29 华为技术有限公司 一种存算一体装置和计算方法
WO2024061162A1 (zh) * 2022-09-22 2024-03-28 北京有竹居网络技术有限公司 数据处理方法、数据处理装置和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1107983A (zh) * 1993-03-31 1995-09-06 莫托罗拉公司 一种数据处理系统及其方法
US20040030856A1 (en) * 2002-08-07 2004-02-12 Qureshi Shiraz A. System and method for operating in endian independent mode
CN102665049A (zh) * 2012-03-29 2012-09-12 中国科学院半导体研究所 基于可编程视觉芯片的视觉图像处理系统
CN103425498A (zh) * 2013-08-20 2013-12-04 复旦大学 一种低功耗的长指令字指令存储器及其优化功耗的方法
US20160292566A1 (en) * 2013-12-18 2016-10-06 Commissariat A L'energie Atomique Et Aux Energies Alternatives Signal processing module, especially for a neural network and a neuronal circuit
CN106447034A (zh) * 2016-10-27 2017-02-22 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106485321A (zh) * 2015-10-08 2017-03-08 上海兆芯集成电路有限公司 具有架构神经网络执行单元的处理器
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1107983A (zh) * 1993-03-31 1995-09-06 莫托罗拉公司 一种数据处理系统及其方法
US20040030856A1 (en) * 2002-08-07 2004-02-12 Qureshi Shiraz A. System and method for operating in endian independent mode
CN102665049A (zh) * 2012-03-29 2012-09-12 中国科学院半导体研究所 基于可编程视觉芯片的视觉图像处理系统
CN103425498A (zh) * 2013-08-20 2013-12-04 复旦大学 一种低功耗的长指令字指令存储器及其优化功耗的方法
US20160292566A1 (en) * 2013-12-18 2016-10-06 Commissariat A L'energie Atomique Et Aux Energies Alternatives Signal processing module, especially for a neural network and a neuronal circuit
CN106485321A (zh) * 2015-10-08 2017-03-08 上海兆芯集成电路有限公司 具有架构神经网络执行单元的处理器
CN106447034A (zh) * 2016-10-27 2017-02-22 中国科学院计算技术研究所 一种基于数据压缩的神经网络处理器、设计方法、芯片
CN106529670A (zh) * 2016-10-27 2017-03-22 中国科学院计算技术研究所 一种基于权重压缩的神经网络处理器、设计方法、芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HSIN-FU LUO等: ""Efficient Memory-Addressing Algorithms for FFT Processor Design"", 《 IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 *
许孟杰: ""嵌入式快速存储模块的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108416431A (zh) * 2018-01-19 2018-08-17 上海兆芯集成电路有限公司 神经网络微处理器与宏指令处理方法
CN108256645A (zh) * 2018-01-19 2018-07-06 上海兆芯集成电路有限公司 数据位宽可调适的处理器
CN108256645B (zh) * 2018-01-19 2021-02-26 上海兆芯集成电路有限公司 数据位宽可调适的处理器
WO2019165679A1 (zh) * 2018-03-01 2019-09-06 中国科学院计算技术研究所 一种包括比特转换装置的神经网络处理器及其方法
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108564168B (zh) * 2018-04-03 2021-03-09 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN109146060A (zh) * 2018-08-09 2019-01-04 郑州云海信息技术有限公司 一种基于卷积神经网络处理数据的方法及装置
CN109146060B (zh) * 2018-08-09 2022-04-22 郑州云海信息技术有限公司 一种基于卷积神经网络处理数据的方法及装置
CN109325590B (zh) * 2018-09-14 2020-11-03 中国科学院计算技术研究所 用于实现计算精度可变的神经网络处理器的装置
CN109325590A (zh) * 2018-09-14 2019-02-12 中国科学院计算技术研究所 用于实现计算精度可变的神经网络处理器的装置
CN110046703A (zh) * 2019-03-07 2019-07-23 中国科学院计算技术研究所 一种用于神经网络的片上存储处理系统
CN110600019B (zh) * 2019-09-12 2022-02-15 东南大学 基于实时场景下语音信噪比预分级的卷积神经网络计算电路
CN110600019A (zh) * 2019-09-12 2019-12-20 东南大学 基于实时场景下语音信噪比预分级的卷积神经网络计算电路
WO2021168644A1 (zh) * 2020-02-25 2021-09-02 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法
CN111626414B (zh) * 2020-07-30 2020-10-27 电子科技大学 一种动态多精度神经网络加速单元
CN111626414A (zh) * 2020-07-30 2020-09-04 电子科技大学 一种动态多精度神经网络加速单元
CN112836806A (zh) * 2021-02-26 2021-05-25 上海阵量智能科技有限公司 一种数据格式调整方法、装置、计算机设备和存储介质
CN112836806B (zh) * 2021-02-26 2023-12-22 上海阵量智能科技有限公司 一种数据格式调整方法、装置、计算机设备和存储介质
WO2023116923A1 (zh) * 2021-12-24 2023-06-29 华为技术有限公司 一种存算一体装置和计算方法
WO2024061162A1 (zh) * 2022-09-22 2024-03-28 北京有竹居网络技术有限公司 数据处理方法、数据处理装置和存储介质

Also Published As

Publication number Publication date
CN107423816B (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
CN107423816A (zh) 一种多计算精度神经网络处理方法和系统
CN104915322B (zh) 一种卷积神经网络硬件加速方法
CN107169563B (zh) 应用于二值权重卷积网络的处理系统及方法
Yepez et al. Stride 2 1-D, 2-D, and 3-D Winograd for convolutional neural networks
CN105892989B (zh) 一种神经网络加速器及其运算方法
CN107918794A (zh) 基于计算阵列的神经网络处理器
CN107797962B (zh) 基于神经网络的计算阵列
CN106951962A (zh) 用于神经网络的复合运算单元、方法和电子设备
CN108108811A (zh) 神经网络中的卷积计算方法和电子设备
CN107256424A (zh) 三值权重卷积网络处理系统及方法
CN107085562B (zh) 一种基于高效复用数据流的神经网络处理器及设计方法
CN107203808B (zh) 一种二值卷积装置及相应的二值卷积神经网络处理器
CN110163359A (zh) 一种计算装置及方法
CN107944545A (zh) 应用于神经网络的计算方法及计算装置
CN109146067A (zh) 一种基于FPGA的Policy卷积神经网络加速器
CN108897716B (zh) 通过存储器读写操作来缩减计算量的数据处理装置及方法
CN110543939A (zh) 一种基于fpga的卷积神经网络后向训练的硬件加速实现架构
CN110163350A (zh) 一种计算装置及方法
CN108171328A (zh) 一种卷积运算方法和基于该方法的神经网络处理器
CN115238863A (zh) 一种卷积神经网络卷积层的硬件加速方法、系统及应用
CN107957977A (zh) 一种计算方法及相关产品
CN113222150A (zh) 一种量子态的变换方法及装置
CN112966729B (zh) 一种数据处理方法、装置、计算机设备及存储介质
CN107103358A (zh) 基于自旋转移力矩磁存储器的神经网络处理方法及系统
CN110119265A (zh) 乘法运算实现方法、装置、计算机存储介质及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant