CN113517007A - 一种流水处理方法、系统和忆阻器阵列 - Google Patents
一种流水处理方法、系统和忆阻器阵列 Download PDFInfo
- Publication number
- CN113517007A CN113517007A CN202110477328.2A CN202110477328A CN113517007A CN 113517007 A CN113517007 A CN 113517007A CN 202110477328 A CN202110477328 A CN 202110477328A CN 113517007 A CN113517007 A CN 113517007A
- Authority
- CN
- China
- Prior art keywords
- memristor
- parallelism
- network layer
- mapping
- network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- 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/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Complex Calculations (AREA)
Abstract
本发明实施例提供了一种流水处理方法、系统和忆阻器阵列,所述方法在神经网络各个网络层对忆阻器阵列的初始映射并行度下,确定各个网络层的初始计算周期;根据各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,最长计算周期对应的目标网络层出现置换;根据迭代更新结束时的映射并行度,生成神经网络在忆阻器阵列上的流水配置。本发明实施例基于神经网络在忆阻器阵列上计算的特性,通过降低最大的单级流水时延,减少流水空闲比例,提高流水线吞吐率,进而大幅提高硬件的运行速度。
Description
技术领域
本发明涉及信息技术领域,特别是涉及一种流水处理方法、一种流水处理系统、一种忆阻器阵列。
背景技术
忆阻器的非易失记忆特性使其具备数据存储能力,而其电导状态可调节的能力使其具备数值计算能力,二者相结合使忆阻器可在同一位置实现计算与存储的融合,实现“存算一体”,从而有望突破传统冯诺依曼计算架构的限制,具有广阔的应用前景。
相关技术提出使用由忆阻器单元和金属导线组成的忆阻器阵列来实现向量和矩阵乘法,通过对忆阻器单元的电导和通断进行设置,由忆阻器阵列输出对应的电流值,模拟数值计算的过程和结果。进一步地,忆阻器阵列将输出的电流值作为神经网络在计算过程中的输出结果,即可以完成神经网络的映射计算。
相比较于只能计算不能存储的传统处理器来说,忆阻器阵列虽然不再需要不断在计算单元与存储单元之间来回的搬运数据,但是受到忆阻器阵列的结构特性和神经网络计算原理的制约,神经网络在将计算交由忆阻器阵列执行时,存在硬件资源的时间利用率不高的问题。
相关技术以流水线的形式完成神经网络在忆阻器阵列上的计算,尽管这样做的计算效率相较于传统的无流水处理的计算方式有所提高,但运行过程中各级流水中仍然存在大量的资源闲置,硬件资源的时间利用率还有提升的控制。这样的情况使得神经网络在忆阻器阵列上的计算吞吐率受到限制,造成忆阻器阵列卷积计算性能的低下,严重阻碍了忆阻器阵列计算在各领域的发展和应用。因此,目前神经网络在忆阻器阵列上计算的资源利用率和吞吐率亟待提高。
发明内容
鉴于上述问题,本发明实施例提出了一种克服上述问题或者至少部分地解决上述问题的一种流水处理方法、系统和忆阻器阵列。
为了解决上述问题,本发明实施例提供了一种流水处理方法,所述方法包括:
初始化待运算的神经网络各个网络层对忆阻器阵列的映射并行度,确定所述各个网络层的初始映射并行度;其中,所述初始映射并行度用于表征各个网络层所映射的忆阻器阵列的数量的初始比例;
确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换;
根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,所述流水配置用于指示所述神经网络的各个网络层在所述忆阻器阵列上的运行。
可选的,确定在所述初始映射并行度下,所述各个网络层的初始计算周期,包括:
根据各个网络层的参数、输入到所述神经网络中的输入信息、所述忆阻器阵列的硬件配置参数,确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
其中,所述神经网络各个网络层的参数,至少包括以下其中一者:各个网络层的卷积核大小、所述神经网络的配置参数、卷积核的移动步长、padding参数;
所述忆阻器阵列的硬件配置参数,至少包括以下其中一者:所述神经网络的权值在所述忆阻器阵列上的量化参数、所述忆阻器阵列的尺寸大小、忆阻器阵列总数量。
可选的,在利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新之前,确定可用的忆阻器阵列数量,包括:
确定初始可用的忆阻器阵列数量、以及所述神经网络的权值在所述忆阻器阵列上的量化参数,其中,所述初始可用的忆阻器阵列数量表征神经网络能够调用的忆阻器阵列硬件资源量;
获得所述量化参数不大于所述初始可用的忆阻器阵列数量的最大整数倍数;
将所述最大整数倍数确定为可用的忆阻器阵列的数量,其中,所述可用的忆阻器阵列数量表征在所述量化参数下,神经网络实际可利用的忆阻器阵列硬件资源量。
可选的,根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,包括:
在第n次迭代更新时,在计算周期最长的目标网络层的第n-1次所获得的映射并行度上,按照预设步长增加所述目标网络层的映射并行度,以实现对各个网络层的初始映射并行度的迭代更新;
确定第n次更新后可用的忆阻器阵列的数量以及所述各个网络层的计算周期;
在当前可用的忆阻器阵列不为零或在计算周期最长的网络层仍为所述目标网络层的情况下,重复以上步骤,直到当前可用的忆阻器阵列为零,并且,计算周期最长的网络层出现置换。
可选的,根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,包括:
根据所述神经网络的权值在所述忆阻器阵列上的量化参数、以及迭代更新结束时的映射并行度,确定所述各个网络层映射的忆阻器阵列数量;
根据所述各个网络层的流水线运行顺序以及所述各个网络层映射的忆阻器阵列数,自适应生成所述神经网络在所述忆阻器阵列上的流水配置;
所述方法还包括:
根据所述流水配置,控制相应数量的忆阻器阵列根据各个网络层之间的输入输出关系,完成所述神经网络的各个网络层在所述忆阻器阵列上的流水线运行。
可选的,在生成所述神经网络在所述忆阻器阵列上的流水配置之后,所述方法还包括:
在所述迭代更新结束时的映射并行度下,确定所述各个网络层的计算周期;
获得所述最长计算周期与所述各个网络层的计算周期的差值,将所述差值与所述最长计算周期的比值作为所述各个网络层对应的忆阻器阵列的周期空闲比例;
根据所述周期空闲比例,预测所述忆阻器阵列在所述迭代更新结束时的映射并行度下运行所述神经网络的效率。
可选的,在生成所述神经网络在所述忆阻器阵列上的流水配置之后,所述方法还包括:
根据以下公式计算所述流水配置对应的流水线的吞吐率:
根据所述流水线的吞吐率,预测所述忆阻器阵列在所述迭代更新结束时的流水配置下运行所述神经网络的效率;
其中,Pi是所述各个网络层中第i层的映射并行度;Ki是所述各个网络层中第i层的卷积核大小;Mi是所述各个网络层中第i层的输入通道数;N是所述网络层的总层数;Ri是所述各个网络层中第i层对应的忆阻器阵列的周期利用率;T是所述流水配置对应的流水线的吞吐率。
本发明实施例还提供了一种流水处理系统,所述系统包括:
初始化单元,用于初始化待运算的神经网络各个网络层对忆阻器阵列的映射并行度,确定所述各个网络层对忆阻器阵列的初始映射并行度;其中,所述初始映射并行度用于表征各个网络层所映射的忆阻器阵列的数量的初始比例;
周期计算单元,用于确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
映射迭代单元,用于根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换;
流水配置单元,用于根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,所述流水配置用于指示所述神经网络的各个网络层在所述忆阻器阵列上的运行。
本发明实施例还提供了一种忆阻器阵列,所述忆阻器阵列用于根据上述任一实施例所述的流水处理方法,执行神经网络的运算。
从上述技术方案可以看出,本发明实施例提供了一种流水处理方法、系统和忆阻器阵列,所述方法根据神经网络各层的计算周期,以神经网络各层的初始映射并行度为基础进行迭代更新,在充分利用有限的忆阻器阵列硬件资源的前提下,使神经网络各层之间的最长计算周期尽可能的小,硬件资源的时间利用率则更高,忆阻器阵列按照这样生成的流水配置布置流水线进行计算,效率能够得到大幅提高。本发明实施例充分利用神经网络各网络层之间的连接特性和计算特性,基于忆阻器阵列的硬件特性自适应生成流水配置,通过降低最大的单级流水时延,提高忆阻器阵列的资源利用率和计算吞吐率,可以使卷积神经网络高效运行在存储资源冗余的忆阻器阵列中,减少流水空闲比例,大幅提高硬件的运行速度。
附图说明
图1是相关技术中一种忆阻器器件的结构示意图;
图2是相关技术中一种忆阻器阵列的示意图;
图3是相关技术中一种忆阻器阵列应用计算的原理示意图;
图4是相关技术中一种图像卷积运算的示意图;
图5是相关技术中一种图像块卷积运算的示意图;
图6是相关技术中一种神经网络在忆阻器阵列上卷积计算的原理示意图;
图7是本发明实施例提供的一种流水处理方法的步骤流程图;
图8是本发明实施例提供的一种忆阻器计算单元的结构示意图;
图9是本发明实施例提供的一种忆阻器加速模块的结构示意图;
图10是本发明实施例提供的一种卷积神经网络卷积操作的原理示意图;
图11是本发明实施例提供的一种神经网络在忆阻器阵列上计算的原理示意图;
图12是本发明实施例提供的一种神经网络计算的流水处理的结构示意图;
图13是本发明实施例提供的一种流水处理系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
忆阻器,全称为记忆电阻器,是一种表示磁通与电荷关系的电路器件,忆阻器一般通过薄膜中化学物质的性质来改变电阻,以此能够根据流经的电荷改变阻值。忆阻器被认为是电阻、电感和电容之外的第四种电路元器件,它不仅可以根据流经的电荷改变阻值,即使电流停止了仍然可以保持阻值,记忆通过的电荷量,直到通过反向的电流,阻值才会发生变化。
参照图1,图1是相关技术中一种忆阻器器件的结构示意图。如图1所示,该忆阻器器件包含一个上电极、一个下电极以及一层位于两者之间的阻变层,阻变层的材料一般是金属氧化物,常见的有HfO2、TiO2、NiO等。通过对忆阻器施加外部电压,忆阻器可以在高阻态和低阻态之间切换,而用忆阻器单元的高低阻态分别表示逻辑“0”和“1”,即可实现1比特数据的存储功能。
参照图2,图2是相关技术中一种忆阻器阵列的示意图。如图2所示,忆阻器阵列利用包括字线、位线在内的控制导线,对阵列排布的忆阻器单元进行控制,以交叉阵列的形式实现规模数据的存储和计算,而目前忆阻器阵列的主要形式即忆阻器交叉阵列。忆阻器交叉阵列的计算原理参照如下公式:
其中,Vj为第j行字线上的电压,Gij为第i行字线第j列位线对应的忆阻器单元的电导,Ii为第i列位线上的电流。即,两组输入的乘累加结果。利用忆阻器的特性,根据基尔霍夫定律,将一组输入作为电压加载在对应的横向的字线上,另一组输入作为电导存储在对应的忆阻器单元中,在对应的位线上得到的电流即为这两组输入的乘累加计算结果,即可以完成一次计算。其中,电导是电阻的倒数。
参照图3,图3是相关技术中一种忆阻器阵列应用计算的原理示意图。如图3所示,将一组输入作为电压V1加载在对应的横向的字线1上,另一组输入作为电导G1存储在对应的忆阻器单元中;将一组输入作为电压V2加载在对应的横向的字线2上,另一组输入作为电导G2存储在对应的忆阻器单元中,在对应的位线上得到的电流G1*V1+G2*V2,即为两次乘累加的计算结果。
因此,可以用于作为存储器的忆阻器阵列不需要额外的计算单元,就可以由自身方便地进行向量乘法运算乃至矩阵乘法运算,实现“存算一体”。忆阻器阵列内的忆阻器单元数量和阵列大小可以根据实际需求自由配置,比如256*256、1152*1152等。
基于上述原理,忆阻器阵列可以映射复杂的神经网络运算,包括目前最常见的卷积神经网络。在基础的卷积运算中,当卷积核大小为N*N的卷积神经网络的对输入参数进行卷积处理时,每次卷积需要N*N个输入参数与固定不变的N*N个卷积运算的权值进行乘累加操作,以获得一个输出值。当利用忆阻器阵列进行卷积运算时,由N*N行忆阻器阵列输入电压对卷积运算的输入参数进行映射,并设置指定列上这N*N行对应的N*N个忆阻器单元的电导,对卷积运算的权值进行映射,得到该列输出的电流,即,卷积运算的输出值。其中,权值,即,卷积核进行卷积运算的卷积权重参数,在数据的卷积运算过程中可以保持固定不变。
参照图4,图4是相关技术中一种图像卷积的示意图。如图4所示,大小为3*3卷积核在二维的输入图像上“滑动”卷积窗口,从卷积窗口内依次选取由像素点1-9组成的输入图像块1、由像素点4-12组成的输入图像块2、由像素点7-15组成的输入图像块3等输入图像上的各个图像块并计算。
参照图5,图5是相关技术中一种图像块卷积运算的示意图。如图5所示,以图像块A的计算为例,当对卷积窗口“滑动”到输入图像的右上角时,将卷积窗口内的图像块A对应的像素点,即,像素点,作为输入参数进行矩阵乘法运算,即,对输入图像的右上角的3*3的图像块A进行卷积运算。如图所示,右上角卷积窗口内该图像块A的图像输入参数依次为2、1、0、1、3、1、2、2、3,权值依次为0、1、2、2、2、0、0、1、2。其中,权值,即,卷积权重参数,是固定不变的,由卷积核决定。卷积核通过将图像块A提供的输入参数和权值进行矩阵乘法运算,获得输出值2*0+1*1+0*2+1*2+3*2+1*0+2*0+2*1+3*2=17。同理,当运算对象是非图像的数据时,也能通过类似的方式选取输入参数,进行卷积运算。
参照图6,图6是相关技术中一种神经网络在忆阻器阵列上卷积计算的原理示意图。如图6所示,当卷积核大小为3*3的卷积神经网络通过忆阻器阵列进行图像识别时,一个卷积核提取大小为3*3的图像块C的像素点的输入参数1-9,与固定的权值1-9分别进行计算,获得计算结果。则对应地,将像素点的输入参数1-9映射为忆阻器阵列第1-9行的输入电压,将权值1-9映射为忆阻器阵列第j列第1-9行上忆阻器的电导,则第j列输出的电流则等效于该图像块C的输出值。
神经网络往往利用多个前后连接的卷积层进行计算,这种情况下,如果让忆阻器阵列针对每一次输入分别执行卷积计算,在一层卷积计算完成之后再进行下一层卷积计算,不仅计算过程过于臃肿,还会出现硬件资源的大量闲置,计算性能低下。
相关技术引入流水处理方法,对于忆阻器阵列加速进行优化,增大了阵列吞吐率,有效提高了忆阻器阵列资源的时间利用率。简单来说,就是由忆阻器不同的计算单元对应不同的卷积层,分别对流水线中的任务进行持续的处理,示例性地:卷积层1处理完A任务后得到结果A1,卷积层2才能对A任务的结果A1进行处理,得到结果A2;在卷积层2处理A任务的同时,卷积层1可以处理下一个任务B,以此避免硬件资源的浪费。而且卷积层1对应的忆阻器阵列上的忆阻器电导和工作状态不需要重新调整,可以一直使用,即,无需重新映射,提高了时间利用率。
然而,由于受到卷积层的卷积核大小、权值等诸多参数的影响,各卷积层的计算周期差距很大,这直接导致了流水线中各层对应的硬件资源会出现长时间的空闲的情况,示例性地:卷积层1花100ms处理完A任务后得到结果A1,在此之后卷积层2再花10ms对A任务的结果A1进行处理,得到结果A2;在卷积层2开始处理A任务的同时,卷积层1开始花100ms处理下一个任务B,在卷积层2花10ms处理完任务A之后,卷积层1还需要90ms才能处理完任务B,在这期间卷积层2对应的硬件资源都将一直处于空闲状态,长此以往这就导致了流水线中诸多硬件资源的浪费……因此,以流水处理方法完成所有任务的时间实,际上取决于所花时间最多的那一层的计算周期,而其他计算周期短的卷积层对应的硬件资源的浪费几乎是不可避免的。相关技术提出将各卷积层中最长的计算周期作为流水线的时延,示例:处理任务周期最长的卷积层所花时间为200ms时,流水线时延设定为200ms,某一卷积层A的计算周期为40ms,则该卷积层A计算完毕之后需要等待160ms才能进入下一个进程。相比较于常规的流水处理方法,这种流水设计能够优化数据结构,避免任务数据的堵塞和混乱,降低计算的执行失败率,但实际上并未减少忆阻器阵列硬件资源的闲置浪费。
鉴于对上述问题的分析,本发明实施例提供了一种流水处理方法、系统和忆阻器阵列,充分利用神经网络各网络层之间的连接特性和计算特性,基于忆阻器阵列的硬件特性自适应生成流水配置,通过降低最大的单级流水时延,提高忆阻器阵列的资源利用率和计算吞吐率,可以使卷积神经网络高效运行在存储资源冗余的忆阻器阵列中,减少流水空闲比例,大幅提高硬件的运行速度。
下面将参考附图并结合实施例来详细说明本发明。
参照图7,图7是本发明实施例提供的一种流水处理方法的步骤流程图。如图7所示,本发明实施例提供的所述流水处理方法包括:
步骤S31,初始化待运算的神经网络各个网络层对忆阻器阵列的映射并行度,确定所述各个网络层的初始映射并行度。
参照图8,图8是本发明实施例提供的一种忆阻器计算单元的结构示意图。如图8所示,由忆阻器阵列组成的PE(Processing Element处理元件)计算单元,即,忆阻器计算单元由以下几部分构成,包括:忆阻器交叉阵列XBAR,数模转换器DAC,模数转换器ADC,输入寄存器iReg,输出寄存器oReg,移位寄存器,加法树等等。其中,计算单元的核心计算部分是忆阻器交叉阵列XBAR,因此,对神经网络的计算加速可以优先从忆阻器阵列计算的优化进行考虑。
具体地,所述忆阻器阵列可以是计算单元中的忆阻器交叉阵列。由于忆阻器阵列通常以单元进行划分,即,一个忆阻器集成电路内,可以存在多个计算单元,而每个计算单元中,往往又存在多个数量相当的忆阻器阵列。
参照图9,图9是本发明实施例提供的一种忆阻器加速模块的结构示意图。如图9所示,在本实施例中,神经网络的每一层可以根据其规模大小被映射到加速模块中的一个或多个忆阻器计算单元中,构建忆阻器加速模块,加速模块根据神经网络的输入信息运行,各个网络层之间按照输入输出关系进行数据的传递,形成一条处理流水线,完成该神经网络所有网络层的计算。为了进一步实现资源的高效利用,本实施例还可以将神经网络的每一层根据其规模大小被映射到加速模块中的一个或多个忆阻器阵列。其中,毎一层网络的计算对应流水线中的一级。具体地,可以通过EDA工具仿真模拟实现整个过程。
其中,所述神经网络可以是多卷积层的卷积神经网络,所述各个网络层可以是神经网络的卷积层。
参照图10,图10是本发明实施例提供的一种卷积神经网络卷积操作的原理示意图。如图10所示,当网络层为神经网络中的第i层卷积层时,Ki为卷积层第i层的卷积核大小,Mi为卷积层第i层的输入通道数,Xi和Yi为卷积层第i层的输入尺寸大小,Xi+1和Yi+1为卷积层第i层的输出尺寸大小。第i层通过卷积核按滑动步长选取输入信息进行卷积操作,输出参数到第i+1层中继续进行下一层的卷积。
参照图11,图11是本发明实施例提供的一种神经网络在忆阻器阵列上计算的原理示意图。如图11所示,对于卷积层第i层的卷积操作,忆阻器交叉阵列对卷积核的每一次卷积操作,通过Ki*Ki*Mi行的忆阻器阵列,映射卷积权值为对应行列位置的忆阻器基本单元,以及,映射输入信息为对应行的输入电压,以输出电流的形式计算每一次卷积操作中的输出值,完成神经网络在忆阻器阵列上计算。
具体地,在不作映射并行度的迭代更新的情况下,忆阻器计算单元将按照初始映射并行度执行神经网络的计算。其中,所述初始映射并行度用于表征各个网络层所映射的忆阻器阵列的数量的初始比例。
具体地,在神经网络不作量化处理或者量化参数为1的情况下,各个网络层的映射并行度,是神经网络各个网络层映射的忆阻器阵列的数量。其中,量化参数,即,量化系数。
示例性地,当神经网络的某一个卷积层映射到5个忆阻器阵列上计算,则该卷积层的映射并行度为5。
考虑到目前神经网络一般需要进行量化处理,即,根据硬件配置信息的权重量化信息将每层网络的权值量化成为固定比特信息,由于8bit量化精度可以较好的降低量化损失,所以权重量化信息常被设置为8bit。在神经网络进行量化处理的情况下,各个网络层的映射并行度,是神经网络各个网络层映射的忆阻器阵列的数量与该神经网络的量化参数的比值。示例性地,当神经网络的权值的量化参数为8时,该神经网络的某一个卷积层映射到16个忆阻器阵列上计算,则该卷积层的映射并行度为2。
可选地,神经网络权值的量化参数还可以参考逐层的忆阻器交叉阵列周边电路的输入DAC数模转换的精度。
其中,各个网络层的初始映射并行度一般是由神经网络自身性质确定的。以常见的CNN神经网络LeNet为例,将三个卷积层的映射并行度初始化,各个卷积层的映射并行度均为1,若量化参数为8,则每个卷积层将各自在8个忆阻器阵列上计算。
步骤S32,确定在所述初始映射并行度下,所述各个网络层的初始计算周期。
其中,所述初始计算周期,是在初始映射并行度下,各个网络层的计算周期。
在本实施例中,可以根据各个网络层的参数、输入到所述神经网络中的输入信息、所述忆阻器阵列的硬件配置参数,确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
其中,所述神经网络各个网络层的参数,至少包括以下其中一者:各个网络层的卷积核大小、所述神经网络的配置参数、卷积核的移动步长、padding参数。
其中,各个网络层的卷积核大小,即,卷积层的卷积核大小。根据卷积层的卷积核大小和卷积窗口在图片信息上滑动的步长,则可以知道针对输入信息的大小,该卷积层的输出信息的大小,以及,每次计算需要的忆阻器阵列硬件资源的多少,即,阻器阵列的大小和数量。而神经网络的配置参数,至少包括神经网络各网络层中卷积核的权值,根据这些权值,可以仿真模拟运算卷积运算所需的时间;padding参数用于表征神经网络padding的方式,其中,padding通过像素填充使神经网络各层的输入输出保持一致,并缓解在不填充时,图像边缘像素被卷积的次数与图像中间像素被卷积的次数不平衡的问题。神经网络的配置参数和padding参数同样影响计算的时钟周期,因此,同样可以利用神经网络的配置参数和padding参数确定各个网络层的时钟周期。
具体地,可以利用EDA工具仿真忆阻器阵列集成电路芯片,通过对输入神经网络的参数进行计算,模拟得到各个网络层的计算周期,即,时钟周期。
同样地,在后续步骤对初始映射并行度进行迭代更新的过程中,在映射并行度发生变化后,各个网络层的计算周期的计算也与初始计算周期的方法相当。
所述忆阻器阵列的硬件配置参数,至少包括以下其中一者:所述神经网络的权值在所述忆阻器阵列上的量化参数、所述忆阻器阵列的尺寸大小、忆阻器阵列总数量。
其中,忆阻器阵列总数量可以通过可用的计算单元总量和每个计算单元内的忆阻器阵列数量确定。
由于在各个网络层的参数、输入到所述神经网络中的输入信息、所述忆阻器阵列的硬件配置参数这些信息和参数均不变的情况下,各个网络层用到多少个忆阻器阵列进行计算,决定了各个网络层的计算周期长短,即,计算的快慢。因此,本实施例,可以先根据神经网络权值的量化参数,计算在所述初始映射并行度下,各个网络层映射的忆阻器阵列数量;再根据各个网络层的参数、输入到所述神经网络中的输入信息、所述忆阻器阵列的硬件配置参数,确定在各个网络层映射的忆阻器阵列数量下,所述各个网络层的初始计算周期。
示例性地,当量化参数为8时,各网络层的初始映射并行度均为1,则相应地,各个网络层映射的忆阻器阵列数量为8,则确定在各个网络层映射的忆阻器阵列数量为8时,所述各个网络层的初始计算周期。
同样以神经网络LeNet为例,LeNet包含3个卷积层Conv1、Conv2、Conv3,Conv1卷积核大小分别为5*5*3*6,Conv2卷积核大小分别为5*5*6*16,Conv3卷积核大小分别为5*5*16*120,各个卷积层的映射并行度均为1,若硬件配置信息中可用的忆阻器阵列总数量存在64个,忆阻器阵列为尺寸大小为256*256的忆阻器交叉阵列,输入图片大小为32*32*3,在量化参数为8的情况下,初始化配置24个阵列完成卷积层映射。在分别利用8个忆阻器阵列计算Conv1、Conv2、Conv3的情况下,Conv1、Conv2、Conv3计算的时钟周期分别为961、169、1。
步骤S33,根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换。
在相关技术中,在各个网络层中计算周期最长的目标网络层在完成自身的计算之后,其余网络只能等待目标网络层完成该次任务的计算后,才能根据目标网络层的计算结果进行计算或者进入下次任务的计算。即,根据网络层之间的连接关系,当目标网络层在其余网络层之前时,其余网络只能等待目标网络层完成该次任务的计算后,才能根据目标网络层的计算结果继续计算;当目标网络层在其余网络层之后时,其余网络只能等待目标网络层完成该次任务的计算后,才能进入下次任务的计算。
上述情况可以简单地看作计算周期最长的目标网络层延误了其余网络层的计算,在其余网络等待的期间,对于其余网络层映射的忆阻器阵列硬件资源来说,是很大的浪费。因此,本实施例考虑为计算周期最长的目标网络层提供更多的硬件资源。
基于上述考虑,在本实施例中,当计算得到各个网络层的初始计算周期后,先确定其中的最长计算周期以及该最长计算周期对应的目标网络层,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,增加目标网络层的映射并行度,并在每一次增加目标网络层的映射并行度后重新计算所有网络层的计算周期和可用的忆阻器阵列数量,直到可用的忆阻器阵列的数量为零,即,把所有可用的忆阻器阵列都用上,并且,在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换,即,计算周期最长的一个或多个目标网络层更换为其余网络层中的一个或多个。
结合上述步骤S32,同样以神经网络LeNet为例,对于其中一个卷积层Conv1来说,计算的时钟周期为961,则若基于初始映射并行度1增加1个映射并行度,使映射并行度成为2,使用16个忆阻器阵列进行计算,时钟周期将变为481……基于映射并行度5增加1个映射并行度,使映射并行度成为6,使用48个忆阻器阵列进行计算,时钟周期将变为161。在这种情况,其余网络各用8个忆阻器阵列,全部64个忆阻器阵列均被使用,且Conv2计算的时钟周期为169,成为了计算周期最长的网络层,即,结束迭代更新。
步骤S34,根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,所述流水配置用于指示所述神经网络的各个网络层在所述忆阻器阵列上的运行。
在本实施例中,可以根据所述神经网络的权值在所述忆阻器阵列上的量化参数、以及迭代更新结束时的映射并行度,确定所述各个网络层映射的忆阻器阵列数量;
根据所述各个网络层的流水线运行顺序以及所述各个网络层映射的忆阻器阵列数,自适应生成所述神经网络在所述忆阻器阵列上的流水配置。
具体地,迭代更新结束时各个网络层的映射并行度与量化参数的乘积,即各个网络层映射的忆阻器阵列数量。示例性地,若各个网络层的映射并行度分别为6、1、1,神经网络权值的量化参数为8,则个网络层映射的忆阻器阵列数分别为48、8、8。
在得到各个网络层映射的忆阻器阵列数量之后,即可根据各个网络层的输入输出连接关系,自适应生成该神经网络在忆阻器阵列上的流水配置,而流水配置即用于配置流水线。
因此,本实施例还可以根据所述流水配置,控制相应数量的忆阻器阵列根据各个网络层之间的输入输出关系,完成所述神经网络的各个网络层在所述忆阻器阵列上的流水线运行。
具体地,自适应生成的流水配置将在可用的忆阻器阵列总数量中,指定其中相应数量的忆阻器阵列依次完成流水线中的对应各个网络层的各级计算任务。
示例性地,在可用的64个忆阻器阵列总数量中,自适应生成的流水配置将指定其中48个忆阻器阵列完成网络层Conv1的计算,余下其中8个忆阻器阵列完成网络层Conv2的计算,余下8个忆阻器阵列完成网络层Conv3的计算,而各个网络层之间的输入输出连接关系为Conv1→Conv2→Conv3。
参照图12,图12是本发明实施例提供的一种神经网络计算的流水处理的结构示意图。如图12所示,流水处理减少各个卷积层对应的忆阻器阵列硬件资源的闲置状态,持续运行。示例性地,流水配置使得卷积层Conv2在第1条流水进程中执行第1个任务在卷积层Conv2中的卷积操作时,卷积层Conv1在第2条流水进程中计算第2个任务在卷积层Conv1中的卷积操作,Conv0在3条流水进程中计算第3个任务在卷积层Conv0中的卷积操作。
通过本实施例,为计算周期最长的目标网络层提供更多的忆阻器阵列硬件资源,以此降低目标网络层的计算周期,进而降低各网络层中的最长计算周期,即,以降低流水单级最长时延,降低整体流水线的时延,提高硬件资源利用率和计算效率,即提高了神经网络在忆阻器阵列上计算时在单位时间内的吞吐率。
考虑到受量化参数的影响,即使是可获取的忆阻器阵列硬件资源,也不一定能全部被神经网络映射使用,因此,在一种可选的实施方式中,本发明实施例还提供了一种确定可用的忆阻器阵列数量的方法,包括:
确定初始可用的忆阻器阵列数量、以及所述神经网络的权值在所述忆阻器阵列上的量化参数;其中,所述初始可用的忆阻器阵列数量表征神经网络能够调用的忆阻器阵列硬件资源量;
获得所述量化参数不大于所述初始可用的忆阻器阵列数量的最大整数倍数;
将所述最大整数倍数确定为可用的忆阻器阵列的数量。其中,所述可用的忆阻器阵列数量表征在所述量化参数下,神经网络实际可利用的忆阻器阵列硬件资源量。
示例性地,当量化参数为8时,可获取的忆阻器阵列数量为66,量化参数小于66的最大正整数倍数为64,即,能被映射使用的忆阻器阵列仅有64个。
通过本实施例,能够更加准确地确定可用的忆阻器阵列数量,防止映射并行度更新的过程中出现错误。
考虑到在大多数情况下,神经网络的映射并行度设置过于保守,忆阻器阵列硬件资源往往并没有完全被应用,而是可以继续挖掘出更多的忆阻器阵列用以执行神经网络的计算,因此,在一种可选的实施方式中,本发明实施例还提供了一种挖掘资源迭代更新映射并行度的方法,包括:
在第n次迭代更新时,在计算周期最长的目标网络层的第n-1次所获得的映射并行度上,按照预设步长增加所述目标网络层的映射并行度,以实现对各个网络层的初始映射并行度的迭代更新;
确定第n次更新后可用的忆阻器阵列的数量以及所述各个网络层的计算周期;
在当前可用的忆阻器阵列不为零或在计算周期最长的网络层仍为所述目标网络层的情况下,重复以上步骤,直到当前可用的忆阻器阵列为零,并且,计算周期最长的网络层出现置换。
其中,预设步长是大于等于1的正整数,可以是1。预设步长越大,映射并行度迭代更新的数据计算量越小,但计算精度将降低。
在本实施例中,按照预设步长增加所述目标网络层的映射并行度,以实现对各个网络层的初始映射并行度的迭代更新,具体包括:
按照预设步长增加所述目标网络层的映射并行度,并且,不更改其余网络层的映射并行度。也就是说,增加所述目标网络层的映射并行度,使目标网络层可以映射到空闲的可用忆阻器阵列中。
具体地,在对各个网络层的初始映射并行度的迭代更新的过程中,如果最长计算周期对应的目标网络层出现置换,即,假设第n次迭代更新之前计算周期最长的目标网络层1与第n次迭代更新之后计算周期最长的目标网络层2不一样,则第n+1次迭代更新将对目标网络层2的映射并行度进行增加,以此类推。
示例性地,针对量化参数为8的神经网络,若在第3次迭代更新增加网络层1的映射并行度后,网络层1的计算周期为241,网络层2的计算周期为225,网络层1的计算周期最长,此时空闲可用的忆阻器阵列还有80个;进行第4次迭代更新增加网络层1的映射并行度后,网络层1的计算周期为193,网络层2的计算周期为225,网络层2的计算周期最长,此时空闲可用的忆阻器阵列还有72个;则进行第6次迭代更新增加网络层2的映射并行度……以此类推进行迭代更新。
通过本实施例,参考可用忆阻器阵列的总数量,以挖掘更多硬件资源的方式,对计算周期最长的网络层的映射并行度进行增加,以使该网络层在流水处理中能够映射更多忆阻器阵列硬件资源进行计算,以在充分利用硬件资源的同时,降低流水线中的最大单级时延,即可以最有效地降低整个流水线的运行时延。
可选地,考虑到在部分情况下,即使对硬件资源进行挖掘或转移,但是将计算周期最长的网络层仍然没有出现过置换,而基于量化参数等因素,忆阻器阵列以及不能继续拆分用于映射并行度的更新,这种情况下同样可以停止迭代更新,并将最后一次迭代更新获得的映射并行度,作为各个网络层的映射并行度。
在每一次映射并行度更新之后,更新之前计算周期最长的目标网络层的计算周期会降低,则各个网络层的计算周期之间的比例也会相应地发生变化,因此,根据这样的映射并行度配置的流水线各级进行计算消耗的时间也会发生相应的变化,确定流水线各级进行计算消耗时间的关系的变化,即可直观了解神经网络在忆阻器阵列上运行的效率是否有提升,为此,在一种可选的实施方式中,本发明实施例还提供了一种利用周期空闲比例预测计算效率的方法,所述方法包括:
在所述迭代更新结束时的映射并行度下,确定所述各个网络层的计算周期;
获得所述最长计算周期与所述各个网络层的计算周期的差值,将所述差值与所述最长计算周期的比值作为所述各个网络层对应的忆阻器阵列的周期空闲比例;
根据所述周期空闲比例,预测所述忆阻器阵列在所述迭代更新结束时的映射并行度下运行所述神经网络的效率。
具体地,周期空闲比例是相对周期利用率而言的概念,是在每一级流水或每一层网络的计算中,该级流水对应的忆阻器阵列硬件资源闲置的时间与流水线时延的比值,即,该级流水对应的忆阻器阵列硬件资源闲置的时间与流水线中各级计算周期中最大值的比值。对于每一级流水或每一层网络的计算来说,周期空闲比例与周期利用率之和为1。
示例性地,迭代更新前各网络层的映射并行度分别为1、1、1,计算周期分别为961、169、1,则迭代更新前各网络层的周期空闲比例分别为0、792/961、960/961;迭代更新结束时的映射并行度分别为6、1、1,计算周期分别为161、169、1,则迭代更新后各网络层的周期空闲比例分别为8/169、0、168/169。
通过上述示例可以发现,迭代更新之后各个网络层的最长计算周期不仅从961变为了169,大幅下降数倍,甚至,各个网络层的周期空闲比例也下降了,即,让各网络层的计算周期更加接近,以减少流水线气泡,从时间维度上提高硬件的资源利用率。
进一步地,还可以计算各网络层的周期空闲比例与各网络层映射的忆阻器阵列数量或各网络层的映射并行度的乘积之和,以获得忆阻器阵列硬件资源的周期空闲比例。
示例性地,迭代更新后各网络层的周期空闲比例8/169、0、168/169,各网络层的映射并行度分别为6、1、1,则各网络层的周期空闲比例与各网络层的映射并行度的乘积分别为8/169*6、1*0、1*168/169,即,8/1014、0、168/169,64个忆阻器阵列的空闲比例即为8/1014+168/169。
由于映射并行度迭代更新后,同样可以计算各层周期差值与最长计算周期的比值,本实施例不仅可以用于生成流水配置之后,也同样适用于映射并行度迭代更新的过程中,即时地预测忆阻器阵列运行神经网络的资源利用率,以表征忆阻器阵列运行神经网络的计算效率。
本发明实施例提供的流水处理方法旨在提高忆阻器阵列中流水线的吞吐率,以提高忆阻器阵列的计算效率,为此,在一种可选的实施方式中,本发明实施例还提供一种利用流水线吞吐率预测计算效率的方法,所述方法包括:
根据以下公式计算所述流水配置对应的流水线的吞吐率:
根据所述流水线的吞吐率,预测所述忆阻器阵列在所述迭代更新结束时的流水配置下运行所述神经网络的效率;
其中,Pi是所述各个网络层中第i层的映射并行度;Ki是所述各个网络层中第i层的卷积核大小;Mi是所述各个网络层中第i层的输入通道数;N是所述网络层的总层数;Ri是所述各个网络层中第i层对应的忆阻器阵列的周期利用率;T是所述流水配置对应的流水线的吞吐率。
由上述公式可以发现,通过上述实施例的流水处理方法得到的阵列吞吐率相较于无流水处理的阵列吞吐率的倍数,是各级流水的周期利用率之和。即,对于M层网络层的神经网络在忆阻器阵列上的M级流水计算来说,假设无流水处理的阵列吞吐率为Ki*Ki*Miflops,流水处理后的阵列吞吐率为(Ki*Ki*Mi)*(R0+R1+…+…+R(M-1))flops,使无流水处理的阵列吞吐率的(R0+R1+…+…+R(M-1))倍。其中,周期利用率是各层计算周期与最长计算周期的比值。
在本实施例中,通过对神经网络各个网络层的最长计算周期对应的网络层的映射并行度进行迭代更新,进而迭代更新各个网络层中的最长计算周期,再综合各个网络层的卷积核大小、输入通道数,计算映射并行度迭代更新后生成的流水配置对应的流水线的吞吐率,以预测忆阻器阵列运行神经网络的计算效率。
参照图13,图13是本发明实施例提供的一种流水处理系统的结构框图。如图13所示,基于同一发明构思,本发明实施例还提供一种流水处理系统,所述系统包括:
初始化单元61,用于初始化待运算的神经网络各个网络层对忆阻器阵列的映射并行度,确定所述各个网络层对忆阻器阵列的初始映射并行度;其中,所述初始映射并行度用于表征各个网络层所映射的忆阻器阵列的数量的初始比例;
周期计算单元62,用于确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
映射迭代单元63,用于根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换;
流水配置单元64,用于根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,所述流水配置用于指示所述神经网络的各个网络层在所述忆阻器阵列上的运行。
基于同一发明构思,本发明实施例还提供了一种忆阻器阵列,所述忆阻器阵列用于根据上述任一实施例所述的流水处理方法,执行神经网络的运算。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种流水处理方法、系统和忆阻器阵列,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种流水处理方法,其特征在于,所述方法包括:
初始化待运算的神经网络各个网络层对忆阻器阵列的映射并行度,确定所述各个网络层的初始映射并行度;其中,所述初始映射并行度用于表征各个网络层所映射的忆阻器阵列的数量的初始比例;
确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换;
根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,所述流水配置用于指示所述神经网络的各个网络层在所述忆阻器阵列上的运行。
2.根据权利要求1所述的方法,其特征在于,确定在所述初始映射并行度下,所述各个网络层的初始计算周期,包括:
根据各个网络层的参数、输入到所述神经网络中的输入信息、所述忆阻器阵列的硬件配置参数,确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
其中,所述神经网络各个网络层的参数,至少包括以下其中一者:各个网络层的卷积核大小、所述神经网络的配置参数、卷积核的移动步长、padding参数;
所述忆阻器阵列的硬件配置参数,至少包括以下其中一者:所述神经网络的权值在所述忆阻器阵列上的量化参数、所述忆阻器阵列的尺寸大小、忆阻器阵列总数量。
3.根据权利要求1所述的方法,其特征在于,在利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新之前,确定可用的忆阻器阵列数量,包括:
确定初始可用的忆阻器阵列数量、以及所述神经网络的权值在所述忆阻器阵列上的量化参数,其中,所述初始可用的忆阻器阵列数量表征神经网络能够调用的忆阻器阵列硬件资源量;
获得所述量化参数不大于所述初始可用的忆阻器阵列数量的最大整数倍数;
将所述最大整数倍数确定为可用的忆阻器阵列的数量,其中,所述可用的忆阻器阵列数量表征在所述量化参数下,神经网络实际可利用的忆阻器阵列硬件资源量。
4.根据权利要求1所述的方法,其特征在于,根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,包括:
在第n次迭代更新时,在计算周期最长的目标网络层的第n-1次所获得的映射并行度上,按照预设步长增加所述目标网络层的映射并行度,以实现对各个网络层的初始映射并行度的迭代更新;
确定第n次更新后可用的忆阻器阵列的数量以及所述各个网络层的计算周期;
在当前可用的忆阻器阵列不为零或在计算周期最长的网络层仍为所述目标网络层的情况下,重复以上步骤,直到当前可用的忆阻器阵列为零,并且,计算周期最长的网络层出现置换。
5.根据权利要求1所述的方法,其特征在于,根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,包括:
根据所述神经网络的权值在所述忆阻器阵列上的量化参数、以及迭代更新结束时的映射并行度,确定所述各个网络层映射的忆阻器阵列数量;
根据所述各个网络层的流水线运行顺序以及所述各个网络层映射的忆阻器阵列数,自适应生成所述神经网络在所述忆阻器阵列上的流水配置;
所述方法还包括:
根据所述流水配置,控制相应数量的忆阻器阵列根据各个网络层之间的输入输出关系,完成所述神经网络的各个网络层在所述忆阻器阵列上的流水线运行。
6.根据权利要求1所述的方法,其特征在于,在生成所述神经网络在所述忆阻器阵列上的流水配置之后,所述方法还包括:
在所述迭代更新结束时的映射并行度下,确定所述各个网络层的计算周期;
获得所述最长计算周期与所述各个网络层的计算周期的差值,将所述差值与所述最长计算周期的比值作为所述各个网络层对应的忆阻器阵列的周期空闲比例;
根据所述周期空闲比例,预测所述忆阻器阵列在所述迭代更新结束时的映射并行度下运行所述神经网络的效率。
8.一种流水处理系统,其特征在于,所述系统包括:
初始化单元,用于初始化待运算的神经网络各个网络层对忆阻器阵列的映射并行度,确定所述各个网络层对忆阻器阵列的初始映射并行度;其中,所述初始映射并行度用于表征各个网络层所映射的忆阻器阵列的数量的初始比例;
周期计算单元,用于确定在所述初始映射并行度下,所述各个网络层的初始计算周期;
映射迭代单元,用于根据所述各个网络层的初始计算周期中的最长计算周期,利用当前可用的忆阻器阵列对所述各个网络层的初始映射并行度进行迭代更新,直到可用的忆阻器阵列的数量为零,和/或在迭代更新后的映射并行度下,各个网络层的计算周期中的最长计算周期对应的目标网络层出现置换;
流水配置单元,用于根据迭代更新结束时的映射并行度,生成所述神经网络在所述忆阻器阵列上的流水配置,所述流水配置用于指示所述神经网络的各个网络层在所述忆阻器阵列上的运行。
9.一种忆阻器阵列,其特征在于,所述忆阻器阵列用于根据权利要求1-7任一项所述的流水处理方法,执行神经网络的运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110477328.2A CN113517007B (zh) | 2021-04-29 | 2021-04-29 | 一种流水处理方法、系统和忆阻器阵列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110477328.2A CN113517007B (zh) | 2021-04-29 | 2021-04-29 | 一种流水处理方法、系统和忆阻器阵列 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113517007A true CN113517007A (zh) | 2021-10-19 |
CN113517007B CN113517007B (zh) | 2023-07-25 |
Family
ID=78063718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110477328.2A Active CN113517007B (zh) | 2021-04-29 | 2021-04-29 | 一种流水处理方法、系统和忆阻器阵列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113517007B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114463161A (zh) * | 2022-04-12 | 2022-05-10 | 之江实验室 | 一种基于忆阻器的神经网络处理连续图像的方法和装置 |
CN115062569A (zh) * | 2022-08-17 | 2022-09-16 | 深圳市华杰智通科技有限公司 | 毫米波芯片设计仿真eda存算并行加速系统及方法 |
CN115312095A (zh) * | 2022-10-10 | 2022-11-08 | 电子科技大学 | 一种支持内部数据更新的存内计算流水乘加电路 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110119467A1 (en) * | 2009-11-13 | 2011-05-19 | Nec Laboratories America, Inc. | Massively parallel, smart memory based accelerator |
US20180005115A1 (en) * | 2016-06-29 | 2018-01-04 | International Business Machines Corporation | Accelerated neural network training using a pipelined resistive processing unit architecture |
CN108182471A (zh) * | 2018-01-24 | 2018-06-19 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
US20180309451A1 (en) * | 2017-04-24 | 2018-10-25 | The Regents Of The University Of Michigan | Sparse Coding With Memristor Networks |
CN109063826A (zh) * | 2018-03-19 | 2018-12-21 | 重庆大学 | 一种基于忆阻器的卷积神经网络实现方法 |
CN109086867A (zh) * | 2018-07-02 | 2018-12-25 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
US20190122105A1 (en) * | 2017-10-24 | 2019-04-25 | International Business Machines Corporation | Training of artificial neural networks |
CN111027619A (zh) * | 2019-12-09 | 2020-04-17 | 华中科技大学 | 一种基于忆阻器阵列的K-means分类器及其分类方法 |
US20200356809A1 (en) * | 2019-05-07 | 2020-11-12 | Vathys, Inc. | Flexible pipelined backpropagation |
CN112686364A (zh) * | 2019-10-18 | 2021-04-20 | 华为技术有限公司 | 一种神经网络计算芯片及计算方法 |
-
2021
- 2021-04-29 CN CN202110477328.2A patent/CN113517007B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110119467A1 (en) * | 2009-11-13 | 2011-05-19 | Nec Laboratories America, Inc. | Massively parallel, smart memory based accelerator |
US20180005115A1 (en) * | 2016-06-29 | 2018-01-04 | International Business Machines Corporation | Accelerated neural network training using a pipelined resistive processing unit architecture |
US20180309451A1 (en) * | 2017-04-24 | 2018-10-25 | The Regents Of The University Of Michigan | Sparse Coding With Memristor Networks |
US20190122105A1 (en) * | 2017-10-24 | 2019-04-25 | International Business Machines Corporation | Training of artificial neural networks |
CN108182471A (zh) * | 2018-01-24 | 2018-06-19 | 上海岳芯电子科技有限公司 | 一种卷积神经网络推理加速器及方法 |
CN109063826A (zh) * | 2018-03-19 | 2018-12-21 | 重庆大学 | 一种基于忆阻器的卷积神经网络实现方法 |
CN109086867A (zh) * | 2018-07-02 | 2018-12-25 | 武汉魅瞳科技有限公司 | 一种基于fpga的卷积神经网络加速系统 |
US20200356809A1 (en) * | 2019-05-07 | 2020-11-12 | Vathys, Inc. | Flexible pipelined backpropagation |
CN112686364A (zh) * | 2019-10-18 | 2021-04-20 | 华为技术有限公司 | 一种神经网络计算芯片及计算方法 |
CN111027619A (zh) * | 2019-12-09 | 2020-04-17 | 华中科技大学 | 一种基于忆阻器阵列的K-means分类器及其分类方法 |
Non-Patent Citations (2)
Title |
---|
华幸成: "面向大数据处理的应用性能优化方法研究", 《中国优秀博士学位论文全文数据库 (基础科学辑)》 * |
罗杰: "基于FPGA的忆阻混沌神经网络分析", 《中国优秀硕士学位论文全文数据库 (基础科学辑)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114463161A (zh) * | 2022-04-12 | 2022-05-10 | 之江实验室 | 一种基于忆阻器的神经网络处理连续图像的方法和装置 |
CN115062569A (zh) * | 2022-08-17 | 2022-09-16 | 深圳市华杰智通科技有限公司 | 毫米波芯片设计仿真eda存算并行加速系统及方法 |
CN115312095A (zh) * | 2022-10-10 | 2022-11-08 | 电子科技大学 | 一种支持内部数据更新的存内计算流水乘加电路 |
CN115312095B (zh) * | 2022-10-10 | 2023-01-03 | 电子科技大学 | 一种支持内部数据更新的存内计算流水乘加电路 |
Also Published As
Publication number | Publication date |
---|---|
CN113517007B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113517007B (zh) | 一种流水处理方法、系统和忆阻器阵列 | |
US10942673B2 (en) | Data processing using resistive memory arrays | |
CN108416422B (zh) | 一种基于fpga的卷积神经网络实现方法及装置 | |
US11462003B2 (en) | Flexible accelerator for sparse tensors in convolutional neural networks | |
US20190042949A1 (en) | Methodology for porting an ideal software implementation of a neural network to a compute-in-memory circuit | |
CN110807519A (zh) | 基于忆阻器的神经网络的并行加速方法及处理器、装置 | |
US11797830B2 (en) | Flexible accelerator for sparse tensors in convolutional neural networks | |
US11593628B2 (en) | Dynamic variable bit width neural processor | |
CN113011574B (zh) | 一种卷积神经网络系统、忆阻器阵列和卷积神经网络 | |
CN112836814A (zh) | 存算一体处理器、处理系统以及算法模型的部署方法 | |
He et al. | TARe: Task-adaptive in-situ ReRAM computing for graph learning | |
Liu et al. | An energy-efficient mixed-bit CNN accelerator with column parallel readout for ReRAM-based in-memory computing | |
Sridharan et al. | X-former: In-memory acceleration of transformers | |
CN115879530A (zh) | 一种面向rram存内计算系统阵列结构优化的方法 | |
CN110009091B (zh) | 学习网络在等价类空间中的优化 | |
Cheng et al. | A large-scale in-memory computing for deep neural network with trained quantization | |
Han et al. | A Convolution Neural Network Accelerator Design with Weight Mapping and Pipeline Optimization | |
Chen et al. | An efficient ReRAM-based inference accelerator for convolutional neural networks via activation reuse | |
Sabri et al. | Redy: A novel reram-centric dynamic quantization approach for energy-efficient cnn inference | |
Chen et al. | Solving Least-Squares Fitting in $ O (1) $ Using RRAM-based Computing-in-Memory Technique | |
CN113326914A (zh) | 神经网络计算方法和神经网络计算装置 | |
US20240202275A1 (en) | Assigning dnn weights to a 3d crossbar array | |
CN217933180U (zh) | 一种存内计算电路 | |
Wang et al. | eF 2 lowSim: System-Level Simulator of eFlash-Based Compute-in-Memory Accelerators for Convolutional Neural Networks | |
TWI788128B (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 |