CN113094118B - 数据处理系统、方法、装置、计算机设备和存储介质 - Google Patents

数据处理系统、方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113094118B
CN113094118B CN202110463565.3A CN202110463565A CN113094118B CN 113094118 B CN113094118 B CN 113094118B CN 202110463565 A CN202110463565 A CN 202110463565A CN 113094118 B CN113094118 B CN 113094118B
Authority
CN
China
Prior art keywords
processing
module
data
processing module
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110463565.3A
Other languages
English (en)
Other versions
CN113094118A (zh
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.)
Shenzhen Smartmore Technology Co Ltd
Shanghai Smartmore Technology Co Ltd
Original Assignee
Shenzhen Smartmore Technology Co Ltd
Shanghai Smartmore 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 Shenzhen Smartmore Technology Co Ltd, Shanghai Smartmore Technology Co Ltd filed Critical Shenzhen Smartmore Technology Co Ltd
Priority to CN202110463565.3A priority Critical patent/CN113094118B/zh
Publication of CN113094118A publication Critical patent/CN113094118A/zh
Application granted granted Critical
Publication of CN113094118B publication Critical patent/CN113094118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Advance Control (AREA)

Abstract

本申请涉及一种数据处理系统、方法、装置、计算机设备和存储介质。所述系统包括:外部存储模块、控制模块和数据处理模块,控制模块分别与外部存储模块和数据处理模块通信连接,数据处理模块包括至少两个第一处理模块,每个第一处理模块包括内部存储模块和第二处理模块;外部存储模块用于存储待处理数据和各个第二处理模块的配置参数;控制模块用于从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置;控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果。采用本方法,能够提高片间通信资源的资源利用率。

Description

