CN111626414B - 一种动态多精度神经网络加速单元 - Google Patents

一种动态多精度神经网络加速单元 Download PDF

Info

Publication number
CN111626414B
CN111626414B CN202010747687.0A CN202010747687A CN111626414B CN 111626414 B CN111626414 B CN 111626414B CN 202010747687 A CN202010747687 A CN 202010747687A CN 111626414 B CN111626414 B CN 111626414B
Authority
CN
China
Prior art keywords
neural network
data
unit
memory
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.)
Active
Application number
CN202010747687.0A
Other languages
English (en)
Other versions
CN111626414A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN202010747687.0A priority Critical patent/CN111626414B/zh
Publication of CN111626414A publication Critical patent/CN111626414A/zh
Application granted granted Critical
Publication of CN111626414B publication Critical patent/CN111626414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及集成电路领域及人工智能领域,具体地说涉及***级别的集成电路芯片,特别涉及一种动态多精度神经网络加速单元。本发明通过将PE单元阵列化后,再次将PE单元阵列作为阵列单元的双重阵列设计,来支持不同的神经网络层级运算,满足不同算法以及不同数据精度的需求。还对神经网络计算单元进行硬件加速设计,在整体设计中加入流水线设计,极大提升数据吞吐率与运算速度,且重点优化神经运算单元的乘加单元,提升硬件资源的复用,极大减少硬件面积;能根据神经网络模型的需要,满足不同精度的数据类型运算;同时支持神经网络中的基本运算,例如卷积,池化,非线性映射,矩阵乘等。

Description

