CN110689122A - 一种存储系统和方法 - Google Patents
一种存储系统和方法 Download PDFInfo
- Publication number
- CN110689122A CN110689122A CN201910913749.8A CN201910913749A CN110689122A CN 110689122 A CN110689122 A CN 110689122A CN 201910913749 A CN201910913749 A CN 201910913749A CN 110689122 A CN110689122 A CN 110689122A
- Authority
- CN
- China
- Prior art keywords
- layer
- chip memory
- storage
- residual
- data output
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- 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
-
- 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种存储系统,应用于残差神经网络的推理计算,所述系统包括:存储访问模块、片上存储器和片外存储器,所述存储访问模块和所述片上存储器位于现场可编程门阵列FPGA上;所述存储访问模块用于分别获得残差神经网络中每个隐含层输出的特征图数据,并将获得的所述特征图数据相应发送给片上存储器或片外存储器;所述片上存储器,用于接收所述存储访问模块发送的普通卷积层输出的特征图数据,并进行存储;所述片外存储器,用于接收所述存储访问模块发送的残差层输出的特征图数据,并进行存储。通过本发明的方案,实现了将残差神经网络中隐含层输出的特征图数据相应存储到片外存储器或片上存储器。
Description
技术领域
本发明涉及神经网络领域,尤指一种存储系统和方法。
背景技术
卷积神经网络(Convolutional Neural Networks,CNN)是人工神经网络的一种,广泛应用于图像分类、目标识别、行为识别、语音识别、自然语言处理与文档分类等很多领域。
卷积神经网络CNN的结构一般由输入层、若干隐含层与输出层组成。输入层用于多维输入数据(如彩色图片),输出层用于输出识别结果,隐含层用于神经网络计算。神经网络计算步骤包括卷积、池化、Batch Norm、全连接计算与激励函数等。其中第一层隐含层的输入为通过输入层输入的多维输入数据,输出为特征图,其他隐含层的输入都为上一层输出的特征图,输出的为本隐含层的特征图。
残差神经网络(Residual Neural Network,ResNet)是一类较为通用且识别率高的卷积神经网络,被广泛用于图像分类,但其网络结构较早期的卷积神经网络网络有较大区别,多分支、残差层及加和操作是残差神经网络特有的网络结构。
现场可编程门阵列(Field Programmable Gate Array,FPGA),由于可重构、低功耗、可定制、高性能等特点,已经广泛应用于深度学习推理计算领域,特别适合应用于卷积神经网络CNN的推理计算。
传统的基于FPGA的CNN推理计算实现中普遍将作为计算中间结果的隐含层特征图数据存储于片上存储器,受限于相对较小的片上存储空间,仅能实现精简的CNN结构,而残差神经网络等复杂的CNN网络由于存在多分支结构须同时存储多张特征图,须要较大的存储空间,则受限于片上存储空间而难以实现。另外,如果仅由于片上存储空间的限制选择片上存储空间更大的FPGA,将降低设计的性价比。
针对现有技术中所存在的问题,亟需要提供一种基于FPGA的残差神经网络的存储系统,以解决FPGA片上存储器较小的存储空间对残差神经网络中隐含层输出的特征图数据量的限制。
发明内容
为了解决上述技术问题,本发明提供了一种存储系统和方法,存储系统应用于残差神经网络的推理计算,能够实现将残差神经网络的推理计算所得的特征图数据存储到片外存储器或片上存储器中。
为了达到本发明目的,本发明提供了一种存储系统,应用于残差神经网络的推理计算,所述系统包括:存储访问模块、片上存储器和片外存储器,所述存储访问模块和所述片上存储器位于现场可编程门阵列FPGA上;其中,所述存储访问模块,用于分别获得残差神经网络中每个隐含层输出的特征图数据,并将获得的所述特征图数据相应发送给片上存储器或片外存储器,其中,所述隐含层包括:普通卷积层和残差层;其中,所述普通卷积层输出的特征图数据发送给所述片上存储器;所述残差层输出的特征图数据发送给所述片外存储器;
所述片上存储器,用于接收所述存储访问模块发送的普通卷积层输出的特征图数据,并进行存储;
所述片外存储器,用于接收所述存储访问模块发送的残差层输出的特征图数据,并进行存储。
一种示例性的实施例中,所述存储访问模块,还用于计算所述普通卷积层特征图数据对应的第一存储地址,并将所述第一存储地址发送给所述片上存储器;
所述片上存储器,还用于接收所述存储访问模块所发送的所述第一存储地址;以及根据所接收的所述第一存储地址将所述普通卷积层输出的特征图数据存储在相应的存储地址中。
一种示例性的实施例中,所述残差层包括卷积残差层;
所述存储访问模块,还用于计算所述卷积残差层对应的第二存储地址,并将所述第二存储地址发送给所述片外存储器;
所述片外存储器,用于接收所述存储访问模块所发送的所述第二存储地址;以及根据所接收的所述第二存储地址将所述卷积残差层的特征图数据存储在相应的地址中。
一种示例性的实施例中,所述残差层还包括加和残差层;
所述存储访问模块,还用于计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;并条件性地发送给片外存储器或片上存储器;以及相应地计算所述加和计算结果数据的第三存储地址或第四存储地址,并将所述第三存储地址发送给所述片外存储器或将第四存储器地址发送给片上存储器;其中,所述卷积层是携带加和计算的卷积层;
所述片外存储器,还用于接收所述加和计算结果数据和所述第三存储地址;以及根据所接收的第三存储地址将所述加和计算结果数据存储在相应的地址中。
所述片上存储器,用于接收所述存储访问模块所发送的所述第四存储地址;以及根据所接收的所述第四存储地址将所述加和计算结果数据存储在相应的存储地址中。
一种示例性的实施例中,所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层的输出特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储;
当携带加和计算的卷积层的输出特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器。
为了解决上述问题,本发明还提供了一种存储方法,所述方法包括:
存储访问模块分别获得残差神经网络中每个隐含层输出的特征图数据;
将获得的所述特征图数据相应发送给片上存储器存储或片外存储器存储;其中,所述隐含层包括:普通卷积层和残差层;所述普通卷积层输出的特征图数据发送给所述片上存储器存储;所述残差层输出的特征图数据发送给所述片外存储器存储。
一种示例性的实施例中,方法还包括:
所述存储访问模块计算所述普通卷积层输出的特征图数据对应的第一存储地址、计算所述卷积残差层输出的特征图数据对应的第二存储地址;
将所述第一存储地址发送给所述片上存储器、将所述第二存储地址发送给所述片外存储器。
一种示例性的实施例中,所述将获得的所述特征图数据相应发送给片上存储器存储或片外存储器存储,包括:
当所述隐含层为普通卷积层时,将获得的所述普通卷积层输出的特征图数据发送给所述片上存储器,其中,所述片上存储器将所述普通卷积层输出的特征图数据存储在相应的所述第一存储地址中;
当所述隐含层为残差层时,将获得的所述卷积残差层输出的特征图数据发送给所述片外存储器,其中,所述残差层包括卷积残差层,所述片外存储器将所述卷积残差层存储在相应的第二存储地址中。
一种示例性的实施例中,方法还包括:
当所述隐含层为携带加和计算的卷积层时,存储访问模块计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;
并条件性地发送给片外存储器或片上存储器;
计算所述加和计算结果数据对应的第三存储地址或第四存储地址;
并将所述加和计算结果数据、所述第三存储地址发送给所述片外存储器存储或将所述加和计算结果数据、所述第四存储器地址发送给所述片上存储器存储;
其中,所述残差层还包括加和残差层。
一种示例性的实施例中,所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层输出的特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储器存储;
当携带加和计算的卷积层输出的特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器存储。
与现有技术相比,本发明提供一种存储系统,应用于残差神经网络的推理计算,所述系统包括:存储访问模块、片上存储器和片外存储器,所述存储访问模块和所述片上存储器位于现场可编程门阵列FPGA上;所述存储访问模块用于分别获得残差神经网络中每个隐含层输出的特征图数据,并将获得的所述特征图数据相应发送给片上存储器或片外存储器所述片上存储器,用于接收所述存储访问模块发送的普通卷积层输出的特征图数据,并进行存储;所述片外存储器,用于接收所述存储访问模块发送的残差层输出的特征图数据,并进行存储。通过本发明的方案,实现了将残差神经网络中隐含层输出的特征图数据相应存储到片外存储器或片上存储器,解决了FPGA片上存储器较小的存储空间对残差神经网络残差层的特征图数据量的限制。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例的存储系统示意图;
图2是现有技术中残差神经网络的典型网络结构示意图;
图3是本发明实施例中存储方法流程图;
图4是现有技术中残差神经网络的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是本发明实施例的一种存储系统示意图,根据该示意图,一种存储系统,应用于残差神经网络的推理计算,所述系统包括:存储访问模块、片上存储器和片外存储器,所述存储访问模块和所述片上存储器位于现场可编程门阵列FPGA上;其中,
所述存储访问模块101,用于分别获得残差神经网络中每个隐含层输出的特征图数据,并将获得的所述特征图数据相应发送给片上存储器或片外存储器,其中,所述隐含层包括:普通卷积层和残差层;其中,所述普通卷积层输出的特征图数据发送给所述片上存储器;所述残差层输出的特征图数据发送给所述片外存储器。
在本实施例中,现有技术中,基于现场可编程门阵列FPGA的神经网络CNN推理计算中一般是将隐含层输出的特征图数据存储于片上存储器,整体的计算受限于片上储存器的存储空间,因此,仅能实现精简的CNN结构,例如SqueezeNet等。
而残差神经网络是一种复杂的CNN网络,存在多分支结构因此需要同时存储多张特征图数据,需要较大的存储空间。该现有技术中残差神经网络架构以图2为例进行说明,该残差神经网络中包括:普通卷积层、卷积残差层、加和层、加和残差层和卷积层;也可以包含其他的隐含层在本网络架构中并未示出。其中,普通卷积层是含有卷积运算的隐含层如图中卷积层1和卷积层。在该残差神经网络架构中,残差层包括卷积残差层和加和残差层;卷积残差层作为独立隐含层实现,其计算过程类似于普通的卷积层(如图2中卷积层1)的计算过程;加和层计算并不作为独立隐含层或隐含层的独立计算环节存在,加和层计算是在上一个卷积层的计算之后,实现上一个卷积层成为携带加和层的卷积层(如图2中卷积层2和卷积层3)。加和残差层实际上是携带加和计算的卷积层计算后输出的特征图数据和残差层输出的特征图数据进行加和计算的结果数据;加和残差层即加和计算结果数据。
一种示例性的实施例中,所述现场可编程门阵列FPGA还包括转存模块或者巡回模块,片上存储器可以位于该转存模块或者巡回模块上;也可位于FPGA其他模块上。
对于该片上存储器在FPGA中的位置并不具体限定,可以是FPGA中任何一个可以包含片上存储器的模块。
所述存储访问模块分别获得残差神经网络中每个隐含层输出的特征图数据并将获得的所述特征图数据通过所述片上存储器所存在的其他模块发送给片上存储器或片外存储器。
一种示例性的实施例中,所述存储访问模块,还用于计算所述普通卷积层特征图数据对应的第一存储地址,并将所述第一存储地址通过其他模块发送给所述片上存储器。其中,存储访问模块计算所述普通卷积层特征图数据对应的第一存储地址可以根据存储区块和向量化的存储结构计算存储地址。对于存储访问模块计算存储地址的具体实现方式,对此并不进行具体限定,也可以采用其他可以实现的方式。
一种示例性的实施例中,所述存储访问模块,还用于计算所述卷积残差层对应的第二存储地址,并将所述第二存储地址发送给所述片外存储器。其中,存储访问模块计算所述卷积残差层对应的第二存储地址可以根据存储区块和向量化的存储结构计算存储地址。对于存储访问模块计算存储地址的具体实现方式,对此并不进行具体限定,也可以采用其他可以实现的方式。
一种示例性的实施例中,所述存储访问模块,还用于计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;并条件性地发送给片外存储器或通过其他模块发送给片上存储器;以及相应地计算所述加和计算结果数据的第三存储地址或第四存储地址,并将所述第三存储地址发送给所述片外存储器或将第四存储器地址通过其他模块发送给片上存储器;其中,所述卷积层是携带加和计算的卷积层。
所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层的输出特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储;
当携带加和计算的卷积层的输出特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器。
所述片上存储器102,用于接收所述存储访问模块发送的普通卷积层输出的特征图数据,并进行存储。
在本实施例中,以图2中现有的残差神经网络架构中,由于残差神经网络中残差层的数量较卷积层的数量更为稀疏,其中,该卷积层为普通卷积层(例如图2中的卷积层、卷积层1)将频繁访问的卷积层输出的特征图数据存储于容量较小、访问速度较快的片上存储器,将访问频率较低的残差层输出的特征图存储于容量较大、访问速度较慢的片外存储器,可以最大化地利用存储器访存速度,进而提高残差神经网络的流水化处理性能,提高数据处理吞吐率,最终提高残差神经网络的推理速度。
一种示例性的实施例中,所述现场可编程门阵列FPGA还包括转存模块或者巡回模块,片上存储器可以位于该转存模块或者巡回模块上;也可位于FPGA的其他模块上。
对于该片上存储器在FPGA中的位置并不具体限定,可以是FPGA中任何一个可以包含片上存储器的模块。
一种示例性的实施例中,所述片上存储器,还用于接收所述存储访问模块所发送的所述第一存储地址;以及根据所接收的所述第一存储地址将所述普通卷积层输出的特征图数据存储在相应的存储地址中。
一种示例性的实施例中,所述片上存储器,用于接收所述存储访问模块所发送的所述第四存储地址;以及根据所接收的所述第四存储地址将所述加和计算结果数据存储在相应的存储地址中。
所述片外存储器103,用于接收所述存储访问模块发送的残差层输出的特征图数据,并进行存储。
在本实施例中,以图2中现有的残差神经网络架构中,由于残差神经网络中残差层的数量较卷积层的数量更为稀疏,其中,该卷积层为普通卷积层(例如图2中的卷积层、卷积层1)将频繁访问的卷积层输出的特征图数据存储于容量较小、访问速度较快的片上存储器,将访问频率较低的残差层输出的特征图存储于容量较大、访问速度较慢的片外存储器,可以最大化地利用存储器访存速度,进而提高残差神经网络的流水化处理性能,提高数据处理吞吐率,最终提高残差神经网络的推理计算的速度。
片外存储器,可以是DDR SDRAM(Double Data Rate Synchronous DynamicRandom-Access Memory双倍速率同步动态随机存储器),该存储器具有相对充足的存储空间,但是读写访问速率相对较低,一般用于存储输入图片数据与卷积核数据。
一种示例性的实施例中,所述残差层包括卷积残差层;
所述片外存储器,用于接收所述存储访问模块所发送的所述第二存储地址;以及根据所接收的所述第二存储地址将所述卷积残差层的特征图数据存储在相应的地址中。
一种示例性的实施例中,所述片外存储器,所述片外存储器,还用于接收所述加和计算结果数据和所述第三存储地址;以及根据所接收的第三存储地址将所述加和计算结果数据存储在相应的地址中。
另外,本申请提供了一种存储方法的一个实施例,该方法实施例具体可以应用于上述基于FPGA的残差神经网络系统中。
为了解决上述问题,如图3所示,本发明还提供了一种存储方法;包括:
步骤301.存储访问模块分别获得残差神经网络中每个隐含层输出的特征图数据。
在本实施例中,该残差神经网络架构可以是现有技术中的残差神经网络结构,以图2为例进行说明。该残差神经网络中包括:普通卷积层、卷积残差层、加和层、加和残差层和卷积层;也可以包含其他的隐含层在本网络架构中并未示出。其中,普通卷积层是含有卷积运算的隐含层如图中卷积层1和卷积层。在该残差神经网络架构中,残差层包括卷积残差层和加和残差层;卷积残差层作为独立隐含层实现,其计算过程类似于普通的卷积层(如图2中卷积层1)的计算过程;加和层计算并不作为独立隐含层或隐含层的独立计算环节存在,加和层计算是在上一个卷积层的计算之后,实现上一个卷积层成为携带加和层的卷积层(如图2中卷积层2和卷积层3)。加和残差层实际上是携带加和计算的卷积层计算后输出的特征图数据和残差层输出的特征图数据进行加和计算的结果数据;加和残差层即加和计算结果数据。
其中,所述隐含层包括:普通卷积层和残差层。
一种示例性的实施例中,所述残差层包括卷积残差层和加和残差层。
现场可编程门阵列FPGA计算获得的隐含层输出的特征图数据包括:卷积层输出的特征图数据(即普通卷积层输出的特征图数据)、卷积残差层输出的特征图数据和加和残差层输出的特征图数据,其中,加和残差层实际上是携带加和计算的卷积层计算后输出的特征图数据和残差层输出的特征图数据进行加和计算的结果数据;加和残差层即加和计算结果数据。
一种示例性的实施例中,所述存储访问模块计算所述普通卷积层输出的特征图数据对应的第一存储地址、计算所述卷积残差层输出的特征图数据对应的第二存储地址;
将所述第一存储地址发送给所述片上存储器、将所述第二存储地址发送给所述片外存储器。
步骤302.将获得的所述特征图数据相应发送给片上存储器存储或片外存储器存储;其中,所述隐含层包括:普通卷积层和残差层;所述普通卷积层输出的特征图数据发送给所述片上存储器存储;所述残差层输出的特征图数据发送给所述片外存储器存储。
在本实施例中,以图4所示的残差神经网络推理FPGA实现架构为例,该图4所示的残差神经网络推理FPGA实现架构是一个典型的基于FPGA的残差神经网络推理计算的网络结构。其中,该图4所示的基于FPGA的残差神经网络推理计算的网络结构包括残差神经网络中的其他处理模块和存储访问模块。
其中,残差神经网络其他处理模块可以包括用于执行其他处理环节,但不限于输入图片读取环节、卷积核读取环节、时序控制环节、卷积预备环节、卷积环节、池化环节、Batch Norm环节等。该输入图片读取环节用于读取输入层输入的图片数据;卷积核读取环节用于预读取卷积核的数据;时序控制环节用于控制转存器模块的时序;卷积预备环节用于读写片上存储器获得输入图片数据与卷积核数据并计算当前计算环节计算单元模块所需数据的存储地址。
FPGA中的储存访问模块用于数据储存和读取。当所述存储访问模块接收所述残差神经网络其他处理环节发送的隐含层特征图数据时,分别将每个隐含层输出的特征图数据,相应的通过其他模块发送给片上存储器发送或片外存储器。
一种示例性的实施例中,所述将获得的所述特征图数据相应发送给片上存储器存储或片外存储器存储,包括:
当所述隐含层为普通卷积层时,将获得的所述普通卷积层输出的特征图数据发送给所述片上存储器,其中,所述片上存储器将所述普通卷积层输出的特征图数据存储在相应的所述第一存储地址中;
当所述隐含层为残差层时,将获得的所述卷积残差层输出的特征图数据发送给所述片外存储器,其中,所述残差层包括卷积残差层,所述片外存储器将所述卷积残差层存储在相应的第二存储地址中。
步骤303(未示出).当所述隐含层为携带加和计算的卷积层时,存储访问模块计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;并条件性地发送给片外存储器或片上存储器;
计算所述加和计算结果数据对应的第三存储地址或第四存储地址;
并将所述加和计算结果数据、所述第三存储地址发送给所述片外存储器存储或将所述加和计算结果数据、所述第四存储器地址发送给所述片上存储器存储;
其中,所述残差层还包括加和残差层。
一种示例性的实施例中,所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层输出的特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储器存储;
当携带加和计算的卷积层输出的特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器存储。
其中,片上存储器存储的特征图数据作为普通卷积层或残差卷积层的输入特征图用于卷积计算,片外存储器存储的特征图数据作为携带加和层的卷积层的输入用于加和计算;其中,是否加和计算结果发送给片上存储器或片外存储器取决于残差神经网络的具体结构;其中,发送给片外存储器的条件为,本携带加和计算的卷积层的输出特征图数据作为加和残差层特征图数据用于后续推理计算;其中,发送给片上存储器的条件为,携带加和计算的卷积层的输出特征图数据用于后续普通卷积层计算,是否加和计算结果发送给片上存储器或片外存储器取决于残差神经网络的具体结构;对于残差神经网络的推理计算的神经网络结构,对此并不进行限定,可以应用于任何一种残差神经网络结构。
一种存储方法的示例:
步骤1.存储访问模块分别获得残差神经网络中每个隐含层输出的特征图数据;其中,所述隐含层包括:普通卷积层和残差层;
步骤2.当该隐含层为普通卷积层时,所述存储访问模块计算所述普通卷积层输出的特征图数据对应的第一存储地址,并将所述第一存储地址发送给所述片上存储器,执行步骤5。
步骤3.当该隐含层为残差层时,将获得的所述卷积残差层输出的特征图数据发送给所述片外存储器,执行步骤6;其中,所述残差层包括卷积残差层。
步骤4.当所述隐含层为携带加和计算的卷积层时,存储访问模块计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;并条件性地发送给片外存储器或片上存储器;执行步骤7。
在本步骤中,所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层输出的特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储器存储;
当携带加和计算的卷积层输出的特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器存储。
步骤5.片上存储器通过其他模块接收存储访问模块所发送的第一存储地址;以及根据所接收的第一存储地址将普通卷积层输出的特征图数据存储在相应的存储地址中。
步骤6.片外存储器接收存储访问模块所发送的第二存储地址;以及根据所接收的第二存储地址将卷积残差层的特征图数据存储在相应的地址中。
步骤7.计算所述加和计算结果数据对应的第三存储地址或第四存储地址。
步骤8.并将所述加和计算结果数据、所述第三存储地址发送给所述片外存储器存储或将所述加和计算结果数据、所述第四存储器地址发送给所述片上存储器存储;
其中,所述残差层还包括加和残差层。
基于本实施例的一个具体示例,通过将获得残差神经网络中每个隐含层输出的特征图数据,相应发送给片上存储器或片外存储器进行存储。该残差神经网络中架构包括了片上存储器和片外存储器,基于考虑残差神经网络中残差层的数量较普通卷积层的数量更为稀疏,将频繁访问的普通卷积层特征图存储于容量较小、访问速度较快的片上存储器,将访问频率较低的残差层特征图存储于容量较大、访问速度较慢的片外存储器,因此,可以最大化地利用存储器访存速度,进而提高残差神经网络的流水化处理性能,提高数据处理吞吐率,最终提高残差神经网络的推理速度。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种存储系统,应用于残差神经网络的推理计算,其特征在于,所述系统包括:存储访问模块、片上存储器和片外存储器,所述存储访问模块和所述片上存储器位于现场可编程门阵列FPGA上;其中,
所述存储访问模块,用于分别获得残差神经网络中每个隐含层输出的特征图数据,并将获得的所述特征图数据相应发送给片上存储器或片外存储器,其中,所述隐含层包括:普通卷积层和残差层;其中,所述普通卷积层输出的特征图数据发送给所述片上存储器;所述残差层输出的特征图数据发送给所述片外存储器;
所述片上存储器,用于接收所述存储访问模块发送的普通卷积层输出的特征图数据,并进行存储;
所述片外存储器,用于接收所述存储访问模块发送的残差层输出的特征图数据,并进行存储。
2.根据权利要求1所述的存储系统,其特征在于,
所述存储访问模块,还用于计算所述普通卷积层特征图数据对应的第一存储地址,并将所述第一存储地址发送给所述片上存储器;
所述片上存储器,还用于接收所述存储访问模块所发送的所述第一存储地址;以及根据所接收的第一存储地址将所述普通卷积层输出的特征图数据存储在相应的存储地址中。
3.根据权利要求1所述的存储系统,其特征在于,
所述残差层包括卷积残差层;
所述存储访问模块,还用于计算所述卷积残差层对应的第二存储地址,并将所述第二存储地址发送给所述片外存储器;
所述片外存储器,用于接收所述存储访问模块所发送的所述第二存储地址;以及根据所接收的第二存储地址将所述卷积残差层的特征图数据存储在相应的存储地址中。
4.根据权利要求3所述的存储系统,其特征在于,
所述残差层还包括加和残差层;
所述存储访问模块,还用于计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;并条件性地发送给片外存储器或片上存储器;以及相应地计算所述加和计算结果数据的第三存储地址或第四存储地址,并将所述第三存储地址发送给所述片外存储器或将第四存储器地址发送给片上存储器;其中,所述卷积层是携带加和计算的卷积层;
所述片外存储器,还用于接收所述加和计算结果数据和所述第三存储地址;以及根据所接收的第三存储地址将所述加和计算结果数据存储在相应的地址中;
所述片上存储器,用于接收所述存储访问模块所发送的所述第四存储地址;以及根据所接收的所述第四存储地址将所述加和计算结果数据存储在相应的存储地址中。
5.根据权利要求4所述的存储系统,其特征在于,
所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层的输出特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储;
当携带加和计算的卷积层的输出特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器。
6.一种存储方法,其特征在于,所述方法包括:
存储访问模块分别获得残差神经网络中每个隐含层输出的特征图数据;
将获得的所述特征图数据相应发送给片上存储器存储或片外存储器存储;其中,所述隐含层包括:普通卷积层和残差层;所述普通卷积层输出的特征图数据发送给所述片上存储器存储;所述残差层输出的特征图数据发送给所述片外存储器存储。
7.根据权利要求6所述的存储方法,其特征在于,方法还包括:
所述存储访问模块计算所述普通卷积层输出的特征图数据对应的第一存储地址、计算所述卷积残差层输出的特征图数据对应的第二存储地址;
将所述第一存储地址发送给所述片上存储器、将所述第二存储地址发送给所述片外存储器。
8.根据权利要求7所述的存储方法,其特征在于,所述将获得的所述特征图数据相应发送给片上存储器存储或片外存储器存储,包括:
当所述隐含层为普通卷积层时,将获得的所述普通卷积层输出的特征图数据发送给所述片上存储器,其中,所述片上存储器将所述普通卷积层输出的特征图数据存储在相应的所述第一存储地址中;
当所述隐含层为残差层时,将获得的所述卷积残差层输出的特征图数据发送给所述片外存储器,其中,所述残差层包括卷积残差层,所述片外存储器将所述卷积残差层存储在相应的第二存储地址中。
9.根据权利要求6所述的存储方法,其特征在于,方法还包括:
当所述隐含层为携带加和计算的卷积层时,存储访问模块计算片外存储器的存储地址并获取所述存储地址对应的所述残差层输出的特征图数据和获取所述卷积层输出的特征图数据,将所述残差层输出的特征图数据和所述卷积层输出的特征图数据进行加和计算,得到加和计算结果数据;
并条件性地发送给片外存储器或片上存储器;
计算所述加和计算结果数据对应的第三存储地址或第四存储地址;
并将所述加和计算结果数据、所述第三存储地址发送给所述片外存储器存储或将所述加和计算结果数据、所述第四存储器地址发送给所述片上存储器存储;
其中,所述残差层还包括加和残差层。
10.根据权利要求9所述的存储方法,其特征在于,
所述条件性地发送给片外存储器或片上存储器,包括:
当携带加和计算的卷积层输出的特征图数据作为加和残差层特征图数据时,将所述加和计算结果数据发送给片外存储器存储;
当携带加和计算的卷积层输出的特征图数据作为普通卷积层的输入数据时,将所述加和计算结果数据发送给片上储存器存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910913749.8A CN110689122B (zh) | 2019-09-25 | 2019-09-25 | 一种存储系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910913749.8A CN110689122B (zh) | 2019-09-25 | 2019-09-25 | 一种存储系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110689122A true CN110689122A (zh) | 2020-01-14 |
CN110689122B CN110689122B (zh) | 2022-07-12 |
Family
ID=69110123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910913749.8A Active CN110689122B (zh) | 2019-09-25 | 2019-09-25 | 一种存储系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110689122B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116128046A (zh) * | 2023-04-14 | 2023-05-16 | 杭州国芯科技股份有限公司 | 嵌入式设备的多输入神经网络模型串行块的存储方法 |
CN118070865A (zh) * | 2024-04-25 | 2024-05-24 | 北京壁仞科技开发有限公司 | 人工智能模型的优化方法及装置、电子设备与存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
CN108256628A (zh) * | 2018-01-15 | 2018-07-06 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
CN109102065A (zh) * | 2018-06-28 | 2018-12-28 | 广东工业大学 | 一种基于PSoC的卷积神经网络加速器 |
-
2019
- 2019-09-25 CN CN201910913749.8A patent/CN110689122B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992940A (zh) * | 2017-12-12 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种卷积神经网络在fpga上的实现方法及装置 |
CN108256628A (zh) * | 2018-01-15 | 2018-07-06 | 合肥工业大学 | 基于多播片上网络的卷积神经网络硬件加速器及其工作方式 |
CN109102065A (zh) * | 2018-06-28 | 2018-12-28 | 广东工业大学 | 一种基于PSoC的卷积神经网络加速器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116128046A (zh) * | 2023-04-14 | 2023-05-16 | 杭州国芯科技股份有限公司 | 嵌入式设备的多输入神经网络模型串行块的存储方法 |
CN116128046B (zh) * | 2023-04-14 | 2023-07-18 | 杭州国芯科技股份有限公司 | 嵌入式设备的多输入神经网络模型串行块的存储方法 |
CN118070865A (zh) * | 2024-04-25 | 2024-05-24 | 北京壁仞科技开发有限公司 | 人工智能模型的优化方法及装置、电子设备与存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110689122B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110506260B (zh) | 用于神经网络环境中的增强数据处理的方法、系统和介质 | |
US11243895B2 (en) | Data pre-processing method and device, and related computer device and storage medium | |
US11232016B1 (en) | Debug for computation networks using error detection codes | |
CN110689122B (zh) | 一种存储系统和方法 | |
US20220101539A1 (en) | Sparse optical flow estimation | |
CN111709516A (zh) | 神经网络模型的压缩方法及压缩装置、存储介质、设备 | |
EP3767549A1 (en) | Delivery of compressed neural networks | |
WO2019177731A1 (en) | Cluster compression for compressing weights in neural networks | |
CN110489955B (zh) | 应用于电子设备的图像处理、装置、计算设备、介质 | |
CN114254731A (zh) | 用于神经网络操作的方法和设备 | |
CN109034176B (zh) | 辨识系统以及辨识方法 | |
CN112200310A (zh) | 智能处理器、数据处理方法及存储介质 | |
CN112906808A (zh) | 基于卷积神经网络的图像分类方法、系统、装置及介质 | |
CN112766397A (zh) | 一种分类网络及其实现方法和装置 | |
US20230273826A1 (en) | Neural network scheduling method and apparatus, computer device, and readable storage medium | |
US10909417B2 (en) | Proposal processing method and related products | |
US20210350584A1 (en) | Method and system for joint optimization of isp and vision tasks, medium and electronic device | |
US11741349B2 (en) | Performing matrix-vector multiply operations for neural networks on electronic devices | |
CN111176860A (zh) | 一种实现轨迹分析的方法、系统、计算机存储介质及终端 | |
CN111737193A (zh) | 数据存储方法、装置、设备和存储介质 | |
CN111815638A (zh) | 视频分割网络模型的训练方法、视频分割方法及相关设备 | |
CN111461310A (zh) | 处理神经网络模型的神经网络设备、神经网络系统和方法 | |
US20240104375A1 (en) | Method and system for lightweighting artificial neural network model, and non-transitory computer-readable recording medium | |
US20230168809A1 (en) | Intelligence processor device and method for reducing memory bandwidth | |
US20220019872A1 (en) | Processor, logic chip and method for binarized convolution neural network |
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 |