数据处理系统、方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据处理系统、方法、装置、计算机设备和存储介质。
背景技术
在数据处理技术领域中,经常利用FPGA(Field Programmable Gate Array,现场可编程门阵列)来执行卷积神经网络中的相关卷积运算。
相关技术中,在将一个卷积神经网络部署到分配有多个SLR(Super LogicRegion,超级逻辑域)的FPGA上时,一般是将数据直接存储到FPGA的外部存储装置上,再从外部存储装置中读取出该数据,并将该数据存储至FPGA中外部存储装置对应的SLR;但是,在进行卷积运算时,FPGA中的其他SLR需要从外部存储装置对应的SLR中读取其他SLR所需的数据,这个读取操作会造成非常多的一对多走线,从而占用FPGA中非常多的SLR间通信资源,而SLR间通信资源是FPGA中的片间通信资源的一种,且FPGA中的片间通信资源有限,导致片间通信资源的资源利用率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高片间通信资源的资源利用率的数据处理系统、方法、装置、计算机设备和存储介质。
一种数据处理系统,所述系统包括:外部存储模块、控制模块和数据处理模块,所述控制模块分别与所述外部存储模块和所述数据处理模块通信连接,所述数据处理模块包括至少两个第一处理模块,每个第一处理模块包括内部存储模块和第二处理模块;
所述外部存储模块,用于存储输入的待处理数据和各个所述第一处理模块中的第二处理模块的配置参数;
所述控制模块,用于从所述外部存储模块中读取所述待处理数据和各个所述第一处理模块中的第二处理模块的配置参数,并分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置;控制各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
在其中一个实施例中,所述外部存储模块包括所述至少两个第一处理模块对应的第一外部存储模块;
各个所述第一外部存储模块,用于存储所述待处理数据和对应的第一处理模块中的第二处理模块的配置参数;
所述控制模块,还用于分别从各个所述第一处理模块对应的第一外部存储模块,读取所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数。
在其中一个实施例中,所述控制模块,还用于将各个所述第一处理模块中的第二处理模块的数据处理结果,发送至对应的第一处理模块中的内部存储模块,并分别从各个所述第一处理模块中的内部存储模块中读取出对应的第一处理模块中的第二处理模块的数据处理结果,将各个所述第一处理模块中的第二处理模块的数据处理结果,发送至所述外部存储模块。
在其中一个实施例中,所述外部存储模块,还用于接收各个所述第一处理模块中的第二处理模块的新的配置参数,并存储新的待处理数据和各个所述第一处理模块中的第二处理模块的新的配置参数;所述新的待处理数据由各个所述第一处理模块中的第二处理模块的数据处理结果组成。
在其中一个实施例中,所述控制模块,还用于若识别到所述系统中各个所述第一处理模块中的第二处理模块的数据处理结果,为所述系统对应的卷积神经网络中的最后一层卷积层的数据处理结果,则根据各个所述第一处理模块中的第二处理模块的数据处理结果,确定所述待处理数据的目标处理结果,并将所述待处理数据的目标处理结果存储至所述外部存储模块。
在其中一个实施例中,所述外部存储模块为双倍速率同步动态随机存储器,所述控制模块为控制器,所述数据处理模块为多现场可编程门阵列,所述第一处理模块为单现场可编程门阵列,所述第二处理模块为卷积运算模块,所述内部存储模块为随机存取存储器。
一种数据处理方法,所述方法包括:
从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;
从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置;
控制各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
一种数据处理装置,所述装置包括:
读取单元,用于从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
发送单元,用于分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;
配置单元,用于从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置;
处理单元,用于控制各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;
从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置;
控制各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;
从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置;
控制各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
上述数据处理系统、方法、装置、计算机设备和存储介质,通过从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;然后分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;接着从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置;最后控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果;这样,将待处理数据和各个第一处理模块中的第二处理模块的配置参数从外部存储模块缓存到每个第一处理模块中的内部存储模块中,使得每个第一处理模块中的第二处理模块可以直接从该第一处理模块中的内部存储模块读取数据,从而避免了第一处理模块之间的数据传输,进而减少了片间通信资源的使用,有利于提高片间通信资源的资源利用率。
附图说明
图1为一个实施例中数据处理系统的结构框图;
图2为另一个实施例中数据处理系统的结构框图;
图3为又一个实施例中数据处理系统的结构框图;
图4为再一个实施例中数据处理系统的结构框图;
图5为一个实施例中数据处理方法的流程示意图;
图6为一个实施例中数据处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种数据处理系统,该系统包括:外部存储模块101、控制模块102和数据处理模块103,控制模块102分别与外部存储模块101和数据处理模块103通信连接,数据处理模块103包括至少两个第一处理模块104,每个第一处理模块104包括内部存储模块105和第二处理模块106;外部存储模块101,用于存储输入的待处理数据和各个第一处理模块104中的第二处理模块106的配置参数;控制模块102,用于从外部存储模块101中读取待处理数据和各个第一处理模块104中的第二处理模块106的配置参数,并分别将待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,发送至对应的第一处理模块104中的内部存储模块105;从各个第一处理模块104中的内部存储模块105中读取出待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,并根据配置参数对相应的第一处理模块104中的第二处理模块106进行配置;控制各个配置后的第二处理模块106对待处理数据进行卷积处理,得到对应的数据处理结果。
其中,外部存储模块101是指用于存储待处理数据和各个第一处理模块104中的第二处理模块106的配置参数的存储模块,可以是DDR(Double Data Rate,双倍速率同步动态随机存储器),也可以是已配置好的ROM(Read-Only Memory,只读存储器),还可以是其他在第一处理模块外部的具有存储功能的模块,具体本申请不做限定。需要说明的是,外部存储模块101的数量可以是一个或者多个,外部存储模块101和内部存储模块105的对应关系可以是一对多也可以是一对一。
其中,待处理数据是指需要进行处理(比如卷积处理)的数据,比如待处理图像、待处理文本、待处理视频等;待处理图像是指需要识别出图像类别(或者图像内容)的图像。第二处理模块106的配置参数,是指第二处理模块106进行卷积运算所需要的参数,比如权重值、偏置值等。数据处理结果是指对待处理数据进行卷积运算后得到的结果,可以是特征图,也可以是概率值,还可以是语义信息,具体根据待处理数据的类型所确定。
其中,控制模块102是指用于控制整个数据处理过程中的数据流读写和计算的模块,比如控制器;需要说明的是,控制模块102可以设置于第一处理模块104外部,也可以设置于第一处理模块104内部。
其中,数据处理模块103是指部署有卷积神经网络的用于进行数据处理的模块,可以是多现场可编程门阵列,比如FPGA,具体是指配置有两个或者两个以上第一处理模块104的模块,比如配置有两个或者两个以上SLR的FPGA。需要说明的是,FPGA是一种半导体集成电路,支持对设备中的大量电气功能进行更改,可由设计工程师更改,也可在PCB(PrintedCircuit Board,印制电路板)装配过程中更改,还可在设备发运到用户手中后进行“现场”更改。
其中,第一处理模块104是指包括内部存储模块105和第二处理模块106的用于进行部分数据处理的模块,可以是单现场可编程门阵列,比如SLR。需要说明的是,SLR是一种特定FPGA芯片上的区域的称呼,该特定FPGA芯片中有多个SLR。
其中,内部存储模块105是指用于缓存待处理数据和相应的第二处理模块106的配置参数的存储模块,可以是RAM(Random Access Memory,随机存取存储器),也可以是其他在第一处理模块内部的具有存储功能的模块,具体本申请不做限定。需要说明的是,每个第一处理模块104中,内部存储模块105的数量可以是一个或者多个。
其中,第二处理模块106是指完成一个或多个卷积通道的卷积运算的模块,比如卷积运算模块;需要说明的是,每个第一处理模块104中,第二处理模块106的数量可以是一个或者多个。
具体地,参考图1,控制模块102首先从外部存储模块101中读取待处理数据和各个第一处理模块104中的第二处理模块106的配置参数,并分别将待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,发送至对应的第一处理模块104中的内部存储模块105,通过各个第一处理模块104中的内部存储模块105缓存待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数;接着,控制模块102从各个第一处理模块104中的内部存储模块105中读取出待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,并根据各个第一处理模块104中的第二处理模块106的配置参数,对相应的第一处理模块104中的第二处理模块106进行配置,得到各个配置后的第二处理模块106,比如配置第二处理模块106的权重值、偏置值等;最后,控制模块102控制各个配置后的第二处理模块106对待处理数据进行卷积处理,得到各个配置后的第二处理模块106对应的数据处理结果。这样,整个数据处理过程中,数据处理系统中的各个第一处理模块之间无需进行数据交互,从而减少了片间通信资源的使用,进而提高了片间通信资源的资源利用率。
需要说明的是,上述实施例是完成一次卷积运算的过程,后续卷积运算的过程跟上述实施例类似,在此不再具体赘述。
上述数据处理系统,通过从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;然后分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;接着从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置;最后控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果;这样,将待处理数据和各个第一处理模块中的第二处理模块的配置参数从外部存储模块缓存到每个第一处理模块中的内部存储模块中的,使得每个第一处理模块中的第二处理模块可以直接从该第一处理模块中的内部存储模块读取数据,从而避免了第一处理模块之间的数据传输,进而减少了片间通信资源的使用,有利于提高片间通信资源的资源利用率。
在一个实施例中,控制模块102,还用于将各个第一处理模块104中的第二处理模块106的数据处理结果,发送至对应的第一处理模块104中的内部存储模块105,并分别从各个第一处理模块104中的内部存储模块105中读取出对应的第一处理模块104中的第二处理模块106的数据处理结果,将各个第一处理模块104中的第二处理模块106的数据处理结果,发送至外部存储模块101。
其中,内部存储模块105还可以缓存对应的第一处理模块104中的第二处理模块106的数据处理结果;外部存储模块101还可以存储各个第一处理模块104中的第二处理模块106的数据处理结果。
具体地,参考图1,在控制模块102控制各个配置后的第二处理模块106对待处理数据进行卷积处理,得到各个配置后的第二处理模块106对应的数据处理结果之后,控制模块102还可以将各个第一处理模块104中的第二处理模块106的数据处理结果,发送至对应的第一处理模块104中的内部存储模块105,通过各个第一处理模块104中的内部存储模块105缓存对应的数据处理结果;然后,控制模块102分别从各个第一处理模块104中的内部存储模块105中读取出对应的第一处理模块104中的第二处理模块106的数据处理结果;最后,控制模块102将各个第一处理模块104中的第二处理模块106的数据处理结果,发送至外部存储模块101,通过外部存储模块101存储各个第一处理模块104中的第二处理模块106的数据处理结果。
在本实施例中,由于同一层卷积网络内各个通道的输入数据都相同,那么通过外部存储模块101存储各个第一处理模块104中的第二处理模块106的数据处理结果,有利于后续通过控制模块102将外部存储模块101中存储的各个第一处理模块104中的第二处理模块106的数据处理结果,作为新的待处理数据,缓存至各个第一处理模块104中的内部存储模块105,使得每个第一处理模块104中的第二处理模块106可以直接从该第一处理模块104中的内部存储模块105读取新的待处理数据,从而避免了第一处理模块之间的数据传输,进一步减少了片间通信资源的使用。
在一个实施例中,外部存储模块101,还用于接收各个第一处理模块104中的第二处理模块106的新的配置参数,并存储新的待处理数据和各个第一处理模块104中的第二处理模块106的新的配置参数;新的待处理数据由各个第一处理模块104中的第二处理模块106的数据处理结果组成。
其中,每次卷积运算时,各个第一处理模块104中的第二处理模块106的配置参数是不一样的,所以需要通过外部存储模块101获取并存储各个第一处理模块104中的第二处理模块106的新的配置参数。
具体地,参考图1,在控制模块102分别从各个第一处理模块104中的内部存储模块105中读取出对应的第一处理模块104中的第二处理模块106的数据处理结果之后,控制模块102将各个第一处理模块104中的第二处理模块106的数据处理结果进行组合,得到新的待处理数据,并将新的待处理数据发送至外部存储模块101,通过外部存储模块101存储新的待处理数据;同时,通过外部存储模块101接收并存储输入的各个第一处理模块104中的第二处理模块106的新的配置参数,比如新的权重值、偏置值等。
进一步地,通过控制模块102从外部存储模块101中读取新的待处理数据和各个第一处理模块104中的第二处理模块106的新的配置参数,并分别将新的待处理数据和相应的第一处理模块104中的第二处理模块106的新的配置参数,发送至对应的第一处理模块104中的内部存储模块105;从各个第一处理模块104中的内部存储模块105中读取出新的待处理数据和相应的第一处理模块104中的第二处理模块106的新的配置参数,并根据新的配置参数对相应的第一处理模块104中的第二处理模块106进行配置;控制各个配置后的第二处理模块106对新的待处理数据进行卷积处理,得到对应的新的数据处理结果。
在本实施例中,通过外部存储模块101存储新的待处理数据和各个第一处理模块104中的第二处理模块106的新的配置参数,有利于后续通过控制模块102将新的待处理数据和各个第一处理模块104中的第二处理模块106的新的配置参数,缓存至各个第一处理模块104中的内部存储模块105,使得每个第一处理模块104中的第二处理模块106可以直接从该第一处理模块104中的内部存储模块105读取新的待处理数据和新的配置参数,从而避免了第一处理模块之间的数据传输,进而避免了占用片间通信资源,有利于提高片间通信资源的资源利用率。
在一个实施例中,控制模块102,还用于若识别到数据处理系统中各个第一处理模块104中的第二处理模块106的数据处理结果,为数据处理系统对应的卷积神经网络中的最后一层卷积层的数据处理结果,则根据各个第一处理模块104中的第二处理模块106的数据处理结果,确定待处理数据的目标处理结果,并将待处理数据的目标处理结果存储至外部存储模块101。
其中,卷积神经网络包括多层卷积神经网络层,每一层卷积神经网络层对应数据处理系统的一次卷积运算。
具体地,参考图1,控制模块102判断各个第一处理模块104中的第二处理模块106的数据处理结果,是否为数据处理系统对应的卷积神经网络中的最后一层卷积层的数据处理结果,若是,则确认待处理数据已经过卷积神经网络中的所有卷积层的卷积处理,说明待处理数据已处理完毕,则根据各个第一处理模块104中的第二处理模块106的数据处理结果,确定待处理数据的目标处理结果,比如确定待处理图像的图像类别,确定待处理图像中的图像内容等;最后,通过控制模块102将待处理数据的目标处理结果存储至外部存储模块101中,以等待其他终端设备从外部存储模块101中读取待处理数据的目标处理结果,比如等待用户终端从外部存储模块101中读取待处理图像的图像类别。
在本实施例中,通过控制模块102判断各个第一处理模块104中的第二处理模块106的数据处理结果,是否为数据处理系统对应的卷积神经网络中的最后一层卷积层的数据处理结果,有利于避免对待处理数据进行重复的卷积运算,从而提高了待处理数据的数据处理效率。
在一个实施例中,如图2所示,提供了另一种数据处理系统,该系统包括:DDR、控制装置和FPGA,控制装置分别与DDR和FPGA通信连接,FPGA包括至少两个SLR,比如SLR0、SLR1、SLR2;每个SLR包括RAM和至少一个卷积运算装置,比如SLR0包括一个RAM和卷积运算装置P01、卷积运算装置P02、卷积运算装置P03,SLR1包括一个RAM和卷积运算装置P11、卷积运算装置P12、卷积运算装置P13;SLR2包括一个RAM和卷积运算装置P21、卷积运算装置P22、卷积运算装置P23。
其中,DDR用于存储卷积运算装置所需的输入数据(比如特征图)、卷积运算装置的配置参数、卷积运算装置的运算结果;需要说明的是,DDR仅是FPGA的片外存储装置的一种可能的载体,还可以是其他,具体本申请不做限定。
其中,RAM用于缓存从DDR传输到每个SLR内的数据(比如卷积运算装置所需的输入数据、卷积运算装置的配置参数)和从每个SLR内的卷积运算装置传输到DDR的运算结果。需要说明的是,RAM仅是FPGA的片内存储装置的一种可能的载体,还可以是其他,具体本申请不做限定。
其中,卷积运算装置分布于各个SLR内,用于从各自所在的SLR内的RAM中读取输入数据和配置参数,完成一个或多个卷积通道的运算,再将运算结果存储至对应的RAM中。
其中,控制装置用于控制整个数据处理过程中的数据流读写和计算,可以是控制器。
具体地,参考图2,对于完成一次卷积运算,需要以下几个步骤:控制装置从DDR读取特征图和各个SLR中的卷积运算装置的配置参数,然后分别将特征图和对应的SLR中的卷积运算装置的配置参数,存储至对应的SLR中的RAM;从每个SLR的RAM中读取卷积运算装置的配置参数,根据配置参数配置各个SLR中的卷积运算装置;分别从每个SLR的RAM中读取特征图,然后将特征图送入各个SLR中的卷积运算装置,进行卷积运算;将每个SLR的卷积运算装置的运算结果写入各个对应的RAM;控制装置从每个SLR的RAM中读取运算结果,并将运算结果写入到DDR中。这样,通过将特征图从DDR中缓存到每一个SLR上的至少一个RAM中,使得每一个SLR上的卷积通道可以直接从本SLR的RAM中读取数据,从而避免了跨片(跨SLR)的数据传输;同时,将SLR中的卷积运算装置所需的配置参数也从DDR分别缓存到对应SLR中的至少一个RAM中,进一步减少了跨片数据传输;而FPGA中的片间通信资源有限,通过减少跨片数据传输,有利于提高片间通信资源的资源利用率。
在本实施例中,将卷积运算所需配置参数、输入数据,通过每个SLR中的RAM缓存,降低了卷积计算时的片间数据交互,一方面降低了布局布线的难度,不会造成大型深度学习网络容易导致的片间通信资源紧张和布线阻塞;另一方面由于降低了片间数据交互,降低了整个数据处理系统的时序要求,更使得数据处理系统能够在更高的频率下运行,从而提高了数据处理系统的运行性能。
在一个实施例中,如图3所示,提供了又一种数据处理系统,该系统包括:外部存储模块101、控制模块102和数据处理模块103,控制模块102分别与外部存储模块101和数据处理模块103通信连接,数据处理模块103包括至少两个第一处理模块104,每个第一处理模块104包括内部存储模块105和第二处理模块106;外部存储模块101包括至少两个第一处理模块104对应的第一外部存储模块107。
其中,各个第一外部存储模块107,用于存储待处理数据和对应的第一处理模块104中的第二处理模块106的配置参数;控制模块102,还用于分别从各个第一处理模块104对应的第一外部存储模块107,读取待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数。
具体地,参考图3,控制模块102首先分别从各个第一处理模块104对应的第一外部存储模块107,读取待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,并分别将待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,发送至对应的第一处理模块104中的内部存储模块105,通过各个第一处理模块104中的内部存储模块105缓存待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数;接着,控制模块102从各个第一处理模块104中的内部存储模块105中读取出待处理数据和相应的第一处理模块104中的第二处理模块106的配置参数,并根据各个第一处理模块104中的第二处理模块106的配置参数,对相应的第一处理模块104中的第二处理模块106进行配置,得到各个配置后的第二处理模块106;最后,控制模块102控制各个配置后的第二处理模块106对待处理数据进行卷积处理,得到各个配置后的第二处理模块106对应的数据处理结果。
举例说明,参考图4,对于完成一次卷积运算,需要以下几个步骤:控制装置从各个SLR对应的DDR读取特征图和配置参数,然后分别将特征图和相应的配置参数存储至对应的SLR中的RAM;分别从每个SLR的RAM中读取配置参数,并根据配置参数配置每个SLR中的卷积运算装置;分别从每个SLR的RAM中读取特征图,并将其送入各个对应的卷积运算装置,进行卷积运算;将每个SLR的卷积运算装置的运算结果写入各个对应的RAM;控制装置从每个SLR的RAM中读取运算结果,并将运算结果写入到对应的DDR中。
在本实施例中,整个数据处理过程中,数据处理系统中的各个第一处理模块之间无需进行数据交互,从而减少了片间通信资源的使用,进而提高了片间通信资源的资源利用率。
在一个实施例中,如图5所示,提供了一种数据处理方法,以该方法应用于图1中的控制模块为例进行说明,包括以下步骤:
步骤S501,从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数。
步骤S502,分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块。
步骤S503,从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置。
步骤S504,控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果。
需要说明的是,关于上述步骤的具体限定,已在相关的实施例中进行说明,在此不再具体赘述。
上述数据处理方法中,通过从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;然后分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;接着从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置;最后控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果;这样,将待处理数据和各个第一处理模块中的第二处理模块的配置参数从外部存储模块缓存到每个第一处理模块中的内部存储模块中,使得每个第一处理模块中的第二处理模块可以直接从该第一处理模块中的内部存储模块读取数据,从而避免了第一处理模块之间的数据传输,进而减少了片间通信资源的使用,有利于提高片间通信资源的资源利用率。
应该理解的是,虽然图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种数据处理装置,包括:读取单元610、发送单元620、配置单元630和处理单元640,其中:
读取单元610,用于从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数。
发送单元620,用于分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块。
配置单元630,用于从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置。
处理单元640,用于控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果。
关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待处理数据、各个第一处理模块中的第二处理模块的配置参数、数据处理结果等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;
从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置;
控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
分别将待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块;
从各个第一处理模块中的内部存储模块中读取出待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据配置参数对相应的第一处理模块中的第二处理模块进行配置;
控制各个配置后的第二处理模块对待处理数据进行卷积处理,得到对应的数据处理结果。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据处理方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据处理系统,其特征在于,所述系统包括:外部存储模块、控制模块和数据处理模块,所述控制模块分别与所述外部存储模块和所述数据处理模块通信连接,所述数据处理模块包括至少两个第一处理模块,每个第一处理模块包括内部存储模块和第二处理模块;
所述外部存储模块,用于存储输入的待处理数据和各个所述第一处理模块中的第二处理模块的配置参数;
所述控制模块,用于从所述外部存储模块中读取所述待处理数据和各个所述第一处理模块中的第二处理模块的配置参数,并分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块,通过各个所述第一处理模块中的内部存储模块缓存所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数;从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置,得到各个配置后的第二处理模块;控制所述各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
2.根据权利要求1所述的系统,其特征在于,所述外部存储模块包括所述至少两个第一处理模块对应的第一外部存储模块;
各个所述第一外部存储模块,用于存储所述待处理数据和对应的第一处理模块中的第二处理模块的配置参数;
所述控制模块,还用于分别从各个所述第一处理模块对应的第一外部存储模块,读取所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数。
3.根据权利要求1所述的系统,其特征在于,所述控制模块,还用于将各个所述第一处理模块中的第二处理模块的数据处理结果,发送至对应的第一处理模块中的内部存储模块,并分别从各个所述第一处理模块中的内部存储模块中读取出对应的第一处理模块中的第二处理模块的数据处理结果,将各个所述第一处理模块中的第二处理模块的数据处理结果,发送至所述外部存储模块。
4.根据权利要求3所述的系统,其特征在于,所述外部存储模块,还用于接收各个所述第一处理模块中的第二处理模块的新的配置参数,并存储新的待处理数据和各个所述第一处理模块中的第二处理模块的新的配置参数;所述新的待处理数据由各个所述第一处理模块中的第二处理模块的数据处理结果组成。
5.根据权利要求3所述的系统,其特征在于,所述控制模块,还用于若识别到所述系统中各个所述第一处理模块中的第二处理模块的数据处理结果,为所述系统对应的卷积神经网络中的最后一层卷积层的数据处理结果,则根据各个所述第一处理模块中的第二处理模块的数据处理结果,确定所述待处理数据的目标处理结果,并将所述待处理数据的目标处理结果存储至所述外部存储模块。
6.根据权利要求1至5任一项所述的系统,其特征在于,所述外部存储模块为双倍速率同步动态随机存储器,所述控制模块为控制器,所述数据处理模块为多现场可编程门阵列,所述第一处理模块为单现场可编程门阵列,所述第二处理模块为卷积运算模块,所述内部存储模块为随机存取存储器。
7.一种数据处理方法,其特征在于,所述方法包括:
从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块,通过各个所述第一处理模块中的内部存储模块缓存所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数;
从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置,得到各个配置后的第二处理模块;
控制所述各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
8.一种数据处理装置,其特征在于,所述装置包括:
读取单元,用于从外部存储模块中读取输入的待处理数据和各个第一处理模块中的第二处理模块的配置参数;
发送单元,用于分别将所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,发送至对应的第一处理模块中的内部存储模块,通过各个所述第一处理模块中的内部存储模块缓存所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数;
配置单元,用于从各个所述第一处理模块中的内部存储模块中读取出所述待处理数据和相应的第一处理模块中的第二处理模块的配置参数,并根据所述配置参数对相应的第一处理模块中的第二处理模块进行配置,得到各个配置后的第二处理模块;
处理单元,用于控制所述各个配置后的第二处理模块对所述待处理数据进行卷积处理,得到对应的数据处理结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求7所述的方法的步骤。
CN202110463565.3A 2021-04-26 2021-04-26 数据处理系统、方法、装置、计算机设备和存储介质 Active CN113094118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110463565.3A CN113094118B (zh) 2021-04-26 2021-04-26 数据处理系统、方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110463565.3A CN113094118B (zh) 2021-04-26 2021-04-26 数据处理系统、方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113094118A CN113094118A (zh) 2021-07-09
CN113094118B true CN113094118B (zh) 2023-05-30