一种动态多精度神经网络加速单元
技术领域
本发明涉及集成电路领域及人工智能领域,具体地说涉及***级别的集成电路芯片,特别涉及一种动态多精度神经网络加速单元。
背景技术
随着数据的***增长以及计算性能的飞速提升,机器学习已经变得越来越火热,逐渐渗入到我们生活中的各个角落:常见的应用有语音视频比如苹果公司的Siri以及微软公司的Cortana;人脸识别如苹果公司的Apple iPhoto和谷歌公司的Google Picasa;人工智能比如谷歌旗下DeepMind公司的Alhpa Go已经击败了人类的顶尖棋手。目前,机器学习领域中最吸引人目光的是以神经网络为代表的深度学习。
深度神经网络通过建立模型模拟人类大脑的神经连接结构,在图像处理,语音识别等领域有了很大的突破。但是由于神经网络模型越来越复杂,权重数据越来越大,所需精度越来越高,以及卷积神经网络的兴起,较大的图像输入数据,对硬件提出了较高的要求。通常使用的通用处理器通用芯片由于其通用性以及分支预测,地址合并等通用功能,并不完全适用于神经网络的加速,且会占用芯片的设计面积以及资源。现有的通用处理器已经慢慢不再能满足神经网络加速的要求,于是人们开始设计专用的神经网络加速硬件来加速神经网络。
由于现场可编程逻辑门阵列(FPGA)可编程性强,作为加速器研发周期短,在它上面实现神经网络加速的研究越来越多。但目前的深度神经网络计算还是重度依赖密集的浮点矩阵乘,抛开独特的数据类型(利用稀疏压缩后的数据类型)设计,它更利于映射到GPU上(常规并行性),因此市场上依然是GPU被广泛地用于加速深度神经网络。FPGA虽然提供了卓越的能耗效率,但它并不能达到当今GPU的性能,现阶段还不适合普及。
发明内容
针对上述存在问题或不足,为了解决现有神经网络加速技术存在的功耗、成本与面积等问题,本发明提供了一种动态多精度神经网络加速单元,是一种专用集成电路(ASIC),该芯片在同等的芯片面积下,相较于GPU或FPGA降低了功耗和成本,并且提高了芯片的计算性能。并且相对于一般的专用集成电路,本发明由于其可编程性以及多精度,更具有灵活性。该ASIC的实现使得低功耗低成本高性能的在线学习人工智能芯片成为可能。
具体技术方案如下:
一种动态多精度神经网络加速单元,包括:数据接口模块、配置接口模块、内存接口、输入缓冲模块、神经网络计算单元、内存调度单元、输出缓冲模块和***控制模块。
所述配置接口模块通过向***控制模块输送配置信息来配置整个***。
所述数据接口模块负责向***传输输入数据。
所述内存接口与输入缓冲模块、内存调度单元和输出缓冲模块相连;通过内存调度单元的控制以及监控下,向输入缓冲模块传输内存中储存的权重数据,或接受输出缓冲模块的运算结果数据,或通过内存调度单元控制暂存神经网络计算单元的中间运算结果。
所述输入缓冲模块与数据接口模块、内存接口和神经网络计算单元相连接,将内存中的权重数据、以及通过数据接口获得的输入数据,经过数据预处理后送入神经网络计算单元。
所述输出缓冲模块与内存调度单元、内存接口相连,在神经网络计算单元得到最终运算结果后,在内存调度单元的调度下,将运算结果排列准备,存入对应的内存地址中。
所述内存调度单元负责数据的调度以及与内存的交互,从相应地址处取数据、将计算的最终结果存入相应的内存地址、或将神经网络计算单元运算结果暂时存入内存;所述***控制模块通过监控神经网络计算单元,以及内存调度单元的当前数据流动状态,控制输入缓冲模块、神经网络计算单元、内存调度单元以及输出缓冲模块协同同步工作。
所述***控制模块通过监控神经网络计算单元,以及内存调度单元的当前数据流动状态,控制输入缓冲模块、神经网络计算单元、内存调度单元以及输出缓冲模块协同同步工作。实现根据神经网络模型的需要,满足不同精度的数据类型运算。同时支持神经网络中的基本运算,例如卷积,池化,非线性映射,矩阵乘等。
所述内存调度单元负责数据的调度以及与内存的交互。
所述神经网络计算单元包含N个并行的处理单元(PE)阵列,N≥2,根据神经网络算法模型编程设置相应数量的PE阵列并行运行,来提高计算处理效率以及速度,用以进行卷积运算和矩阵乘法运算。处理单元(PE)阵列是由S个处理单元(PE)构成的n1×m1的二维矩阵,n1和m1均≥2,各处理单元(PE)间的连接通路为可编程,以支持不同规模的神经网络算法模型。
所述神经网络计算单元进行卷积运算时,根据卷积核尺寸大小配置PE个数来满足计算要求。同时还通过配置PE阵列的个数在输出通道维度上以及输入数据维度上进行并行,以控制不同PE阵列输出不同的输出通道,以及控制多个PE阵列同时处理同一个输入图像的不同部位的数据,提高并行度,从而加速运算。
所述神经网络计算单元进行矩阵乘法运算时,根据输入矩阵的尺寸大小配置PE以及PE阵列在行或列的维度上拼接,以满足计算要求。
进一步的,所述数据接口、内存接口、输入缓冲模块和输出缓冲模块可挂靠在片内的总线上,提高传输效率,优化结构。
进一步的,所述神经网络计算单元在每个PE阵列后还连接有M级加法链,在所有的M级加法链后还连接有K级加法树以减少关键路径延时从而提高***速度和计算效率。
进一步的,所述神经网络计算单元的每个PE均可处理多个数据精度的浮点数和定点数乘加运算,数据精度为int-16、int-8、int-4、int-2、int-1和floating-16。
进一步的,所述神经网络计算单元的PE所用硬件资源复用,高位宽的乘法运算复用低位宽乘法器,所有数据位宽的加法运算复用同一个加法器。
进一步的,所述神经网络算法模型为ResNet,VggNet,GoogleNet,YoLo或RCNN。
本发明提供的一种动态多精度神经网络加速单元,通过将PE单元阵列化后,再次将PE单元阵列作为阵列单元的双重阵列设计,来支持不同的神经网络层级运算,满足不同算法以及不同数据精度的需求。还对神经网络计算单元进行硬件加速设计,在整体设计中加入流水线设计,极大提升数据吞吐率与运算速度,且重点优化神经运算单元的乘加单元,提升硬件资源的复用,极大减少硬件面积;能根据神经网络模型的需要,满足不同精度的数据类型运算;同时支持神经网络中的基本运算,例如卷积,池化,非线性映射,矩阵乘等。
附图说明
图1是本发明的架构框图。
图2是本发明神经网络计算单元的架构框图。
图3是本发明单个PE的结构示意框图。
图4是本发明实施例低位宽乘法器搭建高位宽乘法器的结构框图。
图5是本发明实施例映射一种卷积运算时数据流动示意图。
图6是本发明实施例映射一种矩阵运算时数据流动示意图。
具体实施方式
为使本发明的发明目的,技术方案和优点更加清楚,下面将结合附图和具体实施例对本发明作进一步地详细描述。
实施例一
本实施例提供的一种动态多精度神经网络加速单元,应用于智能辅助驾驶领域AI加速芯片设计,其架构参见图1,包括:数据接口模块、配置接口模块、内存接口、输入缓冲单元、神经网络计算单元、内存调度单元、输出缓冲单元和***控制模块。
所述***控制模块实施对输入缓冲模块、内存接口、神经网络计算单元、内存调度单元、输出缓冲模块的控制,通过监控整个神经网络的进程,控制协调整个***。
所述配置接口模块可以通过向***控制模块输送配置信息来根据需要配置整个***。
所述***控制模块可以挂靠在***总线上,如AMBA的APB总线等,通过总线与配置接口、外部***等模块交互。
所述数据接口模块负责向***传输输入数据,支持USB、MIPI、RGB888、BT1120、BT656等接口,来传输图像数据以及其他类型的数据。
所述内存接口与输入缓冲模块、内存调度单元和输出缓冲模块相连;所述内存接口可以通过内存调度单元的控制以及监控下,向输入缓冲模块传输内存中储存的权重数据,或接受输出缓冲模块的运算结果数据,或在数据规模比较大时,通过内存调度单元控制暂存神经网络计算单元的中间运算结果。
所述输入缓冲模块与数据接口模块、内存接口、神经网络计算单元相连接,将内存中的权重数据、以及通过数据接口获得的输入数据,经过数据预处理后送入神经网络计算单元。
所述输出缓冲模块与内存调度单元、内存接口相连,所述输出缓冲模块在神经网络计算单元得到最终运算结果后,在内存调度单元的调度下,将运算结果排列准备,存入对应的内存地址中。
所述数据接口、内存接口、输入缓冲模块,输出缓冲模块可挂靠在片内的总线上,如AMBA的AXI总线协议等,提高传输效率,优化结构。
所述内存调度单元负责数据的调度以及与内存的交互:比如从相应地址处取数据、将计算的最终结果存入相应的内存地址、或在神经网络计算单元所处理数据过大时,将部分运算结果暂时存入内存,随后再取出等用途。
所述神经网络计算单元的结构如图2所示,包括:N个并行的处理单元(PE)阵列、与阵列相连的加法链、以及加法树。
单个PE阵列可根据实际应用以及卷积核尺寸的要求,排列成所需要的大小,例如3×3、5×5等尺寸大小(一般情况下为正方形阵列)。
可以设置N个PE阵列相并行,来提高计算处理效率以及速度。
在每个单个PE阵列后可连接M级加法链,M为每个PE阵列的阶数,所述M级加法链将PE阵列的计算结果分步相加,而不是将所有结果一起相加,这在硬件层面上考虑可以用来提升计算的效率以及速度。
在所有的加法链后可以连接K级加法树,所述K级加法树用来处理前面M级加法链的结果,其中
Figure 17925DEST_PATH_IMAGE001
,N为并列的PE阵列个数。用来提高计算的效率以及速度,并且可以减少关键路径延时以提高***速度和计算效率。
本发明所述PE主要完成乘法以及累加操作,支持多精度数据类型的计算,支持浮点数也支持定点数的计算。
具体地,所述神经网络计算单元中的PE可以根据配置动态支持神经网络模型中不同精度的数据类型运算,比如:int-16、int-8、int-4、int-2、int-1、floating-16等数据类型。
如图3所示是本实施例的一种PE的结构。当输入数据以及权重数据为浮点数时,乘法操作,需要乘法器、加法器协同工作,完成浮点数指数相加、尾数相乘的操作;加法操作需要用到图示的比较器和移位寄存器,来完成浮点数加法中的比阶、对阶操作。当输入数据以及权重数据为整数时,乘法操作只需用到乘法器即可,加法操作也可以跳过浮点数模块,直接将数据输入到加法器即可。
当有数据在PE阵列中流动而不需要进行计算时,所述PE结构还包含了数据传输接口,经历过一个时钟周期后直接输出给下个PE,而不在本PE内进行运算。
可选地,图3中PE结构中所采用乘法器使用最低精度的数据类型来搭建。以int-16、int-8、int-4、floating-16数据类型为例,所有乘法器采用4bit乘法器搭建,更高数据宽度的乘法使用多个4bit乘法器拼接而成。
具体地,例如a,b为16bit数据类型,分别拆分成两个8bit数,a1、a2、b1、b2。则a、b的16bit乘法可拆分为8bit的乘法:
Figure 935066DEST_PATH_IMAGE002
同理8bit数,可以拆分成两个4bit数,将8bit的乘法拆分为4bit的乘法。
于是可将16bit的数乘c,d法拆分成c1、c2、c3、c4,d1、d2、d3、d4的4bit数据。则c、d的16bit乘法可拆分为4bit乘法:
Figure 170263DEST_PATH_IMAGE003
具体地,如图4所示,8bit乘法器由4个4bit搭建,16bit由4个8bit乘法器搭建。
可选地,本发明所述PE硬件结构中加法器复用同一个加法器,来达到尽可能的硬件资源复用,减少设计所需的面积。
具体地,如果N个T bit定点数相加,所需要的加法器位宽应为:
Figure 96630DEST_PATH_IMAGE004
,即可复用同一个加法器。
为了方便说明,本实施例中以下所提到的单个PE阵列尺寸大小均为3×3,下面结合图5,以卷积运算为例给出本发明在进行卷积运算时的数据流动。
如图5所示,以卷积核尺寸为3x3为例,通过输入缓冲模块,把卷积核对应的权重值按照图示方式反向载入至阵列中。
当有输入数据时,输入缓冲模块从数据接口模块获得输入数据后,将输入特征数据以行为单位依次流入阵列,即按照R11、R21、R31、……、R1n、R2n、R3n的顺序送入阵列,其中n为输入数据的总列数。
经过两个单位时钟周期的数据流动后,第一列数据R11、R21、R31……流动到阵列最右边,开始第一次卷积运算。每运算一次,数据向右移动一个步长,相当于卷积运算中卷积核在输入图像中向右移动一个步长,直到最后一列数据进入阵列完成运算后,数据向下移动一个步长,继续上面的操作,直到遍历完整个输入图像。
即完成公式所述计算:
Figure 911003DEST_PATH_IMAGE005
其中Z代表神经元在三维空间的结果;
Figure 874411DEST_PATH_IMAGE006
为输入通道数;
Figure 141444DEST_PATH_IMAGE007
为其中一个输出通道;
Figure 871502DEST_PATH_IMAGE008
为输出特征图在2-D平面上的坐标轴;
Figure 540381DEST_PATH_IMAGE009
为卷积核的尺寸;
Figure 986275DEST_PATH_IMAGE010
分别表示三个坐标轴上的坐标;
Figure 740604DEST_PATH_IMAGE011
为卷积运算的步长;
Figure 477616DEST_PATH_IMAGE012
是输入特征图像;W代表卷积核中的权重值;
Figure 141947DEST_PATH_IMAGE013
为神经元的偏置;f为激活函数。
可选地,可以并行使用多个PE阵列来同时处理输入数据,来提高计算的效率以及计算速度。比如可用资源一共有3个PE阵列,即3×9=27个PE。输出通道也有3个,那么每个PE就可负责一个输出通道,3个输出通道并行输出。又如只有一个输出通道,可使用3个PE阵列同时处理输入图像,比如分别处理1~3行、4~6行、7~9行……n2~n2+2行,其中n2<(m-1),m为输入数据的总行数。
可选地,本发明除了可以进行卷积运算以外,也可以用于进行矩阵运算。图6中,给出了本发明进行矩阵运算时的数据流动。
可选地,权重矩阵从PE阵列的一侧流入,输入矩阵从另一侧流入。如图6所示,计算[3,n3]的输入矩阵和[n3,3]的权重矩阵,结果为[3,3]的矩阵。权重矩阵从PE阵列的上段向下流动,输入矩阵从PE阵列的左侧向右端流入。在权重矩阵中,数据按列输入、在输入矩阵中,数据按行输入,并且相邻的行或者列之间相隔一个时钟周期,目的是不丢失矩阵乘法的部分结果。
具体地,例如PE阵列中位于第二行第一列的矩阵,如果没有相隔一个时钟周期,第二行的输入数据会比第一列的权重数据早一个周期到达。相隔一个时钟周期后,第二行的输入数据和第一列的权重数据可同时到达这个PE,保证数据以及结果的正确。
每一个单个PE计算的是矩阵乘中一行乘一列的结果,位于第一行第一列的PE输出的是结果的矩阵乘结果的第一行第一列即S11,相应坐标的PE计算结果矩阵中相应位置的结果,即PE阵列和结果矩阵大小是对应的。
可选地,可使用多个3×3的PE阵列拼接,来满足不同大小矩阵的乘法。比如[3,n3]和[n3,6]的数据矩阵以及权重矩阵,结果为[3,6]的矩阵。可在行维度上并行两个阵列,形成3×6的PE阵列,就可满足计算要求。同理若结果为[6,3]的矩阵,可在列的维度上并行两个阵列,形成6×3的PE阵列。若要计算[m3,n3]矩阵和[n3,m3]矩阵的乘法,结果为[m3,m3]的矩阵,需要在行、列的维度上各并行(m3/3)个阵列。
最后根据公式:
Figure 571791DEST_PATH_IMAGE014
可以算出矩阵乘法的结果,其中M代表神经元在二维空间的结果;
Figure 344575DEST_PATH_IMAGE015
为输出结果的横纵坐标;O是输出层的神经元数目;D为输入数据;W为权重数据;Bias为神经元的偏置;f为激活函数。
在整个卷积运算以及矩阵运算过程中,***控制模块通过监控神经网络计算单元,通过内存调度单元控制数据出入以及阵列中的数据流动,控制输入缓冲模块、神经网络计算单元、内存调度以及输出缓冲模块协同同步工作。
本发明实施例提供的技术方案带来的有益效果是:
本发明提供的一种动态多精度神经网络加速单元,通过***控制模块控制各单元协同工作进行神经网络运算的加速。本发明中的神经网络计算单元采用通用硬件加速设计,可编程控制神经网络运算类型以及运算规模。设计中加入流水线设计,极大提升数据吞吐率与运算速度,并重点优化神经运算单元的乘加单元,提升硬件资源的复用,极大减少硬件面积。本发明能根据神经网络模型的需要,满足不同精度的数据类型运算。同时支持神经网络中的基本运算,例如卷积,池化,非线性映射,矩阵乘等。可以通过不同计算部件之间的组合来支持不同的神经网络层级运算,满足不同算法的需求。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种动态多精度神经网络加速单元,包括数据接口模块、配置接口模块、内存接口、输入缓冲模块、神经网络计算单元、内存调度单元、输出缓冲模块和***控制模块,其特征在于:
所述配置接口模块通过向***控制模块输送配置信息来配置整个***;
所述数据接口模块负责向***传输输入数据;
所述内存接口与输入缓冲模块、内存调度单元和输出缓冲模块相连;通过内存调度单元的控制以及监控下,向输入缓冲模块传输内存中储存的权重数据,或接受输出缓冲模块的运算结果数据,或通过内存调度单元控制暂存神经网络计算单元的中间运算结果;
所述输入缓冲模块与数据接口模块、内存接口和神经网络计算单元相连接,将内存中的权重数据、以及通过数据接口获得的输入数据,经过数据预处理后送入神经网络计算单元;
所述输出缓冲模块与内存调度单元、内存接口相连,在神经网络计算单元得到最终运算结果后,在内存调度单元的调度下,将运算结果排列准备,存入对应的内存地址中;
所述内存调度单元负责数据的调度以及与内存的交互,从相应地址处取数据、将计算的最终结果存入相应的内存地址、或将神经网络计算单元运算结果暂时存入内存;
所述***控制模块通过监控神经网络计算单元,以及内存调度单元的当前数据流动状态,控制输入缓冲模块、神经网络计算单元、内存调度单元以及输出缓冲模块协同同步工作;
所述神经网络计算单元包含N个并行的处理单元PE阵列,N≥2,根据神经网络算法模型编程设置相应数量的处理单元PE阵列并行运行,用以进行卷积运算和矩阵乘法运算;处理单元PE阵列是由S个处理单元PE构成的n1×m1的二维矩阵,n1和m1均≥2,各处理单元PE间的连接通路为可编程,以支持不同规模的神经网络算法模型;
所述的处理单元PE结构,采用最低精度的数据类型的乘法器、加法器、定点运算控制逻辑、浮点运算控制逻辑和数据通路控制逻辑来搭建。
2.如权利要求1所述动态多精度神经网络加速单元,其特征在于:所述数据接口、内存接口、输入缓冲模块和输出缓冲模块挂靠在片内的总线上。
3.如权利要求1所述动态多精度神经网络加速单元,其特征在于:所述神经网络计算单元在每个处理单元PE阵列后还连接有M级加法链,在所有的M级加法链后还连接有K级加法树。
4.如权利要求1所述动态多精度神经网络加速单元,其特征在于:所述神经网络计算单元的每个处理单元PE均可处理多个数据精度的浮点数和定点数乘加运算,数据精度为int-16、int-8、int-4、int-2、int-1和floating-16。
5.如权利要求1所述动态多精度神经网络加速单元,其特征在于:所述神经网络计算单元的处理单元PE所用硬件资源复用,高位宽的乘法运算复用低位宽乘法器,所有数据位宽的加法运算复用同一个加法器。
CN202010747687.0A 2020-07-30 2020-07-30 一种动态多精度神经网络加速单元 Active CN111626414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010747687.0A CN111626414B (zh) 2020-07-30 2020-07-30 一种动态多精度神经网络加速单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010747687.0A CN111626414B (zh) 2020-07-30 2020-07-30 一种动态多精度神经网络加速单元

