CN117494771A - 神经网络加速器、数据处理方法、电子设备及存储介质 - Google Patents
神经网络加速器、数据处理方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117494771A CN117494771A CN202210867431.2A CN202210867431A CN117494771A CN 117494771 A CN117494771 A CN 117494771A CN 202210867431 A CN202210867431 A CN 202210867431A CN 117494771 A CN117494771 A CN 117494771A
- Authority
- CN
- China
- Prior art keywords
- data
- convolution processing
- storage
- memory
- neural 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.)
- Pending
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 67
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 162
- 230000015654 memory Effects 0.000 claims abstract description 97
- 238000005070 sampling Methods 0.000 claims abstract description 25
- 239000000872 buffer Substances 0.000 claims description 85
- 230000005540 biological transmission Effects 0.000 claims description 34
- 238000000034 method Methods 0.000 claims description 20
- 238000010586 diagram Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例公开了一种神经网络加速器、数据处理方法、电子设备及存储介质,神经网络加速器包括:卷积处理阵列、地址生成器、数据传输器和数据存储器;数据传输器,与卷积处理阵列、地址生成器,以及数据存储器分别耦合;卷积处理阵列,用于对媒体数据进行卷积处理,生成特征图数据;地址生成器,用于针对特征图数据中待上采样的第一数据,生成多个存储地址,并将多个存储地址传输至数据传输器;多个存储地址对应于数据存储器的多个存储单元;数据传输器,用于向数据存储器中多个存储地址的相应各存储单元,分别传输第一数据进行存储,以实现针对第一数据的上采样处理。
Description
技术领域
本申请实施例涉及人工智能技术领域,尤其涉及一种神经网络加速器、数据处理方法、电子设备及存储介质。
背景技术
神经网络加速器,其核心部分是卷积处理功能,此外,还可以部署上采样处理功能,以支持对卷积处理结果实现上采样。
目前,神经网络加速器中不同的处理功能一般由独立的硬件模块实现且串行调用,例如,如果在卷积处理后面要执行上采样处理,数据的流向一般是加载数据—卷积处理—保存数据—加载数据—上采样处理—保存数据,即在卷积处理和上采样处理期间,需要频繁的进行数据的访问,这样,将导致数据处理的功耗较大,效率较低。
发明内容
本申请实施例提供一种神经网络加速器、数据处理方法、电子设备及存储介质,降低了数据处理产生的功耗,提高了数据处理效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供了一种神经网络加速器,包括:
卷积处理阵列、地址生成器、数据传输器和数据存储器;所述数据传输器,与所述卷积处理阵列、所述地址生成器,以及所述数据存储器分别耦合;
所述卷积处理阵列,用于对媒体数据进行卷积处理,生成特征图数据;
所述地址生成器,用于针对所述特征图数据中待上采样的第一数据,生成多个存储地址,并将所述多个存储地址传输至所述数据传输器;所述多个存储地址对应于所述数据存储器的多个存储单元;
所述数据传输器,用于向所述数据存储器中所述多个存储地址的相应各存储单元,分别传输所述第一数据进行存储,以实现针对所述第一数据的上采样处理。
在上述神经网络加速器中,还包括:控制器;
所述控制器与所述地址生成器耦合,所述控制器,用于生成地址生成指令,并将所述地址生成指令传输至所述地址生成器;所述地址生成指令携带所述第一数据对应的上采样参数;
所述地址生成器,用于按照所述地址生成指令,生成所述多个存储地址。
在上述神经网络加速器中,还包括:地址缓冲器;
所述地址缓冲器耦合于所述控制器与所述地址生成器之间;
所述控制器,用于将所述地址生成指令传输至所述地址缓冲器缓存;
所述地址生成器,用于从所述地址缓冲器中读取所述地址生成指令。
在上述神经网络加速器中,还包括:数据缓冲器;
所述数据缓冲器耦合于所述卷积处理阵列与所述数据传输器之间;
所述卷积处理阵列,还用于将所述特征图数据传输至所述数据缓冲器缓存;
所述数据传输器,还用于从所述数据缓冲器中读取所述第一数据。
在上述神经网络加速器中,所述数据缓冲器包括多个数据缓冲区,每个数据缓冲区与所述卷积处理阵列中的一个卷积处理单元对应耦合;
所述卷积处理阵列中的每个卷积处理单元,用于对所述媒体数据中一部分数据进行卷积处理,并将生成的卷积处理数据传输至相连的数据缓冲区缓存;
其中,所述媒体数据对应的所述特征图数据,由所述多个数据缓存区中缓存的不同卷积处理单元生成的卷积处理数据组成。
在上述神经网络加速器中,所述数据传输器包括多个数据传输单元,所述多个数据传输单元中每个数据传输单元,与所述多个数据缓冲区中一个数据缓冲区对应耦合;
所述第一数据缓存于所述多个数据缓冲区中的第一缓冲区,所述多个数据传输单元中,第一数据传输单元与所述第一缓冲区对应耦合;
所述地址生成器,用于将所述多个存储地址传输至所述第一数据传输单元;
所述第一数据传输单元,用于从所述第一缓冲区中读取所述第一数据,并向所述数据存储器中所述多个存储地址的相应各存储单元,分别传输所述第一数据进行存储。
在上述神经网络加速器中,还包括:多路复用器;
所述数据存储器包括多个存储单元,所述媒体数据存储于所述多个存储单元中,每个存储单元中存储所述媒体数据中一部分数据;
所述多路复用器,与所述卷积处理阵列中的每个卷积处理单元、所述多个存储单元中每个存储单元,以及所述控制器分别耦合;
所述控制器,还用于生成通路选择指令,并将所述通路选择指令传输至所述多路复用器;
所述多路复用器,用于按照所述通路选择指令,控制所述多个存储单元中每个存储单元与所述卷积处理阵列中一个卷积处理单元连通;
所述卷积处理阵列中每个卷积处理单元,用于读取相连的存储单元中存储的所述媒体数据中一部分数据并进行卷积处理。
本申请实施例提供了一种数据处理方法,应用于神经网络加速器,所述神经网络加速器包括卷积处理阵列、地址生成器、数据传输器和数据存储器;所述数据传输器,与所述卷积处理阵列、所述地址生成器,以及所述数据存储器分别耦合,所述方法包括:
利用所述卷积处理阵列对媒体数据进行卷积处理,生成特征图数据;
利用所述地址生成器针对所述特征图数据中待上采样的第一数据,生成多个存储地址,并将所述多个存储地址传输至所述数据传输器;所述多个存储地址对应于所述数据存储器的多个存储单元;
利用所述数据传输器,向所述数据存储器中所述多个存储地址的相应各存储单元分别传输所述第一数据进行存储,以实现针对所述第一数据的上采样处理。
本申请实施例提供了一种电子设备,包括:
上述神经网络加速器;
存储器;以及
所述通信总线,所述神经网络加速器通过所述通信总线耦合至所述存储器。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。
本申请实施例提供了一种神经网络加速器、数据处理方法、电子设备及存储介质,神经网络加速器包括:卷积处理阵列、地址生成器、数据传输器和数据存储器;数据传输器,与卷积处理阵列、地址生成器,以及数据存储器分别耦合;卷积处理阵列,用于对媒体数据进行卷积处理,生成特征图数据;地址生成器,用于针对特征图数据中待上采样的第一数据,生成多个存储地址,并将多个存储地址传输至数据传输器;多个存储地址对应于数据存储器的多个存储单元;数据传输器,用于向数据存储器中多个存储地址的相应个存储单元,分别传输第一数据进行存储,以实现针对第一数据的上采样处理。本申请实施例提供的神经网络加速器,采用将卷积处理和上采样处理融合的结构,可以避有效的避免额外的数据保存和数据加载操作,从而降低了数据处理产生的功耗,提高了数据处理效率。
附图说明
图1为本申请实施例提供的一种神经网络加速器的结构示意图一;
图2为本申请实施例提供的一种神经网络加速器的结构示意图二;
图3为本申请实施例提供的一种示例性的数据上采样的流程示意图;
图4为本申请实施例提供的一种数据处理方法的流程示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。再者,若将一组件描述为与另一组件“连接”或“耦接”,则两者可直接连接或耦接,或两者间可能出现其他中间(intervening)组件。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
本申请实施例提供了一种神经网络加速器。图1为本申请实施例提供的一种神经网络加速器的结构示意图一。如图1所示,在本申请的实施例中,神经网络加速器1包括:
卷积处理阵列10、地址生成器11、数据传输器12和数据存储器13;数据传输器12,与卷积处理阵列10、地址生成器11,以及数据存储器13分别耦合;
卷积处理阵列10,用于对媒体数据进行卷积处理,生成特征图数据;
地址生成器11,用于针对特征图数据中待上采样的第一数据,生成多个存储地址,并将多个存储地址传输至数据传输器12;多个存储地址对应于数据存储器13的多个存储单元;
数据传输器12,用于向数据存储器13中多个存储地址的相应各存储单元,分别传输第一数据进行存储,以实现针对第一数据的上采样处理。
需要说明的是,在本申请的实施例中,媒体数据可以包括任意需要进行卷积处理的媒体数据,包括但不限于图像数据、音频数据、视频数据,等等。卷积处理阵列10可以获取到媒体数据,从而对媒体数据进行卷积处理,生成特征图数据。具体的媒体数据可以根据实际需求和应用场景选取,本申请实施例不作限定。
需要说明的是,在本申请的实施例中,媒体数据卷积处理得到的特征图数据中包含待上采样的数据,即第一数据,第一数据可以是特征图数据中任意需要执行上采样处理的一个数据,具体的第一数据可以根据实际需求选择,本申请实施例不作限定。
需要说明的是,在本申请的实施例中,数据存储器13的存储地址可以由两个维度表示,即行和列,相应的,地址生成器11可以由两级计数器组成,一级计数器用于统计行数,另一级计数器用于统计列数。
可以理解的是,上采样处理,其本质在于针对需要上采样的对象扩展副本,使其数量增多,在本申请的实施例中,神经网络加速器1包括地址生成器11,以及由多个卷积处理单元(PE)构成的卷积处理阵列10。针对于卷积处理阵列10生成的特征图数据中需要上采样的第一数据,地址生成器11可以对其生成多个存储地址,从而将多个存储地址传输至数据传输器12,这样,在卷积处理阵列10生成特征图数据之后,数据传输器12可以直接向数据存储器13中多个存储地址的相应各存储单元,分别传输将特征图数据中的第一数据,这样,第一数据被重复存储到了多个存储地址相应的各存储单元,也就是第一数据被复制了多次,从而实现了针对第一数据的上采样处理,而不需要设计用于上采样的特定计算单元。
可以理解的是,在本申请的实施例中,地址生成器11和数据传输器12的结合即可支持上采样操作,从而能够极大的降低硬件设计的复杂度。
图2为本申请实施例提供的一种神经网络加速器的结构示意图二。如图2所示,在本申请的实施例中,神经网络加速器1包括:控制器14;
控制器14与地址生成器11耦合,控制器14,用于生成地址生成指令,并将地址生成指令传输至地址生成器11;地址生成指令携带第一数据对应的上采样参数;
地址生成器11,用于按照地址生成指令,生成多个存储地址。
需要说明的是,在本申请的实施例中,控制器14可以生成地址生成指令,该地址生成指令用于指示地址生成器11针对第一数据生成多个存储地址的,其中,地址生成指令可以携带针对第一数据对应的上采样参数,例如,可以携带多个存储地址的具体数量。
在本申请的实施例中,如图2所示,神经网络加速器1还包括:地址缓冲器15;
地址缓冲器15耦合于控制器14与地址生成器11之间;
控制器14,用于将地址生成指令传输至地址缓冲器15缓存;
地址生成器11,用于从地址缓冲器15中读取地址生成指令。
需要说明的是,在本申请的实施例中,如图2所示,在控制器14与地址生成器11之间,可以设置有地址缓冲器15,用于缓存地址生成指令。
需要说明的是,在本申请的实施例中,如图2所示,卷积处理阵列10由P个卷积处理单元构成,卷积处理单元能够并行进行卷积处理,可以共享一个控制器14实现地址生成控制。
在本申请的实施例中,如图2所示,神经网络加速器1还包括:数据缓冲器16;
数据缓冲器16耦合于卷积处理阵列10与数据传输器12之间;
卷积处理阵列10,还用于将特征图数据传输至数据缓冲器16缓存;
数据传输器12,还用于从数据缓冲器16中读取第一数据。
需要说明的是,在本申请的实施例中,如图2所示,在卷积处理阵列10与数据传输器12之间,可以设置有数据缓冲器16,用于缓存特征图数据,相应的,数据传输器12需要从数据缓冲器16中读取第一数据再进行传输。
需要说明的是,在本申请的实施例中,首先,并非所有的卷积处理得到的特征图数据均必须执行上采样处理,并且上采样参数因应用而异。为适应上采样层的各种参数配置,因此,针对卷积处理的输出数据,以及地址生成指令添加了相应的缓冲器。
图3为本申请实施例提供的一种示例性的数据上采样的流程示意图。如图3所示,卷积处理阵列10可以以流水线的形式加载媒体数据,从而对媒体数据进行卷积处理,控制器14可以生成地址生成指令并传输至地址缓冲器15中,在卷积处理阵列10输出特征图数据缓存至数据缓冲器16中的情况下,地址生成器11可以同步从地址缓冲器15中获得地址生成指令,并针对第一数据v生成多个存储地址,这样,可以在多个时间周期依次将第一数据v分别可以存储至多个存储地址相应的各存储单元中,其中,每个时间周期下实现第一数据v存储至一个存储地址相应的存储单元中,从而实现了第一数据v的上采样。如图3所示,第一数据v实际上在数据存储器13中存储于四个存储单元中,相当于针对第一数据v实现了两倍的上采样处理。
在本申请的实施例中,数据缓冲器16包括多个数据缓冲区,每个数据缓冲区与卷积处理阵列10中的一个卷积处理单元对应耦合;
卷积处理阵列10中的每个卷积处理单元,用于对媒体数据中一部分数据进行卷积处理,并将生成的卷积处理数据传输至相连的数据缓冲区缓存;
其中,媒体数据对应的特征图数据,由多个数据缓存区中缓存的不同卷积处理单元生成的卷积处理数据组成。
需要说明的是,在本申请的实施例中,如图2所示,卷积处理阵列10具体由P个卷积处理单元构成,P为大于1的自然数,针对于此,可以设计数据缓冲器16包括P个数据缓冲区,每个数据缓冲区可以对应耦合一个卷积处理单元,这样,每个数据缓冲区可以缓存相连的卷积处理单元生成的卷积处理数据,而这P个数据缓冲区中缓存的卷积处理数据,即构成了特征图数据。
在本申请的实施例中,数据传输器12包括多个数据传输单元,多个数据传输单元中每个数据传输单元,与多个数据缓冲区中一个数据缓冲区对应耦合;
第一数据缓存于多个数据缓冲区中的第一缓冲区,多个数据传输单元中,第一数据传输单元与第一缓冲区对应耦合;
地址生成器11,用于将多个存储地址传输至第一数据传输单元;
第一数据传输单元,用于从第一缓冲区中读取第一数据,并向数据存储器13中多个存储地址的每个存储地址的相应各存储单元,分别传输第一数据进行存储。
需要说明的是,在本申请的实施例中,如图2所示,数据缓冲器16具体包括P个数据缓冲区,针对于此,可以设计数据传输器12包括P个数据传输单元,每个数据传输单元可以对应耦合一个数据缓冲区,这样,每个数据传输单元可以读取耦合的数据缓冲区中缓存的数据并传输。
需要说明的是,在本申请的实施例中,多个数据缓冲区中,缓存第一数据的即为第一缓冲区,其耦合的数据传输单元即为第一数据传输单元,因此,地址生成器11实际上是将生成的多个存储地址传输至第一数据传输单元,再由第一数据传输单元向每个存储地址对应的存储单元分别传输第一数据进行存储。
在本申请的实施例中,如图2所示,神经网络加速器1还包括:多路复用器17;
数据存储器13包括多个存储单元,媒体数据存储于多个存储单元中,每个存储单元中存储媒体数据中一部分数据;
所述多路复用器,与所述卷积处理阵列中的每个卷积处理单元、所述多个存储单元中每个存储单元,以及所述控制器分别耦合;
控制器14,还用于生成通路选择指令,并将通路选择指令传输至多路复用器17;
多路复用器17,用于按照通路选择指令,控制多个存储单元中每个存储单元与卷积处理阵列10中一个卷积处理单元连通;
卷积处理阵列10中每个卷积处理单元,用于读取相连的存储单元中存储的媒体数据中一部分数据并进行卷积处理。
需要说明的是,在本申请的实施例中,如图2所示,神经网络加速器1还包括多路复用器17,数据存储器13具体包括P个存储单元,媒体数据可以被划分为P部分媒体数据,不同部分媒体数据分别存储于不同的存储单元中,多路复用器17可以按照通路选择指令,将不同的存储单元与不同的卷积处理单元之间连通,这样,每个卷积处理单元就可以从其连通的存储单元中读取媒体数据中的一部分数据,以进行卷积处理,这样,也即实现了卷积处理阵列10读取完整的媒体数据,以及对媒体数据的卷积处理。
需要说明的是,在本申请的实施例中,特征图数据中可以包括不需要执行上采样处理的第二数据,地址生成器11,还可以用于针对第二数据生成单一存储地址,并将该单一存储地址传输至数据传输器12,再由数据传输器12将第二数据传输至数据存储器13中该单一存储地址相应的存储单元进行存储。
需要说明的是,在本申请的实施例中,上述数据缓冲器16中包括的数据缓冲区,与数据传输器12中包括的数据传输单元是一一对应的,且与卷积处理阵列10中的卷积处理单元是一一对应的,其仅为一种具体的实现方式,当然,数据缓冲器16包括的数据缓冲区的数量,以及数据传输器12中包括的数据传输单元的数量,可以根据实际需求和应用场景设定和部署,本申请实施例不作限定。
可以理解的是,在本申请的实施例中,神经网络加速器1中将上采样处理和卷积处理融合,可以有效地避免额外的数据保存-加载时间。而且,由于卷积处理阵列10输出有效的数据通常需要数千个时钟周期,而上采样操作仅需要几个周期,因此上采样和卷积的融合设计不会给卷积处理阵列10带来任何延迟。
需要说明的是,本申请提供的神经网络加速器1与常规的神经网络加速器相比,融合上采样处理会增加存储的特征图数据的总量,因此开销主要存在于数据搬运,总体的开销可以忽略不计。
需要说明的是,在本申请的实施例中,可以利用上述神经网络加速器1,实现目标检测算法,从而进行实际实现评估,得到以下两个表。
表1
表2
需要说明的是,如表1所示,经过融合上采样处理的设计,硬件资源代价相比于常规神经网络加速器在2%以下。此外,表2示出了不同上采样率下的前向时间,根据表2可知,针对不同的上采样率,融合上采样的前向时间代价在0.1%以下。
本申请实施例提供了一种神经网络加速器,包括:卷积处理阵列、地址生成器、数据传输器和数据存储器;数据传输器,与卷积处理阵列、地址生成器,以及数据存储器分别耦合;卷积处理阵列,用于对媒体数据进行卷积处理,生成特征图数据;地址生成器,用于针对特征图数据中待上采样的第一数据,生成多个存储地址,并将多个存储地址传输至数据传输器;多个存储地址对应于数据存储器的多个存储单元;数据传输器,用于向数据存储器中多个存储地址的相应各存储单元,分别传输第一数据进行存储,以实现针对第一数据的上采样处理。本申请实施例提供的神经网络加速器,采用将卷积处理和上采样处理融合的结构,可以避有效的避免额外的数据保存和数据加载操作,从而降低了数据处理产生的功耗,提高了数据处理效率。
本申请实施例还提供了一种数据处理方法,应用于上述神经网络加速器1。图4为本申请实施例提供的一种数据处理方法的流程示意图。如图4所示,在本申请的实施例中,数据处理方法包括以下步骤:
S401、利用卷积处理阵列对媒体数据进行卷积处理,生成特征图数据。
在本申请的实施例中,参见图1和图2,神经网络加速器1可以利用包括的卷积处理阵列10,对媒体数据进行卷积处理,生成特征图数据。
需要说明的是,在本申请的实施例中,媒体数据可以是任意需要进行卷积处理的媒体数据。
需要说明的是,在本申请的实施例中,神经网络加速器1中的卷积处理阵列10,由一定数量的卷积处理单元构成,神经网络加速器1可以利用卷积处理阵列10中的每个卷积处理单元,对媒体数据中一部分数据进行卷积处理,最终这些卷积处理单元卷积处理所生成的卷积处理数据,即可组成特征图数据。此外,卷积处理阵列10中包括的卷积处理单元,可以并行执行卷积处理。
S402、利用地址生成器针对特征图数据中待上采样的第一数据,生成多个存储地址,并将多个存储地址传输至数据传输器;多个存储地址对应于数据存储器的多个存储单元。
在本申请的实施例中,参见图1和图2,神经网络加速器1在利用卷积处理阵列10生成特征图数据的情况下,即可利用地址生成器11,针对特征图数据中待上采样的第一数据,生成多个存储地址,并将多个存储地址传输至数据传输器12。
需要说明的是,在本申请的实施例中,第一数据可以是特征图数据中任意一个需要执行上采样处理的数据。
需要说明的是,在本申请的实施例中,神经网络加速器1,可以利用地址生成器11生成多个存储地址,其中,每个存储地址对应的存储单元都需存储一份第一数据。神经网络加速器1可以利用地址生成器11将多个存储地址传输给数据传输器12,以支持后续利用数据传输器12进行数据传输存储。
需要说明的是,在本申请的实施例中,参见图2,神经网络加速器1中还包括地址缓冲器15和控制器14,神经网络加速器1,可以利用控制器14生成地址生成指令,从而传输至地址生成器11,这样,就能够利用地址生成器11按照地址生成指令生成多个存储地址,在进行地址生成指令传输期间,可以利用地址缓冲器15缓存地址生成指令。
S403、利用数据传输器,向数据存储器中多个存储地址的相应各存储单元分别传输第一数据进行存储,以实现针对第一数据的上采样处理。
在本申请的实施例中,参见图1和图2,神经网络加速器1在利用地址生成器11将多个存储地址传输至数据传输器12的情况下,即可利用数据传输器12,向数据存储器13中多个存储地址的相应各存储单元,分别传输第一数据进行存储,以实现针对第一数据的上采样处理。
需要说明的是,在本申请的实施例中,神经网络加速器1可以利用数据传输器12,向数据存储器13中多个存储地址的每个存储地址对应的存储单元,传输一次第一数据,这样,第一数据实现了多次存储,即相当于实现了针对第一数据的上采样处理。
需要说明的是,在本申请的实施例中,参见图2,神经网络加速器1中还包括数据缓冲器16,神经网络处理器可以利用数据缓冲器16缓存特征图数据,之后,再利用数据传输单元从中读取第一数据进行传输。
需要说明的是,在本申请的实施例中,参见图2,数据存储器13、卷积处理阵列10、数据缓冲器16和数据传输器12中均由多个部分组成,且一一对应连接,即每个卷积处理单元处理一个存储单元中存储的媒体数据的一部分数据,并将卷积处理数据传输至耦合的数据缓冲器16,每个数据传输单元可以从耦合的数据缓冲区中读取卷积处理数据。
本申请实施例还提供了一种电子设备。图5为本申请实施例提供的一种电子设备的结构示意图。如图5所示,电子设备包括:
上述神经网络加速器1;
存储器2,以及
通信总线3,神经网络加速器1通过通信总线3耦合至存储器2。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法。计算机可读存储介质可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);也可以是包括上述存储器之一或任意组合的各自设备,如移动电话、计算机、平板设备、个人数字助理等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本实用申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种神经网络加速器,其特征在于,包括:
卷积处理阵列、地址生成器、数据传输器和数据存储器;所述数据传输器,与所述卷积处理阵列、所述地址生成器,以及所述数据存储器分别耦合;
所述卷积处理阵列,用于对媒体数据进行卷积处理,生成特征图数据;
所述地址生成器,用于针对所述特征图数据中待上采样的第一数据,生成多个存储地址,并将所述多个存储地址传输至所述数据传输器;所述多个存储地址对应于所述数据存储器的多个存储单元;
所述数据传输器,用于向所述数据存储器中所述多个存储地址的相应各存储单元,分别传输所述第一数据进行存储,以实现针对所述第一数据的上采样处理。
2.根据权利要求1所述的神经网络加速器,其特征在于,还包括:控制器;
所述控制器与所述地址生成器耦合,所述控制器,用于生成地址生成指令,并将所述地址生成指令传输至所述地址生成器;所述地址生成指令携带所述第一数据对应的上采样参数;
所述地址生成器,用于按照所述地址生成指令,生成所述多个存储地址。
3.根据权利要求2所述的神经网络加速器,其特征在于,还包括:地址缓冲器;
所述地址缓冲器耦合于所述控制器与所述地址生成器之间;
所述控制器,用于将所述地址生成指令传输至所述地址缓冲器;
所述地址生成器,用于从所述地址缓冲器中读取所述地址生成指令。
4.根据权利要求1-3任一项所述的神经网络加速器,其特征在于,还包括:数据缓冲器;
所述数据缓冲器耦合于所述卷积处理阵列与所述数据传输器之间;
所述卷积处理阵列,还用于将所述特征图数据传输至所述数据缓冲器;
所述数据传输器,还用于从所述数据缓冲器中读取所述第一数据。
5.根据权利要求4所述的神经网络加速器,其特征在于,
所述数据缓冲器包括多个数据缓冲区,每个数据缓冲区与所述卷积处理阵列中的一个卷积处理单元对应耦合;
所述卷积处理阵列中的每个卷积处理单元,用于对所述媒体数据中一部分数据进行卷积处理,并将生成的卷积处理数据传输至相连的数据缓冲区缓存;
其中,所述媒体数据对应的所述特征图数据,由所述多个数据缓存区中缓存的不同卷积处理单元生成的卷积处理数据组成。
6.根据权利要求5所述的神经网络加速器,其特征在于,
所述数据传输器包括多个数据传输单元,所述多个数据传输单元中每个数据传输单元,与所述多个数据缓冲区中一个数据缓冲区对应耦合;
所述第一数据缓存于所述多个数据缓冲区中的第一缓冲区,所述多个数据传输单元中,第一数据传输单元与所述第一缓冲区对应耦合;
所述地址生成器,用于将所述多个存储地址传输至所述第一数据传输单元;
所述第一数据传输单元,用于从所述第一缓冲区中读取所述第一数据,并向所述数据存储器中所述多个存储地址的相应各存储单元,分别传输所述第一数据进行存储。
7.根据权利要求2所述的神经网络加速器,其特征在于,还包括:多路复用器;
所述数据存储器包括多个存储单元,所述媒体数据存储于所述多个存储单元中,每个存储单元中存储所述媒体数据中一部分数据;
所述多路复用器,与所述卷积处理阵列中的每个卷积处理单元、所述多个存储单元中每个存储单元,以及所述控制器分别耦合;
所述控制器,还用于生成通路选择指令,并将所述通路选择指令传输至所述多路复用器;
所述多路复用器,用于按照所述通路选择指令,控制所述多个存储单元中每个存储单元与所述卷积处理阵列中一个卷积处理单元连通;
所述卷积处理阵列中每个卷积处理单元,用于读取相连的存储单元中存储的所述媒体数据中一部分数据并进行卷积处理。
8.一种数据处理方法,其特征在于,应用于神经网络加速器,所述神经网络加速器包括卷积处理阵列、地址生成器、数据传输器和数据存储器;所述数据传输器,与所述卷积处理阵列、所述地址生成器,以及所述数据存储器分别耦合,所述方法包括:
利用所述卷积处理阵列对媒体数据进行卷积处理,生成特征图数据;
利用所述地址生成器针对所述特征图数据中待上采样的第一数据,生成多个存储地址,并将所述多个存储地址传输至所述数据传输器;所述多个存储地址对应于所述数据存储器的多个存储单元;
利用所述数据传输器,向所述数据存储器中所述多个存储地址的相应各存储单元分别传输所述第一数据进行存储,以实现针对所述第一数据的上采样处理。
9.一种电子设备,其特征在于,包括:
如权利要求1-7中任一项所述的神经网络加速器;
存储器;以及
通信总线,所述神经网络加速器通过所述通信总线耦合至所述存储器。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求8所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210867431.2A CN117494771A (zh) | 2022-07-22 | 2022-07-22 | 神经网络加速器、数据处理方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210867431.2A CN117494771A (zh) | 2022-07-22 | 2022-07-22 | 神经网络加速器、数据处理方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117494771A true CN117494771A (zh) | 2024-02-02 |
Family
ID=89683469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210867431.2A Pending CN117494771A (zh) | 2022-07-22 | 2022-07-22 | 神经网络加速器、数据处理方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117494771A (zh) |
-
2022
- 2022-07-22 CN CN202210867431.2A patent/CN117494771A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321423B2 (en) | Operation accelerator | |
US11593594B2 (en) | Data processing method and apparatus for convolutional neural network | |
CN108573305B (zh) | 一种数据处理方法、设备及装置 | |
CN111915001B (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
US20190361631A1 (en) | Storage device, chip and method for controlling storage device | |
US9870315B2 (en) | Memory and processor hierarchy to improve power efficiency | |
CN113065643A (zh) | 一种用于执行多任务卷积神经网络预测的装置和方法 | |
US20220253668A1 (en) | Data processing method and device, storage medium and electronic device | |
US7774583B1 (en) | Processing bypass register file system and method | |
CN111047037B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112183732A (zh) | 卷积神经网络加速方法、装置和计算机设备 | |
CN117494771A (zh) | 神经网络加速器、数据处理方法、电子设备及存储介质 | |
US11467973B1 (en) | Fine-grained access memory controller | |
US20200082898A1 (en) | Multi-lvel memory hierarchy | |
CN110060196A (zh) | 图像处理方法及装置 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
CN112396072A (zh) | 基于asic与vgg16的图像分类加速方法及装置 | |
US20200225877A1 (en) | Information processing apparatus and memory control method | |
CN115145842A (zh) | 数据缓存处理器及方法 | |
CN112712167A (zh) | 支持多种卷积神经网络加速的存储器访问方法及系统 | |
US8627031B2 (en) | Semiconductor memory device and method of reading data from and writing data into a plurality of storage units | |
CN113642724B (zh) | 一种高带宽存储的cnn加速器 | |
US20240201990A1 (en) | Fused Data Generation and Associated Communication | |
US20240143278A1 (en) | Processing-in-memory (pim) devices |
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 |