CN118276772A - 神经网络的数据处理方法、***及可读存储介质 - Google Patents

神经网络的数据处理方法、***及可读存储介质 Download PDF

Info

Publication number
CN118276772A
CN118276772A CN202410321693.8A CN202410321693A CN118276772A CN 118276772 A CN118276772 A CN 118276772A CN 202410321693 A CN202410321693 A CN 202410321693A CN 118276772 A CN118276772 A CN 118276772A
Authority
CN
China
Prior art keywords
cache module
data
address interval
target
module
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
Application number
CN202410321693.8A
Other languages
English (en)
Inventor
李峰
陈弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yilingsi Shenzhen Technology Co ltd
Original Assignee
Yilingsi Shenzhen Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yilingsi Shenzhen Technology Co ltd filed Critical Yilingsi Shenzhen Technology Co ltd
Priority to CN202410321693.8A priority Critical patent/CN118276772A/zh
Publication of CN118276772A publication Critical patent/CN118276772A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种神经网络的数据处理方法、***及可读存储介质,属于数据处理技术领域。所述方法包括:获取第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间,神经网络对第一数据的访问频率高于对第二数据的访问频率;确定第二缓存模块中指定存储空间对应的第三地址区间,第一缓存模块的存储容量大于所述第二缓存模块的存储容量;基于第一地址区间与第三地址区间的映射关系,将第一数据存储至第二缓存模块中的指定存储空间;通过目标缓存模块执行目标操作,当控制模块访问第一地址区间对应的第一数据时,可以直接访问指定存储空间,减少了第一数据存取的时间,进一步提高了神经网络的计算速度。

Description