Publications (2)

Publication Number Publication Date
CN111626414A CN111626414A (zh) 2020-09-04
CN111626414B true CN111626414B (zh) 2020-10-27

Family

ID=72271557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010747687.0A Active CN111626414B (zh) 2020-07-30 2020-07-30 一种动态多精度神经网络加速单元

Country Status (1)

Country Link
CN (1) CN111626414B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550607A (zh) * 2020-09-27 2022-12-30 北京天玛智控科技股份有限公司 基于fpga实现的模型推理加速器及智能视觉感知终端
CN112269757B (zh) * 2020-09-30 2023-10-27 北京清微智能科技有限公司 粗粒度可重构处理器中的计算阵列和可重构处理器
US12013809B2 (en) 2020-09-30 2024-06-18 Beijing Tsingmicro Intelligent Technology Co., Ltd. Computing array and processor having the same
CN112712173B (zh) * 2020-12-31 2024-06-07 北京清微智能科技有限公司 基于mac乘加阵列的稀疏化运算数据的获取方法及***
CN113298245B (zh) * 2021-06-07 2022-11-29 中国科学院计算技术研究所 一种基于数据流架构的多精度神经网络计算装置以及方法
CN113592066B (zh) * 2021-07-08 2024-01-05 深圳市易成自动驾驶技术有限公司 硬件加速方法、装置、设备及存储介质
CN114239815B (zh) * 2021-11-15 2023-05-12 电子科技大学 一种可重构神经网络计算芯片
CN114237551B (zh) * 2021-11-26 2022-11-11 南方科技大学 一种基于脉动阵列的多精度加速器及其数据处理方法
CN114239816B (zh) * 2021-12-09 2023-04-07 电子科技大学 一种卷积神经网络-图卷积神经网络可重构硬件加速架构
CN114330675A (zh) * 2021-12-30 2022-04-12 上海阵量智能科技有限公司 一种芯片、加速卡、电子设备和数据处理方法
CN114997388B (zh) * 2022-06-30 2024-05-07 杭州知存算力科技有限公司 存算一体芯片用基于线性规划的神经网络偏置处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423816A (zh) * 2017-03-24 2017-12-01 中国科学院计算技术研究所 一种多计算精度神经网络处理方法和***
CN107480782A (zh) * 2017-08-14 2017-12-15 电子科技大学 一种片上学习神经网络处理器
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108665063A (zh) * 2018-05-18 2018-10-16 南京大学 用于bnn硬件加速器的双向并行处理卷积加速***
CN109634558A (zh) * 2018-12-12 2019-04-16 上海燧原科技有限公司 可编程的混合精度运算单元
CN110705703A (zh) * 2019-10-16 2020-01-17 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器
CN111433851A (zh) * 2017-09-29 2020-07-17 科洛斯巴股份有限公司 运算存储器架构

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665049B (zh) * 2012-03-29 2014-09-17 中国科学院半导体研究所 基于可编程视觉芯片的视觉图像处理***
US11055063B2 (en) * 2016-05-02 2021-07-06 Marvell Asia Pte, Ltd. Systems and methods for deep learning processor
CN107688855B (zh) * 2016-08-12 2021-04-13 赛灵思公司 针对于复杂神经网络的分层量化方法与装置
CN107993186B (zh) * 2017-12-14 2021-05-25 中国人民解放军国防科技大学 一种基于Winograd算法的3D CNN加速方法及***
CN110245748B (zh) * 2018-03-09 2021-07-13 赛灵思电子科技(北京)有限公司 卷积神经网络实现方法、装置、硬件加速器、存储介质
US20190303757A1 (en) * 2018-03-29 2019-10-03 Mediatek Inc. Weight skipping deep learning accelerator
CN110390384B (zh) * 2019-06-25 2021-07-06 东南大学 一种可配置的通用卷积神经网络加速器
CN111199277B (zh) * 2020-01-10 2023-05-23 中山大学 一种卷积神经网络加速器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107423816A (zh) * 2017-03-24 2017-12-01 中国科学院计算技术研究所 一种多计算精度神经网络处理方法和***
CN107480782A (zh) * 2017-08-14 2017-12-15 电子科技大学 一种片上学习神经网络处理器
CN111433851A (zh) * 2017-09-29 2020-07-17 科洛斯巴股份有限公司 运算存储器架构
CN108564168A (zh) * 2018-04-03 2018-09-21 中国科学院计算技术研究所 一种对支持多精度卷积神经网络处理器的设计方法
CN108665063A (zh) * 2018-05-18 2018-10-16 南京大学 用于bnn硬件加速器的双向并行处理卷积加速***
CN109634558A (zh) * 2018-12-12 2019-04-16 上海燧原科技有限公司 可编程的混合精度运算单元
CN110705703A (zh) * 2019-10-16 2020-01-17 北京航空航天大学 基于脉动阵列的稀疏神经网络处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于RISC-V开源处理器的卷积神经网络加速器设计方法研究;杨维科;《中国优秀硕士学位论文全文数据库 信息科技辑》;20200115(第01期);I137-78 *

Also Published As

Publication number Publication date
CN111626414A (zh) 2020-09-04

Similar Documents

Publication Publication Date Title
CN111626414B (zh) 一种动态多精度神经网络加速单元
US10831862B2 (en) Performing matrix multiplication in hardware
CN210006057U (zh) 用于深度学习引擎的设备和***
CN110263925B (zh) 一种基于fpga的卷积神经网络前向预测的硬件加速实现装置
Guo et al. Software-hardware codesign for efficient neural network acceleration
CN108108809B (zh) 一种针对卷积神经元网络进行推理加速的硬件架构及其工作方法
CN104915322B (zh) 一种卷积神经网络硬件加速方法
CN110738308B (zh) 一种神经网络加速器
US7574466B2 (en) Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
CN107609641A (zh) 稀疏神经网络架构及其实现方法
CN111967468A (zh) 一种基于fpga的轻量级目标检测神经网络的实现方法
CN107085562B (zh) 一种基于高效复用数据流的神经网络处理器及设计方法
US11983616B2 (en) Methods and apparatus for constructing digital circuits for performing matrix operations
US20200356809A1 (en) Flexible pipelined backpropagation
Huang et al. IECA: An in-execution configuration CNN accelerator with 30.55 GOPS/mm² area efficiency
Que et al. Recurrent neural networks with column-wise matrix–vector multiplication on FPGAs
Ma et al. FPGA-based AI smart NICs for scalable distributed AI training systems
CN110766136B (zh) 一种稀疏矩阵与向量的压缩方法
US20230195836A1 (en) One-dimensional computational unit for an integrated circuit
CN114265801A (zh) 一种通用、可配置的高能效池化计算多行输出方法
CN113988280B (zh) 一种基于二值化神经网络的阵列计算加速器架构
US11714649B2 (en) RISC-V-based 3D interconnected multi-core processor architecture and working method thereof
US11847072B2 (en) Ai accelerator apparatus using in-memory compute chiplet devices for transformer workloads
US20240094986A1 (en) Method and apparatus for matrix computation using data conversion in a compute accelerator
Tiwari et al. Design of a Low Power and Area Efficient Bfloat16 based Generalized Systolic Array for DNN Applications

Legal Events

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