CN118093201A - 数据处理方法、系统、设备及存储介质 - Google Patents

数据处理方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN118093201A
CN118093201A CN202410487001.7A CN202410487001A CN118093201A CN 118093201 A CN118093201 A CN 118093201A CN 202410487001 A CN202410487001 A CN 202410487001A CN 118093201 A CN118093201 A CN 118093201A
Authority
CN
China
Prior art keywords
data
controller
transmitted
broadcasted
acceleration
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
CN202410487001.7A
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.)
Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd
Original Assignee
Shin Lai Zhirong Semiconductor Technology Shanghai 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 Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd filed Critical Shin Lai Zhirong Semiconductor Technology Shanghai Co ltd
Priority to CN202410487001.7A priority Critical patent/CN118093201A/zh
Publication of CN118093201A publication Critical patent/CN118093201A/zh
Pending legal-status Critical Current

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)

Abstract

本申请实施例中提供了一种数据处理方法、系统、设备及存储介质,涉及计算机技术领域,该方法包括:控制器获取待处理数据,并对待处理数据进行识别,确定待广播数据和待传输数据;与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的控制器构成一个集群;采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,并向多个加速处理器传输对应的待传输数据;多个加速处理器接收待广播数据和对应的待传输数据,对待广播数据和待传输数据并行计算得到计算结果,将计算结果传输至控制器;控制器发送计算结果。该方案减少了访问次数和路径延时,具有良好的动态扩展性,缩短了数据处理时间,提高了数据处理效率。

Description

