CN115358378A - 一种数据缓存方法、系统、装置、设备及存储介质 - Google Patents
一种数据缓存方法、系统、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115358378A CN115358378A CN202211109339.6A CN202211109339A CN115358378A CN 115358378 A CN115358378 A CN 115358378A CN 202211109339 A CN202211109339 A CN 202211109339A CN 115358378 A CN115358378 A CN 115358378A
- Authority
- CN
- China
- Prior art keywords
- layer
- network layer
- network
- data
- convolutional
- 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
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (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)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Error Detection And Correction (AREA)
Abstract
本公开提供了一种数据缓存方法、系统、装置、设备及存储介质,所述方法包括:获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;针对每个层号,如果层号对应的时钟倍频数大于1,则在层号标识的目标卷积网络层进行数据处理时,将目标卷积网络层的待处理数据拆分为N等份,并为目标卷积网络层配置N倍频的时钟,以使目标卷积网络层以N倍频的时钟依次计算N份待处理数据。采用该方法实现了在保证计算效率的同时降低了存算一体器件的缓存资源浪费。
Description
技术领域
本公开涉及存算一体技术领域,尤其涉及一种数据缓存方法、系统、装置、设备及存储介质。
背景技术
卷积类深度神经网络常被用来完成大量数据的运算。而卷积类深度神经网络的计算复杂度较高,在进行数据运算时需要反复访问片外缓存,但反复访问片外缓存会导致大量能量损失在数据传输过程,降低神经网络的计算能效。基于此,具备存算一体功能的存算一体器件逐步被应用于神经网络技术。由于存算一体器件兼备数据缓存和数据运算功能,将存算一体器件应用于神经网络,在进行数据运算时不再需要反复访问片外缓存,因此可以降低数据传输过程中的能量损失,进而提高神经网络的计算能效。
然而,存算一体器件的缓存容量不小于神经网络中最大网络层的最大可处理数据量,即存算一体器件的缓存容量取决于神经网络中最大网络层的最大可处理数据量。对于神经网络中各层最大可处理数据量相差悬殊的情况,存算一体器件的缓存容量的这个特点显然是一种较大的资源浪费。例如,神经网络A包括网络层1-5,最大网络层为网络层1,存算一体器件的缓存容量不小于网络层1的最大可处理数据量,如果网络层2-5的最大可处理数据量远小于网络层1的,那么对于网络层2-5来说,存算一体器件巨大的缓存容量则是一种较大的资源浪费。而如果为了减少资源浪费降低最大网络层每次缓存的数据量,必然会延长数据处理时间,进而影响神经网络的计算效率。
因此,如何在保证计算效率的同时降低存算一体器件的缓存资源浪费,成为了一个亟待解决的问题。
发明内容
本公开提供了一种数据缓存方法、系统、装置、设备及存储介质,以至少解决现有技术中存在的以上技术问题。
根据本公开的第一方面,提供了一种数据缓存方法,应用于由存算一体器件构成的卷积神经网络,所述方法包括:
获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;
针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
在一可实施方式中,在所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数之前,所述方法还包括:
确定卷积神经网络的各个卷积网络层的最大可处理数据量;
针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不大于所述存算一体器件的缓存容量;
所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数,包括:
获取卷积神经网络的网络类型;
从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
在一可实施方式中,所述针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,包括:
将层号计数器置为零;
确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1;其中,所述层号标识的卷积网络层为目标卷积网络层;
如果是,为所述目标卷积网络层配置N倍频的时钟,将所述目标卷积网络层的待处理数据拆分为N等份,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,并将所述层号计数器的计数加1;
确定所述层号计数器计数的层号是否与所述卷积神经网络的总层号一致;
如果不是,返回执行所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1的步骤;
如果是,针对下一个卷积神经网络,返回执行所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数的步骤,直至各个卷积神经网络的数据处理结束。
在一可实施方式中,在所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1之后,所述方法还包括:
如果不是,为所述目标卷积网络层配置一倍频的时钟,以使所述目标卷积网络层以一倍频的时钟计算待处理数据,并将所述层号计数器的计数加1。
根据本公开的第二方面,提供了一种数据缓存系统,应用于由存算一体器件构成的卷积神经网络,所述系统包括:
控制单元,用于获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并向时钟配置单元发送针对所述目标卷积网络层的时钟配置指令;
所述时钟配置单元,用于在接收到所述控制单元发送的所述时钟配置指令后,为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
行缓存单元,用于在所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据时,缓存所述目标卷积网络层的待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
在一可实施方式中,所述控制单元,还用于确定卷积神经网络的各个卷积网络层的最大可处理数据量;针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不大于所述存算一体器件的缓存容量;
所述控制单元,具体用于获取卷积神经网络的网络类型;从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
根据本公开的第三方面,提供了一种数据缓存装置,应用于由存算一体器件构成的卷积神经网络,所述装置包括:
信息获取模块,用于获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;
数据拆分模块,用于针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
在一可实施方式中,所述装置还包括:
倍频数确定模块,用于确定卷积神经网络的各个卷积网络层的最大可处理数据量;针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不小于所述存算一体器件的缓存容量;
所述信息获取模块,具体用于获取卷积神经网络的网络类型;从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
根据本公开的第四方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。
本公开的数据缓存方法、系统、装置、设备及存储介质,可以为卷积神经网络的各个卷积网络层确定对应的时钟倍频数,在卷积神经网络的各个卷积网络层进行数据处理前,可以获取各个卷积网络层对应的时钟倍频数,然后如果所对应的时钟倍频数大于1,则在目标卷积网络层进行数据处理时,将目标卷积网络层的待处理数据拆分为N等份,并为目标卷积网络层配置N倍频的时钟,以使目标卷积网络层以N倍频的时钟依次计算N份待处理数据。其中,最大卷积网络层对应的时钟倍频数M大于1,存算一体器件的缓存容量大于等于卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一且小于最大卷积网络层的最大可处理数据大小,M≥N,N为目标卷积网络层的层号对应的时钟倍频数。也就是说,本公开中,存算一体器件的缓存容量是小于最大卷积网络层的最大可处理数据量的,对于最大可处理数据量大于存算一体器件的缓存容量的卷积网络层,本公开可以通过拆分这些卷积网络层的待处理数据的方式,使得存算一体器件的缓存容量可以满足这些卷积网络层在进行数据运算过程中的数据缓存需求,并且,本公开可以为最大可处理数据量大于存算一体器件的缓存容量的卷积网络层配置对应的时钟倍频数,提高这些卷积网络层的数据运算速率,进而保证了整体的数据处理效率。因此,本公开的数据缓存方法、系统、装置、设备及存储介质,虽然减小了存算一体器件的缓存容量,但同时也保证了卷积神经网络整体的数据处理效率,即本公开可以实现在保证计算效率的同时降低存算一体器件的缓存资源浪费。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
在附图中,相同或对应的标号表示相同或对应的部分。
图1示出了一种CNN网络缓存示意图;
图2示出了本公开实施例提供的数据缓存方法的一种实现流程示意图;
图3示出了本公开实施例提供的时钟配置控制示意图;
图4示出了本公开实施例提供的卷积网络层数据拆分流程示意图;
图5示出了本公开实施例提供的一种查找表示意图;
图6示出了本公开实施例提供的数据缓存系统的一种结构示意图;
图7示出了本公开实施例提供的数据缓存装置的一种结构示意图;
图8示出了本公开实施例一种电子设备的组成结构示意图。
具体实施方式
为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1示出了一种CNN网络缓存示意图,如图1所示,CNN(Convolutional NeuralNetworks,卷积神经网络)的其中一个网络层包括channel0至channelN-1这N个通道,网络层中输入数据的长为W宽为H,卷积核为3×3,图1中网络层中输入数据中每个小格中的标号用于标识该数据所在行数和列数,如“r0c0”标识该数据在第0行第0列。CNN各层网络的数据在输入存算一体器件之前会做相应的行缓存,也就是说,存算一体器件的缓存容量需要满足CNN各个网络层的数据量。为了使存算一体器件可以缓存CNN网络的各个网络层的数据,通常需要将存算一体器件的缓存容量设置为不小于CNN网络中最大网络层的最大可处理数据量,对于CNN网络中各层最大可处理数据量相差悬殊的情况,存算一体器件的缓存容量的这个特点显然是一种较大的资源浪费,而现有的减少存算一体器件资源浪费的方法会延长数据处理时间,影响神经网络的计算效率。为了在保证计算效率的同时降低存算一体器件的缓存资源浪费,本公开提供了一种数据缓存方法、系统、装置、设备及存储介质。本公开提供的方法可以应用于应用于由存算一体器件构成的卷积神经网络。
下面将结合本公开实施例中的附图,对本公开实施例的技术方案进行描述。
图2示出了本公开实施例提供的数据缓存方法的一种实现流程示意图,如图2所示,所述方法应用于由存算一体器件构成的卷积神经网络,包括:
S201,获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数。
本公开中,卷积网络包括但不限于CNN(Convolutional Neural Networks,卷积神经网络)、RNN(Recurrent Neural Networks,循环神经网络)、DNN(Deep Neural Networks,深度神经网络)和VGG(visual geometry group,超分辨率测试序列)网络等。每个卷积神经网络可以包括多个网络层,网络层具体可以为卷积层、池化层或全连接层等。
本公开中,可以预先根据卷积神经网络各个网络层的结构,为各个网络层配置所在的层号和对应的时钟倍频数。每个网络层对应的时钟倍频数用于在处理网络层的数据时可以按照网络层对应的时钟倍频数加速处理。
表1为本公开提供的VGG-z8网络的网络层配置表,如表1所示,VGG-z8网络的各个网络层的结构顺序依次Conv1、Conv2、Conv3、Conv4、Conv5、fc1、fc2和fc3,则可以预先给Conv1、Conv2、Conv3、Conv4、Conv5、fc1、fc2和fc3分别配网络层号“ly1”、“ly2”、“ly3”、“ly4”、“ly5”、“ly6”、“ly7”和“ly8”。
表1:VGG-z8网络的网络层配置表
网络层 | 需缓存数据大小 |
Conv1 | 288Byte |
Conv2 | 2880Byte |
Conv3 | 1344Byte |
Conv4 | 1152Byte |
Conv5 | 960Byte |
fc1 | 576Byte |
fc2 | 128Byte |
fc3 | 64Byte |
在一可实施方式中,在所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数之前,本公开实施例提供的数据缓存方法还可以包括如下步骤A1-A2:
步骤A1,确定卷积神经网络的各个卷积网络层的最大可处理数据量。
具体的,可以从卷积神经网络的配置信息中获取到卷积神经网络的各个层的最大可处理数据量。
如表1所示,对于VGG-z8网络,可以从VGG-z8网络的配置信息中获取到各个网络层的需缓存数据大小作为每层的最大可处理数据量。即VGG-z8网络的网络层Conv1的最大可处理数据量为288Byte(字节)、网络层Conv2的最大可处理数据量为2880Byte、网络层Conv3的最大可处理数据量为1344Byte、网络层Conv4的最大可处理数据量为1152Byte、网络层Conv5的最大可处理数据量为960Byte、网络层fc1的最大可处理数据量为576Byte、网络层fc2的最大可处理数据量为128Byte、网络层fc3的最大可处理数据量为64Byte。
步骤A2,针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储。
其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不大于所述存算一体器件的缓存容量。
本公开实施例中,对于最大可处理数据量大于存算一体器件的缓存容量的卷积网络层,确定卷积网络层对应的时钟倍频数的原则为:卷积网络层对应的时钟倍频数为大于目标商的整数值,目标商=卷积网络层的最大可处理数据量/存算一体器件的缓存容量。
如表1所示,如果存算一体器件的缓存容量为1280Byte,则可以确定卷积网络层Conv2和Conv3的最大可处理数据量均大于存算一体器件的缓存容量。因此,为了保证在卷积网络层Conv2和Conv3进行数据处理时,存算一体器件可以缓存卷积网络层Conv2和Conv3的所有待处理数据,需要对卷积网络层Conv2和Conv3的待处理数据进行拆分,而进一步的,为了保证数据处理效率,需要为卷积网络层Conv2和Conv3确定对应的时钟倍频数,以实现对拆分后的待处理处理按照时钟倍频数加速处理。
针对卷积网络层Conv2,可以计算Conv2的最大可处理数据量除以存算一体器件的缓存容量的商=2880Byte/1280Byte=2.25,则Conv2对应的时钟倍频数可以选取大于2.25的整数,例如,可以确定Conv2对应的时钟倍频数为3或4等。
针对卷积网络层Conv3,可以计算Conv3的最大可处理数据量除以存算一体器件的缓存容量的商=1344Byte/1280Byte=1.055,则Conv3对应的时钟倍频数可以选取大于1.05的整数,例如,可以确定Conv3对应的时钟倍频数为2或3等。
在确定出卷积网络层对应的时钟倍频数后,可以将卷积网络层对应的时钟倍频数、层号和卷积神经网络的网络类型进行对应存储。网络类型包括但不限于CNN、DNN、VGG和RNN等。例如,可以确定表1中的卷积网络层Conv2对应的时钟倍频数为3,卷积网络层Conv3对应的时钟倍频数为2,Conv2和Conv3对应的网络类型为VGG-z8网络,Conv2所在的层号为“ly2”,Conv3所在的层号为“ly3”,则可以将卷积网络层Conv2、时钟倍频数为3、层号“ly2”和VGG-z8网络进行对应存储,以及,将卷积网络层Conv3、时钟倍频数为2、层号“ly3”和VGG-z8网络进行对应存储。
对于最大可处理数据量不大于存算一体器件的缓存容量的卷积网络层,可以直接将该卷积网络层对应的时钟倍频数确定为1。
则所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数,具体可以包括如下步骤B1-B2:
步骤B1,获取卷积神经网络的网络类型。
步骤B2,从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
表2为本公开提供的一种网络类型与网络层的对应信息表。如表2所示,可以根据网络类型“VGG-z8”查找出各个卷积网络层“Conv1”-“Conv5”以及“fc1”-“fc3”的层号和各个层号所对应的时钟倍频数,例如,可以查找到卷积神经网络“VGG-z8”卷积网络层“Conv2”的层号为“Ly2”时钟倍频数为3。同样的,根据网络类型“CNN”可以查找到CNN网络中各个卷积网络层“Input layer”、“CONV layer”、“ReLU”和“Pooling layer”的层号和各个层号所对应的时钟倍频数,例如,可以查找到卷积神经网络“CNN”卷积网络层“CONV layer”的层号为“L2”时钟倍频数为2。
表2:网络类型与网络层的对应信息表
S202,针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据。
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。以表1为例,表1中最大卷积网络层为“Conv2”,如确定出“Conv2”对应的时钟倍频数为3,则对于VGGz8网路来说,M=3。
为了减小资源浪费,本公开可以设置存算一体器件的缓存容量小于卷积神经网络中最大卷积网络层的最大可处理数据大小,且大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一。
图3示出了本公开实施例提供的时钟配置控制示意图,图3中的控制单元可以获取到卷积神经网络的各个网络层的层号和对应的时钟倍频数这些信息,动态时钟配置单元可以根据控制单元发出的指令为卷积网络层配置对应的时钟倍频数,行缓存单元可以根据动态时钟配置单元配置的时钟倍频数,在卷积网络层进行数据处理时将卷积神经网络的待处理数据缓存至存算一体器件。
如图3所示,为了使存算一体器件在卷积神经网络的各个卷积网络层进行数据处理时能够缓存当前的所有待处理数据,对于最大可处理数据大小大于存算一体器件的缓存容量的卷积网络层,可以将该卷积网络层的待处理数据拆分为数量与该卷积网络层对应的时钟倍频数相等的多份数据,并且,控制单元可以向动态时钟配置单元下发时钟配置指令,使动态时钟配置单元为该卷积网络层配置对应的时钟倍频数,在该卷积网络层进行数据处理时可以对拆分后的多份待处理数据逐份进行处理。为了保证数据处理效率,动态时钟配置单元可以将为该卷积网络层配置的时钟倍频数发送给行缓存单元,在该卷积网络层按照对应的时钟倍频数加速对各份待处理数据进行处理时,行缓存单元可以将拆分后的每一份待处理数据缓存至存算一体器件中。
对于最大可处理数据大小不大于存算一体器件的缓存容量的卷积网络层,由于存算一体器件能够缓存该卷积网络层的所有待处理数据,因此不需要对该卷积网络层的待处理数据进行拆分,则控制单元可以向动态时钟配置单元下发配置1倍频的时钟倍频数的时钟配置指令,使动态时钟配置单元为该卷积网络层配置1倍频的时钟倍频数。
图4示出了本公开实施例提供的卷积网络层数据拆分流程示意图,如图4所示,所述针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,包括:
S401,将层号计数器置为零。
本公开实施例中,可以设置一个层号计数器,根据层号计数器的计数依次为各个卷积神经网络的每个卷积网络层进行数据拆分处理。
S402,确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1。
其中,所述层号标识的卷积网络层为目标卷积网络层。
层号所对应的时钟倍频数大于1,表示该层号对应的卷积网络层的待处理数据量大于存算一体器件的缓存容量,因此,为了使存算一体器件可以缓存卷积网络层每次参与运算的所有待处理数据,则需要对卷积网络层的待处理数据进行拆分。
如果所述层号计数器计数的层号所对应的时钟倍频数不大于1,表示该层号对应的卷积网络层的待处理数据量不大于存算一体器件的缓存容量,则可以为所述目标卷积网络层配置一倍频的时钟,以使所述目标卷积网络层以一倍频的时钟计算待处理数据,并将所述层号计数器的计数加1。
S403,如果是,为所述目标卷积网络层配置N倍频的时钟,将所述目标卷积网络层的待处理数据拆分为N等份,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,并将所述层号计数器的计数加1。
其中,N为目标卷积网络层对应的时钟倍频数。
图5示出了本公开实施例提供的一种查找表示意图,如图5所示,本公开可以根据卷积神经网络的网络类型在各个查找表(如查找表1-3)中查找当前的卷积神经网络对应的总层号、特殊层号以及各个层号对应的时钟倍频数。其中,特殊层号是指对应的时钟倍频数大于1层号。
对于对应的时钟倍频数大于1的目标卷积网络层,可以将目标卷积网络层的待处理数据拆分为N等份,状态机可以将层号和对应的时钟倍频数发送给时钟配置寄存器和行缓存控制寄存器,时钟配置寄存器可以为目标卷积网络层配置N倍频的时钟,则目标卷积网络层可以按照N倍频的时钟依次计算N份待处理数据,行缓存控制寄存器可以将目标卷积网络层每次要处理的待处理数据缓存至存算一体器件中。
S404,确定所述层号计数器计数的层号是否与所述卷积神经网络的总层号一致。
层号计数器计数的层号与所述卷积神经网络的总层号一致,表示当前的卷积神经网络的所有卷积网络层都完成了数据处理,则可以对下一个卷积神经网络进行处理。
层号计数器计数的层号与所述卷积神经网络的总层号不一致,表示当前的卷积神经网络的还存在卷积网络层未完成数据处理。
S405,如果不是,返回执行所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1的步骤。
S406,如果是,针对下一个卷积神经网络,返回执行所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数的步骤,直至各个卷积神经网络的数据处理结束。
采用本公开提供的方法,可以为卷积神经网络的各个卷积网络层确定对应的时钟倍频数,在卷积神经网络的各个卷积网络层进行数据处理前,可以获取各个卷积网络层对应的时钟倍频数,然后如果所对应的时钟倍频数大于1,则在目标卷积网络层进行数据处理时,将目标卷积网络层的待处理数据拆分为N等份,并为目标卷积网络层配置N倍频的时钟,以使目标卷积网络层以N倍频的时钟依次计算N份待处理数据。其中,最大卷积网络层对应的时钟倍频数M大于1,存算一体器件的缓存容量大于等于卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一且小于最大卷积网络层的最大可处理数据大小,M≥N,N为目标卷积网络层的层号对应的时钟倍频数。也就是说,本公开中,存算一体器件的缓存容量是小于最大卷积网络层的最大可处理数据量的,对于最大可处理数据量大于存算一体器件的缓存容量的卷积网络层,本公开可以通过拆分这些卷积网络层的待处理数据的方式,使得存算一体器件的缓存容量可以满足这些卷积网络层在进行数据运算过程中的数据缓存需求,并且,本公开可以为最大可处理数据量大于存算一体器件的缓存容量的卷积网络层配置对应的时钟倍频数,提高这些卷积网络层的数据运算速率,进而保证了整体的数据处理效率。因此,本公开的数据缓存方法、系统、装置、设备及存储介质,虽然减小了存算一体器件的缓存容量,但同时也保证了卷积神经网络整体的数据处理效率,即本公开可以实现在保证计算效率的同时降低存算一体器件的缓存资源浪费。
基于同一发明构思,根据本公开上述实施例提供的数据缓存方法,相应地,本公开另一实施例还提供了一种数据缓存系统,应用于由存算一体器件构成的卷积神经网络,其结构示意图如图6所示,具体包括:
控制单元601,用于获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并向时钟配置单元发送针对所述目标卷积网络层的时钟配置指令;
所述时钟配置单元602,用于在接收到所述控制单元发送的所述时钟配置指令后,为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
行缓存单元603,用于在所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据时,缓存所述目标卷积网络层的待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
采用本公开提供的系统,存算一体器件的缓存容量是小于最大卷积网络层的最大可处理数据量的,对于最大可处理数据量大于存算一体器件的缓存容量的卷积网络层,本公开可以通过拆分这些卷积网络层的待处理数据的方式,使得存算一体器件的缓存容量可以满足这些卷积网络层在进行数据运算过程中的数据缓存需求,并且,本公开可以为最大可处理数据量大于存算一体器件的缓存容量的卷积网络层配置对应的时钟倍频数,提高这些卷积网络层的数据运算速率,进而保证了整体的数据处理效率。因此,本公开的数据缓存方法、系统、装置、设备及存储介质,虽然减小了存算一体器件的缓存容量,但同时也保证了卷积神经网络整体的数据处理效率,即本公开可以实现在保证计算效率的同时降低存算一体器件的缓存资源浪费。
在一可实施方式中,所述控制单元601,还用于确定卷积神经网络的各个卷积网络层的最大可处理数据量;针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不大于所述存算一体器件的缓存容量;
所述控制单元601,具体用于获取卷积神经网络的网络类型;从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
在一可实施方式中,控制单元601,具体用于将层号计数器置为零;确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1;其中,所述层号标识的卷积网络层为目标卷积网络层;如果是,控制所述时钟配置单元602为所述目标卷积网络层配置N倍频的时钟,将所述目标卷积网络层的待处理数据拆分为N等份,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,并将所述层号计数器的计数加1;确定所述层号计数器计数的层号是否与所述卷积神经网络的总层号一致;如果不是,返回执行所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1的步骤;如果是,针对下一个卷积神经网络,返回执行所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数的步骤,直至各个卷积神经网络的数据处理结束。
在一可实施方式中,控制单元601,具体用于在所述确定所述层号计数器计数的层号所对应的时钟倍频数不大于1之后,控制所述时钟配置单元602为所述目标卷积网络层配置一倍频的时钟,以使所述目标卷积网络层以一倍频的时钟计算待处理数据,并将所述层号计数器的计数加1。
基于同一发明构思,根据本公开上述实施例提供的数据缓存方法,相应地,本公开另一实施例还提供了一种数据缓存装置,应用于由存算一体器件构成的卷积神经网络,其结构示意图如图7所示,具体包括:
信息获取模块701,用于获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;
数据拆分模块702,用于针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
采用本公开提供的装置,存算一体器件的缓存容量是小于最大卷积网络层的最大可处理数据量的,对于最大可处理数据量大于存算一体器件的缓存容量的卷积网络层,本公开可以通过拆分这些卷积网络层的待处理数据的方式,使得存算一体器件的缓存容量可以满足这些卷积网络层在进行数据运算过程中的数据缓存需求,并且,本公开可以为最大可处理数据量大于存算一体器件的缓存容量的卷积网络层配置对应的时钟倍频数,提高这些卷积网络层的数据运算速率,进而保证了整体的数据处理效率。因此,本公开的数据缓存方法、系统、装置、设备及存储介质,虽然减小了存算一体器件的缓存容量,但同时也保证了卷积神经网络整体的数据处理效率,即本公开可以实现在保证计算效率的同时降低存算一体器件的缓存资源浪费。
在一可实施方式中,所述装置还包括:
倍频数确定模块(图中未示出),用于确定卷积神经网络的各个卷积网络层的最大可处理数据量;针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不小于所述存算一体器件的缓存容量;
所述信息获取模块701,具体用于获取卷积神经网络的网络类型;从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
在一可实施方式中,所述数据拆分模块702,具体用于将层号计数器置为零;确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1;其中,所述层号标识的卷积网络层为目标卷积网络层;如果是,为所述目标卷积网络层配置N倍频的时钟,将所述目标卷积网络层的待处理数据拆分为N等份,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,并将所述层号计数器的计数加1;确定所述层号计数器计数的层号是否与所述卷积神经网络的总层号一致;如果不是,返回执行所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1的步骤;如果是,针对下一个卷积神经网络,返回执行所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数的步骤,直至各个卷积神经网络的数据处理结束。
在一可实施方式中,所述数据拆分模块702,具体用于在所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1之后,如果不是,为所述目标卷积网络层配置一倍频的时钟,以使所述目标卷积网络层以一倍频的时钟计算待处理数据,并将所述层号计数器的计数加1。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如数据缓存方法。例如,在一些实施例中,数据缓存方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的数据缓存方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据缓存方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据缓存方法,其特征在于,应用于由存算一体器件构成的卷积神经网络,所述方法包括:
获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;
针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
2.根据权利要求1所述的方法,其特征在于,在所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数之前,所述方法还包括:
确定卷积神经网络的各个卷积网络层的最大可处理数据量;
针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不大于所述存算一体器件的缓存容量;
所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数,包括:
获取卷积神经网络的网络类型;
从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
3.根据权利要求1所述的方法,其特征在于,所述针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,包括:
将层号计数器置为零;
确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1;其中,所述层号标识的卷积网络层为目标卷积网络层;
如果是,为所述目标卷积网络层配置N倍频的时钟,将所述目标卷积网络层的待处理数据拆分为N等份,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据,并将所述层号计数器的计数加1;
确定所述层号计数器计数的层号是否与所述卷积神经网络的总层号一致;
如果不是,返回执行所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1的步骤;
如果是,针对下一个卷积神经网络,返回执行所述获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数的步骤,直至各个卷积神经网络的数据处理结束。
4.根据权利要求3所述的方法,其特征在于,在所述确定所述层号计数器计数的层号所对应的时钟倍频数是否大于1之后,所述方法还包括:
如果不是,为所述目标卷积网络层配置一倍频的时钟,以使所述目标卷积网络层以一倍频的时钟计算待处理数据,并将所述层号计数器的计数加1。
5.一种数据缓存系统,其特征在于,应用于由存算一体器件构成的卷积神经网络,所述系统包括:
控制单元,用于获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并向时钟配置单元发送针对所述目标卷积网络层的时钟配置指令;
所述时钟配置单元,用于在接收到所述控制单元发送的所述时钟配置指令后,为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
行缓存单元,用于在所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据时,缓存所述目标卷积网络层的待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
6.根据权利要求5所述的系统,其特征在于,所述控制单元,还用于确定卷积神经网络的各个卷积网络层的最大可处理数据量;针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不大于所述存算一体器件的缓存容量;
所述控制单元,具体用于获取卷积神经网络的网络类型;从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
7.一种数据缓存装置,其特征在于,应用于由存算一体器件构成的卷积神经网络,所述装置包括:
信息获取模块,用于获取卷积神经网络的各个卷积网络层的层号和各个层号对应的时钟倍频数;
数据拆分模块,用于针对每个层号,如果所述层号对应的时钟倍频数大于1,则在所述层号标识的目标卷积网络层进行数据处理时,将所述目标卷积网络层的待处理数据拆分为N等份,并为所述目标卷积网络层配置N倍频的时钟,以使所述目标卷积网络层以N倍频的时钟依次计算N份待处理数据;
其中,在所述目标卷积网络层进行数据处理时所述存算一体器件中最多缓存所述目标卷积网络层的待处理数据的N分之一;所述存算一体器件的缓存容量大于等于所述卷积神经网络中最大卷积网络层的最大可处理数据大小的M分之一,且小于所述最大卷积网络层的最大可处理数据大小,M为所述最大卷积网络层对应的时钟倍频数,M≥N,N为所述层号对应的时钟倍频数。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
倍频数确定模块,用于确定卷积神经网络的各个卷积网络层的最大可处理数据量;针对每个卷积网络层,当所述卷积网络层的最大可处理数据量大于所述存算一体器件的缓存容量时,确定所述卷积网络层对应的时钟倍频数,并将所述时钟倍频数、所述卷积网络层的层号和所述卷积神经网络的网络类型进行对应存储;其中,所述卷积网络层的最大可处理数据量除以所述时钟倍频数所得的值不小于所述存算一体器件的缓存容量;
所述信息获取模块,具体用于获取卷积神经网络的网络类型;从预设的网络类型与网络层的对应信息表中,查找与所述网络类型相对应的各个卷积网络层的层号和各个层号所对应的时钟倍频数。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行根据权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211109339.6A CN115358378A (zh) | 2022-09-13 | 2022-09-13 | 一种数据缓存方法、系统、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211109339.6A CN115358378A (zh) | 2022-09-13 | 2022-09-13 | 一种数据缓存方法、系统、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115358378A true CN115358378A (zh) | 2022-11-18 |
Family
ID=84007540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211109339.6A Pending CN115358378A (zh) | 2022-09-13 | 2022-09-13 | 一种数据缓存方法、系统、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115358378A (zh) |
-
2022
- 2022-09-13 CN CN202211109339.6A patent/CN115358378A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230177326A1 (en) | Method and apparatus for compressing neural network model | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN111324310A (zh) | 一种数据的读取方法、装置及计算机系统 | |
CN115358378A (zh) | 一种数据缓存方法、系统、装置、设备及存储介质 | |
CN115617859A (zh) | 基于知识图谱集群的数据查询方法和装置 | |
US20220113943A1 (en) | Method for multiply-add operations for neural network | |
CN115328917A (zh) | 一种查询方法、装置、设备及存储介质 | |
CN115511047B (zh) | Softmax模型的量化方法、装置、设备及介质 | |
CN115759260B (zh) | 深度学习模型的推理方法、装置、电子设备和存储介质 | |
CN117271840B (zh) | 图数据库的数据查询方法、装置及电子设备 | |
CN115292662B (zh) | 一种卷积加速运算方法、装置、电子设备及存储介质 | |
CN115860077B (zh) | 状态数据的处理方法、装置、设备以及存储介质 | |
CN116756460B (zh) | 组合数据获取方法、装置及相关设备 | |
CN115600687B (zh) | 模型训练方法、装置、设备以及存储介质 | |
CN115391727B (zh) | 一种神经网络模型的计算方法、装置、设备及存储介质 | |
CN115333715B (zh) | 一种窄带通信系统的同步方法、装置、通信设备及介质 | |
CN114492816B (zh) | 量子态处理方法、计算设备、计算装置及存储介质 | |
CN113762510B (zh) | 针对目标模型的数据处理方法、装置、电子设备和介质 | |
CN114707478B (zh) | 映射表生成方法、装置、设备及存储介质 | |
US20230367548A1 (en) | Computing method | |
CN117632431A (zh) | 云计算任务的调度方法、装置、设备及存储介质 | |
CN118132909A (zh) | 一种数据处理方法、装置以及电子设备 | |
CN117892050A (zh) | 一种基于多核硬件的矩阵运算方法、装置、设备及介质 | |
CN116186450A (zh) | 一种微前端应用系统、应用渲染方法、设备及存储介质 | |
CN116112441A (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 |