CN111105023B - 数据流重构方法及可重构数据流处理器 - Google Patents
数据流重构方法及可重构数据流处理器 Download PDFInfo
- Publication number
- CN111105023B CN111105023B CN201911087000.9A CN201911087000A CN111105023B CN 111105023 B CN111105023 B CN 111105023B CN 201911087000 A CN201911087000 A CN 201911087000A CN 111105023 B CN111105023 B CN 111105023B
- Authority
- CN
- China
- Prior art keywords
- neural network
- data stream
- target neural
- network layer
- chip
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000013528 artificial neural network Methods 0.000 claims abstract description 111
- 230000006870 function Effects 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims description 53
- 230000015654 memory Effects 0.000 claims description 34
- 230000004913 activation Effects 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 16
- 230000003068 static effect Effects 0.000 claims description 16
- 230000007787 long-term memory Effects 0.000 claims description 3
- 230000006403 short-term memory Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 6
- 238000010276 construction Methods 0.000 abstract description 4
- 238000011160 research Methods 0.000 abstract description 3
- 238000011176 pooling Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 239000013598 vector Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000002787 reinforcement Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/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
-
- 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/048—Activation functions
-
- 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)
- 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)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Memory System (AREA)
Abstract
本发明公开了数据流重构方法及可重构数据流处理器,尤其是面向混合人工神经网络的数据流重构,其根据不同神经网络层对计算单元、存储单元以及数据流动单元等资源进行对应的功能配置动态变化,大规模复用硬件实现不同功能的神经网络层,针对多个神经网络层构成的混合神经网络结构,取得提高硬件利用率、提高运算速度以及降低功耗等效果。特别地,通过获取其他新型的神经网络层的特性信息确认可复用的配置,其能够为后续研究构造其他新型的神经网络层及基于这些新型神经网络层的混合神经网络的实现提供资源复用基础,泛用性极强。
Description
技术领域
本发明涉及神经网络的数据流技术领域,尤其是涉及数据流重构方法及可重构数据流处理器。
背景技术
神经网络在计算机视觉,自然语言处理和游戏引擎等领域有着广泛地应用,随着神经网络结构的快速发展,其对不同数据流的计算能力需求也会不断增加。因此未来的混合神经网络是大势所趋,其紧凑的算法内核可支持感知,控制甚至驱动方面的端到端任务。与此同时,专用的硬件加速器结构已经被提出用于加速神经网路的推理阶段,例如Eyeriss,Google TPU-I和DaDianNao,它们通过算法与体系结构的协同设计技术,如专用数据流和脉动阵列乘法器等来实现高性能和高资源利用率,但是这些架构和神经网络都是紧耦合的,无法针对不同的神经网络做加速。因此,针对不同的神经网络需要设计对应数据流方案,其关键的数据流重构方法是混合人工神经网络的设计重点。
现有技术中,缺少针对存在不同的神经网络层,比如池化层、全连接层、循环网络LSTM层、深度强化学习层以及残差层等不同神经网络层组成的混合神经网络结构通过数据流重构来进行资源复用的方案,由此,现有技术的方案往往存在硬件成本高、结构复杂、运算速度慢以及运算功耗大等缺点。
发明内容
有鉴于此,本发明的目的在于提供数据流重构方法及可重构数据流处理器,来解决上述问题。
为了实现上述的目的,本发明采用了如下的技术方案:
本发明提供了一种数据流重构方法,包括:获取目标神经网络层的特性信息;根据目标神经网络层的特性信息,确定对应目标神经网络层的数据流模式、处理单元的功能配置以及片上系统的功能配置;将可复用的处理单元和片上系统进行对应所述目标神经网络层的处理单元和片上系统的功能配置,并根据目标神经网络层的数据流模式进行对应所述目标神经网络层的网络配置,构建所述目标神经网络层;采用构建的目标神经网络层获得输出结果。
优选地,当所述目标神经网络层为卷积层,所述处理单元包括分组配置在多个线程中的乘积累加运算单元和修正线性单元;数据流的输入或输出为线程级并行的串行传输,片上系统的静态存储器配置为用于对线程上输入特征图的激活函数进行缓冲,权重和激活函数在多个线程之间进行共享,各个线程的串行输出经过输出缓冲后进行并行输出。
优选地,当所述目标神经网络层为池化层,所述处理单元配置为比较器;数据流的输入或输出为并行传输。
优选地,当所述目标神经网络层为全连接层,所述处理单元包括分组配置在多个线程中的乘积累加运算单元和修正线性单元;数据流的输入或输出为线程级并行的串行传输,片上系统的静态存储器配置为权重缓冲区,激活函数通过多个线程进行串行流式传输。
优选地,当所述目标神经网络层为残差层,所述处理单元配置为加法器;数据流的输入或输出为并行传输,片上系统的输入和输出移位寄存器用于存储操作数。
优选地,当所述目标神经网络层为长短期记忆层,所述处理单元分为四组,各组处理单元用于实例化sigmoid函数和tanh函数,数据流的输入或输出为串行传输。
优选地,当所述目标神经网络层为强化学习层,所述处理单元包括分组配置在多个线程中的乘积累加运算单元和修正线性单元;数据流的输入或输出为线程级并行的串行传输,片上系统的缓存用于状态激活和迭代操作。
本发明提供一种可重构数据流处理器,用于执行如上所述的数据流重构方法,所述可重构数据流处理器包括:片上系统、硬件线程以及多组处理单元。其中,所述片上系统用于控制各组处理单元与对应的硬件线程配合,调整为匹配目标神经网络层的功能配置,进行目标神经网络层的构建。
优选地,所述片上系统包括执行控制器、直接内存访问控制器、执行线程以及缓冲区,所述执行控制器用于从外部的片下存储器提取目标神经网络层的网络指令,将所述网络指令配置到静态存储器中,对所述网络指令逐条进行解码分析以驱动执行线程;所述直接内存访问控制器用于控制片上系统与片下存储器之间的读写;所述执行线程用于在所述执行控制器的控制下运行以实现目标神经网络层的功能;所述缓冲区包括多个所述静态存储器构成的静态存储器池。
优选地,所述硬件线程包括核心状态机和移位寄存器,所述核心状态机用于控制同一线程上的处理单元的数据输入输出、激活函数配给以及权重配给,所述移位寄存器用于构建激活函数的输入和输出。
本发明提供的数据流重构方法及可重构数据流处理器,通过计算、存储以及数据流动单元的动态功能变化,支持不同神经网络算子的功能,并对硬件资源进行大规模复用,实现对各种神经网络尤其是新型混合神经网络的适应,取得提高硬件利用率、提高运算速度以及降低功耗等效果。
附图说明
图1是一种混合神经网络结构的示例性结构图;
图2是本发明实施例提供的数据流重构方法的流程图;
图3是卷积层作为目标神经网络层的结构示意图;
图4是池化层作为目标神经网络层的结构示意图;
图5是全连接层作为目标神经网络层的结构示意图;
图6是残差层作为目标神经网络层的结构示意图;
图7是长短期记忆层作为目标神经网络层的结构示意图;
图8是强化学习层作为目标神经网络层的结构示意图;
图9是本发明实施例提供的可重构数据流处理器的结构示意图;
图10是实施例2的验证实验中设计的架构与主机之间的Q迭代时间比较图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的具体实施方式进行详细说明。这些优选实施方式的示例在附图中进行了例示。附图中所示和根据附图描述的本发明的实施方式仅仅是示例性的,并且本发明并不限于这些实施方式。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了关系不大的其他细节。
实施例1
参阅图1所示,其描述了混合神经网络结构中的重要网络层及其互联方式,组成了以感知和控制为目标的端到端网络。特别是图形输入,级联卷积和池化层被用作视觉特征提取的感知模块。诸如Yolo-v3和Resnet-50之类的模型网络可以达到数十层,用于模仿人类的视觉系统。而对于视频上下文理解和语言处理这种时序相关的应用,通过时间提取的特征序列被作为LSTM长短期记忆层的输入,LSTM层再提取序列相关的特征输出。与以前的层不同的是,LSTM网络作为循环神经网络的一种特殊网络结构,其所构成的四个基本门,分别输入门(I),输出门(O),细胞状态门(C)和(F)遗忘门。当I,O和F门通过矢量运算来计算图层输出时,C门将保持当前图s层状态并作为下一个时间序列的递归输入。
控制网络层在特征提取后进行,在深度强化学习神经网络DQN中,提取的特征参数被视为状态节点,而最佳决策则需要通过动作节点进行选择。该方法是遍历当前状态下的所有可能动作,并根据强化学习的策略执行回归策略以找到最大或最小输出值(Q值)。由于需要对动作节点进行迭代,因此还需要对后续层中的所有计算进行迭代,以虚线框表示。多层感知器采用最普遍的全连接层。其中的短接模式也常使用在残差网络中,通过在当前输入之前提供图层形式的关键要素来提高分类和回归的准确性。
针对人工神经网络,各个神经网络层不仅网络结构不同,而且操作数,运算符和非线性函数也不同。在不同的神经网络层中,其数据流属性是根据不同网络结构可重构的,所以,可以通过分析各种神经网络层的特性,例如数据流访问模式、计算资源的功能等,根据这些神经网络层特性之间的共通点,寻找在混合神经网络结构的构建过程中可以复用的资源,比如例如处理单元PE,数据输入/输出,用作缓冲的静态存储器SRAM和与片下的DRAM存储器的接口等,以此思路进行数据流重构来解决现有技术问题,参照表1所示,其总结了多个标准神经网络层的特性信息。
表1.多个标准神经网络层的特性信息
可以看出,池化和短接层是矢量运算,而其他内核对矩阵运算,其中卷积过程为稀疏矩阵,其余网络层为密集矩阵。在各个网络层中,采用不同的激活函数,关于其非线性函数,LSTM网络同时采用S型和切线,而其余矩阵内核使用ReLU函数或S型。
在卷积层和全连接层中的网络数据需要在输出特征图的节点之间共享。LSTM层采用类似的串行流,但特别的是其激活流需要在多个门之间共享。而状态动作层需要基于动作节点的迭代来快速生成数据流。对向量进行操作的池化层和残差层不需要为特征图共享激活函数。因此,激活的向量类型可以进行并行传输。
此外,在分析了用于多个网络层的中间数据的功能之后,由于数据稀疏性的性质,卷积层和池化层主要由激活决定,而FC全连接层和LSTM层则由权重决定。在残差层中,需要保留指向上一层进行激活的指针,以便网络处理先前的数据。
综合上述分析思路,如图2所示,本发明提供了一种数据流重构方法,包括:
S1、获取目标神经网络层的特性信息;
S2、根据目标神经网络层的特性信息,确定对应目标神经网络层的数据流模式、处理单元的功能配置以及片上系统SoC的功能配置;
S3、将可复用的处理单元和片上系统进行对应所述目标神经网络层的处理单元和片上系统的功能配置,并根据目标神经网络层的数据流模式进行对应所述目标神经网络层的网络配置,构建所述目标神经网络层;
S4、采用构建的目标神经网络层获得输出结果。
本发明提供的上述数据流重构方法,能够根据不同神经网络层对计算单元、存储单元以及数据流动单元等资源进行对应的功能配置动态变化,大规模复用硬件实现不同功能的神经网络层,针对多个神经网络层构成的混合神经网络结构,取得提高硬件利用率、提高运算速度以及降低功耗等效果,并且,能够为后续研究构造其他新型的神经网络层的实现提供资源复用基础。相比于现有技术中例如权重固定、输出固定以及行固定等仅针对于标准卷积网络算子的细粒度数据的重用数据流重用方案,其泛用性更强,取得的效果更优。
下面结合图3至图8(其中虚线表示不需要进行复用的资源),以重要的神经网络层为例,对数据流管理和资源共享的方法进行说明,具体如下:
参照图3所示,当所述目标神经网络层为卷积层,所述处理单元包括分组配置在多个线程中的乘积累加运算单元和修正线性单元,其中每个线程在输出特征图的多个通道上使用相同的行和列来处理数据;数据流的输入或输出为线程级并行的串行传输,片上系统的静态存储器配置为用于对线程上输入特征图的激活函数进行缓冲,权重和激活函数在多个线程之间进行共享,激活函数从单个缓冲区进行串行流式传输,以实现在处理单元之间的共享,各个线程的串行输出经过输出缓冲后通过串行解串器SERDES和DRAM控制器进行并行输出。
如图4所示,当所述目标神经网络层为池化层,所述处理单元配置为比较器,以实现最大和最小运算符;数据流的输入或输出为并行传输,由于池化层直接在矢量上操作,因此从DRAM获取的激活函数无需缓冲直接提供给处理单元阵列,从而大大节省了动态功耗,激活函数通过修改DRAM访问地址来比较通过时间。
参照图5所示,当所述目标神经网络层为全连接层,其输出和处理单元的配置类似于卷积层,所述处理单元包括分组配置在多个线程中的乘积累加运算单元和修正线性单元;数据流的输入或输出为线程级并行的串行传输,对于这种权重占优的内核网络,片上系统的静态存储器配置为权重缓冲区,激活函数通过多个线程进行串行流式传输。
如图6所示,当所述目标神经网络层为残差层,其类似于池化层,内核直接工作在参数上,所述处理单元配置为加法器,;数据流的输入或输出为并行传输,由于添加了两个向量,片上系统的输入和输出移位寄存器用于存储操作数,输出结果被写入输出移位寄存器并并行写入DRAM,指针缓冲区被实例化以寻址DRAM中的两个操作数。
参照图7所示,当所述目标神经网络层为长短期记忆层,该网络层将处理单元四分复用,所述处理单元分为四组,各组处理单元用于实例化sigmoid函数和tanh函数,加法向量运算和tanh函数运算会在之后进行,数据流的输入或输出为串行传输,对于每组门内的共享激活函数和不同组之间提供快速数据都采用了混合输入模式。状态单元缓存被例化用于保留中间状态信息。
参照图8所示,当所述目标神经网络层为强化学习层,其输入、输出以及处理单元的配置类似于全连接层,包括用于常规激活的DRAM在内的多种激活源,所述处理单元包括分组配置在多个线程中的乘积累加运算单元和修正线性单元,数据流的输入或输出为线程级并行的串行传输,片上系统的缓存用于状态激活和迭代操作。
除了上述示出的神经网络层以外,所述目标神经网络层还可以应用到其他新型神经网络层中,类似地,只要通过分析新型神经网络层的特性信息,根据特性信息获知可以复用的资源并进行对应的配置即可,对于未来进行新型混合神经网络结构的构建具有重大意义。
实施例2
参照图9所示,基于实施例1所述的数据流重构方法,本发明还提供了一种可重构数据流处理器,其特征在于,用于执行如上所述的数据流重构方法,所述可重构数据流处理器采用分层设计,包括:片上系统1、硬件线程2以及多组处理单元3,
其中,所述片上系统1用于控制各组处理单元3与对应的硬件线程配合,调整为匹配目标神经网络层的功能配置,进行目标神经网络层的构建。
进一步地,所述片上系统1包括执行控制器PCI-e、直接内存访问控制器DMA、执行线程以及缓冲区。所述执行控制器根据网络指令协调处理单元3和缓冲区,用于从外部的片下存储器4提取目标神经网络层的网络指令,将所述网络指令配置到静态存储器中,对所述网络指令逐条进行解码分析以驱动执行线程,由此,所述执行控制器起到了集中控制的作用,有利于减少逻辑开销并提高性能。
所述直接内存访问控制器用于控制片上系统1与片下DRAM存储器4之间的读写,实现片上系统1与片下DRAM存储4之间的多种读写模式,它能流畅地传输网络配置、权重、激活以及结果。DDR突发模式被大量用于快速供给数据并降低DRAM访问功率。由于存储器带宽会限制计算吞吐量。因此,根据算法属性配置DMA,控制存储器带宽匹配对应的数据量,例如,用于PW和DW卷积的数据束的元素大小等于在特定DRAM协议下每次传输的字节数。因此,可以实现无需进一步的数据缓冲就可以进行连续的突发读取和写入。
所述执行线程用于在所述执行控制器的控制下运行以实现目标神经网络层的功能。
所述缓冲区包括多个所述静态存储器构成的静态存储器池,其中每个SRAM的大小为8KB,不同的算法内核配置不同缓冲方案。在执行控制器的协助下,SRAM可以被即时实例化程各种缓冲功能,这些功能由算法内核确定。
进一步地,所述硬件线程为了便于数据流和权重的资源共享,其包括核心状态机和移位寄存器,所述核心状态机用于控制同一线程上的处理单元的数据输入输出、激活函数配给以及权重配给,所述移位寄存器用于构建激活函数的输入和输出,以实现数据共享和由于单扇出和减少负载电容而减少的功率开销,移位寄存器可以动态配置为级联或并联形式。由于某些目标神经网络层涉及矢量的计算,因此,与输入数据流的单一方向相反的是,输出数据流是双向的,由此便于在例如残差层内核中使用矢量进行计算。多个处理单元通过线程级的核心状态机FSM进行协调,以流水线方式处理激活和权重。权重从片上系统1中的静态存储器池中流入,其中各个处理单元可以接收不同的权重流。
进一步地,为了有效地计算依赖于内核的函数,处理单元3经过紧凑设计来实现所需的运算符。通过数据输入端口和一个权重输入端口这种方式既便于矩阵计算,又便于矢量计算。Sigmoid和Tangent模块是基于中的线性逼近技术设计的。控制输入从线程级FSM接收操作码,配置多路复用器以实现与内核相关的运算符。
以下通过实验验证本发明提供的可重构数据流处理器的可行性,其架构是采用108KB片上SRAM和16个PE组成一个线程,本实验均采用Verilog HDL语言实现,采用Modelsim仿真工具对设计方案的可行性和运行时间进行仿真验证。并且在MATLAB的NVIDIAGTX GPU使用神经网络工具库进行网络性能分析。如下演示了三种网络结构来分析所提出的该体系结构的性能。
MobileNet具有标准PW和DW卷积,池化和完全连接的混合内核网络,MobileNet采用迭代紧凑的卷积内核,占MAC数量计算的97.91%。表2显示了使用具有256个PE和DRAM支持的FPGA原型在多线程和单线程体系结构之间进行基准测试的MobileNet各个层的拟议设计的执行延迟。
表2.基于MobileNet架构的性能分析
深度强化学习:DQN的典型用法是迷宫行走,其中智能处理单元通过在十字路口选择正确的方向并避开障碍物来学习走向目的地。如图10所示,在2层,5层和10层网络上测试了强化学习动作空间的1、2、4和6个节点数据,而状态空间则在128和256个节点之间选择。对于所有经过测试的动作空间,所有三个网络结构的片上Q迭代时间均小于2ms。这种迭代时间随动作空间的尺寸以及网络的大小而略有增加。
序列分类:测试示例使用从佩戴在身上的智能手机获得的传感器数据,使用LSTM网络对数据进行训练,以在给定时间序列的情况下识别佩戴者的活动,该时间序列表示在三个不同方向上的加速度计读数。参照表3不考虑磁盘存储和DRAM之间的数据传输下的仿真结果,可以看出,与CPU和GPU相比,所提出的LSTM网络设计均实现了改进的性能。但是,MATLAB的测量结果考虑了磁盘,主内存和操作系统之间数据传输的巨大延迟,而本发明的设计目前被设定为独立系统。但是,未来的LSTM网络倾向于部署在传感器上,并直接从DRAM中调取数据直接处理,这与本发明的设计原理很接近。与CPU和GPU功耗比拟议的设计高三个数量级,从而证明了ASIC混合神经网络的效率优良,证实了本发明的可行性。
表3.三种处理架构中LSTM网络的性能基准分析
综上所述,本发明提供的数据流重构方法及可重构数据流处理器,通过调整数据流的模式、处理单元和片上存储的功能模式,系统化复用硬件进行动态配置,实现针对混合神经网络取得提高硬件利用率、提高运算速度以及降低功耗等效果,能够为后续研究构造其他新型的神经网络层及基于这些新型神经网络层的混合神经网络的实现提供资源复用基础。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (4)
1.一种数据流重构方法,其特征在于,包括:
获取目标神经网络层的特性信息;
根据目标神经网络层的特性信息,确定对应目标神经网络层的数据流模式、处理单元的功能配置以及片上系统的功能配置;
将可复用的处理单元和片上系统进行对应所述目标神经网络层的处理单元和片上系统的功能配置,并根据目标神经网络层的数据流模式进行对应所述目标神经网络层的网络配置,构建所述目标神经网络层;
采用构建的目标神经网络层获得输出结果;
当所述目标神经网络层为残差层,所述处理单元配置为加法器;数据流的输入或输出为并行传输,片上系统的输入和输出移位寄存器用于存储操作数;
当所述目标神经网络层为长短期记忆层,所述处理单元分为四组,各组处理单元用于实例化sigmoid函数和tanh函数,数据流的输入或输出为串行传输。
2.一种可重构数据流处理器,其特征在于,用于执行如权利要求1所述的数据流重构方法,所述可重构数据流处理器包括:片上系统、硬件线程以及多组处理单元,
其中,所述片上系统用于控制各组处理单元与对应的硬件线程配合,调整为匹配目标神经网络层的功能配置,进行目标神经网络层的构建。
3.根据权利要求2所述的可重构数据流处理器,其特征在于,所述片上系统包括执行控制器、直接内存访问控制器、执行线程以及缓冲区,
所述执行控制器用于从外部的片下存储器提取目标神经网络层的网络指令,将所述网络指令配置到静态存储器中,对所述网络指令逐条进行解码分析以驱动执行线程;
所述直接内存访问控制器用于控制片上系统与片下存储器之间的读写;
所述执行线程用于在所述执行控制器的控制下运行以实现目标神经网络层的功能;
所述缓冲区包括多个所述静态存储器构成的静态存储器池。
4.根据权利要求2或3所述的可重构数据流处理器,其特征在于,所述硬件线程包括核心状态机和移位寄存器,所述核心状态机用于控制同一线程上的处理单元的数据输入输出、激活函数配给以及权重配给,所述移位寄存器用于构建激活函数的输入和输出。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911087000.9A CN111105023B (zh) | 2019-11-08 | 2019-11-08 | 数据流重构方法及可重构数据流处理器 |
PCT/CN2020/127250 WO2021089009A1 (zh) | 2019-11-08 | 2020-11-06 | 数据流重构方法及可重构数据流处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911087000.9A CN111105023B (zh) | 2019-11-08 | 2019-11-08 | 数据流重构方法及可重构数据流处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111105023A CN111105023A (zh) | 2020-05-05 |
CN111105023B true CN111105023B (zh) | 2023-03-31 |
Family
ID=70420571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911087000.9A Active CN111105023B (zh) | 2019-11-08 | 2019-11-08 | 数据流重构方法及可重构数据流处理器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111105023B (zh) |
WO (1) | WO2021089009A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111105023B (zh) * | 2019-11-08 | 2023-03-31 | 深圳市中科元物芯科技有限公司 | 数据流重构方法及可重构数据流处理器 |
CN111783971B (zh) * | 2020-07-02 | 2024-04-09 | 上海赛昉科技有限公司 | 一种用于深度神经网络的可高度灵活配置的数据后处理器 |
CN112560173B (zh) * | 2020-12-08 | 2021-08-17 | 北京京航计算通讯研究所 | 一种基于深度学习的车辆耐候性温度预测方法及装置 |
CN112540950B (zh) * | 2020-12-18 | 2023-03-28 | 清华大学 | 基于配置信息共享存储的可重构处理器及其共享存储方法 |
CN113240084B (zh) * | 2021-05-11 | 2024-02-02 | 北京搜狗科技发展有限公司 | 一种数据处理方法、装置、电子设备及可读介质 |
US12124879B2 (en) | 2022-03-29 | 2024-10-22 | Industry-Academic Cooperation Foundation, Yonsei University | Deep neural network accelerator for optimized data processing, and control method of the deep neural network accelerator |
CN116702852B (zh) * | 2023-08-02 | 2023-10-20 | 电子科技大学 | 基于多阶段事件驱动的动态重构神经网络加速电路及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409510A (zh) * | 2018-09-14 | 2019-03-01 | 中国科学院深圳先进技术研究院 | 神经元电路、芯片、系统及其方法、存储介质 |
CN109472356A (zh) * | 2018-12-29 | 2019-03-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种可重构神经网络算法的加速装置及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390369B1 (en) * | 2011-09-21 | 2016-07-12 | Brain Corporation | Multithreaded apparatus and methods for implementing parallel networks |
CN203204615U (zh) * | 2013-03-15 | 2013-09-18 | 上海安路信息科技有限公司 | 可适应多种数据流计算模式的动态可重构系统 |
CN103218345A (zh) * | 2013-03-15 | 2013-07-24 | 上海安路信息科技有限公司 | 可适应多种数据流计算模式的动态可重构系统及运作方法 |
US12061990B2 (en) * | 2017-10-17 | 2024-08-13 | Xilinx, Inc. | Static block scheduling in massively parallel software defined hardware systems |
CN107783840B (zh) * | 2017-10-27 | 2020-08-21 | 瑞芯微电子股份有限公司 | 一种分布式多层深度学习资源分配方法和装置 |
US11636327B2 (en) * | 2017-12-29 | 2023-04-25 | Intel Corporation | Machine learning sparse computation mechanism for arbitrary neural networks, arithmetic compute microarchitecture, and sparsity for training mechanism |
CN111105023B (zh) * | 2019-11-08 | 2023-03-31 | 深圳市中科元物芯科技有限公司 | 数据流重构方法及可重构数据流处理器 |
-
2019
- 2019-11-08 CN CN201911087000.9A patent/CN111105023B/zh active Active
-
2020
- 2020-11-06 WO PCT/CN2020/127250 patent/WO2021089009A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109409510A (zh) * | 2018-09-14 | 2019-03-01 | 中国科学院深圳先进技术研究院 | 神经元电路、芯片、系统及其方法、存储介质 |
CN109472356A (zh) * | 2018-12-29 | 2019-03-15 | 南京宁麒智能计算芯片研究院有限公司 | 一种可重构神经网络算法的加速装置及方法 |
Non-Patent Citations (2)
Title |
---|
Accelerating Compact Convolutional Neural Networks with Multi-threaded Data Streaming;Weiguang Chen etc.;《2019 IEEE Computer Society Annual Symposium on VLSI(ISVLSI)》;20190919;第3-4节 * |
基于可重构阵列架构的强化学习计算引擎;梁明兰等;《集成技术》;20181130;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111105023A (zh) | 2020-05-05 |
WO2021089009A1 (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111105023B (zh) | 数据流重构方法及可重构数据流处理器 | |
CN106940815B (zh) | 一种可编程卷积神经网络协处理器ip核 | |
US20220050683A1 (en) | Apparatuses, methods, and systems for neural networks | |
CN110546611B (zh) | 通过跳过处理操作来减少神经网络处理器中的功耗 | |
US11669443B2 (en) | Data layout optimization on processing in memory architecture for executing neural network model | |
KR102637735B1 (ko) | 근사 곱셈기를 구비하는 뉴럴 네트워크 처리 장치 및 이를 포함하는 시스템온 칩 | |
US20190026626A1 (en) | Neural network accelerator and operation method thereof | |
Kim et al. | A 125 GOPS 583 mW network-on-chip based parallel processor with bio-inspired visual attention engine | |
Li et al. | Dynamic dataflow scheduling and computation mapping techniques for efficient depthwise separable convolution acceleration | |
CN108898216A (zh) | 应用于神经网络的激活处理装置 | |
KR20230084449A (ko) | 신경 프로세싱 유닛 | |
CN114265673A (zh) | 利用共享控制的计算阵列的空间分片 | |
Zhang et al. | η-lstm: Co-designing highly-efficient large lstm training via exploiting memory-saving and architectural design opportunities | |
Krishna et al. | Raman: A re-configurable and sparse tinyML accelerator for inference on edge | |
US11704562B1 (en) | Architecture for virtual instructions | |
CN112051981B (zh) | 一种数据流水线计算路径结构及单线程数据流水线系统 | |
Liu et al. | A cloud server oriented FPGA accelerator for LSTM recurrent neural network | |
US12205019B2 (en) | Data layout conscious processing in memory architecture for executing neural network model | |
Bai et al. | An OpenCL-based FPGA accelerator with the Winograd’s minimal filtering algorithm for convolution neuron networks | |
US12008463B2 (en) | Methods and apparatus for accessing external memory in a neural network processing system | |
US11922306B2 (en) | Tensor controller architecture | |
CN112732638B (zh) | 基于ctpn网络的异构加速系统及方法 | |
US11972349B1 (en) | Flexible compute array utilization in a tensor processor | |
CN111178492A (zh) | 计算装置及相关产品、执行人工神经网络模型的计算方法 | |
Qiu et al. | An FPGA‐Based Convolutional Neural Network Coprocessor |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220927 Address after: Room 201, Building A, No. 1, Qianwan 1st Road, Qianhai Shenzhen-Hong Kong Cooperation Zone, Shenzhen, Guangdong, 518000 (located in Shenzhen Qianhai Road Commercial Secretary Co., Ltd.) Applicant after: Shenzhen Zhongke Yuanwuxin Technology Co.,Ltd. Address before: 1068 No. 518055 Guangdong city of Shenzhen province Nanshan District Shenzhen University city academy Avenue Applicant before: SHENZHEN INSTITUTES OF ADVANCED TECHNOLOGY CHINESE ACADEMY OF SCIENCES |
|
GR01 | Patent grant | ||
GR01 | Patent grant |