Family

ID=76680483

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110463565.3A Active CN113094118B (zh) 2021-04-26 2021-04-26 数据处理系统、方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113094118B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109102460A (zh) * 2018-08-28 2018-12-28 Oppo广东移动通信有限公司 一种图像处理方法、图像处理装置及终端设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659070B (zh) * 2018-06-29 2022-04-08 赛灵思公司 高并行度计算系统及其指令调度方法
CN109598338B (zh) * 2018-12-07 2023-05-19 东南大学 一种基于fpga的计算优化的卷积神经网络加速器
CN111523652B (zh) * 2019-02-01 2023-05-02 阿里巴巴集团控股有限公司 处理器及其数据处理方法、摄像装置
US11699064B2 (en) * 2019-04-23 2023-07-11 Arm Limited Data processing using a neural network system
CN110852428B (zh) * 2019-09-08 2023-10-27 天津大学 基于fpga的神经网络加速方法和加速器
US11775471B2 (en) * 2019-10-08 2023-10-03 Embarcadero Technologies, Inc. System and method for caching converted files and compiling computer code from the cache
CN111178518A (zh) * 2019-12-24 2020-05-19 杭州电子科技大学 一种基于fpga的软硬件协同的加速方法
CN111199273B (zh) * 2019-12-31 2024-03-26 深圳云天励飞技术有限公司 卷积计算方法、装置、设备及存储介质
CN111767986A (zh) * 2020-06-24 2020-10-13 深兰人工智能芯片研究院(江苏)有限公司 一种基于神经网络的运算方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109102460A (zh) * 2018-08-28 2018-12-28 Oppo广东移动通信有限公司 一种图像处理方法、图像处理装置及终端设备