神经网络的数据处理方法、***及可读存储介质
技术领域
本申请涉及数据处理技术领域,更具体地,涉及一种神经网络的数据处理方法、***及可读存储介质。
背景技术
现有控制模块可以和缓存模块进行通信,实现数据的存取。然而,现有的对数据集进行存取的方法,数据的存取效率较低。
发明内容
本申请提出了一种神经网络的数据处理方法、***及可读存储介质。
第一方面,本申请实施例提供了一种神经网络的数据处理方法,所述方法应用于数据处理***的控制模块,所述数据处理***部署于现场可编程阵列,所述数据处理***还包括第一缓存模块以及第二缓存模块,所述控制模块分别与所述第一缓存模块以及所述第二缓存模块连接,所述第一缓存模块与所述第二缓存模块连接,所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量,所述方法包括:获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间,所述神经网络对第一数据的访问频率高于对所述第二数据的访问频率;确定所述第二缓存模块中指定存储空间对应的第三地址区间;基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间;通过目标缓存模块执行目标操作,所述目标操作为执行神经网络计算的操作步骤包含的操作,所述目标缓存模块基于所述目标操作对应的目标地址区间确定,所述目标操作包括读操作或写操作,所述目标地址区间包括第一地址区间或第二地址区间,所述目标缓存模块包括第一缓存模块以及第二缓存模块中的至少一个。
可选的,对于一种可能的实施方式,所述通过目标缓存模块执行目标操作,包括:判断目标操作对应的目标地址区间为第一地址区间或第二地址区间;若目标操作对应的目标地址区间为第一地址区间,则判断目标操作为读操作或写操作;若目标操作为读操作,则从第二缓存模块的指定存储空间中读取所述读操作对应的需求数据。
可选的,对于一种可能的实施方式,所述若目标操作对应的目标地址区间为第一地址区间,则判断目标操作为读操作或写操作之后,还包括:若目标操作为写操作,向第一缓存模块以及第二缓存模块的指定存储空间中写入所述写操作对应的待写入数据。
可选的,对于一种可能的实施方式,所述判断目标操作对应的目标地址区间为第一地址区间或第二地址区间之后,还包括:若目标操作对应的目标地址区间为第二地址区间,通过第一缓存模块执行目标操作。
可选的,对于一种可能的实施方式,所述确定所述第二缓存模块中指定存储空间对应的第三地址区间之前,还包括:基于需求存储容量与第二缓存模块可分配的存储容量确定目标容量;基于所述目标容量配置所述第二缓存模块,得到指定存储空间。
第二方面,本申请实施例还提供了一种神经网络的数据处理***,所述数据处理***部署于现场可编程阵列,所述数据处理***包括控制模块、第一缓存模块以及第二缓存模块,所述控制模块分别与所述第一缓存模块以及所述第二缓存模块连接,所述第一缓存模块与所述第二缓存模块连接,所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量;所述控制模块用于基于第一方面所述的方法执行目标操作。
可选的,对于一种可能的实施方式,所述第二缓存模块包括直接存储访问控制器,所述直接存储访问控制器与所述第一缓存模块连接;所述直接存储访问控制器用于获取第一数据,并将所述第一数据写入至所述指定存储空间。
可选的,对于一种可能的实施方式,所述控制模块还用于控制所述指定存储空间的工作状态,所述工作状态包括启用或旁路;所述控制模块还用于在所述指定存储空间的工作状态为启用的情况下,若目标操作对应的目标地址区间为第一地址区间,则通过指定存储空间执行所述目标操作。
可选的,对于一种可能的实施方式,所述指定存储空间包括静态随机存取存储器。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行第一方面所述的方法。
本申请实施例提供的神经网络的数据处理方法、装置、电子设备及可读存储介质,第一缓存模块的读写速度小于所述第二缓存模块的读写速度,首先获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间;确定所述第二缓存模块中指定存储空间对应的第三地址区间;然后,基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间;最后,通过目标缓存模块执行目标操作。
由于专用的读取控制机制,要求专用高速缓存器阵列中每个专用高速缓存器单元都要保存完整的数据集。如果数据集规模超过了***分配给专用高速缓存器单元的存储空间,则将该超过存储空间的数据集存储到外部缓存器中,但是中央控制器直接到外部缓存器读写数据较慢,而本申请基于第一地址区间与第三地址区间的映射关系,将第一缓存模块中存储的第一数据存储到第二缓存模块的指定存储空间中,由于第一缓存模块的读写速度小于第二缓存模块的读写速度,也即是控制模块到指定存储空间读写的速度大于到第一缓存模块读写的速度。为此本申请通过将第一缓存模块存储的第一数据通过地址映射的方式同步到指定存储空间中,当控制模块需要访问第一地址区间对应的数据时,可以直接访问指定存储空间,大大减少了第一地址区间对应的第一数据存取的时间,提升了数据转移效率。
由于对芯片体积的严格要求,片上缓存的可用体积较小,为此第二缓存模块的体积较小,而且所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量,将不同的读写频率的数据存储到第二缓存模块会有不同的读写效果。相对于从第一存储模块直接读写数据,本申请将第一数据存储到第二缓存模块,减少了第一数据存取的时间,而且本申请将高频访问的第一数据存储到第二缓存模块,可以多次减少存取第一数据的时间,进一步提升了神经网络的数据处理速度。换言之,第一数据被访问的频率越高,神经网络处理的速度提升越大。
本申请的所述数据处理***部署于现场可编程阵列(Field Programmable LogicArray,FPGA),FPGA是一种可编程的硬件设备,可以通过配置位流实现不同的电路功能,FPGA可以根据需求重新分配第二缓存模块的指定存储空间的容量大小,实现了第二缓存模块的快速可重构,结合FPGA现场可编程的优势,可以达到快速定制资源利用最佳化的第二缓存模块,以提高神经网络的计算效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种神经网络的数据处理方法的方法流程图;
图2示出了本申请另一实施例提供的神经网络的数据处理方法的方法流程图;
图3示出了本申请又一实施例提供的神经网络的数据处理方法的方法流程图;
图4示出了本申请实施例提供的一种神经网络的数据处理***的结构框图;
图5示出了本申请另一实施例提供的神经网络的数据处理***的结构框图;
图6示出了本申请又一实施例提供的神经网络的数据处理***的结构框图;
图7示出了本申请还一实施例提供的神经网络的数据处理***的结构框图;
图8示出了本申请实施例提供的计算机可读存储介质的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
现有的处理器结构一般包括中央控制器、指令调度模块、计算模块、专用高速缓存器阵列和外部缓存器。中央控制器承担主线推理执行任务,负责推理数据的导入、运算的调度与监控、推理信息的传递等。所述指令调度模块负责将中央控制器分配的指令进行解析,并传递给计算模块中指定的计算单元进行运算。计算单元接收到计算指令需要从高速缓存器阵列的高速缓存器单元中读取数据进行运算,也会将计算得到的数据存储到对应的高速缓存器单元中。由于专用的读取控制机制,要求专用高速缓存器阵列中每个专用高速缓存器单元都要保存完整的数据集。如果数据集规模超过了***分配给专用高速缓存器单元的存储空间,则将该超过存储空间的数据集存储到外部缓存器中。外部缓存器采用的是非易失性存储器,其读写速度较慢且存储容量大。而高速缓存器单元采用的是易失性存储器,其读写速度较快且存储容量小。为此将超过存储空间的数据集存储到外部缓存器中,而不是存储在高速缓存器单元中,数据处理的过程中,增加了数据转移的时间,降低了数据处理的速度。
因此,本申请实施例中,提供了一种神经网络的数据处理方法、***及可读存储介质,用于解决或部分解决上述问题。
请参阅图1,图1示出了本申请实施例提供的一种神经网络的数据处理方法的方法流程图,该数据处理方法具体包括步骤S110至步骤S140。所述方法可以应用于数据处理***的控制模块,所述数据处理***部署于现场可编程阵列,所述数据处理***还包括第一缓存模块以及第二缓存模块,所述控制模块分别与所述第一缓存模块以及所述第二缓存模块连接,所述第一缓存模块与所述第二缓存模块连接,所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量。
需要说明的是,该数据处理***用于对神经网络的相关数据进行计算处理,通过控制模块执行本申请实施例中的方法步骤。其中,神经网络可以为前馈神经网络(Feedforward Neura l Networks,FNN)、循环神经网络(Recurrent Neura l Networks,RNN)、卷积神经网络(Convo l ut iona l Neura l Networks,CNN)以及生成对抗网络(Generat ive Adversar ia l Networks,GAN)中的一个。需要说明的是,神经网络还可以为其他类型的神经网络,在此对神经网络的种类不做具体限定。
一种示例性的,数据处理***对前馈神经网络中的相关数据进行计算处理,具体的,前馈神经网络中的相关数据包括偏置信息以及权重信息。
另一种示例性的,数据处理***对卷积神经网络中的相关数据进行计算处理,具体的,卷积神经网络中的相关数据包括各卷积层对应的卷积核数据、偏置信息以及权重信息。
其中,第一缓存模块与第二缓存模块为存储模块,可以用于存储数据,且第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量,示例性的,第一缓存模块可以为磁性存储器、闪存存储器或者动态随机存取存储器(Dynamic Random Access Memory,DRAM),第二缓存模块可以为静态随机存取存储器(Stat ic Random Access Memory,SRAM),第一缓存模块为外部缓存器,第二缓存模块为片上缓存器。所述第一缓存模块与第二缓存模块与所述控制模块连接,控制模块可以从第一缓存模块或第二缓存模块中读取计算需要的数据,控制模块也可以将计算的中间数据或结果数据写入到第一缓存模块与第二缓存模块中。
其中,第一缓存模块与第二缓存模块连接,可以通过总线接口连接至总线,以通过总线实现数据通信,同样的,控制模块分别与第一缓存模块以及第二缓存模块连接,也可以通过总线接口连接至总线。示例性的,总线可以为标准的AXI总线、AHB总线或Ava lon总线等,本实施例不作具体限定。
其中,总线是***的主要数据通道,用于连接处理器、内存、输入输出设备和其他***组件。数据线、地址线和控制线被集成到总线中,以实现不同组件之间的数据传输和通信。其中,数据线用于传输数据,地址线用于指示数据的位置,控制线用于控制数据的操作和执行。
步骤S110:获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间,所述神经网络对第一数据的访问频率高于对所述第二数据的访问频率。
其中,第一缓存模块中存储有第一数据与第二数据,所述第一数据对应的地址区间为第一地址区间,而第二数据对应的地址区间为第二地址区间,第一地址区间表示存储第一数据的存储单元的起始地址和结束地址之间的范围,第二地址区间表示存储第二数据的存储单元的起始地址和结束地址之间的范围。示例性的,第一地址区间为0x0000-0xF000,第二地址区间为0xF001-0xFFFF。
需要说明的是,本申请可以通过不同的方式确定第一地址区间与第二地址区间。
一种示例性的,先将待存储的数据存储到第一缓存模块,然后根据控制模块发出的配置信息确定第一数据与第二数据,根据第一数据确定第一地址区间,根据第二数据确定第二地址区间;其中,第一数据为计算神经网络需要高频访问的数据,第二数据为计算神经网络需要低频访问的数据。第一数据对应的地址区间为第一地址区间,第二数据对应的地址区间为第二地址区间。
一种示例性的,预先划分第一地址区间与第二地址区间,根据控制模块发出的配置信息与待存储的数据确定第一数据与第二数据,其中,第一数据为计算神经网络需要高频访问的数据,第二数据为计算神经网络需要低频访问的数据。然后将第一数据存储到第一地址区间对应的存储空间,将第二数据存储到第二地址区间对应的存储空间。
步骤S120:确定所述第二缓存模块中指定存储空间对应的第三地址区间。
其中,第二缓存模块包括指定存储空间,所述指定存储空间用于存储数据,指定存储空间存储的数据对应的地址区间为第三地址区间,第三地址区间表示指定存储空间的起始地址和结束地址之间的范围,示例性的,第三地址区间为0x0000-0xF000。需要说明的是,第二缓存模块中指定存储空间的容量可以根据用户的需求进行不同的设定,详细内容请参阅后续实施例。
需要说明的是,第二缓存模块不限于包括指定存储空间,还可以包括其他的存储空间。
步骤S130:基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间。
其中,所述第一地址区间与所述第三地址区间的映射关系可以为第一地址区间从起始地址开始依次将每个地址与第三地址区间从非起始地址开始依次将每个地址的映射关系。
示例性的,第一地址区间为0x0000-0xF000,第三地址区间为0x0000-0xFFFF,则所述映射关系为第一地址区间的起始地址0x0000与第三地址区间的非起始地址0x0003的对应关系,将所述第一地址区间的起始地址0x0000对应的数据存储到第三地址区间的非起始地址0x0003对应的空间内,按照第一地址区间的顺序依次将所有的第一数据存储到第二缓存模块中的指定存储空间内。
优选的,所述第一地址区间与所述第三地址区间的映射关系可以为第一地址区间的从起始地址开始依次将每个地址与第三地址区间从起始地址开始的每个地址的按顺序进行映射,可以最大化的利用指定存储空间。
示例性的,第一地址区间为0x0000-0xF000,第三地址区间为0x0000-0xFFFF,则所述映射关系为第一地址区间的起始地址0x0000与第三地址区间的起始地址0x0000的对应关系。将所述第一地址区间的起始地址0x0000对应的数据存储到第三地址区间的起始地址0x0000对应的空间内,按照第一地址区间的顺序依次将所有第一数据存储到第二缓存模块中的指定存储空间。
需要说明的是,第一地址区间与所述第三地址区间的映射关系可以是预先获取的,也可以根据控制模块发出的配置信息确定的。
步骤S140:通过目标缓存模块执行目标操作,所述目标操作为执行神经网络计算的操作步骤包含的操作,所述目标缓存模块基于所述目标操作对应的目标地址区间确定,所述目标操作包括读操作或写操作,所述目标地址区间包括第一地址区间或第二地址区间,所述目标缓存模块包括第一缓存模块以及第二缓存模块中的至少一个。
其中,基于目标操作对应的目标地址区间确定目标缓存模块,若目标操作对应的目标地址区间为第二地址区间,则通过第一缓存模块执行目标操作,若目标操作对应的目标地址区间为第一地址区间,则通过第一缓存模块与第二缓存模块执行目标操作,详细内容请参阅后续实施例。
本申请实施例提供的神经网络的数据处理方法,第一缓存模块的读写速度小于所述第二缓存模块的读写速度,首先获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间;确定所述第二缓存模块中指定存储空间对应的第三地址区间;然后,基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间;最后,通过目标缓存模块执行目标操作。
由于专用的读取控制机制,要求专用高速缓存器阵列中每个专用高速缓存器单元都要保存完整的数据集。如果数据集规模超过了***分配给专用高速缓存器单元的存储空间,则将该超过存储空间的数据集存储到外部缓存器中,但是中央控制器直接到外部缓存器读写数据较慢,而本申请基于第一地址区间与第三地址区间的映射关系,将第一缓存模块中存储的第一数据存储到第二缓存模块的指定存储空间中,由于第一缓存模块的读写速度小于第二缓存模块的读写速度,也即是控制模块到指定存储空间读写的速度大于到第一缓存模块读写的速度。为此本申请通过将第一缓存模块存储的第一数据通过地址映射的方式同步到指定存储空间中,当控制模块需要访问第一地址区间对应的数据时,可以直接访问指定存储空间,大大减少了第一地址区间对应的第一数据存取的时间,提升了数据转移效率。
由于对芯片体积的严格要求,片上缓存的可用体积较小,为此第二缓存模块的体积较小,而且所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量,将不同的读写频率的数据存储到第二缓存模块会有不同的读写效果。相对于从第一存储模块直接读写数据,本申请将第一数据存储到第二缓存模块,减少了第一数据存取的时间,而且本申请将高频访问的第一数据存储到第二缓存模块,可以多次减少存取第一数据的时间,进一步提升了神经网络的数据处理速度。换言之,第一数据被访问的频率越高,神经网络处理的速度提升越大。
本申请的所述数据处理***部署于现场可编程阵列,FPGA是一种可编程的硬件设备,可以通过配置位流实现不同的电路功能,FPGA可以根据需求重新分配第二缓存模块的指定存储空间的容量大小,实现了第二缓存模块的快速可重构,结合FPGA现场可编程的优势,可以达到快速定制资源利用最佳化的第二缓存模块,以提高神经网络的计算效率。
请参阅图2,图2示出了本申请实施例提供的一种神经网络的数据处理方法的方法流程图,该数据处理方法具体包括步骤S210至步骤S280。
步骤S210:获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间,所述神经网络对第一数据的访问频率高于对所述第二数据的访问频率。
步骤S220:确定所述第二缓存模块中指定存储空间对应的第三地址区间。
步骤S230:基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间。
其中,步骤S210至步骤S230在前述实施例中已经详细介绍,此处不再赘述。
步骤S240:判断目标操作对应的目标地址区间为第一地址区间或第二地址区间。
其中,执行神经网络计算的操作步骤包含所述目标操作,判断目标操作对应的目标地址区间为第一地址区间还是第二地址区间,用于根据目标地址区间确定目标缓存模块,通过目标缓存模块执行目标操作。
步骤S250:若目标操作对应的目标地址区间为第一地址区间,则判断目标操作为读操作或写操作。
其中,若目标操作对应的目标地址区间为第一地址区间,则表示目标操作访问的对象为第一地址区间对应的第一数据,而基于第一地址区间与第三地址区间的映射关系,已经将第一数据存储至第二缓存模块中的指定存储空间中,所以第一缓存模块与指定存储空间都存储了第一数据。其中,读操作为从第一地址区间对应的存储空间中读取第一数据,写操作为向第一地址区间对应的存储空间写入数据,读操作所涉及的指令与写操作所涉及的指令不同,为此需要明确目标操作为读操作还是写操作,以便明确执行目标操作的具体指令。
步骤S260:若目标操作为读操作,则从第二缓存模块的指定存储空间中读取所述读操作对应的需求数据。
其中,在目标操作对应的目标地址区间为第一地址区间的前提下,若目标操作为读操作,则表示需要对第一数据进行读操作,继续以前面介绍的实施例,第一缓存模块与指定存储空间都存储有第一数据,且控制模块到指定存储空间读写的速度大于到第一缓存模块读写的速度,则从第二缓存模块的指定存储空间中读取所述读操作对应的需求数据,而不是从第一缓存模块中读取所述需求数据,本申请提高了第一数据的读取的速度,提升了数据转移效率,从而加速了神经网络的整体计算性能。
其中,所述目标缓存模块基于所述目标操作对应的目标地址区间确定,所述目标操作包括读操作或写操作,所述目标地址区间包括第一地址区间或第二地址区间,所述目标缓存模块包括第一缓存模块以及第二缓存模块中的至少一个。
步骤S270:若目标操作为写操作,向第一缓存模块以及第二缓存模块的指定存储空间中写入所述写操作对应的待写入数据。
其中,在目标操作对应的目标地址区间为第一地址区间的前提下,若目标操作为写操作,则表示需要将控制模块输出的待写入数据进行写操作写入第一地址区间对应的存储空间。
需要说明的是,初始状态时,本申请通过第一地址区间与第三地址区间的映射关系,将第一数据复制到指定存储空间,可以通过从指定存储空间中读取数据实现提升数据读取速度。但是控制模块进行工作后,会将新的数据写入第一地址区间对应的存储空间中,则第一地址空间对应的数据相对于初始状态的第一数据有变化,则指定存储空间的数据应做出同步的改变,即若目标操作为写操作,向第一缓存模块以及第二缓存模块的指定存储空间中写入所述写操作对应的待写入数据。
本申请进行写操作时,通过让指定存储空间的数据与第一地址区间对应的数据同步,使读操作能够正确的读取指定存储空间对应的数据,以此达到提升读取数据的速度的目的。
步骤S280:若目标操作对应的目标地址区间为第二地址区间,通过第一缓存模块执行目标操作。
其中,若目标操作对应的目标地址区间为第二地址区间,则表示目标操作对应的数据为第二数据,第二数据存储在第一缓存模块,则通过第一缓存模块执行目标操作。具体的目标操作为读操作或写操作,当目标操作为读操作时,通过目标缓存模块执行目标操作则表示通过第一缓存模块执行读操作,也即是从第一缓存模块读取所述读操作对应的需求数据。当目标操作为读写操作时,通过目标缓存模块执行目标操作则表示通过第一缓存模块执行写操作,也即是向第一缓存模块中写入所述写操作对应的待写入数据。
本申请实施例提供的数据处理方法,本申请根据第一地址区间与第三地址区间的映射关系,将第一数据复制到指定存储空间,然后写入数据到第一地址区间对应的存储空间时,将待写入数据分别写入到第一缓存模块与指定存储空间中,实现了指定存储空间与第一地址区间对应的存储空间的实时同步。当目标操作为读操作时,直接从第二缓存模块的指定存储空间中读取读操作对应的需求数据,提高了数据读取的速度,也提高了整体的计算性能。
请参阅图3,图3示出了本申请实施例提供的一种神经网络的数据处理方法的方法流程图,该数据处理方法具体包括步骤S310至步骤S360。
步骤S310:基于需求存储容量与第二缓存模块可分配的存储容量确定目标容量。
其中,所述需求存储容量表示控制模块运行时需要的存储容量,也可以表示控制模块运行时需要的存储容量的最大值,第二缓存模块可分配的存储容量可以表示第二缓存模块可分配的存储容量的最大值。
一种可选实施例中,基于需求存储容量的最大值与第二缓存模块可分配的存储容量的最大值确定目标容量,所述目标容量为需求存储容量的最大值与第二缓存模块可分配存储容量的最大值中的较小的值。示例性的,需求存储容量的最大值为200千字节,第二缓存模块可分配的存储容量的最大值为210千字节,则目标容量可以为200千字节。示例性的,需求存储容量的最大值为200千字节,第二缓存模块可分配的存储容量的最大值为110千字节,则目标容量可以为110千字节。
步骤S320:基于所述目标容量配置所述第二缓存模块,得到指定存储空间。
其中,由于所述数据处理***部署于FPGA,FPGA根据目标容量配置所述第二缓存模块,得到指定存储空间,使得指定存储空间的容量小于或等于目标容量。
步骤S330:获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间,所述神经网络对第一数据的访问频率高于对所述第二数据的访问频率。
步骤S340:确定所述第二缓存模块中指定存储空间对应的第三地址区间。
步骤S350:基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间。
步骤S360:通过目标缓存模块执行目标操作,所述目标操作为执行神经网络计算的操作步骤包含的操作,所述目标缓存模块基于所述目标操作对应的目标地址区间确定,所述目标操作包括读操作或写操作,所述目标地址区间包括第一地址区间或第二地址区间,所述目标缓存模块包括第一缓存模块以及第二缓存模块中的至少一个。
其中,步骤S330至步骤S360在前述实施例中已经详细介绍,此处不再赘述。
本申请实施例提供的数据处理方法,首先基于需求存储容量与第二缓存模块可分配的存储容量确定目标容量,基于所述目标容量配置所述第二缓存模块,得到指定存储空间,然后,获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间;确定所述第二缓存模块中指定存储空间对应的第三地址区间;其次,基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间;最后,通过目标缓存模块执行目标操作。可以提高数据读取的速度,提高整体的计算性能。
本申请的指定存储空间是的可重构的,允许在不需要对处理器架构做任何修改的情况下,可以重新分配第二缓存模块的存储空间,适配不同硬件平台下的快速调整。
本申请在FPGA中部署本申请的数据处理***,可以结合FPGA现场可编程芯片的优势,达到快速定制资源利用最高的第二缓存模块。
请参阅图4,图4示出了本申请实施例提供的一种神经网络的数据处理***400的结构框图,所述数据处理***400部署于现场可编程阵列,所述数据处理***400包括控制模块430、第一缓存模块410以及第二缓存模块420,所述控制模块430分别与所述第一缓存模块410以及所述第二缓存模块420连接,所述第一缓存模块410与所述第二缓存模块420连接,所述第一缓存模块410的读写速度小于所述第二缓存模块420的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量。所述控制模块用执行前面所述的数据处理方法执行目标操作。
需要说明的是,通过控制模块执行本申请所述的数据处理方法,例如该数据可以为神经网络相关的数据。
其中,第一缓存模块与第二缓存模块为存储模块,可以用于存储数据,且第一缓存模块的读写速度小于所述第二缓存模块的读写速度,示例性的,第一缓存模块可以为动态随机存取存储器(Dynamic Random Access Memory,DRAM),第二缓存模块可以为静态随机存取存储器(Stat ic Random Access Memory,SRAM),第一缓存模块与第二缓存模块都为外部缓存器。所述第一缓存模块与第二缓存模块与所述控制模块连接,控制模块可以从第一缓存模块或第二缓存模块中读取计算需要的数据,控制模块也可以将计算的中间数据或结果数据写入到第一缓存模块与第二缓存模块中。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前面所述的数据处理方法的具体过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参阅图5,图5示出了本申请实施例提供的一种神经网络的数据处理***500的结构框图,所述第二缓存模块520包括直接存储访问控制器521,所述直接存储访问控制器521与所述第一缓存模块410连接;所述直接存储访问控制器用于获取第一数据,并将所述第一数据写入至所述指定存储空间522。
需要说明的是,第二缓存模块包括直接存储访问控制器511与指定存储空间522,所述直接存储访问控制器与所述第一缓存模块以及所述指定存储空间连接,所述直接存储访问控制器511用于获取第一数据,并将所述第一数据写入至所述指定存储空间522,控制模块430可以直接从指定存储空间中读取数据。当目标操作为读操作时,直接从第二缓存模块的指定存储空间中读取读操作对应的需求数据,提高了数据读取的速度,也提高了整体的计算性能。
优选的,所述控制模块还用于控制所述指定存储空间的工作状态,所述工作状态包括启用或旁路。所述控制模块还用于在所述指定存储空间的工作状态为启用的情况下,若目标操作对应的目标地址区间为第一地址区间,则通过指定存储空间执行所述目标操作。
需要说明的是,指定存储空间的工作状态为启用的情况下,表示指定存储空间与第一地址区间对应的数据实时同步,控制模块可以通过直接访问指定存储空间进行提速。指定存储空间的工作状态为旁路的情况下,表示控制模块不能访问指定存储空间。
其中,可以通过启用寄存器控制指定存储空间的工作状态,示例性的,启用寄存器置1时,控制模块可以通过直接访问指定存储空间进行提速。启用寄存器置0时,控制模块不能访问指定存储空间。
请参阅图6,图6示出了本申请实施例提供的一种神经网络的数据处理***600的结构框图,包括控制模块630、第一缓存模块410以及第二缓存模块520,其中,控制模块630包括神经网络中央控制器631、指令调度模块632、专用神经层阵列633、专用高速缓存器阵列634,控制模块630与第一缓存模块410以及第二缓存模块520连接,第一缓存模块410与第二缓存模块520连接。
其中,神经网络中央控制器631承担神经网络模型主线推理执行任务,实现推理数据的导入、各神经层运算的调度与监控、推理信息的传递等功能,指令调度模块632将中央控制器分配的神经层指令进行解析,并传递给指定的专用神经层单元进行运算,专用神经层阵列633由各种类型的专用神经层单元组成,用于执行不同类型神经层的加速运算,专用高速缓存器阵列634由各种规格的专用高速缓存器单元组成,专用高速缓存器单元为内部静态随机存取存储器,一般用来存储数据规模较小,并且需要重复存取的数据集,包括偏置信息、权重信息等。
其中,第一缓存模块410采用的是外部动态随机存取存储器,一般用来存储数据规模较大,或不需要重复存取的数据集,包括***运行栈、过程缓存、图像信息等。具体的,第一缓存模块410存储有第一数据与第二数据,第一数据对应的地址区间为第一地址区间,第二数据对应的地址区间为第二地址区间。
其中,第二缓存模块520包括直接存储访问控制器521与指定存储空间522,所述直接存储访问控制器521用于获取第一数据,并将所述第一数据写入至所述指定存储空间522。
具体的,第一地址区间表示需要进行存储访问加速的内存区域,也同样表示指定存储空间522中需要重复存取的数据集区域。从分配第一数据的内存开始后,到释放存储第一数据的内存结束前,控制模块对第一数据做的任何数据修改,也对指定存储空间522对应的数据进行同步修改,以保持第一地址区间对应的数据与指定存储空间522对应的数据实时同步。
其中,直接存储访问控制器521的主要目的是将第一缓存模块410中的第一数据与第二缓存模块520的指定存储空间522进行内存映射,实现内存映射以后,控制模块对第一地址区间对应的数据的内存访问,将直接从指定存储空间中访问;控制模块对第二地址区间对应的数据的内存访问,将直接从第一缓存模块中访问。通过这种方式,将直接提高第一地址区间对应区域的数据转移效率,从而提升神经层的计算性能。
请参阅图7,图7示出了本申请实施例提供的一种神经网络的数据处理***700的结构框图,该数据处理***700包括控制模块、第一缓存模块410以及第二缓存模块720,其中,控制模块包括神经网络中央控制器631、专用神经层阵列633,控制模块通过总线与第二缓存模块720连接,第一缓存模块410通过总线与第二缓存模块720连接。其中指定存储空间为随机存取存储器。
由图7可知,第二缓存模块720包括定制指令接口721、控制寄存器722、主总线读接口723、直接存储访问控制器724、随机存取存储器725、从总线读接口726、读地址仲裁器727、从总线写接口728、写地址仲裁器729及主总线写接口7210。
神经网络中央控制器631通过总线与定制指令接口721连接,定制指令接口721与控制寄存器722连接,专用神经层阵列633通过总线与第二缓存模块720连接。
其中,所述定制指令接口721用于实现定制指令接口的协议功能,一方面接收神经网络中央控制器631下发的配置管理信息并对其进行解析,根据解析的内容对控制寄存器722中对应的寄存器进行更新;另一方面定制指令接口向神经网络中央控制器631上传控制寄存器722中对应的寄存器状态的变更信息。
其中,所述随机存取存储器725可以为静态随机存取存储器,用于实现数据处理***内部快速存储的功能,通过硬件HDL设计重构静态随机存取存储器的位宽及指定存储空间的深度。其中,硬件HDL设计是研发设计时候的静态配置参数,根据静态配置参数确定芯片内的资源结构。
其中,所述主总线读接口723用于实现主总线读接口的协议功能,主总线读接口723包含读数据访问通道复用功能,可以同时响应来自于直接存储访问控制器724和来自于读地址仲裁器727的读数据访问请求。
直接存储访问控制器724用于读取第一缓存模块中的第一数据,并将读取的第一数据写入到随机存取存储器725中。
其中,控制寄存器722包括多种寄存器,例如内存映射使能寄存器、高速缓存模式启用寄存器等。示例性的,内存映射使能寄存器置1,表示直接存储访问控制器724可以读取第一缓存模块中的第一数据,并将读取的第一数据写入到随机存取存储器725中。内存映射使能寄存器置0,表示直接存储访问控制器724不能读取第一缓存模块中的第一数据,也就是不能实现内存映射。高速缓存模式启用寄存器置1,表示读地址仲裁器727与写地址仲裁器729工作,具体的工作原理请参阅下面的实施例,高速缓存模式启用寄存器置0,表示读地址仲裁器727与写地址仲裁器729皆不工作。
其中,所述从总线读接口726负责从总线读接口的协议功能,是第二缓存模块与第一缓存模块进行读数据访问的窗口。所述读地址仲裁器727用于读数据访问仲裁,判断读访问的读地址是否在第一地址区间内,如果是则将读请求转发到随机存取存储器725进行快速数据读取,如果不是则将读请求转发到第一缓存模块进行常规数据读取。当高速缓存模式启用寄存器为0时,将忽略读地址仲裁器,所有读请求都会转发到第一缓存模块进行常规数据读取。
其中,所述从总线写接口728用于实现从总线写接口的协议功能,是第二缓存模块与专用神经层阵列633进行写数据访问的窗口。所述写地址仲裁器729承担写数据访问仲裁功能,判断写访问的写地址是否在第一地址区间内,如果是则将写请求转发到随机存取存储器725进行快速数据写入,如果不是则将写请求转发到第一缓存模块进行常规数据写入。所述主总线写接口610负责主总线写接口的协议功能,是第二缓存模块与第一缓存模块进行写数据访问的窗口。
基于图7提供的数据处理***700的结构框图,实现数据处理方法如下:
首先,定制指令接口721根据神经网络中央控制器631下发的配置管理信息对控制寄存器722中对应的寄存器进行更新;根据控制寄存器的信息对第一缓存模块410与第二缓存模块720进行配置,确定第一数据对应的第一地址区间、第二数据对应的第二地址区间以及指定存储模块对应的第三地址区间。
然后,内存映射使能寄存器置1,通过直接存储访问控制器724读取第一缓存模块410中的第一数据,并将读取的第一数据写入到随机存取存储器725中。将第一数据全部复制到随机存取存储器725中后,内存映射使能寄存器置0。
最后,如果需要进入高速缓存模式,则将高速缓存模式启用寄存器置1,当专用神经层阵列633发出读请求时,读地址仲裁器727判断专用神经层阵列633的读请求的读地址是否在第一地址区间内,如果是则将读请求转发到随机存取存储器725进行快速数据读取,如果不是则将读请求转发到第一缓存模块进行常规数据读取。当专用神经层阵列633发出读写请求时,所述写地址仲裁器729判断专用神经层阵列633的写请求的写地址是否在第一地址区间内,如果是则将写请求转发到随机存取存储器725与第一缓存模块410进行数据写入,如果不是则将写请求转发到第一缓存模块进行常规数据写入。
如果不需要进入高速缓存模式,则将高速缓存模式启用寄存器置0,当高速缓存模式启用寄存器为0时,则旁路读地址仲裁器与写地址仲裁器,所有读请求都会转发到第一缓存模块进行常规数据读取,所有写请求都会转发到第一缓存模块进行常规数据写入。
请参阅图8,图8示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-trans itory computer-readab le storage med ium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种神经网络的数据处理方法,其特征在于,应用于数据处理***的控制模块,所述数据处理***部署于现场可编程阵列,所述数据处理***还包括第一缓存模块以及第二缓存模块,所述控制模块分别与所述第一缓存模块以及所述第二缓存模块连接,所述第一缓存模块与所述第二缓存模块连接,所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量,所述方法包括:
获取所述第一缓存模块中存储的第一数据对应的第一地址区间以及第二数据对应的第二地址区间,所述神经网络对第一数据的访问频率高于对所述第二数据的访问频率;
确定所述第二缓存模块中指定存储空间对应的第三地址区间;
基于所述第一地址区间与所述第三地址区间的映射关系,将所述第一数据存储至所述第二缓存模块中的指定存储空间;
通过目标缓存模块执行目标操作,所述目标操作为执行神经网络计算的操作步骤包含的操作,所述目标缓存模块基于所述目标操作对应的目标地址区间确定,所述目标操作包括读操作或写操作,所述目标地址区间包括第一地址区间或第二地址区间,所述目标缓存模块包括第一缓存模块以及第二缓存模块中的至少一个。
2.根据权利要求1所述的方法,其特征在于,所述通过目标缓存模块执行目标操作,包括:
判断目标操作对应的目标地址区间为第一地址区间或第二地址区间;
若目标操作对应的目标地址区间为第一地址区间,则判断目标操作为读操作或写操作;
若目标操作为读操作,则从第二缓存模块的指定存储空间中读取所述读操作对应的需求数据。
3.根据权利要求2所述的方法,其特征在于,所述若目标操作对应的目标地址区间为第一地址区间,则判断目标操作为读操作或写操作之后,还包括:
若目标操作为写操作,向第一缓存模块以及第二缓存模块的指定存储空间中写入所述写操作对应的待写入数据。
4.根据权利要求2所述的方法,其特征在于,所述判断目标操作对应的目标地址区间为第一地址区间或第二地址区间之后,还包括:
若目标操作对应的目标地址区间为第二地址区间,通过第一缓存模块执行目标操作。
5.根据权利要求1所述的方法,其特征在于,所述确定所述第二缓存模块中指定存储空间对应的第三地址区间之前,还包括:
基于需求存储容量与第二缓存模块可分配的存储容量确定目标容量;
基于所述目标容量配置所述第二缓存模块,得到指定存储空间。
6.一种神经网络的数据处理***,其特征在于,所述数据处理***部署于现场可编程阵列,所述数据处理***包括控制模块、第一缓存模块以及第二缓存模块,所述控制模块分别与所述第一缓存模块以及所述第二缓存模块连接,所述第一缓存模块与所述第二缓存模块连接,所述第一缓存模块的读写速度小于所述第二缓存模块的读写速度,所述第一缓存模块的存储容量大于所述第二缓存模块的存储容量;
所述控制模块用于基于权利要求1-5任一项所述的方法执行目标操作。
7.根据权利要求6所述的***,其特征在于,所述第二缓存模块包括直接存储访问控制器,所述直接存储访问控制器与所述第一缓存模块连接;
所述直接存储访问控制器用于获取第一数据,并将所述第一数据写入至所述指定存储空间。
8.根据权利要求6所述的***,其特征在于,所述控制模块还用于控制所述指定存储空间的工作状态,所述工作状态包括启用或旁路;
所述控制模块还用于在所述指定存储空间的工作状态为启用的情况下,若目标操作对应的目标地址区间为第一地址区间,则通过指定存储空间执行所述目标操作。
9.根据权利要求6所述的***,其特征在于,所述指定存储空间包括静态随机存取存储器。
10.一种计算机可读存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-5任一项所述的方法。
CN202410321693.8A 2024-03-20 2024-03-20 神经网络的数据处理方法、***及可读存储介质 Pending CN118276772A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410321693.8A CN118276772A (zh) 2024-03-20 2024-03-20 神经网络的数据处理方法、***及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410321693.8A CN118276772A (zh) 2024-03-20 2024-03-20 神经网络的数据处理方法、***及可读存储介质