数据处理方法、系统、设备及存储介质
技术领域
本申请涉及人工智能技术领域,具体地,涉及一种数据处理方法、系统、设备及存储介质。
背景技术
随着人工智能技术的快速发展,其中,AI加速器作为一种硬件加速器,能够加速人工智能的应用,已经越来越多地应用到各个不同领域中,尤其是物联网和其他数据密集型或传感器驱动任务的领域。其中,AI加速器性能与三大因素相关:算法、数据与算力,数据为算法提供“学习"的来源, 也是算法所应用的对象; 硬件则为算法的实际运行提供算力支撑,算力是指处理信息的能力。在数据量越来越大的过程中,为了提高对海量数据的处理效率和性能,如何利用加速器平台对数据进行处理的研究显得尤为重要。
目前,相关技术中采用单一的(嵌入式神经网络加速处理器(NetworkAccelerator,NACC)处理数据,然而随着神经网络的网络结构越深层,模型参数量越来越大,每个NACC在数据处理过程中,均需要频繁的访问片外存储,使得路径延时更大,且执行时间较长,导致数据的处理效率较低。
发明内容
本申请实施例中提供了一种数据处理方法、系统、设备及存储介质。
本申请实施例的第一个方面,提供了一种数据处理方法,包括:
控制器获取待处理数据,并对所述待处理数据进行识别,确定待广播数据和待传输数据;所述控制器与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的所述控制器构成一个集群;
所述控制器采用数据广播的方式向与所述控制器连接的多个加速处理器广播所述待广播数据,并向所述多个加速处理器传输对应的所述待传输数据;
多个所述加速处理器接收所述待广播数据和对应的待传输数据,对所述待广播数据和所述待传输数据并行计算得到计算结果,将所述计算结果传输至所述控制器;
所述控制器发送所述计算结果。
在本申请一个可选的实施例中,所述控制器对所述待处理数据进行识别处理,确定待广播数据和待传输数据,包括:
对所述待处理数据进行识别处理,确定多个加速处理器需要共用的数据;
将所述需要共用的数据作为所述待广播数据,并将所述待处理数据中除所述待广播数据之外的其余数据作为所述待传输数据。
在本申请一个可选的实施例中,所述控制器采用数据广播的方式向与所述控制器连接的多个加速处理器广播所述待广播数据,包括:
根据所述待广播数据,确定所述待广播数据所属的分组标识和对应的加速处理器标识;
基于所述的分组标识和加速处理器标识,确定所述控制器待广播的加速处理器;
向与所述控制器连接的多个加速处理器广播所述待广播数据。
在本申请一个可选的实施例中,向所述多个加速处理器传输对应的所述待传输数据,包括:
所述控制器确定每个加速处理器的加速器标识和对应的待传输数据;
将所述待传输数据传输至与所述加速器标识对应的加速处理器。
在本申请一个可选的实施例中,对所述待广播数据和所述待传输数据并行计算得到计算结果,包括:
对于每个加速处理器,基于所述待广播数据和对应的待传输数据进行卷积运算,得到子计算结果;
将所述控制器所属分组的各个加速处理器的子计算结果进行并行计算得到计算结果。
在本申请一个可选的实施例中,在所述控制器获取待传输数据之前,所述方法还包括:
所述控制器所属集群获取原始数据;
对所述原始数据进行识别处理,确定待广播至所述控制器的目标数据和传输数据;
采用数据广播的方式向所述集群对应的多个控制器广播所述目标数据,并向所述多个控制器传输对应的传输数据。
在本申请一个可选的实施例中,所述待广播数据包括特征图数据,所述待传输数据包括卷积核数据;或者,
所述待广播数据包括卷积核数据,所述待传输数据包括所述特征图数据。
本申请实施例的第二个方面,提供了一种数据处理系统,包括:
集群、控制器和加速处理器,所述控制器与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的所述控制器构成一个集群;
所述控制器用于获取待处理数据,并对所述待处理数据进行识别,确定待广播数据和待传输数据,采用数据广播的方式向与所述控制器连接的多个加速处理器广播所述待广播数据,并向所述多个加速处理器传输对应的所述待传输数据;
多个所述加速处理器用于接收所述待广播数据和对应的待传输数据,对所述待广播数据和所述待传输数据并行计算得到计算结果,将所述计算结果传输至所述控制器;
所述控制器用于发送所述计算结果。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例中控制器通过获取待处理数据,并对待处理数据进行识别,确定待广播数据和待传输数据,然后采用数据广播的方向与控制器连接的多个加速处理器,并采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,并向多个加速处理器传输对应的待传输数据,然后多个加速处理器接收待广播数据和对应的待传输数据,对待广播数据和待传输数据并行计算得到计算结果,将计算结果传输至控制器,最后控制器发送计算结果。本申请中的技术方案一方面,由于将控制器与多个加速处理器构成一个分组,以及将多个控制器构成一个集群,并且控制器采用数据广播的方式向多个加速处理器广播待广播数据,使得多个加速处理器在数据获取过程中无需频繁的访问片外存储,能够共用待广播数据,保证了数据一致性,同时具有良好的动态扩展性,从而减少了访问次数和路径延时,提高了数据获取速度。另一方面,通过多个加速处理器对待广播数据和待传输数据并行计算得到计算结果,能够使得多个加速快起器快速处理海量数据,提高了数据的复用性和并行度,满足了多个加速处理器数据传输的需求,缩短了数据处理时间,提高了数据处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的数据处理方法的应用场景示意图;
图2为本申请一个实施例提供的数据处理系统的结构示意图;
图3为本申请一个实施例提供的数据处理系统的结构示意图;
图4为本申请一个实施例提供的计算机设备的结构示意图;
图5为本申请一个实施例提供的数据处理方法方法的流程图;
图6为本申请一个实施例提供的控制器采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据方法的流程示意图;
图7为本申请一个实施例提供的向多个加速处理器传输对应的待传输数据方法的流程示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前每个NACC在数据处理过程中,均需要频繁的访问片外存储,使得路径延时更大,且执行时间较长,导致数据的处理效率较低。
针对上述问题,本申请实施例中提供了数据处理方法、系统、设备及存储介质,本申请中的技术方案一方面,由于将控制器与多个加速处理器构成一个分组,以及将多个控制器构成一个集群,并且控制器采用数据广播的方式向多个加速处理器广播待广播数据,使得多个加速处理器在数据获取过程中无需频繁的访问片外存储,能够共用待广播数据,保证了数据一致性,同时具有良好的动态扩展性,从而减少了访问次数和路径延时,提高了数据获取速度。另一方面,通过多个加速处理器对待广播数据和待传输数据并行计算得到计算结果,能够使得多个加速快起器快速处理海量数据,提高了数据的复用性和并行度,满足了多个加速处理器数据传输的需求,缩短了数据处理时间,提高了数据处理效率。本申请实施例中的方案可以采用各种硬件描述语言实现,例如,硬件描述语言(verilog)等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下对本申请实施例提供的计算机设备的数据处理方法的应用环境作简要说明:
请参见图1,本申请实施例提供的一个计算机设备的数据处理系统,该数据处理系统包括集群10、控制器和加速处理器,控制器与通过第一总线20连接的多个加速处理器构成一个分组,多个通过第二总线30连接的控制器构成一个集群。其中,多个加速处理器例如包括第1加速处理器、第2加速处理器...第n加速处理器,多个分组例如包括分组1和分组2。
上述控制器可以是DMA控制器,加速处理器可以为嵌入式神经网络加速处理器,第一总线可以与第二总线相同,都为BUS总线,也可以不同,第二总线可以比第一总线的数据传输速率大或者数据传输量大。通过第一总线建立控制器与加速处理器的关系,通过第二总线建立集群与多个控制器之间的关系。上述系统还可以包括内存DDR40,用于提供数据存储空间。上述控制器用于采用广播传输模式,通过共享总线将数据传送给连接在该总线上的多个NACC。其中,NACC是一种专门应用于网络应用数据包的处理器,采用“数据驱动并行计算”的架构。
作为一种可实现方式,请参见图2所示,以加速处理器为NACC,控制器为DMA控制器,第二总线为BUS总线为例,该系统中包括多个Group、多个Cluster和DDR,对于每个Group包括多个Cluster,具体是包括多个DMA控制器,各个DMA控制器通过BUS总线连接,对于每个Cluster,包括一个DMA控制器和与DMA控制器相连接的NACC。例如图2中包括两个Cluster,分别为第一组群Cluster0和第二组群Cluster1,每个Cluster中包括一个DMA控制器和多个NACC。
作为另一种可实现方式,请参见图3所示,以加速处理器为NACC,控制器为DMA控制器,第二总线为总线BUS为例,该系统中包括一个Group、一个第一组群Cluster和DDR,上述Group包括一个组群Cluster,一个Cluster中包括一个DMA控制器和多个NACC。
当需要新增NACC时,只需扩展Cluster和Group的数量,而无需修改DMA传输核心机制,因此可动态扩展。上述DMA控制器内嵌有用于Cluster和Group识别及传输控制的寄存器、逻辑器件,以使得DMA控制器通过该器件识别每个NACC所属的Cluster ID和Group ID.
本系统中通过设置DMA内部总线和NACC间总线仲裁控制,以实现精确的分组广播传输。相比现有技术,该方案提高了传输效率,简化传输控制,保证数据一致性,具有良好的动态扩展性,满足多个NACC高效数据传输的需求。
如图4所示,该计算机设备除包括通过系统总线连接的加速处理器之外,还可以包括其他内存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质例如可以为磁盘。非易失性存储介质中存储有文件(可以为待处理的文件,也可以为处理后的文件)、操作系统和计算机程序等。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
请参见图5,以下实施例以上述计算机设备为执行主体,将本申请实施例提供的数据处理方法应用于上述计算机设备来进行指令处理为例进行具体说明。本申请实施例提供的数据处理方法包括如下步骤201-步骤204:
步骤201、控制器获取待处理数据,并对待处理数据进行识别,确定待广播数据和待传输数据;控制器与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的控制器构成一个集群。
需要说明的是,上述待处理数据为需要进行处理的数据,待广播数据为需要广播处理的数据,即多个加速处理器共享的数据;该待传输数据为不需采用广播传输模式而需要传输处理的数据,即多个加速处理器各自所需的数据。该待广播数据可以是从存储器DDR中获取的。
可选的,在获取到待处理数据的过程中,该可以是控制器的所属集群Group通过广播传输至该控制器的,也可以是其他从外部设备导入的,还可以是从存储器DDR中获取的,还可以是通过数据库或区块链上获取的,本实施例对此不作限定。
控制器在获取到待处理数据后,可以对待处理数据进行识别,确定需要采用广播传输模式进行传输的待广播数据和需要采用其他传输模式进行传输的待传输数据。
本实施例中通过控制器获取待处理数据,并对待处理数据进行识别,能够精准地确定待广播数据和待传输数据,以便于后续有针对性地进行数据广播,提高了数据传输效率。
步骤202、控制器采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,并向多个加速处理器传输对应的待传输数据。
控制器在确定出待广播数据和待传输数据之后,可以采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,然后确定每个加速处理器对应的待传输数据,并向多个加速处理器传输对应的待传输数据。其中,每个加速处理器对应的待广播数据相同,即共享待广播数据,每个加速处理器对应的待传输数据不同。
其中,上述待广播数据可以为卷积核数据,也可以是特征图数据,当待广播数据为卷积核数据时,待传输数据可以为特征图数据;当待广播数据为特征图数据时,待传输数据可以为卷积核数据,该卷积核数据的数量可以为一个、两个或多个。该特征图数据的数量可以为一个、两个或多个。
需要说明的是,控制器在进行数据传输时,采用分组Cluster为单位进行分组传输,可以对不同的NACC群组采用不同的传输优先级、传输时间、sequence等进行区分控制。
可选的,上述采用数据广播的方式向多个加速处理器广播待广播数据可以与向多个加速处理器传输待传输数据的时间节点相同,即并行处理该两种数据传输方式,也可以说采用数据广播的方式向多个加速处理器广播待广播数据可以与向多个加速处理器传输待传输数据的时间节点不同,例如先采用数据广播的方式向多个加速处理器广播待广播数据,然后向多个加速处理器传输待传输数据;又如先向多个加速处理器传输待传输数据,然后采用数据广播的方式向多个加速处理器广播待广播数据。
本实施例中控制器采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,无需每个加速处理器逐个请求获取数据,能够便于多个加速处理器共享统一数据,保证数据一致性,具有良好的动态扩展性,满足多个加速处理器高效数据传输的需求。
步骤203、多个加速处理器接收待广播数据和对应的待传输数据,对待广播数据和待传输数据并行计算得到计算结果,将计算结果传输至控制器。
具体地,在控制器向多个加速处理器采用数据广播的方式发送待广播数据后,使得多个加速处理器接收待广播数据,在控制器向多个加速处理器传输对应的待传输数据后,加速处理器获取其对应的待传输数据。其中,加速处理器在接收待广播数据和对应的待传输数据的时间节点可以相同,也可以不同,当不同时可以根据控制器向加速处理器传输数据或广播数据的时间节点决定。
对于每个加速处理器,在获取到待广播数据和对应的待传输数据之后,可以采用预设卷积算法对待广播数据和待传输数据并行计算得到计算结果,然后将计算结果传输至控制器。
本步骤中通过加速处理器对待广播数据和待传输数据进行并行计算处理,能够快速得到计算结果,便于控制器发送计算结果。
步骤204、控制器发送计算结果。
在通过加速处理器对待广播数据和待传输数据进行并行计算处理,得到计算结果后,可以将计算结果发送至控制器,以使得控制器发送计算结果至存储器DDR,也可以发送计算结果至其他设备。
本申请实施例中控制器通过获取待处理数据,并对待处理数据进行识别,确定待广播数据和待传输数据,然后采用数据广播的方向与控制器连接的多个加速处理器,并采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,并向多个加速处理器传输对应的待传输数据,然后多个加速处理器接收待广播数据和对应的待传输数据,对待广播数据和待传输数据并行计算得到计算结果,将计算结果传输至控制器,最后控制器发送计算结果。本申请中的技术方案一方面,由于将控制器与多个加速处理器构成一个分组,以及将多个控制器构成一个集群,并且控制器采用数据广播的方式向多个加速处理器广播待广播数据,使得多个加速处理器在数据获取过程中无需频繁的访问片外存储,能够共用待广播数据,保证了数据一致性,同时具有良好的动态扩展性,从而减少了访问次数和路径延时,提高了数据获取速度。另一方面,通过多个加速处理器对待广播数据和待传输数据并行计算得到计算结果,能够使得多个加速快起器快速处理海量数据,提高了数据的复用性和并行度,满足了多个加速处理器数据传输的需求,缩短了数据处理时间,提高了数据处理效率。
在本申请一个可选实施例中,上述控制器对待处理数据进行识别处理,确定待广播数据和待传输数据,可以包括如下方法步骤:
对待处理数据进行识别处理,确定多个加速处理器需要共用的数据;
将需要共用的数据作为待广播数据,并将待处理数据中除待广播数据之外的其余数据作为待传输数据。
作为一种可实现方式,待广播数据和待传输数据的处理字段不同,控制器在获取到待处理数据之后,可以识别待处理数据的处理字段,例如共用的数据的处理字段为第一字段,不可共用的处理字段为第二字段,将第一字段对应的待处理数据确定多个加速处理器需要共用的数据,然后将该需要共用的数据作为待广播数据,将第二字段对应的待处理数据确定为待传输数据。
作为另一种可实现方式,控制器在获取到待处理数据之后,可以将第一字段对应的待处理数据确定多个加速处理器需要共用的数据,然后将该需要共用的数据作为待广播数据,然后将所有待处理数据中除待广播数据之外的其余数据作为待传输数据。
其中,上述待传输数据可以是对应不同加速处理器,即不同加速处理器对应的待传输数据不同,该待传输数据可以是不同类型的数据,也可以是不同字节长度的数据,还可以是不同数据量的数据。
本实施例中对待处理数据进行识别处理,确定待广播数据和待传输数据,便于后续有针对性地向加速处理器传输数据,提高传输效率,可以同时将数据传输给多个NACC,避免逐个传输导致的时间开销,大大提升数据吞吐量。
在本申请一个可选实施例中,请参见图6所示,上述步骤202、控制器采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,包括如下方法步骤:
步骤301、根据待广播数据,确定待广播数据所属的分组标识和对应的加速处理器标识。
步骤302、基于的分组标识和加速处理器标识,确定控制器待广播的加速处理器。
步骤303、向与控制器连接的多个加速处理器广播待广播数据。
需要说明的是,上述分组标识可以理解为待广播数据所属分组的身份信息,加速处理器用于唯一表示该加速处理器的身份信息,当加速器为NACC时,该加速器标识可以为NACC id。该待广播数据可以包括多种数据类型,也可以包括一种数据类型。
控制器在获取到待广播数据后,可以确定待广播数据所属的分组标识和该分组中与控制器连接的多个加速处理器,然后确定多个加速处理器中每个加速处理器对应的加速处理器标识。基于分组标识和加速处理器标识,确定控制器待广播的加速处理器,然后控制器基于该待广播数据生成广播指令,采用广播传输方式将广播指令广播至与控制器连接的多个加速处理器。
其中,对于一个分组Cluster广播数据的方式可以理解为:与该DMA控制器和共享总线的有C个NACC,该C个NACC共享一个DMA控制器的待广播数据。作为一种可实现方式,当待广播数据为特征图FM数据时,在卷积计算过程中,特征图FM数据可复用,通过DMA控制器将特征图数据可以同时广播到cluster中C个NACC的SRAM中,然后将卷积核数据确定为多份不同的卷积核K,通过DMA控制器分别传输多份不同的卷积核K至多个NACC的SRAM中。最后多个NACC在SRAM中基于特征图数据和卷积核数据进行并行计算得到计算结果,并通过DMA控制器将计算结果传输出去。
作为另一种可实现方式,当待广播数据为卷积核数据,在卷积计算过程中,卷积核可复用,通过DMA控制器将卷积核数据可以同时广播到cluster中C个NACC的SRAM中,然后将特征图数据确定为多行不同的特征图数据,通过DMA控制器分别传输多行不同的特征图数据至多个NACC的SRAM中。最后多个NACC在SRAM中基于特征图数据和卷积核数据进行并行计算得到计算结果,并通过DMA控制器将计算结果传输出去。
需要说明的是,SRAM(Static RAM)是一种常用的随机访问存储器(RAM)类型,它以静态方式存储数据,不需要定期刷新。也称为静态随机存储器。
示例性地,当Cluster中包括一个DMA控制器和共享总线的两个NACC时,例如分别为第一NACC和第二NACC,DMA控制器,DMA控制器可以先确定分组标识,然后根据该分组标识确定第一NACC和第二NACC的加速器标识,并基于分组标识、第一NACC和第二NACC的加速器标识,确定控制器待广播的加速处理器分别为第一NACC和第二NACC,然后向与DMA控制器连接的第一NACC和第二NACC广播该待广播数据。
本实施例中确定分组标识和加速处理器标识,能够更细粒度地确定待广播的加速处理器,以便于更精准地向多个加速处理器广播待广播数据,简化传输操作,使得DMA控制器只需要进行一次数据传输操作即可实现数据获取,不需要针对每个NACC进行多次独立配置,简化了传输控制逻辑。并且相比逐个进行数据传输的操作,采用广播模式下DMA控制器和总线只需要工作一次,可降低传输动作的次数,减少开销和功耗。
在本申请一个可选实施例中,请参见图7所示,上述步骤202、向多个加速处理器传输对应的待传输数据,包括如下方法步骤:
步骤401、控制器确定每个加速处理器的加速器标识和对应的待传输数据。
步骤402、将待传输数据传输至与加速器标识对应的加速处理器。
具体地,控制器可以获取与该控制器所属同一分组Cluster的多个加速处理器标识以及与该加速器标识对应的待传输数据,然后将待传输数据传输至与加速器标识对应的加速处理器。
示例性地,当Cluster中包括一个DMA控制器和共享总线的两个NACC时,例如分别为第一NACC和第二NACC,DMA,控制器可以先确定第一NACC和第二NACC的加速器标识和对应的待传输数据,第一NACC对应的待传输数据为数据1,第二NACC对应的待传输数据为数据2,然后将数据1传输至第一NACC,将数据2传输至第二NACC。
可选的,在将待传输数据传输至与加速器标识对应的加速处理器时,可以是在控制器在采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据之后执行的,也可以是在控制器在采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据之前执行的,还可以是在控制器在采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据并行执行的。
本实施例中控制器通过确定每个加速处理器的加速器标识和对应的待传输数据,并将待传输数据传输至加速器标识对应的加速处理器,便于后续基于待传输数据和广播传输的待广播数据准确地计算得到计算结果。
在本申请一个可选实施例中,上述对待广播数据和待传输数据并行计算得到计算结果,包括如下方法步骤:
对于每个加速处理器,基于待广播数据和对应的待传输数据进行卷积运算,得到子计算结果;
将控制器所属分组的各个加速处理器的子计算结果进行并行计算得到计算结果。
需要说明的是,卷积运算操作可以理解为通过卷积核在特征图上以特定步长平移华东,通过计算卷积核和特征图上与卷积核相同大小的数据块进行相乘求和,得出输出特征图上的一个单元点的输出。卷积核的作用是通过对输入数据的不同位置进行卷积操作,提取出不同的特征。例如,在图像处理任务中,卷积核可以检测图像中的边缘、颜色、纹理等。
示例性地,以3×3×2的特征图和2×2×2×2的卷积核为例,计算操作可以为:将每个周期通道1和通道2参与卷积计算的数据按行按列展开,通道1在上通道2在下排成一列。由于需要进行4次计算,因此展开将特征图矩阵表示为8×4的矩阵。同理将卷积核W和卷积核G分别按行按列展开,通道1在前通道2在后展开为1行。由于有两个卷积核,所以将两行展开的卷积核按行拼接为2×8的矩阵,将其作为卷积核矩阵。将特征图矩阵和卷积核矩阵进行矩阵乘法,得到2×4的输出矩阵,其中每一行代表一张输出特征图。
作为一种可实现方式,当待广播数据为特征图数据,待传输数据为多份不同的卷积核K时,在卷积计算过程中,加速处理器可以将特征图数据和每份不同的卷积核K进行矩阵运算,得到子计算结果,然后将子计算结果并行计算得到计算结果,并通过DMA控制器将计算结果传输出去。
作为另一种可实现方式,当待广播数据为卷积核数据,待传输数据为多行不同的特征图数据,在卷积计算过程中,加速处理器可以卷积核数据和多行不同的特征图数据进行矩阵运算,得到子计算结果,然后将子计算结果并行计算得到计算结果,并通过DMA控制器将计算结果传输出去。
本实施例中与现有技术相比而言,能够使得多个NACC可以同时接收到同一份数据,保证数据的一致性,用于并行处理时数据分发更加均匀,以便于基于待广播数据和待传输数据快速地进行并行运算,从而达到提升整个架构的处理频率的效果。
在本申请一个可选实施例中,本申请实施例在控制器获取待传输数据之前,还包括如下方法步骤:
控制器所属集群获取原始数据;对原始数据进行识别处理,确定待广播至控制器的目标数据和传输数据;采用数据广播的方式向集群对应的多个控制器广播目标数据,并向多个控制器传输对应的传输数据。
需要说明的是,多个分组Cluster组合成一个集群Group。目标数据是集群Group需要向多个控制器进行广播的数据,传输数据是原始数据中除目标数据之外的其余数据。
具体地,上述集群Group可以获取原始数据,然后识别原始数据的数据字段,根据数据字段,确定待广播至共享总线的控制器的目标数据,然后将原始数据中的其他数据作为传输数据。根据目标数据生成广播指令,然后采用数据广播的方式向集群对应的多个控制器广播上述广播指令,并向多个控制器传输对应的传输数据。
其中,可以在采用数据广播的方式向集群对应的多个控制器广播广播指令的情况下向多个控制器传输对应的传输数据,也可以是先采用数据广播的方式向集群对应的多个控制器广播指令,然后向多个控制器传输对应的传输数据;还可以是先向多个控制器传输对应的传输数据,然后采用数据广播的方式向集群对应的多个控制器广播上述广播指令。
对于一个集群Group的广播数据的方式可以理解为:该Group包括G个cluster和G个DMA控制器,每个DMA控制器连接有多个NACC,可以将卷积核数据均分并通过G个DMA控制器分别传输到对应cluster的NACC中,然后共享特征图数据,并通过G个DMA控制器将特征图数据广播至对应cluster的NACC中,以使得多个NACC共享特征图数据,多个NACC基于特征图数据和卷积核数据进行并行计算,得到计算结果通过各自的DMA控制器发送出去。
其中,对同一数据特征图(广播分配)或不同数据卷积核(合并分配),DMA控制器在对其分配传输的过程中,通过识别各自NACC的id号来判断其所属cluster的所属NACC,即来自哪个cluster的哪个NACC。
本实施例中通过集群统一数据分发操作,能够使得多个NACC可以同时接收到同一份数据,保证数据的一致性,用于并行处理时数据分发更加均匀。
在本申请一个可选实施例中,待广播数据包括特征图数据,待传输数据包括卷积核数据;或者,待广播数据包括卷积核数据,待传输数据包括特征图数据。
其中,当待广播数据为卷积核数据,在卷积计算过程中,卷积核可复用,然后将特征图数据确定为多行不同的特征图数据,将该不同的特征图数据作为待传输数据。通过DMA控制器将卷积核数据可以同时广播到cluster中C个NACC的SRAM中,以及通过DMA控制器分别传输多行不同的特征图数据至多个NACC的SRAM中。
当待广播数据为特征图数据,在卷积计算过程中,特征图数据可复用,然后将卷积核数据确定为多份不同的卷积核K,将该不同的卷积核K作为待传输数据。通过DMA控制器将特征图数据可以同时广播到cluster中C个NACC的SRAM中,通过DMA控制器分别传输多份不同的卷积核K至多个NACC的SRAM中。
本实施例中通过确定待广播数据和待传输数据,能够使用广播模式传输数据到多个NACC,以及引入cluster和group的概念进行传输,有效改善多个NACC的非均匀数据分发问题,解决传统逐个配置的低效性,以及扩展性较差的问题。并且提高扩展性,当需要增加NACC时,只需要加入广播域,不需要修改DMA传输机制,使得系统扩展性更强,并且提高了数据处理效率。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
另一方面,本申请一个实施例提供了一种数据处理系统,包括:
集群、控制器和加速处理器,控制器与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的控制器构成一个集群;
控制器用于获取待处理数据,并对待处理数据进行识别,确定待广播数据和待传输数据,采用数据广播的方式向与控制器连接的多个加速处理器广播待广播数据,并向多个加速处理器传输对应的待传输数据;
多个加速处理器用于接收待广播数据和对应的待传输数据,对待广播数据和待传输数据并行计算得到计算结果,将计算结果传输至控制器;
控制器用于发送计算结果。
关于上述数据处理系统的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述指令处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种数据处理方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上数据处理方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上数据处理方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种数据处理方法,其特征在于,包括:
控制器获取待处理数据,并对所述待处理数据进行识别,确定待广播数据和待传输数据;所述控制器与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的所述控制器构成一个集群;
所述控制器采用数据广播的方式向与所述控制器连接的多个加速处理器广播所述待广播数据,并向所述多个加速处理器传输对应的所述待传输数据;
多个所述加速处理器接收所述待广播数据和对应的待传输数据,对所述待广播数据和所述待传输数据并行计算得到计算结果,将所述计算结果传输至所述控制器;
所述控制器发送所述计算结果。
2.根据权利要求1所述的方法,其特征在于,所述控制器对所述待处理数据进行识别,确定待广播数据和待传输数据,包括:
对所述待处理数据进行识别处理,确定多个加速处理器需要共用的数据;
将所述需要共用的数据作为所述待广播数据,并将所述待处理数据中除所述待广播数据之外的其余数据作为所述待传输数据。
3.根据权利要求1所述的方法,其特征在于,所述控制器采用数据广播的方式向与所述控制器连接的多个加速处理器广播所述待广播数据,包括:
根据所述待广播数据,确定所述待广播数据所属的分组标识和对应的加速处理器标识;
基于所述的分组标识和加速处理器标识,确定所述控制器待广播的加速处理器;
向与所述控制器连接的多个加速处理器广播所述待广播数据。
4.根据权利要求1所述的方法,其特征在于,向所述多个加速处理器传输对应的所述待传输数据,包括:
所述控制器确定每个加速处理器的加速器标识和对应的待传输数据;
将所述待传输数据传输至与所述加速器标识对应的加速处理器。
5.根据权利要求1所述的方法,其特征在于,对所述待广播数据和所述待传输数据并行计算得到计算结果,包括:
对于每个加速处理器,基于所述待广播数据和对应的待传输数据进行卷积运算,得到子计算结果;
将所述控制器所属分组的各个加速处理器的子计算结果进行并行计算得到计算结果。
6.根据权利要求1所述的方法,其特征在于,在所述控制器获取待传输数据之前,所述方法还包括:
所述控制器所属集群获取原始数据;
对所述原始数据进行识别处理,确定待广播至所述控制器的目标数据和传输数据;
采用数据广播的方式向所述集群对应的多个控制器广播所述目标数据,并向所述多个控制器传输对应的传输数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述待广播数据包括特征图数据,所述待传输数据包括卷积核数据;或者,
所述待广播数据包括卷积核数据,所述待传输数据包括所述特征图数据。
8.一种数据处理系统,其特征在于,包括:集群、控制器和加速处理器,所述控制器与通过第一总线连接的多个加速处理器构成一个分组,多个通过第二总线连接的所述控制器构成一个集群;
所述控制器用于获取待处理数据,并对所述待处理数据进行识别,确定待广播数据和待传输数据,采用数据广播的方式向与所述控制器连接的多个加速处理器广播所述待广播数据,并向所述多个加速处理器传输对应的所述待传输数据;
多个所述加速处理器用于接收所述待广播数据和对应的待传输数据,对所述待广播数据和所述待传输数据并行计算得到计算结果,将所述计算结果传输至所述控制器;
所述控制器用于发送所述计算结果。
9.一种计算机设备,包括:存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202410487001.7A 2024-04-22 2024-04-22 数据处理方法、系统、设备及存储介质 Pending CN118093201A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410487001.7A CN118093201A (zh) 2024-04-22 2024-04-22 数据处理方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410487001.7A CN118093201A (zh) 2024-04-22 2024-04-22 数据处理方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN118093201A true CN118093201A (zh) 2024-05-28

Family

ID=91150455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410487001.7A Pending CN118093201A (zh) 2024-04-22 2024-04-22 数据处理方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN118093201A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200138414A (ko) * 2018-11-21 2020-12-09 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 네트워크 온칩 데이터 처리 방법 및 장치
CN112306663A (zh) * 2020-11-12 2021-02-02 山东云海国创云计算装备产业创新中心有限公司 一种并行计算加速器及嵌入式系统
CN113543045A (zh) * 2021-05-28 2021-10-22 平头哥(上海)半导体技术有限公司 处理单元、相关装置和张量运算方法
US20220092408A1 (en) * 2020-09-23 2022-03-24 Facebook, Inc. Neural network weight distribution using a tree direct-memory access (dma) bus
CN116028384A (zh) * 2021-10-26 2023-04-28 太初(无锡)电子科技有限公司 一种基于多张量核心处理器的卷积计算数据重用方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200138414A (ko) * 2018-11-21 2020-12-09 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 네트워크 온칩 데이터 처리 방법 및 장치
US20220092408A1 (en) * 2020-09-23 2022-03-24 Facebook, Inc. Neural network weight distribution using a tree direct-memory access (dma) bus
CN112306663A (zh) * 2020-11-12 2021-02-02 山东云海国创云计算装备产业创新中心有限公司 一种并行计算加速器及嵌入式系统
CN113543045A (zh) * 2021-05-28 2021-10-22 平头哥(上海)半导体技术有限公司 处理单元、相关装置和张量运算方法
CN116028384A (zh) * 2021-10-26 2023-04-28 太初(无锡)电子科技有限公司 一种基于多张量核心处理器的卷积计算数据重用方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIANDENG LI 等: "swCaffe: a Parallel Framework for Accelerating Deep Learning Applications on Sunway TaihuLight", 《IEEE》, 31 December 2018 (2018-12-31) *

Similar Documents

Publication Publication Date Title
US20220035544A1 (en) Memory allocation method and device, and electronic apparatus
US11809360B2 (en) Network-on-chip data processing method and device
CN113469355B (zh) 分布式系统中的多模型训练管道
CN109993301B (zh) 神经网络训练装置及相关产品
CN109074281B (zh) 图形处理器任务的分配方法和装置
JP2018073414A (ja) プロセッサ、及び複数のメモリ装置を含む分散計算システム内のワークフローを制御する方法
CN110866610A (zh) 一种深度学习模型分布式运算的方法及装置
CN114281521B (zh) 优化深度学习异构资源通信效率方法、系统、设备及介质
US11941528B2 (en) Neural network training in a distributed system
CN116185937A (zh) 基于众核处理器多层互联架构的二元运算访存优化方法及装置
CN117785490B (zh) 一种图神经网络模型的训练架构、方法、系统及服务器
WO2020103883A1 (zh) 执行矩阵乘法运算的方法、电路及soc
US20240029336A1 (en) Multi-accelerator compute dispatch
CN111199276B (zh) 数据处理方法及相关产品
CN115775199B (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN118093201A (zh) 数据处理方法、系统、设备及存储介质
CN110197274B (zh) 集成电路芯片装置及相关产品
CN107832154B (zh) 一种多进程处理方法、处理装置及应用
CN112506677B (zh) TensorFlow的分布式矩阵计算实现方法与系统
CN110021339A (zh) 基于蛋白质折叠测算蛋白质结构的集群并行计算加速方法
CN110197265B (zh) 集成电路芯片装置及相关产品
WO2023045478A1 (zh) 图任务调度方法、执行端设备、存储介质及程序产品
CN116662037B (zh) 一种共享内存的处理方法、装置、电子设备及存储介质
US20240220314A1 (en) Data dependency-aware scheduling
CN110197273B (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