Also Published As

Publication number Publication date
CN113094118A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
US20200322238A1 (en) Distributed assignment of video analytics tasks in cloud computing environments to reduce bandwidth utilization
US20190286974A1 (en) Processing circuit and neural network computation method thereof
US20200074289A1 (en) Pooling processing method and system applied to convolutional neural network
US20200134435A1 (en) Computation apparatus, circuit and relevant method for neural network
US20180053084A1 (en) Multi-layer neural network
US20180218276A1 (en) Optimizing Application Performance Using Finite State Machine Model and Machine Learning
CN113449841A (zh) 插入转换算子的方法和装置
EP3846036B1 (en) Matrix storage method, matrix access method, apparatus and electronic device
CN115860079A (zh) 神经网络加速装置、方法、芯片、电子设备及存储介质
CN113094118B (zh) 数据处理系统、方法、装置、计算机设备和存储介质
CN106909320B (zh) 一种多维数据扩充传输的方法、装置以及系统
US11252457B2 (en) Multimedia streaming and routing apparatus and operation method of the same
US20230126978A1 (en) Artificial intelligence chip and artificial intelligence chip-based data processing method
US20200334119A1 (en) Data processing system and operating method thereof
CN116225314A (zh) 数据写入方法、装置、计算机设备和存储介质
CN110633226A (zh) 融合存储器、存储系统及深度学习计算方法
CN111045787B (zh) 一种快速继续实验方法及系统
CN109685209B (zh) 一种加快神经网络运算速度的装置和方法
US20230168809A1 (en) Intelligence processor device and method for reducing memory bandwidth
CN110968370B (zh) 一种数据处理方法及装置
CN113468195B (zh) 服务器数据缓存更新方法、系统和主数据库服务器
CN114356830B (zh) 总线终端控制方法、装置、计算机设备和存储介质
US11811512B2 (en) Multicast routing method, interconnection device, mesh network system and configuration method thereof
CN112433869B (zh) 面向软件超结点的OpenCL编程框架构建方法和装置
CN111857580B (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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Zhang Bin

Inventor after: Liang Youqiang

Inventor after: Shen Xiaoyong

Inventor after: Lv Jiangbo

Inventor before: Zhang Bin

Inventor before: Liang Youqiang

Inventor before: Jia Jiaya

Inventor before: Shen Xiaoyong

Inventor before: Lv Jiangbo

GR01 Patent grant
GR01 Patent grant