Publications (1)

Publication Number Publication Date
CN118276772A true CN118276772A (zh) 2024-07-02

Family

ID=91649175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410321693.8A Pending CN118276772A (zh) 2024-03-20 2024-03-20 神经网络的数据处理方法、***及可读存储介质

Country Status (1)

Country Link
CN (1) CN118276772A (zh)

Similar Documents

Publication Publication Date Title
US9734056B2 (en) Cache structure and management method for use in implementing reconfigurable system configuration information storage
US10783104B2 (en) Memory request management system
CN109388590B (zh) 提升多通道dma访问性能的动态缓存块管理方法和装置
JP2004529403A (ja) ユーザによる構成可能なオンチップメモリシステム
WO2024036985A1 (zh) 存储***及其计算存储处理器、固体硬盘和数据读写方法
CN115080455B (zh) 一种计算机芯片、计算机板卡、存储空间分配方法及装置
CN114827048A (zh) 一种动态可配高性能队列调度方法、***、处理器及协议
WO2022095439A1 (zh) 一种用于数据处理的硬件加速***及芯片
CN116776781B (zh) 一种寄存器参数的管理方法、***、设备及存储介质
US10031884B2 (en) Storage apparatus and method for processing plurality of pieces of client data
CN118276772A (zh) 神经网络的数据处理方法、***及可读存储介质
KR20210061583A (ko) 적응형 딥러닝 가속 장치 및 방법
JP2023127069A (ja) 情報処理装置およびメモリアクセス制御方法
JP2023527770A (ja) メモリにおける推論
CN111694777B (zh) 基于PCIe接口的DMA传输方法
CN111651380A (zh) 一种基于描述符表的参数加载方法
KR102335798B1 (ko) 다수의 클라이언트 데이터를 처리하는 저장 장치 및 방법
CN114610661B (zh) 数据处理装置、方法和电子设备
CN117785755B (zh) Cxl内存模组及资源配置方法、控制芯片、介质和***
US20230111351A1 (en) Topology of accelerators
WO2023142114A1 (zh) 数据处理方法、装置以及电子设备
US11094368B2 (en) Memory, memory chip and memory data access method
CN117806833B (zh) 一种数据处理***、方法及介质
WO2024001414A1 (zh) 报文的缓存方法、装置、电子设备及存储介质
CN111506518B (zh) 一种数据存储控制方法及装置

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination