CN110717583B - 卷积电路、处理器、芯片、板卡和电子设备 - Google Patents
卷积电路、处理器、芯片、板卡和电子设备 Download PDFInfo
- Publication number
- CN110717583B CN110717583B CN201910944351.0A CN201910944351A CN110717583B CN 110717583 B CN110717583 B CN 110717583B CN 201910944351 A CN201910944351 A CN 201910944351A CN 110717583 B CN110717583 B CN 110717583B
- Authority
- CN
- China
- Prior art keywords
- data
- input
- splitting
- output
- node
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本申请涉及一种卷积电路、处理器、芯片、板卡和电子设备。该卷积电路包括中央叶结构和多个节点叶结构,且中央叶结构和每个节点叶结构通过互联总线连接,其中中央叶结构能够将待处理数据通过互联总线分发至多个节点叶结构;每个节点叶结构,对接收到的输入神经元数据进行卷积运算,得到卷积运算结果,并将所述卷积运算结果通过互联总线发送至中央叶结构,采用该主从式结构的卷积电路,能够避免了大量逻辑拥塞的问题。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种卷积电路、处理器、芯片、板卡和电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片成为了当前科技产业和社会关注的热点。卷积电路(core)作为芯片中运算电路的重要电路,其性能尤为重要。
目前的处理器内部有大量的卷积电路承担深度学习运算,这些卷积电路集中在一起进行布局布线,有可能会造成逻辑单元的拥塞,从而导致芯片面积的浪费。
发明内容
基于此,有必要针对上述技术问题,提供一种能够避免逻辑单元拥塞的卷积电路、处理器、芯片、板卡和电子设备。
第一方面,本申请实施例提供一种卷积电路,包括:中央叶结构和多个节点叶结构;所述中央叶结构和每个所述节点叶结构通过互联总线连接;所述中央叶结构,包括数据拆分电路和数据分发电路;
所述数据拆分电路,用于在将待处理数据进行拆分,得到多个待处理数据子集;
所述数据分发电路,用于将多个所述待处理数据子集作为输入神经元数据,通过所述互联总线分发至多个所述节点叶结构;
每个所述节点叶结构,用于对接收到的所述输入神经元数据进行卷积运算,得到卷积运算结果,并将所述卷积运算结果通过所述互联总线发送至所述中央叶结构。
在其中一个实施例中,所述中央叶结构还包括:中央输入缓存单元和中央输出缓存单元;
所述中央输入缓存单元,用于缓存所述中央叶结构的输入神经元数据。
在其中一个实施例中,所述中央叶结构还包括中央输出缓存单元;
所述中央输出缓存单元,用于将每个所述节点叶结构通过所述互联总线回传的所述卷积运算结果进行缓存。
在其中一个实施例中,所述节点叶结构包括:多个权值缓存单元、节点输入缓存单元、节点神经运算单元和节点输出缓存单元;
每个所述权值缓存单元,用于存储部分权值数据或部分权值更新数据;
所述节点输入缓存单元,用于输入所述节点叶结构的输入神经元数据;
所述节点神经运算单元,用于对所述节点叶结构的输入神经元数据,和所述部分权值数据或所述部分权值更新数据进行卷积运算,得到卷积运算的所述运算结果;其中,所述卷积运算结果包括输出神经元数据或输出神经元部分和;
所述节点输出缓存单元,用于将所述卷积运算结果输出。
在其中一个实施例中,所述节点神经运算单元包括:乘法器阵列、加法器阵列和处理电路阵列;所述乘法器阵列包括多个乘法器,所述加法器阵列包括多个加法器,所述处理电路阵列包括多个处理电路;
所述乘法器阵列,用于将输入所述输入神经元数据,和部分权值数据或部分权值更新数据对应相乘,得到乘法结果;
所述加法器阵列,用于将所述乘法结果进行累加,得到累加结果;
所述处理电路阵列,用于采用多段线性插值拟合的方法对所述累加结果进行非线性函数变换,得到输出神经元数据或输出神经元部分和。
第二方面,本申请实施例提供一种深度学习处理器,包括至少一个上述任一实施例所述的卷积电路。
第三方面,本申请实施例提供一种神经网络芯片,所述神经网络芯片包括如上述实施例所述的深度学习处理器。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括如上述实施例所述的所述的芯片。
第五方面,本申请实施例提供一种板卡,所述板卡包括:存储器件、接收装置和控制器件以及如上述实施例所述的芯片;
其中,所述芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
在其中一个实施例中,所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
上述述卷积电路、深度学习处理器、神经网络芯片、电子设备和板卡,通过主从式结构的卷积电路,包括中央叶结构和多个节点叶结构,且中央叶结构和每个节点叶结构通过互联总线连接,其中,中央叶结构包括数据拆分电路和数据分发电路,数据拆分电路能够将待处理数据进行拆分得到多个待处理数据子集,数据分发电路将多个所述待处理数据子集作为输入神经元数据,通过互联总线分发至多个节点叶结构;每个节点叶结构,能够对接收到的输入神经元数据进行运算,得到运算结果,并将所述运算结果通过互联总线发送至中央叶结构,采用该主从式结构的卷积电路,能够实现将绝大部分的运算进行拆分之后并分发至所有的叶节点结构上,从而实现运算逻辑的拆分处理,避免了大量的逻辑拥塞的问题;同时由于采用互联总线并通过广播的方式进行数据的传输,大大提高了输入神经元的利用率,解决了输入神经元的带宽需求。进一步的,按照该方式将卷积电路中的叶结构进行拓展和剪裁,从而使得电路具有更强的可拓展性,应用场景更加广泛。
附图说明
图1为一个实施例中计算机设备的内部结构图;
图1a为一个实施例提供的模拟器片上的NFU的运算流程示意图;
图2为一个实施例提供的卷积电路的结构示意图;
图3为一个实施例提供的节点叶结构的结构示意图;
图4为一个实施例提供的节点神经运算单元的结构示意图;
图5为一个实施例提供的卷积层执行示意图;
图6为一个实施例提供的池化层执行示意图;
图7为一个实施例提供的板卡的结构示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
为了更清楚的表述本披露,现将本披露中所使用的部分技术术语统一描述如下:
浮点数:IEEE浮点标准用V=(-1)∧sign*mantissa*2∧E的形式表示一个数。其中,sign为符号位,0表示正数,1代表负数;E表示阶码,通常为整数;mantissa表示尾数,mantissa是一个二进制小数。
定点数:由共享指数(exponent)、符号位(sign)、尾数(mantissa)三部分构成。其中,共享指数是说指数在需要量化的一个浮点数集合内共享;符号位标志了定点数的正负。尾数决定了定点数的有效数字位数,即精度。
量化:将占用较多内存空间的浮点数转换成占用较少内存空间的定点数的过程,高精度数转换为定点数的过程就会在精度上引起一定的损失。
本申请提供的卷积电路可应用于如图1所示的计算机设备,该计算机设备可以包括处理器、可选地,该处理器可以为人工智能处理器,本申请实施例对处理器的类型并不做限定。
图2为一个实施例提供的卷积电路的结构示意图,该卷积电路为一个主从式结构,包括中央叶结构(central tile)100和多个节点叶结构(leaf tile)200;中央叶结构100和每个节点叶结构200通过互联总线300连接;中央叶结构100包括数据拆分电路110和数据分发电路120,数据拆分电路110用于将待处理数据进行拆分得到多个待处理数据子集,数据分发电路120用于将多个所述待处理数据子集作为输入神经元数据,通过互联总线300分发至多个节点叶结构200;每个节点叶结构200,用于对接收到的输入神经元数据进行运算,得到运算结果,并将所述运算结果通过互联总线300发送至中央叶结构100。
具体的,上述卷积电路可以用于深度学习处理器,通过如图2中的互连总线300将节点叶结构200和中央叶结构100连接在一起组成一个卷积电路,该卷积电路能够完成数据的运算。运算过程中,由于待处理数据的运算量大,单独的运算单元无法快速的进行运算,中央叶结构100通过数据拆分电路110对待处理数据进行拆分,并通过数据分发电路120将多个待处理数据子集作为输入神经元数据,通过互联总线300进行广播,分发至连接的所有叶节点结构200,节点叶结构200将接收到的输入神经元数据和对应的权值数据进行卷积运算,得到卷积运算结果,然后将最终的卷积运算结果通过上述互联总线300发送至中央叶结构200,由此实现数据的输入神经元数据经过拆分,并通过互连总线分发至所有的节点叶结构200;节点叶结构200将接收到的输入神经元和SB内存储的权值进行卷积运算后将输出的卷积运算结果通过互连总线300传输到中央叶结构100;中央叶结构100最后将互连总线传回的卷积运算结果存储在输出神经元缓存内。
本实施例中,卷积电路为主从式结构,包括中央叶结构和多个节点叶结构,且中央叶结构和每个节点叶结构通过互联总线连接,其中,中央叶结构包括数据拆分电路和数据分发电路,数据拆分电路能够将待处理数据进行拆分得到多个待处理数据子集,数据分发电路将多个所述待处理数据子集作为输入神经元数据,通过互联总线分发至多个节点叶结构;每个节点叶结构,能够对接收到的输入神经元数据进行运算,得到运算结果,并将所述运算结果通过互联总线发送至中央叶结构,采用该主从式结构的卷积电路,能够实现将绝大部分的运算进行拆分之后并分发至所有的叶节点结构上,从而实现运算逻辑的拆分处理,避免了大量的逻辑拥塞的问题;同时由于采用互联总线并通过广播的方式进行数据的传输,大大提高了输入神经元的利用率,解决了输入神经元的带宽需求。进一步的,按照该方式将卷积电路中的叶结构进行拓展和剪裁,从而使得电路具有更强的可拓展性,应用场景更加广泛。
可选地,在上述图2所示的实施例的基础上,所述中央叶结构100还包括:中央输入缓存单元130;中央输入缓存单元130,用于缓存所述中央叶结构的输入神经元数据。
需要说明的是,中央叶结构100还包括其他的电路,例如控制电路和运算电路等,从而实现完整的数据处理。具体的,中央叶结构100还包括中央输入缓存单元130。其中,中央输入缓存单元130,能够缓存输入中央叶结构的输入神经元数据,以使数据拆分电路110对其进行拆分。因此,本实施例所提供的卷积电路能够通过中央输入缓存单元实现将输入神经元数据进行缓存,便于对数据进行处理。
可选地,在上述图2所示的实施例的基础上,所述中央叶结构100还可以包括:中央输出缓存单元,用于将每个所述节点叶结构通过所述互联总线回传的所述运算结果进行缓存。因此本实施例所提供的卷积电路能够通过中央输出缓存单元实现将输出神经元数据进行缓存,便于对数据进行处理。
在一个实施例中,节点叶结构200还可以参见图3所示,包括:多个权值缓存单元210、节点输入缓存单元220、节点神经运算单元230和节点输出缓存单元240。每个权值缓存单元210,用于存储部分权值数据或部分权值更新数据;所有的权值缓存单元210结合起来能够存储全部的权值数据或全部权值更新数据。节点输入缓存单元220,用于存储节点叶结构200的输入神经元数据,并输入节点神经运算单元230,节点神经运算单元230对节点叶结构200的输入神经元数据,和所述部分权值数据或部分权值更新数据进行运算,得到所述运算结果;其中,运算结果包括输出神经元数据或输出神经元部分和,然后节点输出缓存单元240,将卷积运算结果进行输出。具体的,节点叶结构200通过多个权值缓存单元210、节点输入缓存单元220、节点神经运算单元230和节点输出缓存单元240,实现了对神经元数据和权值数据的卷积运算处理,并通过多个权值缓存单元210分别存储部分部分权值数据或部分权值更新数据,避免了逻辑拥塞的问题;同时由于采用互联总线并通过广播的方式进行数据的传输,大大提高了输入神经元的利用率,解决了输入神经元的高带宽需求。
可选地,在上述实施例的基础上,如图4所示,节点神经运算单元230包括:乘法器阵列231、加法器阵列232和处理电路阵列233;乘法器阵列231包括多个乘法器2311,加法器阵列232包括多个加法器2321,处理电路阵列233包括多个处理电路2331;乘法器阵列231,用于将输入所述输入神经元数据,和部分权值数据或部分权值更新数据对应相乘,得到乘法结果。加法器阵列232,用于将所述乘法结果进行累加,得到累加结果。处理电路阵列233,用于采用多段线性插值拟合的方法对所述累加结果进行非线性函数变换,得到输出神经元数据或输出神经元部分和。可选地,上述乘法器2311可以为256个,加法器2321可以为256个,上述处理电路阵列233完成16个输入数据的非线性函数变换。采用上述节点神经运算单元,能够通过乘法器阵列、加法器阵列和处理电路阵列完成神经元数据的三个流水阶段的运算,进而使得节点神经运算单元能够单独实现部分数据的卷积运算处理,因此,使得上述基于主从式结构的卷积电路,避免了大量的逻辑拥塞的问题;同时由于采用互联总线并通过广播的方式进行数据的传输,大大提高了输入神经元的利用率,解决了输入神经元数据的高带宽需求的问题。
在一个实施例中,提供一种深度学习处理器,包括多个如上述任一实施例所述的卷积电路。具体的,该深度学习处理器为动态可变数据位宽深度学习处理器(Multi-WidthDeep Learning Accelerator,简称MW-DLA)。
本申请实施例中,为了避免大量运算器逻辑单元集中在一起进行布局布线可能造成的逻辑拥塞,将一部分运算单元和相关的数据存储逻辑组织在一起形成一个叶结构(leaf tile),每个叶结构的内部结构图可以参见图3所示,其核心为一个神经运算单元(Neural Function Unit,NFU),同时还存在多个eDram组成的权值缓存单元((SynapseBuffer,SB),图3中以四个SB为例示出、一个输入缓存单元(NeuronBufferfbrinputs,NBin)和一个输出缓存单元(Neuron Buffer fbr outputs,NBout)。其中,SB、NBin、NBout分别用于存储权值或权值更新值、输入神经元、输出神经元或输出神经元部分和。此外,每个叶结构内部还包括控制SB、NBin、NBout数据读写以及与互联总线交互的控制电路。
其中,位于芯片中心的中央叶结构(central tile)可以包含两个eDram bank缓存输入神经元和输出神经元。同时,central tile还可进行简单的加减、比较等运算。由于central tile需要缓存深度学习网络中一个计算层的所有输入神经元和输出神经元,central tile内的存储空间容量远大于leaf tile的NBin、NBout容量。然后,通过互连总线将多个,例如16个分布的叶结构(leaf tile)和位于芯片中心的central tile连接在一起组成一个芯片节点。运算过程中,输入神经元数据通过互连总线广播到所有的leaf tile;leaf tile将接收到的输入神经元和SB内存储的权值数据进行卷积运算后将输出的卷积运算结果发送至互连总线;互连总线将leaf tile输出的的卷积运算传输到central tile;central tile最后将互连总线传回的的卷积运算存储在输出神经元缓存内。通过上述组织的方式,MW-DLA将芯片的绝大部分运算器均分到所有的leaf tile,由此避免了大量逻辑拥塞的问题。16个leaf tile的SB能够对NFU提供足够的权值数据;互连总线通过广播的方式大大提升了输入神经元的利用率,从而解决了输入神经元的带宽需求。同时,还可以按照上述方式拓展或裁剪一个一个卷积电路中叶结构数量,因而该卷积电路具有良好的可拓展性,其使用场景更为丰富。
如前文所述,MW-DLA的绝大部分运算器均分到了16个leaf tile的NFU。相应地,leaf tile的NFU也将承担深度学习算法中绝大部分的计算,如图1a所示,leaf tile NFU由三个流水阶段组成,分别实现乘法运算、加法运算和非线性变换。乘法阶段中,采用包括256个乘法器的乘法器阵列,能够在每个时钟周期可完成256次乘法运算;加法阶段中,采用包括256个加法器组成的加法器阵列,能够实现16组16部分和的累加;非线性阶段中,采用处理电路阵列中的多个处理电路,采用多段插值函数拟合的方法,并行完成16个输入数据的非线性函数变换。
在深度学习领域,人们通过分析深度卷积网络运算的数据局部性,釆用循环展开分块重组的方式,降低深度学习的访存带宽需求,实现了比通用处理器性能高出100多倍的神经网络处理器,在此基础上,进一步分析深度卷积网络中卷积运算的数据复用,大大减少了深度学习对带宽的需求。例如提出的稀疏神经网络处理器通过压缩权重来节省IO内存消耗。深度学习处理器的片上存储空间、存储器带宽、运算能力是制约着处理器三大主要因素。在不同处理器系统中,釆用的架构不同,对三者的需求也不尽相同。为了设计更高能效的深度学习处理器,可以通过改进片上存储空间、存储器带宽、运算器数量等对处理器的性能加以改变。
具体的,处理器可以被抽象为一个支持并行读写片外存储和计算的对象。其中,负责计算的部分被抽象成一个以内积运算为基础功能的矩阵运算单元和一个以向量运算为主要功能的向量运算单元。负责数据缓存的单元主要包括权重缓存单元和输入输出数据缓存单元。深度学习算法在模拟器片上的三个执行阶段的软流水示意图如图1a所示,包括第一阶段,从片外存储读取权值到权值缓存单元(Synapse Buffer,SB),以及从片外存储读取输入到Nein;还包括第二阶段,即矩阵运算/向量运算;还包括第三阶段,Neout数据写到片外存储。上述软流水过程中,不同批次的三个执行阶段能够同时进行。软流水过程中,权重缓存和输入输出缓存是程序员可见的便签(scratchpad),大多数情况下片上缓存都被乒乓使用(即一部分空间被读取,另外一部分空间同时被写入)。例如负责缓存权重的片上存储被乒乓使用,一部分存储空间用来存储第一阶段的从DDR读取的权重,另外一部分存储空间给矩阵运算单元提供输入权重数据。输入数据和输出数据的片上缓存空间也以同样的方式被乒乓使用。数据从片外存储读取进来之后被暂存在片上存储中。根据上述软件流水方式,模拟器根据神经网络模型自动生成在对应的处理器上执行的指令。具体的,模拟器基于一系列启发式的指令优化规则,针对不同的处理器参数,结合神经网络算法中每一层的计算超参数,数据的数量和数据类型生成软流水的每一个阶段计算指令和数据搬运指令。运行过程中,模拟器运读取网络配置信息,然后根据配置的硬件超参数启发式地实现对算法的拆分,完成对算法的性能仿真。为了加速仿真速度,模拟器可以忽略一些对性能影响小的指令,只保留运行时间较长的关键指令:如数据搬运指令,矩阵运算指令,向量运算指令。其他控制指令和标量指令执行时间则被忽略。其中,矩阵运算指令负责完成权重和输入数据之间的以内积运算为基础的矩阵运算。基础运算单元是乘累加(MAC,Multiply andAccumulate)运算单元。向量运算指令负责完成向量运算,包括一元向量运算和二元向量运算,例如两个向量相加等。数据搬运指令负责完成数据在片外存储和片上存储之间的传输,包括从片外存储读取输入数据到输入神经元缓存(NBin),从DDR读取权重到权重缓存(SB),以及把输出数据从输出神经元缓存(NBout)写出到片外存储。
模拟器上硬件运行的时间分段可以是基于软流水指令片段执行时间的仿真,从而提升模拟器运行速度。由于深度学习算法中存在数据数量巨大,数据摆放规整而且运算密集的特点,因此能够使得在该粒度下性能模拟的准确性。为了验证模拟器的正确性,我可以釆用SDK工具生成的AlexNet网络汇编指令,对比真实芯片和模拟器执行结果。测试结果表明,模拟器和真实芯片性能误差在5%以内。
由于处理器中存在三种不同类型的存储:权重存储(SB)、输入神经元存储(NBin)、输出神经元存储(NBout)。当处理器执行不同的层时,需要的权重存储空间、输入神经元存储空间、输出神经元存储空间不同。当可提供存储空间少于运算需要的存储空间时,需要程序员进行运算拆分,保存中间值数据到片外存储,从片外存储读取中间值数据。
在卷积层,对于输入特征图(feature map)数量为fi输入,feature map大小为Xi×Yi,输出feature map数量为f0,输出feature map大小为Xo×Yo,卷积核尺寸为Kx×Ky,卷积核滑动步长为Sx×Sy,卷积计算分为n个组的卷积层,1个批处理(batch)的输入神经元数据数量为:
NUMin=fi×Xi×Yi
=fi(Sx×Xo+Kx)×(Sy×Yo+Ky)
输出神经元数量为NUMout=fo×Xo×Yo,权重数量为:
矩阵乘法运算次数为:
卷积层经过矩阵乘运算得到出神输经元部分和后,通过向量运算来完成bias累加和激活函数非线性插值运算。在处理器中,累加bias和激活函数非线性插值运算处于同一pipeline,可以将累加bias和激活函数非线性插值当做一次向量运算。因此,卷积层的向量运算次数为:
OPvec=NUMout
=fo×Xo×Yo
在全连接层,对于输入神经元数量为Ni、输出神经元数量为No的全连接层,1个batch输入神经元数据数量为NUMin=Ni,输出神经元数量为NUMout=No,矩阵乘法运算次数为:
OPmat=NUMout÷NUMin
=No×Ni
向量运算次数为OPvec=NUMout=No。
在池化层,对于包含F个feature map、输入feature map大小为Xi×Yi、输出feature map大小为Xo×Yo,卷积核尺寸为Kx×Ky,卷积核滑动步长为Sx×Sy的池化层,1个batch输入神经元数据数量为:
NUMin=Fi×Xi×Yi
=Fi(Sx×Xo+Kx)×(Sy×Yo+Ky)
输出神经元数量为NUMout=F×Xo×Yo,池化层通过一个特征点位置附近的输入特征进行归并釆样,计算出该位置的新特征值,所述归并操作通常为加法或者求最大最小值,因此池化层不需要权重数据,也不需要进行矩阵乘法运算,只需进行向量运算。池化层向量运算次数为:
OPvec=NUMout×Kx×Ky
=fo×Xo×Yo×Kx×Ky
在其他层,输入神经元和输出神经元为一一对应关系,因此只需要进行向量运算,其中,向量运算次数和操作复杂性相关。
基于上述原理,下面将对基于上述NFU的结构在各个网络层所实现的算法映射方式进行描述。
在卷积层,读取输入神经元数据和权重数据计算输出神经元数据。根据卷积层参数的不同,每种类型的数据数量不同,运算进行拆分的方式也不同,卷积层可采用以下几种拆分方式:1、卷积核Ky方向拆分;2、卷积核Kx方向拆分;3、输入feature map方向拆分;4、输出feature map方向拆分;5、输入feature map大小拆分;6、输出feature map大小拆分;其中,权重存储空间不够时,可釆取卷积核Ky方向拆分、卷积核Kx方向拆分、输入feature map方向拆分和输出feature map方向拆分这几种方式;输入神经元存储空间不够时,可以釆用输入feature map方向拆分或输入feature map大小拆分这两种拆分方式;输出神经元存储空间不够时,可以釆取输出feature map方向拆分或输出feature map大小拆分这两种拆分方式。
当处理器可提供的权重存储空间Size(SB)满足公式:
其中,M=1,2,...,(Ky-1),此时可以采用卷积核Ky方向拆分。具体为,卷积核被拆成若干个Kx×M的小卷积核,最后一个小卷积核的行数可能小于M。控制处理器将多个小卷积核卷积计算得到的部分和进行累加后即可得到最终的输出结果。卷积核每按照Ky进行一次拆分,需增加fo×Xo×Yo次向量运算。同时,卷积核按照Ky方向进行拆分时,输出神经元存储需多分配容纳fo×Xo×Yo个数据的空间来存储部分和。
当处理器可提供的权重存储空间Size(SB)满足公式:
其中,M=1,2,...,(Kx-1),此时可以采用卷积核Kx方向拆分。卷积核被拆成若干个M×1的小卷积核,最后一个小卷积核中的点数可能小于M。类似于卷积核Ky方向拆分,需要控制处理器将多个小卷积核进行卷积计算得到的部分累加后,即可得到最终的输出结果。卷积核每按照Kx进行一次拆分,需增加fo×Xo×Yo次向量运算。同时,卷积核按照Ky进行拆分时,输出神经元存储需多分配容纳fo×Xo×Yo个数据的空间来保存部分和。
M=1,2,...,(fi-1)
则可以采用输入feature map方向拆分。卷积层输入featur map被分成多个组后,将增加fo×Xo×Yo次向量运算,输出神经元存储需多分配容纳fo×Xo×Yo个数据的空间来宝存部分和。当输入神经元分为多个组(group)进行运算时,输入feature map方向拆分时可能有一部分group获得所有相关输入feature map,一部分group不能获得所有相关输入feature map,则需要进行控制。
当处理器可提供的输出神经元存储空间大小Size(NBout)满足公式时,或者可提供的权重存储空间大小Size(SB)满足公式时,卷积层输出feature map被分为多个组后,将增加2×fo×Xo×Yo次片外存储读和写。
当处理器可提供的输如神经元存储空间大小Size(NBin)满足公式时,可以采用输入feature map大小拆分的方式。卷积层按照输入feature map大小拆分时,需要读取较多的输入滑动窗口分发(overlap)的输入神经元。如果拆分的输入像素点超过Kx×Ky,计算则不会产生中间部分和;如过拆分的输入像素点少于Kx×Ky时,产生中间部分和将增加向量运算次数,并且需要输出神经元存储分配更多的空间保存部分和。
当处理器可提供的输出神经元存储空间大小Size(NBout)满足公式可以采用输出feature map大小拆分方式。卷积层按照输出feature map大小拆分时,需要读取较多的输入滑动窗口分发(overlap)的输入神经元。需要说明的是,不同的拆分方式使用场景各不相同,拆分方式的具体选择可以根据前序层的拆分方式和当前层状态选择拆分方式,如按照输入feature map方向拆分或者输出featuremap方向拆分时,需考虑feature map对齐。
由于深度学习应用的性能受到处理器的计算性能、存储器带宽和存储器容量的制约。同时,使用近年来最常用的深度学习应用进行物体检测时,每帧输入图像需要GPU处理0.15秒,无法满足自动驾驶等应用的实时需求。因此更高性能的深度学习处理器设计尤为重要。在现有的通用CPU和GPU上,深度学习应用使用单精度浮点数据进行运算。由于单精度浮点数据存储需求更高,运算器面积、功耗开销也更高,关于图形处理器(GraphicsProcessing Unit,简称GPU)硬件釆用16位浮点运算来进一步提升性能。此外,使用较窄的定点数据进行运算也是有效的提升深度学习处理器性能的方法。在深度学习处理器中,釆用低精度数据位宽表示有以下优势:节省存储器和数据总线功耗:由于数据位宽更窄时,深度学习权值模型和神经元数据的size更小,需要的存储器访问次数更少,因此存储器和数据总线功耗开销更低;带宽利用率更高:数据位宽更窄时,处理器搬运相同大小的数据块包含的神经元或权值数据更多,因此在存储带宽受限的处理器中具有更高的带宽利用率;运算器开销更低:当数据位宽更窄时,处理器的运算器位宽也可以相应的减小,可大大降低处理器运算器开销,尤其是乘法器开销;在存储容量优先的网络中,可以在片上存储更大的网络模型,避免数据的反复搬运。
实验结果表明,无论增加处理器的访存带宽还是运算能力,处理器的性能都能够获得提升。深度学习应用种类繁多,不同应用的数据精度需求差异性较大。当应用网络或者网络中某一层的数据所需位宽较低时,从片外存储读取数据占用的带宽更低,数据的“等效带宽”更高。同时,还可以复用处理器数据通路,设计更多低位宽数据运算器,提高低位宽数据运算能力。结合这两点,处理器能够利用深度学习数据精度需求差异性大大提升处理器性能。然而,现有的深度学习处理器通常使用一种足够长的定点数据表示来适应所有深度学习算法的精度需求。这种实现方式在应用网络需要的数据位宽较低,网络中某一层数据所需的数据位宽较低,网络中不同数据类型数据所需数据位宽不同时将所有数据统一对齐到处理器支持的长位宽定点数据,浪费了存储带宽和潜在的运算性能提升,弱化了深度学习数据量化带来的好处。
MW-DLA可以将卷积层的输出feature map按照256个feature map分成一组,每个leaf tile NFU可以计算16个feature map。MW-DLA计算一组feature map时,按照XY循环顺序计算输出feature map上的像素点。如图5所示,一组输出feature map上的相同像素点的输入神经元数据为输入神经元数据中的Kx×Ky×Fi数据子块。
计算卷积层过程中,MW-DLA每个时钟周期(cycle)从central tile读取Kx×Ky×Fi数据子块中的一行神经元数据,并广播到所有leaf tile,广播的一行神经元数据是输入层中同一像素点连续16个feature map的神经元。Leaf tile NFU在每个cycle接收16输入神经元,并读取16X16的权值矩阵进行矩阵乘计算。其中,16x16的权值矩阵是对应于16个不同卷积核中对应输入神经元的16个权值。由于每个leaf tile计算不同的输出feature map,不同的leaf tile中存储的权值对应为生成不同feature map的卷积核。
Leaf tile NFU进行矩阵乘时,在乘法运算阶段,每个输入神经元和16个卷积核中对应的权值进行乘法运算,总共输出256个乘法结果;在加法阶段,NFU将16个输入神经元和一个卷积核的16个部分和作为1组,通过16个累加树将16组部分和累加成一个累加结果,然后再根据控制信号累加寄存器中的部分和得到新的部分和;一个输入神经元的所有部分和都累加完成后,非线性阶段对部分和累加进行多段线性插值拟合得到输出神经元结果。
在池化层,池化层没有权重,也不需要进行矩阵乘法运算。根据池化层参数的不同,运算进行拆分方式也不同,池化层的运算拆分方式可以包括:feature map方向拆分、输入feature map大小拆分和输出feature map大小拆分。
当处理器可提供的输入神经元存储空间大小Size(NBin),满足公式或者Size(NBont)满足公式时,可以采用feature map方向拆分方式,池化层输入featuremap被分为多个组后,不会增加外部存储读写开销和运算量。
当处理器可提供的输入神经元存储空间大小Size(NBin)满足公式时,可以采用输入feature map大小拆分的方式。池化层按照输入feature map大小拆分的方式进行时,需要多读取输入滑动窗口overlap的输入神经元。如果拆分的输入像素点超过Kx×Ky,计算不会产生中间部分和;如果拆分的输入像素点少于Kx×Ky时,产生中间部分和将增加向量运算次数,且需要输出神经元存储分配更多的空间保存部分和。
当处理器可提供的输出神经元存储空间大小Size(NBout)满足公式可以采用输出feature map大小拆分的方式。池化层按照输出feature map大小拆分的方式拆分时,需要多读取输入滑动窗口overlap的输入神经元。
池化层按照预设的方法对池化窗口内的神经元数据进行统计,获得统计结果。统计结果可以是池化窗口内所有神经元数据的最大值,平均值,最小值等。。池化层的特点是输出feature map的计算仅与对应的输入feature map相关。相应地,输入数据复用次数也比卷积层和全连接层低。
由于输入层神经元是通过互连总线广播到所有的leaf tile,如果希望所有的leaf tile计算不同的输出神经元,需要对输入神经元有足够的复用才能充分利用leaftile。然而,执行池化层时,输入数据复用次数不高,最多只有Sx×Sy次。同时,在充分复用池化层的输入数据时,需要连续读取一个feature map内的数据,不同leaf tile采用不同的控制信号进行运算,大大增加设计开销。因此,MW-DLA可以在central tile完成池化层的运算。
进行池化层运算时,central tile每次读取连续16个输入feature map上相同像素点位置的神经元,并按照如图6所示,连续每cycle读取一个池化窗口内不同像素点位置的输入神经元进行计算得到连续16个输出feature map上相同像素点位置的神经元。然后将池化窗口沿着横向、纵向或者垂直方向进行平移即可计算出所有输出神经元数据。
全连接层在进行计算时,需要读取输入神经元数据和权重数据计算输出神经元数据。根据全连接层参数的不同,每种类型的数据数量不同,运算进行拆分方式也不同,全连接层的拆分方式可以包括输入feature map大小拆分和输出feature map大小拆分。
当处理器可提供的输入神经元存储空间大小Size(NBin)满足公式Size(NBin)<Ni,或者可提供的权重存储空间大小Size(SB)满足公式可以采用输入feature map大小拆分方式。全连接层按照feature map大小拆分时,产生中间部分和将增加向量运算次数,并且需要输出神经元存储分配更多的空间保存部分和。
当处理器可提供的输出神经元存储空间大小Size(NBout)满足公式Size(NBout)<No,或者可提供的权重存储空间大小Size(SB)满足公式可以采用输出feature map大小拆分方式。全连接层按照输出feature map大小拆分时,不会增加计算量也不会产生部分和。
全连接层类似于卷积层,二者的区别在于全连接层每个输出神经元和所有输入神经元相关,不同输出神经元对应的权值向量不同,不存在权值的共享。而卷积层每个输出神经元仅与输入神经元的部分相关,大部分情况下同一个输出feature map的不同输出神经元对应的卷积核相同。因此,全连接层可以看成是“退化的”卷积层。
MW-DLA可以将全连接层的输出神经元按照256个分成一组,每个leaf tile NFU可以计算连续的16个输出神经元。Leaf tile NFU每个cycle输入16个输入神经元和256个权值计算16个输出神经元的部分和。当全连接层输出神经元计算完成并将结果写回centraltile后,central tile通过一系列比较运算完成softmax函数,得到最终的识别结果。
在归一化层,对于包含F个feature map、每个feature map大小为X×Y的归一化层,1个batch输入神经元数据数量为:NUMin=F×X×Y,输出神经元数量为NUMout=F×X×Y。归一化层对输入特征点进行归一化操作,输出神经元和输入神经元对应关系明确,不需要权重数据,也不需要进行矩阵乘法运算,只需进行向量运算。如果采用的是局部响应归一化层,每个输出神经元和输入数据中相邻的内存字节数(localsize)个feature map对应像素位置的神经元相关,每个输出神经元向量和3个输入神经元向量相关,需要的向量运算次数为:
OPvec=(3+1)×NUMout
=4×F×X×Y
归一化层和其他一些网络层主要运算操作为相邻运算,因此,归一化层和其他层运算拆分可以按照前一层计算输出神经元的拆分方式进行拆分。
其中,MW-DLA计算卷积或全连接层时,输入神经元通过互连总线广播到所有的leaf tile,16个leaf tile接收到输入神经元后,同时进行运算。因此,16个leaf tile也同时完成连续16个feature map的输出神经元的计算,可以避免同时将16个leaf tile计算的结果同时传输给central tile所造成的开销太高。同时,central tile的两个eDram bank是乒乓使用,从而实现缓存输入神经元和输出神经元,两者的带宽可以设置为相同。输入数据读取时,每cycle最多只需读取16*16=256比特。因此,互连总线釆用分时复用的方式将16个leaf tile运算的结果返回给central tileo表1.1中统计了常见的深度学习网络中最小的卷积核,最小的卷积核有64个元素。MW-DLA的互连总线返回leaf tile运的卷积算结果数据位宽为1024比特。
表1.1
网络 | 卷积核最小的层 | kemel_siz |
AlexNet | convl | 11x11x4 |
VGG16 | CONV1_2 | 3x3x64 |
GoogleNet | conv2 | 1x1x64 |
Inception_v3 | conv3_3 | 1x1x64 |
NiN | cccpl | 1x1x96 |
ResNet-18 | res2a_l | 1x1x64 |
在一个实施例中,提供一种神经网络芯片,所述神经网络芯片包括如上述实施例中的深度学习处理器。
在一个实施例中,提供一种电子设备,所述电子设备包括如上述实施例中的芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片。如图7所示,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准快速外部设备互连接口。比如,待处理的数据由服务器通过标准快速外部设备互连接口传递至所述芯片,实现数据转移。优选的,当采用快速外部设备互连3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种卷积电路,其特征在于,包括:中央叶结构和多个节点叶结构;所述中央叶结构和每个所述节点叶结构通过互联总线连接;所述中央叶结构,包括数据拆分电路和数据分发电路;
所述数据拆分电路,用于在将待处理数据按照目标拆分方式进行拆分,得到多个待处理数据子集;其中,当权重存储空间不足时,所述目标拆分方式包括卷积核Ky方向拆分、卷积核Kx方向拆分、输入特征图方向拆分和输出特征图方向拆分中的一种,当输入神经元存储空间不足时,所述目标拆分方式包括输入特征图方向拆分或输入特征图大小拆分,当输出神经元存储空间不足时,所述目标拆分方式包括输出特征图方向拆分或输出特征图大小拆分;
所述数据分发电路,用于将多个所述待处理数据子集作为输入神经元数据,通过所述互联总线分发至多个所述节点叶结构;
每个所述节点叶结构,用于对接收到的所述输入神经元数据进行卷积运算,得到卷积运算结果,并将所述卷积运算结果通过所述互联总线发送至所述中央叶结构。
2.根据权利要求1所述的电路,其特征在于,所述中央叶结构还包括:中央输入缓存单元和中央输出缓存单元;
所述中央输入缓存单元,用于缓存所述中央叶结构的输入神经元数据。
3.根据权利要求2所述的电路,其特征在于,所述中央叶结构还包括中央输出缓存单元;
所述中央输出缓存单元,用于将每个所述节点叶结构通过所述互联总线回传的所述卷积运算结果进行缓存。
4.根据权利要求1所述的电路,其特征在于,所述节点叶结构包括:多个权值缓存单元、节点输入缓存单元、节点神经运算单元和节点输出缓存单元;
每个所述权值缓存单元,用于存储部分权值数据或部分权值更新数据;
所述节点输入缓存单元,用于输入所述节点叶结构的输入神经元数据;
所述节点神经运算单元,用于对所述节点叶结构的输入神经元数据,和所述部分权值数据或所述部分权值更新数据进行卷积运算,得到卷积运算的所述运算结果;其中,所述卷积运算结果包括输出神经元数据或输出神经元部分和;
所述节点输出缓存单元,用于将所述卷积运算结果输出。
5.根据权利要求4所述的电路,其特征在于,所述节点神经运算单元包括:乘法器阵列、加法器阵列和处理电路阵列;所述乘法器阵列包括多个乘法器,所述加法器阵列包括多个加法器,所述处理电路阵列包括多个处理电路;
所述乘法器阵列,用于将输入所述输入神经元数据,和部分权值数据或部分权值更新数据对应相乘,得到乘法结果;
所述加法器阵列,用于将所述乘法结果进行累加,得到累加结果;
所述处理电路阵列,用于采用多段线性插值拟合的方法对所述累加结果进行非线性函数变换,得到输出神经元数据或输出神经元部分和。
6.一种深度学习处理器,其特征在于,包括至少一个如权利要求1至5任一项所述的卷积电路。
7.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求6所述的深度学习处理器。
8.一种电子设备,其特征在于,所述电子设备包括如所述权利要求7所述的芯片。
9.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求7所述的芯片;
其中,所述芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
10.根据权利要求9所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944351.0A CN110717583B (zh) | 2019-09-30 | 2019-09-30 | 卷积电路、处理器、芯片、板卡和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944351.0A CN110717583B (zh) | 2019-09-30 | 2019-09-30 | 卷积电路、处理器、芯片、板卡和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110717583A CN110717583A (zh) | 2020-01-21 |
CN110717583B true CN110717583B (zh) | 2020-08-25 |
Family
ID=69212149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910944351.0A Active CN110717583B (zh) | 2019-09-30 | 2019-09-30 | 卷积电路、处理器、芯片、板卡和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110717583B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625325A (zh) * | 2020-04-21 | 2020-09-04 | 上海天数智芯半导体有限公司 | 基于批数据的ai芯片片上网络调度方法和装置 |
CN111738424B (zh) * | 2020-06-29 | 2023-12-26 | 湖南国科微电子股份有限公司 | 神经网络处理方法、装置、电子设备及存储介质 |
CN111931921B (zh) * | 2020-10-13 | 2021-01-26 | 南京风兴科技有限公司 | 一种用于稀疏神经网络的乒乓存储方法及装置 |
CN112363844B (zh) * | 2021-01-12 | 2021-04-09 | 之江实验室 | 一种面向图像处理的卷积神经网络垂直分割方法 |
CN113749668B (zh) * | 2021-08-23 | 2022-08-09 | 华中科技大学 | 一种基于深度神经网络的可穿戴心电图实时诊断系统 |
CN113791754A (zh) * | 2021-09-10 | 2021-12-14 | 中科寒武纪科技股份有限公司 | 运算电路、芯片和板卡 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862374A (zh) * | 2017-10-30 | 2018-03-30 | 中国科学院计算技术研究所 | 基于流水线的神经网络处理系统和处理方法 |
CN108764466A (zh) * | 2018-03-07 | 2018-11-06 | 东南大学 | 基于现场可编程门阵列的卷积神经网络硬件及其加速方法 |
CN109615061A (zh) * | 2017-08-31 | 2019-04-12 | 北京中科寒武纪科技有限公司 | 一种卷积运算方法及装置 |
CN110059797A (zh) * | 2018-10-10 | 2019-07-26 | 北京中科寒武纪科技有限公司 | 一种计算装置及相关产品 |
CN110222818A (zh) * | 2019-05-13 | 2019-09-10 | 西安交通大学 | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190244080A1 (en) * | 2018-02-02 | 2019-08-08 | Wisconsin Alumni Research Foundation | Neural Network Processor with On-Chip Convolution Kernel Storage |
KR102697300B1 (ko) * | 2018-03-07 | 2024-08-23 | 삼성전자주식회사 | 전자 장치 및 머신 러닝 수행 방법 |
CN109919311B (zh) * | 2019-03-13 | 2020-04-10 | 北京地平线机器人技术研发有限公司 | 生成指令序列的方法、执行神经网络运算的方法和装置 |
-
2019
- 2019-09-30 CN CN201910944351.0A patent/CN110717583B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109615061A (zh) * | 2017-08-31 | 2019-04-12 | 北京中科寒武纪科技有限公司 | 一种卷积运算方法及装置 |
CN107862374A (zh) * | 2017-10-30 | 2018-03-30 | 中国科学院计算技术研究所 | 基于流水线的神经网络处理系统和处理方法 |
CN108764466A (zh) * | 2018-03-07 | 2018-11-06 | 东南大学 | 基于现场可编程门阵列的卷积神经网络硬件及其加速方法 |
CN110059797A (zh) * | 2018-10-10 | 2019-07-26 | 北京中科寒武纪科技有限公司 | 一种计算装置及相关产品 |
CN110222818A (zh) * | 2019-05-13 | 2019-09-10 | 西安交通大学 | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 |
Non-Patent Citations (1)
Title |
---|
卷积神经网络CNN算法的FPGA并行结构设计;王巍等;《微电子学与计算机》;20190430;第57-62页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110717583A (zh) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110717583B (zh) | 卷积电路、处理器、芯片、板卡和电子设备 | |
CN110231958B (zh) | 一种矩阵乘向量运算方法及装置 | |
CN110163362B (zh) | 一种计算装置及方法 | |
CN110197270B (zh) | 集成电路芯片装置及相关产品 | |
CN109740739B (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN110276447B (zh) | 一种计算装置及方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
CN110163350B (zh) | 一种计算装置及方法 | |
CN109740754A (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
US20200242468A1 (en) | Neural network computation device, neural network computation method and related products | |
CN111160542B (zh) | 集成电路芯片装置及相关产品 | |
CN114003198A (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
US11775808B2 (en) | Neural network computation device and method | |
CN113837922B (zh) | 计算装置、数据处理方法及相关产品 | |
CN111930681A (zh) | 一种计算装置及相关产品 | |
CN113031912B (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN111258544B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN111258633B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113031915B (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN111047024B (zh) | 一种计算装置及相关产品 | |
CN110197275B (zh) | 集成电路芯片装置及相关产品 | |
CN111258545B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN113031916A (zh) | 乘法器、数据处理方法、装置及芯片 | |
CN111368987A (zh) | 一种神经网络计算装置和方法 | |
CN111198714A (zh) | 重训练方法及相关产品 |
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 |