Data processing method, acceleration chip, node, system and storage medium

By deploying forwarding components in nodes of distributed computing systems, triggering on-network computing capabilities within nodes, solving the problem of low cross-node communication efficiency and achieving higher network utilization and data processing efficiency.

CN119484518AActive Publication Date: 2025-02-18HUAWEI TECH CO LTD

Patent Information

Application Number
CN202311017744.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-08-11
Publication Date
2025-02-18
Estimated Expiration
2043-08-11

AI Technical Summary

Technical Problem

In distributed computing systems, the collective communication efficiency across nodes is low, and the on-network computing power within the node is not effectively utilized, resulting in low network utilization and data processing efficiency.

Method used

By deploying forwarding components in the node, in response to the data sending request of the distributed aggregation task, the communication components within the node are triggered to perform on-network calculations, and then the data is aggregated to send to the network switching device, and further process using the on-network computing capabilities of the network switching device.

Benefits of technology

It effectively reduces cross-node communication delay, improves network utilization and data processing efficiency, and synchronizes network bandwidth and on-network computing capabilities within and between nodes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119484518A_ABST
    Figure CN119484518A_ABST
Patent Text Reader

Abstract

The invention discloses a data processing method, an acceleration chip, a node, a system and a storage medium, and belongs to the technical field of computers. The method is applied to a data processing system comprising a plurality of nodes, a first node comprises a communication component and a plurality of accelerators, and forwarding components deployed on the accelerators can respond to a data sending request for a distributed aggregation task, trigger the in-network computing power of the communication component in the nodes and send the in-network computing power to the first node. The method comprises the following steps of: aggregating data on each accelerator in a node, and sending the aggregated data to network switching equipment among the nodes to trigger the on-network computing capability of the network switching equipment, so that networking bandwidths in the nodes and among the nodes in the system are synchronously utilized, and the on-network computing capabilities in the nodes and among the nodes are also synchronously utilized; therefore, in a cross-node communication scene, the communication time delay is effectively reduced, and the network utilization rate and the data processing efficiency are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a data processing method, an acceleration chip, a node, a system and a storage medium. Background Art

[0002] As the scale of computing tasks in scenarios such as artificial intelligence (AI) and high performance computing (HPC) becomes larger and larger, distributed computing has emerged. At present, in data processing systems that use distributed computing, multiple accelerators are deployed on each node. In order to improve the efficiency of collective communication between different accelerators, in-network computing (INC) is often used to accelerate some operations of collective communication (such as calculation, replication, etc.) in network switching devices. For example, a switch chip with in-network computing capabilities is deployed in the network within the node, and a switch with in-network computing capabilities is deployed in the network between nodes, so that different communication domains have in-network computing capabilities.

[0003] In the related art, taking the cross-node allreduce communication algorithm between node 0 and node 1 in the data processing system as an example, each accelerator deployed on node 0 sends the data that needs to be aggregated to the switch deployed between node 0 and node 1, and each accelerator deployed on node 1 also sends the data that needs to be aggregated to the switch, and the switch aggregates the received data using the on-net computing method, and sends the aggregated data to node 0 and node 1 respectively. However, in the above method, for cross-node collective communication, the on-net computing capability within the node is not utilized, resulting in low network utilization and low data processing efficiency. Summary of the invention

[0004] The embodiments of the present application provide a data processing method, an acceleration chip, a node, a system and a storage medium, which can effectively reduce communication delays and improve network utilization and data processing efficiency in cross-node communication scenarios. The technical solution is as follows:

[0005] In a first aspect, the present application provides a data processing method, which is applied to a data processing system, wherein the data processing system includes multiple nodes, each of which is communicatively connected through a network switching device, wherein a first node includes a communication component and multiple accelerators, and a forwarding component is deployed on the accelerator of the first node, and the method includes:

[0006] The forwarding component of the first accelerator in the first node forwards the data sending request to the communication component of the first node in response to the data sending request for the distributed aggregation task, the distributed aggregation task indicates to aggregate the data of the distributed aggregation task, and the data sending request indicates to send the data of the distributed aggregation task on the first accelerator to the network switching device;

[0007] The communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, and sends the first aggregated data to the forwarding component of the first accelerator;

[0008] The forwarding component of the first accelerator sends the first aggregated data to the network switching device.

[0009] In the above method, the forwarding component deployed on the accelerator in the node can respond to the data sending request for the distributed aggregation task, trigger the on-line computing capability of the communication component in the node, so that it aggregates the data on each accelerator in the node, and then sends the aggregated data to the network switching device between the nodes to trigger the on-line computing capability of the network switching device. In this way, the networking bandwidth within and between nodes in the system is synchronously utilized, and the on-line computing capability within and between nodes is also synchronously utilized, thereby effectively reducing the communication delay in the cross-node communication scenario and improving the network utilization rate and data processing efficiency.

[0010] In some embodiments, the communication component of the first node is a network switching chip deployed on the first node, and the accelerators in the first node are communicatively connected through the communication component.

[0011] In some embodiments, the communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, including:

[0012] The communication component of the first node determines the storage address of the data of the distributed aggregation task on each accelerator of the first node in response to the data sending request, obtains the data corresponding to each accelerator from each accelerator of the first node, aggregates the data corresponding to each accelerator, and obtains the first aggregate data.

[0013] Through the above method, a corresponding data aggregation method is provided for the deployment mode in which the communication component is a network switching chip deployed on the first node, that is, if there is a network switching chip with on-line computing capabilities in the node, on-line computing in the node can be realized through the network switching chip.

[0014] In some embodiments, the communication component of the first node is a communication engine deployed on the first accelerator, and the forwarding component of the first accelerator is communicatively connected to the communication component.

[0015] In some embodiments, the communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, including:

[0016] The communication component of the first node responds to the data sending request, obtains from the data sending request the storage address of the data of the distributed aggregation task on at least one second accelerator of the first node, obtains from each second accelerator the data corresponding to each second accelerator, aggregates the data corresponding to the first accelerator and the data corresponding to each second accelerator to obtain the first aggregated data, and the second accelerator refers to an accelerator in the first node other than the first accelerator.

[0017] Through the above method, a corresponding data aggregation method is provided for the deployment mode in which the communication component is a communication engine deployed on the first accelerator, that is, if there is no network switching chip with on-line computing capability in the node, on-line computing in the node can be realized through the on-line computing capability in the node communication engine.

[0018] In some embodiments, the communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, including:

[0019] The communication component of the first node aggregates the data of the first data blocks on each of the accelerators in the first node in response to the data sending request to obtain the first aggregated data, where the first data block refers to any data block of the distributed aggregation task.

[0020] By using the above method, when data aggregation is performed once inside a node, only the data of a certain data block needs to be aggregated, thus reducing the amount of data transmission inside the node.

[0021] In some embodiments, the forwarding component of the first accelerator forwards the data sending request to the communication component of the first node in response to the data sending request for the distributed aggregation task, including:

[0022] If the data sending request includes a first address, the forwarding component of the first accelerator forwards the data sending request to the communication component of the first node, and the first address includes the task identifier of the distributed aggregation task and the storage address of the data of the distributed aggregation task on the first accelerator.

[0023] Through the above method, the first address in the data sending request is used as a trigger condition for the forwarding component to forward the request, so that the forwarding component has the function of triggering the computing capability of the node on the network.

[0024] In some embodiments, the method further comprises:

[0025] The network switching device receives the aggregated data sent by each of the accelerators in each of the nodes, aggregates the received aggregated data, and obtains target aggregated data;

[0026] The network switching device sends the target aggregate data to each of the accelerators in each of the nodes.

[0027] In some embodiments, the method further comprises:

[0028] The forwarding component of the first accelerator forwards the data reception request to the communication component of the first node in response to the data reception request for the distributed aggregation task, wherein the data reception request indicates writing the target aggregation data to the first accelerator;

[0029] The communication component of the first node broadcasts the target aggregate data to each of the accelerators in the first node in response to the data reception request.

[0030] Through the above method, during the distribution of target aggregated data, the forwarding component deployed on the accelerator is continuously used to trigger the broadcast capability within the node, thereby reducing data transmission delay and improving network utilization and data processing efficiency.

[0031] In some embodiments, the communication component of the first node broadcasts the target aggregate data to each of the accelerators in the first node in response to the data reception request, including:

[0032] The communication component of the first node broadcasts the aggregate data corresponding to the first data block in the target aggregate data to each of the accelerators in the first node in response to the data reception request, where the first data block refers to any data block of the distributed aggregation task.

[0033] By using the above method, when data is broadcasted once inside a node, only the data of a certain data block needs to be broadcasted, thus reducing the amount of data transmission inside the node.

[0034] In some embodiments, the forwarding component of the first accelerator forwards the data reception request to the communication component of the first node in response to the data reception request of the distributed aggregation task, including:

[0035] If the data reception request includes a second address, the forwarding component of the first accelerator forwards the data reception request to the communication component of the first node, and the second address includes the task identifier of the distributed aggregation task and the write address of the target aggregation data on the first accelerator.

[0036] Through the above method, the second address in the data receiving request is used as a trigger condition for the forwarding component to forward the request, so that the forwarding component has the function of triggering the broadcast capability within the node.

[0037] In a second aspect, the present application provides a data processing method, which is applied to a data processing system, wherein the data processing system includes a plurality of nodes, each of the nodes being communicatively connected via a network switching device, wherein each of the nodes includes a communication component and a plurality of accelerators, and a forwarding component is deployed on the accelerator of the node, and the method includes:

[0038] The first accelerator of the first node sends the broadcast data to be broadcasted to the second node to the network switching device;

[0039] The network switching device sends the broadcast data to a third accelerator of the second node;

[0040] The forwarding component of the third accelerator forwards the data reception request to the communication component of the second node in response to the data reception request for the broadcast data;

[0041] The communication component of the second node broadcasts the broadcast data to each of the accelerators in the second node in response to the data reception request.

[0042] In some embodiments, the communication component of the second node broadcasts the broadcast data to each of the accelerators in the second node in response to the data reception request, including:

[0043] In response to the data reception request, the communication component of the second node broadcasts data of a first broadcast data block in the broadcast data to each of the accelerators in the second node, where the first broadcast data block refers to any broadcast data block in the broadcast data.

[0044] In some embodiments, the forwarding component of the third accelerator forwards the data reception request to the communication component of the second node in response to the data reception request for the broadcast data, including:

[0045] If the data reception request includes a third address, the forwarding component of the third accelerator forwards the data reception request to the communication component of the second node, and the third address includes the task identifier of this broadcast task and the write address of the broadcast data on the third accelerator.

[0046] In some embodiments, the data processing system is used to implement the data processing method involved in the aforementioned first aspect or any optional manner in the first aspect.

[0047] Through the above method, in the scenario of cross-node data broadcast, the forwarding component deployed on the accelerator is used to trigger the broadcast capability within the node, thereby reducing communication latency and improving network utilization.

[0048] In a third aspect, an acceleration chip is provided, comprising a processor, a memory, and a forwarding component, wherein the memory is used to store at least one piece of program code, and the processor is used to call the program code to implement the function of the accelerator in the node involved in the first aspect or any optional manner in the first aspect, or the processor is used to call the program code to implement the function of the accelerator in the node involved in the second aspect or any optional manner in the second aspect.

[0049] In a fourth aspect, an embodiment of the present application provides a node, which includes a communication component and multiple accelerators, and a forwarding component is deployed on the accelerator. The node is used to implement the function of the accelerator in the node as involved in the first aspect or any optional method in the first aspect, or the function of the accelerator in the node as involved in the second aspect or any optional method in the second aspect.

[0050] In a fifth aspect, an embodiment of the present application provides a data processing system, which includes multiple nodes, each of which is communicatively connected via a network switching device, each of which includes a communication component and multiple accelerators, and a forwarding component is deployed on the accelerator. The data processing system is used to implement the data processing method involved in the first aspect or any optional method in the first aspect, or the data processing method involved in the second aspect or any optional method in the second aspect.

[0051] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, the computer-readable storage medium is used to store at least one program code, the at least one program code is used to implement the data processing method involved in the first aspect or any optional manner in the first aspect, or the data processing method involved in the second aspect or any optional manner in the second aspect. The storage medium includes but is not limited to volatile memory, such as random access memory, non-volatile memory, such as flash memory, hard disk drive (HDD), solid state drive (SSD).

[0052] In a seventh aspect, an embodiment of the present application provides a computer program product, which, when executed on a data processing system, enables the data processing system to implement the data processing method as described in the first aspect or any one of the optional aspects of the first aspect, or the data processing method as described in the second aspect or any one of the optional aspects of the second aspect. The computer program product may be a software installation package, and when the aforementioned data processing method needs to be implemented, the computer program product may be downloaded and executed in the data processing system. BRIEF DESCRIPTION OF THE DRAWINGS

[0053] Figure 1 It is a schematic diagram of an architecture using online computing provided by a related technology;

[0054] Figure 2 It is a schematic diagram of a cross-node AllReduce communication algorithm provided by a related technology;

[0055] Figure 3 It is a schematic diagram of a cross-node AllReduce communication algorithm provided by another related technology;

[0056] Figure 4 is a schematic diagram of a data processing system provided in an embodiment of the present application;

[0057] Figure 5 It is a schematic diagram of the architecture of a node provided in an embodiment of the present application;

[0058] Figure 6 is a schematic diagram of the structure of an acceleration chip provided in an embodiment of the present application;

[0059] Figure 7 is a schematic diagram of the structure of another acceleration chip provided in an embodiment of the present application;

[0060] Figure 8 is a flow chart of a data processing method provided in an embodiment of the present application;

[0061] Fig. 9 is a schematic diagram of a first address provided in an embodiment of the present application;

[0062] Fig.10 It is a schematic diagram of data aggregation by a communication component provided in an embodiment of the present application;

[0063] Fig.11 It is a schematic diagram of another communication component for data aggregation provided in an embodiment of the present application;

[0064] Fig.12 is a schematic diagram of a data processing method provided in an embodiment of the present application;

[0065] Fig.13 is a schematic diagram of a second address provided in an embodiment of the present application;

[0066] Fig.14 It is a schematic diagram of a communication component performing data broadcasting provided by an embodiment of the present application;

[0067] Fig.15 It is a schematic diagram of another communication component performing data broadcasting provided by an embodiment of the present application;

[0068] Fig.16 It is a flowchart of a data processing method provided in an embodiment of the present application;

[0069] Fig.17 is a schematic diagram of another data processing method provided in an embodiment of the present application;

[0070] Fig.18 is a flow chart of another data processing method provided in an embodiment of the present application;

[0071] Fig.19 It is a structural diagram of a data processing device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0072] In order to make the purpose, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings. It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data need to comply with relevant laws, regulations and standards of relevant countries and regions. For example, the communication instructions involved in this application, such as data sending requests and data receiving requests, data stored on the accelerator, etc., are all obtained with full authorization.

[0073] For ease of understanding, the key terms and key concepts involved in this application are explained below.

[0074] High performance computing (HPC) is a high-performance computing architecture. Hundreds or thousands of nodes (such as servers) form at least one HPC cluster through the network. The nodes in the same HPC cluster work in parallel with each other, thereby improving data processing speed and achieving high-performance computing.

[0075] An accelerator, or acceleration device, is a specialized hardware accelerator or computer system designed to accelerate computing processes in AI and HPC scenarios. Schematically, an accelerator is, for example, a graphics processing unit (GPU), a neural network processing unit (XPU), an intelligent processing unit (IPU), a tensor processing unit (TPU), a domain specific architecture (DSA) chip, etc., but the present application is not limited thereto.

[0076] In-network computing (INC), or network computing, is a distributed parallel computing system that aims to use network devices such as network cards, switches, and routers to synchronously perform online data calculations during data transmission to reduce communication delays and improve overall computing efficiency. Schematically, in a data processing system using distributed computing, each node includes multiple accelerators, and data is distributed on each accelerator of different nodes. Switches with in-network computing capabilities are deployed in the network between nodes (this type of networking between nodes is also called a large network), and switching chips with in-network computing capabilities are deployed in the network within the node (this type of networking within the node is also called a small network), so that different communication domains have in-network computing capabilities. Among them, the network between nodes is, for example, Ethernet, Fibre Channel, remote direct memory access (RDMA), RDMA over converged Ethernet (RoCE) network, InfiniBand (IB) network, etc., but the present application is not limited thereto. The network within the node is, for example, NVIDIA Link (NvLink), Peripheral Component Interconnect Express (PCIe), Compute Express Link (CXL), Universal Chiplet Interconnect Express (UCIe), Huawei Cache Coherent System (HCCS), Cache Coherent Interconnect for Accelerators (CCIX), etc., and the present application is not limited thereto. For example, refer to Figure 1 , Figure 1 It is a schematic diagram of an architecture using on-network computing provided by a related technology. Taking the distributed training architecture in the AI ​​scenario as an example, the distributed training architecture adopts a large and small network networking architecture (or a dual-plane networking architecture), that is, nodes are connected to each other through switches to form a large network, that is, inter-node networking, and multiple accelerators in a node are connected to each other through switching chips to form a small network, that is, intra-node networking, so that different communication domains have on-network computing capabilities.

[0077] The AllReduce algorithm is a communication algorithm that aggregates data from different machines and then distributes the aggregated results to each machine. Figure 2 and Figure 3, the cross-node AllReduce communication algorithm provided by related technologies is introduced.

[0078] Figure 2 This is a schematic diagram of a cross-node AllReduce communication algorithm provided by a related technology. Figure 2 As shown, taking the data processing system including node 0 and node 1 as an example, node 0 and node 1 are connected by a network switching device (such as a switch, or called an inter-node switch), each node includes 4 accelerators (such as XPU), and data is distributed on different accelerators of different nodes. For example, in node 0, data A0, B0, C0 and D0 are stored on XPU0, data A1, B1, C1 and D1 are stored on XPU1, data A2, B2, C2 and D2 are stored on XPU2, data A3, B3, C3 and D3 are stored on XPU3, and the same is true for node 1, which will not be repeated. In the figure, data with the same mark belong to the same data block. For example, data A0, A1, A2 and A3 all belong to data block A, and the remaining data will not be repeated. In the scenario where cross-node communication is performed between node 0 and node 1 to perform a distributed aggregation task, the data to be aggregated are: data A0 to data A7, data B0 to data B7, data C0 to data C7, and data D0 to data D7, that is, data of the same data block is aggregated. Schematically, the data processing method in this scenario includes the following steps:

[0079] Step 1, each XPU is used to aggregate data of the same data block, which can also be understood as one XPU is responsible for aggregating data belonging to the same data block. For example, taking XPU0 as an example, XPU0 is used to aggregate data A0, A1, A2 and A3 to obtain aggregated data A0-A3, wherein XPU1, XPU2 and XPU3 send data A1, A2 and A3 to XPU0 respectively. Of course, data transmission can also be achieved by ring communication between each XPU, which is not limited here. It should be understood that step 1 is also the process of data scattering within the node. In this process, the amount of data transmission within the node is D*((N-1) / N), where D is the total amount of data and N is the number of accelerators in the node.

[0080] Step 2, each XPU sends its own aggregated data to the network switching device (i.e., the switch between nodes), and the network switching device aggregates the received data from the same plane card. The same plane card refers to the XPU responsible for the same data block. For example, XPU0 sends aggregated data A0-A3 to the network switching device, and XPU4 sends aggregated data A4-A7 to the network switching device. XPU0 and XPU4 are used to aggregate the data of the same data block (i.e., data block A), which is called the same plane card. Based on this, the network switching device aggregates data A0-A3 and data A4-A7 to obtain aggregated data A0-A7. In this process, the amount of data transmitted between nodes is D / N.

[0081] Step 3, each XPU receives the aggregated data for which it is responsible from the network switching device, and sends the received data to the XPUs other than itself in the node to which it belongs. For example, taking XPU0 as an example, XPU0 receives the aggregated data A0-A7, and sends data A0-A7 to XPU1, XPU2 and XPU3 respectively. Of course, data transmission can also be achieved between the XPUs in a ring communication manner, which is not limited here. It should be understood that step 3 is also the process of global aggregation (all-gather) of data within the node. In this process, the amount of data transmission within the node is D*((N-1) / N).

[0082] Figure 3 This is a schematic diagram of a cross-node AllReduce communication algorithm provided by another related technology. Figure 3 As shown, continuing to take the data processing system including node 0 and node 1 as an example, node 0 and node 1 are connected through an inter-node switch communication, each node includes 4 accelerators (such as XPU), data is distributed on different accelerators of different nodes, and each accelerator in the node is connected through a switching chip (or called an intra-node switch). In the scenario of cross-node communication between node 0 and node 1, the data processing method includes: each XPU sends all the data stored in each node to the intra-node switch, and the intra-node switch aggregates the received data. In this process, the amount of data transmitted within the node is D. Then, the intra-node switch of each node sends the aggregated data to the inter-node switch, and the inter-node switch further aggregates the received data and sends the aggregated data to each XPU. In this process, the amount of data transmitted between nodes is D.

[0083] Remote direct memory access (RDMA) is a technology that bypasses the kernel of the remote host operating system to access data in its memory. Since it does not go through the operating system, it not only saves a lot of processor resources, but also improves system throughput and reduces the system's network communication latency.

[0084] The application scenarios and implementation environment of this application are introduced below.

[0085] The embodiment of the present application provides a data processing system that can be applied to scenarios such as AI and HPC. When aggregating, broadcasting, and multicasting data on each node in the system through cross-node communication, the communication delay is reduced, and the network utilization and data processing efficiency are improved. For example, in the parameter training of the AI ​​model, the Allreduce communication algorithm is used to aggregate similar parameters on each node in the system. For example, in the HPC scenario, based on the message passing interface (MPI), the data of the same data block on multiple nodes in the system is broadcasted, multicasted, etc., and the present application does not limit this.

[0086] Reference below Figures 4 to 7 , the data processing system provided in the embodiment of the present application is introduced.

[0087] Figure 4 Schematic diagram of a data processing system provided in an embodiment of the present application. Figure 4 As shown, the data processing system 400 provided in the embodiment of the present application includes multiple nodes 410, and each node 410 is connected to each other through a network switching device 420, and can access a wireless network or a wired network. In some embodiments, the multiple nodes 410 are also referred to as multiple devices 410 or multiple computing devices 410, and the present application is not limited thereto.

[0088] Among them, the data processing system 400 is a distributed data processing system with cross-node communication capabilities. The nodes 410 in the data processing system 400 are connected to each other through a network switching device 420, so that the data processing system 400 can process various distributed aggregation tasks. For example, distributed aggregation tasks include aggregation tasks in distributed parallel training processes under AI scenarios, aggregation tasks in distributed high-performance computing processes under HPC scenarios, aggregation tasks in distributed graphics computing processes, or distributed cloud aggregation tasks, etc., but the present application is not limited thereto. Among them, distributed cloud aggregation tasks refer to aggregation tasks jointly performed by virtualized nodes 410 such as virtual machines or containers and network switching devices 420 in AI, HPC, image computing or other scenarios.

[0089] Node 410 is a device having both computing power and storage capacity, such as a server, a desktop computer, etc., but the present application is not limited thereto. Node 410 can be an independent physical server, or a server cluster or a distributed system consisting of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms. Node 410 can also be a node in a virtualized form such as a virtual machine or a container, in which case the virtual machine or container can be deployed in at least one computing device (e.g., a server).

[0090] In the embodiment of the present application, the node 410 has the ability to perform online computing, and can perform online computing of data synchronously during the process of data transmission within the node, so as to reduce communication delay and improve the overall computing efficiency. In some embodiments, the node 410 also has the ability to broadcast and multicast, and can perform data broadcast and data multicast within the node.

[0091] Schematically, the node 410 includes a communication component and a plurality of accelerators, wherein the communication component is used to provide a data transmission function for communication between the accelerators within the node, and to provide an on-network computing function for communication between the accelerators within the node. In some embodiments, the communication component is a network switching chip deployed inside the node, or the communication component is a communication engine deployed on the accelerator, but the present application is not limited thereto (the figure takes the communication component as an example of a network switching chip deployed inside the node, and the configuration of the communication component is described in detail later). Figure 5 , which will not be described in detail here). Accelerators include, for example, GPUs, XPUs, IPUs, TPUs, DSA chips, etc., but the present application is not limited thereto. It should be understood that the data processing system 400 is capable of communicating with the host, and the host refers to a device used to run various types of computing services, which can control each node 410 in the data processing system 400 to perform corresponding computing tasks. For example, an AI model is running on the host, and the host can control each node 410 in the data processing system 400 to perform distributed parallel training on the AI ​​model, that is, loading the distributed parallel training tasks for the AI ​​model into each accelerator of each node 410 for execution. The specific architecture of the communication components and accelerators in the node 410 is described below. Figure 5 The above is introduced in the embodiment shown and will not be described in detail here.

[0092] The network switching device 420 is a device with network switching capabilities and on-line computing capabilities, such as a switch, a router, etc., also referred to as an inter-node switch (referred to as inter-node SW). In addition, in distributed cloud aggregation tasks, the network switching device 420 can also be implemented in a virtualized form. In an embodiment of the present application, the network switching device 420 is used to provide a data transmission function for the communication between each node 410, and to provide an on-line computing function for the communication between each node 410, that is, in the data transmission process in the cross-node communication scenario, the network switching device 420 is used to synchronously perform on-line computing of the data to reduce communication delays and improve overall computing efficiency.

[0093] It should be noted that Figure 4 The number of nodes 410 and the number of network switching devices 420 shown are only for illustration. The number of nodes 410 and the number of network switching devices 420 may be more or less, and this is not limited in the embodiments of the present application.

[0094] In some embodiments, the wireless network or wired network described above uses standard communication technology and / or protocols. The network is typically a transmission control protocol / internet protocol (TCP / IP) network and an RDMA network in a data center network, such as an RDMA over converged Ethernet (RoCE) network, an InfiniBand (IB) network, etc., without limitation. In other embodiments, customized and / or dedicated data communication technology can be used to replace or supplement the above data communication technology.

[0095] The architecture of the node 410 in the above data processing system 400 is introduced below.

[0096] Based on the aforementioned Figure 4 As can be seen from the introduction of the node 410 in the illustrated embodiment, the node 410 includes a communication component and a plurality of accelerators, wherein the communication component is a network switching chip deployed inside the node, or the communication component is a communication engine deployed on the accelerator. Figure 5 , several architectures of node 410 are illustrated. Figure 5 It is a schematic diagram of the architecture of a node provided in an embodiment of the present application.

[0097] like Figure 5As shown in Figure (a), the node 410 includes a communication component 411 and multiple accelerators 412. The communication component 411 is a network switching chip deployed inside the node (also called an intra-node switch, or intra-node SW for short), and each accelerator 412 is communicatively connected via the communication component 411. Schematically, each accelerator 412 is communicatively connected via a high-speed interconnection path. It should be understood that the communication bandwidth of these paths is usually greater than the bandwidth of the external network (the intra-node network and the inter-node network refer to the aforementioned key terms for introduction and will not be repeated here). In addition, in an embodiment of the present application, a forwarding component is deployed on the accelerator 412 to trigger the on-line computing capability, broadcast capability, and multicast capability within the node 410. This process will be described in detail in the subsequent method embodiments and will not be repeated here. It should be noted that Figure 5 The number of communication components 411 and accelerators 412 in Figure (a) is only for illustration, and the present application does not limit the number of communication components 411 and accelerators 412 in the node 410.

[0098] like Figure 5 As shown in Figure (b), the node 410 includes a communication component 411 and multiple accelerators 412. The communication component 411 is a communication engine deployed on the accelerator 412, also known as an intra-node communication engine. Schematically, each accelerator 412 is connected to each other through a high-speed interconnect path. In an embodiment of the present application, a forwarding component is deployed on the accelerator 412, and the forwarding component is connected to the communication component 411 to trigger the on-line computing capability, broadcast capability, and multicast capability within the node 410. In some embodiments, the node 410 also includes a network switching chip, which is communicatively connected to each accelerator 412 to provide data transmission function for communication between each accelerator 412, but the present application is not limited to this. It should be noted that Figure 5 The number of accelerators 412 and network switching chips in FIG. 4 (b) is for illustration only, and the present application does not limit the number of accelerators 412 and network switching chips in the node 410.

[0099] The hardware structure of the accelerator 412 in the node 410 is introduced below.

[0100] Based on the aforementioned Figure 4 and Figure 5 As can be seen from the introduction of the node 410 in the illustrated embodiment, the communication component 411 in the node 410 can be used as a network switching chip, integrated inside the node 410, and communicated with the accelerator 412, or can be used as a communication engine, integrated inside the accelerator 412, and communicated with the forwarding component 413 of the accelerator 412. Based on this, the following reference Figure 6 and Figure 7 , the hardware structure of the accelerator 412 is introduced.

[0101] Figure 6 Schematic diagram of the structure of an acceleration chip provided in an embodiment of the present application. Figure 6 As shown, the embodiment of the present application provides an acceleration chip 600, which can be configured as the above-mentioned accelerator 412. Taking the communication component 411 in the node 410 as a network switching chip integrated inside the node 410 as an example, the acceleration chip 600 includes a processor 601, a memory 602, an RDMA engine component 603, a forwarding component 604 and a bus 605. Among them, the processor 601, the memory 602, the RDMA engine component 603, and the forwarding component 604 realize communication connection with each other through the bus 605.

[0102] The processor 601 may be a central processing unit (CPU), an application-specific integrated circuit (ASIC), or an integrated circuit for controlling the execution of the program of the present application. The processor 601 may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. The number of the processors 601 may be one or more.

[0103] The memory 602 may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of an instruction or data structure and can be accessed by a computer, but is not limited thereto. Schematically, the memory 602 is used to store at least one section of program code, and the processor 601 is used to call the program code to implement the function of the accelerator involved in the following method embodiment.

[0104] The processor 601 and the memory 602 may be provided separately or integrated together.

[0105] The RDMA engine component 603 is used to communicate with other devices, for example, to communicate with other accelerators within the node, or to communicate with other nodes, or to communicate with network switching devices between nodes, etc., and the present application is not limited thereto. It should be understood that the RDMA engine component 603 has RDMA functionality and can bypass the remote host operating system kernel to access data in its memory. In some embodiments, the RDMA engine component 603 is a network card that supports RDMA technology. It is understandable that, in physical implementation, the network card can be part of an accelerator or a device / equipment independent of the accelerator. The network card may include one or more ports, specifically ports for receiving data. The network card may include a processor, a cache, a memory, and a register, etc. The memory or cache in the network card may be implemented using a RAM-type storage medium, and the present application is not limited thereto.

[0106] The forwarding component 604 can be a chip (DIE) coupled to the RDMA engine component 603, or can be set separately from each component in the chip 600. In some embodiments, the acceleration chip 600 also includes an input / output (I / O) chip, and the forwarding component 604 can be integrated on the I / O chip. The embodiment of the present application does not limit the location of the forwarding component 604. In the embodiment of the present application, the forwarding component 604 is used to process the communication instructions (including data sending instructions and data receiving instructions) sent by the RDMA engine component 603, and is also used to forward communication instructions to the communication component in the node to trigger the on-line computing capability and broadcast capability of the node (this process will be described in detail in the subsequent method embodiments and will not be repeated here).

[0107] The bus 605 is used to provide communication functions between various components inside the acceleration chip 600 .

[0108] Figure 7 Schematic diagram of another acceleration chip provided in an embodiment of the present application. Figure 7 As shown, an embodiment of the present application provides an acceleration chip 700 that can be configured as the above-mentioned accelerator 412. Taking the communication component 411 in the node 410 as a communication engine integrated into the accelerator 412 as an example, the acceleration chip 700 includes a processor 701, a memory 702, an RDMA engine component 703, a forwarding component 704, a communication component 705 and a bus 706. Among them, the processor 701, the memory 702, the RDMA engine component 703, the forwarding component 704, and the communication component 705 are connected to each other through the bus 706. It should be understood that the processor 701, the memory 702, the RDMA engine component 703, the forwarding component 704 and the bus 706 are connected to the above-mentioned Figure 6The same is true as shown, and no further details are given. Schematically, the memory 702 is used to store at least one section of program code, and the processor 701 is used to call the program code to implement the functions of the accelerator involved in the following method embodiments. The communication component 705 is used to provide data transmission functions for communications within the node, for example, communicating with other accelerators within the node, or communicating with a network switching chip within the node, etc., but the present application is not limited thereto. In addition, the present application does not limit the location of the communication component 705 on the acceleration chip 700. It can be a chip coupled to the forwarding component 704, or it can be separately arranged from each component in the acceleration chip 700.

[0109] Based on the above Figures 4 to 7 The illustrated embodiment introduces the data processing system provided by the present application, and the data processing method applied to this data processing system is introduced below.

[0110] Based on the above introduction to the data processing system, it can be known that the data processing system includes multiple nodes, each of which is connected to each other through a network switching device, each node includes a communication component and multiple accelerators, and each accelerator is deployed with a forwarding component, wherein the network switching device and the communication component both have on-line computing capabilities. Schematically, in the data processing system, each node is connected to each other through a network switching device to form an inter-node network, and the node is connected to each other through a communication component and multiple accelerators to form an intra-node network. In this way, since both the nodes and the nodes have on-line computing capabilities, the data processing system provided by the present application can also realize a cross-node communication method that integrates inter-node networking and intra-node networking. In the process of cross-node communication, the networking bandwidth within and between nodes can be used synchronously, and the on-line computing capabilities within and between nodes can also be used synchronously, wherein the on-line computing capabilities, broadcast capabilities, and multicast capabilities within the node are triggered by the forwarding components deployed on the accelerator, thereby reducing the cross-node communication delay and improving network utilization and data processing efficiency.

[0111] The data processing method provided by the present application is introduced below through several method embodiments.

[0112] Figure 8 : is a flow chart of a data processing method provided in an embodiment of the present application. Figure 8 As shown, the data processing method is applied to the aforementioned Figures 4 to 7 The data processing system shown in the figure takes the interaction between various execution entities in the data processing system as an example (in the figure, M is the number of nodes in the system, M is a positive integer, and N is the number of accelerators in the node, N is a positive integer) to introduce the data processing method when the data processing system executes any distributed aggregation task. Schematically, the data processing method includes the following steps 801 to 808.

[0113] 801. A forwarding component of a first accelerator in a first node forwards a data sending request for a distributed aggregation task to a communication component of the first node.

[0114] In an embodiment of the present application, the first node refers to any node in the data processing system to be involved in the distributed aggregation task, and the first accelerator refers to any accelerator in the first node to be involved in the distributed aggregation task. The distributed aggregation task indicates that the data of the distributed aggregation task is aggregated, wherein the operation type of data aggregation is, for example, addition, subtraction, multiplication, etc., but the present application is not limited thereto. The data sending request indicates that the data of the distributed aggregation task on the first accelerator is sent to the network switching device. The forwarding component of the first accelerator forwards the data sending request to the communication component, which can trigger the on-line computing capability of the communication component, so that it aggregates the data of the distributed aggregation task on each accelerator in the first node.

[0115] In some embodiments, the data transmission request indicates that the data of the first data block on the first accelerator is sent to the network switching device. The first data block refers to any data block of the distributed aggregation task. It should be understood that the data required to perform the distributed aggregation task is distributed on each accelerator of each node in the data processing system. For any accelerator, the forwarding component of the accelerator sends a data transmission request to the communication component of the node to which it belongs, so that it aggregates the data of a certain data block on each accelerator in the node to which it belongs. In this way, the amount of data transmission within the node can be reduced and communication resources can be saved. In other words, the forwarding component of an accelerator is responsible for triggering the communication component to aggregate the data of a data block. For example, taking the first node including 4 accelerators XPU0, XPU1, XPU2 and XPU3 as an example, the data of data blocks A, B, C, and D required to perform the distributed aggregation task are distributed on these 4 accelerators. Taking the first data block as data block A as an example, XPU0 stores data A0 of data block A, XPU1 stores data A1 of data block A, XPU2 stores data A2 of data block A, and XPU3 stores data A3 of data block A. Correspondingly, taking the first data block as data block A and the first accelerator as XPU0 as an example, the above data sending request also indicates: sending data A0 of data block A on XPU0 to the network switching device, and the forwarding component on XPU0 forwards the data sending request to the communication component, triggering the communication component to aggregate the data of data block A on each XPU in the first node, that is, to aggregate data A0, A1, A2, and A3.

[0116] Based on the foregoing introduction to the data processing system, it can be seen that the data processing system provided in the present application is a distributed processing system with cross-node communication capabilities, which can handle various distributed aggregation tasks. For any distributed aggregation task, the data required to execute the distributed aggregation task is distributed on each accelerator of each node in the data processing system. Since the network switching device in the data processing system has on-line computing capabilities, the data processing system sends a data sending request so that each accelerator sends the data of the distributed aggregation task stored in each accelerator to the network switching device, triggering the on-line computing capability of the network switching device (that is, the on-line computing capability between nodes), so that it aggregates the data received from each accelerator, and redistributes the aggregation results to each accelerator to complete the execution of the distributed aggregation task. In this process, since the present application provides an accelerator deployed with a forwarding component, the forwarding component can trigger the on-line computing capability of the communication component within the node (that is, the on-line computing capability within the node). Therefore, when the forwarding component obtains the data sending request issued by the data processing system, it can forward the data sending request to the communication component of the node, so that it aggregates the data corresponding to the distributed aggregation task on each accelerator in the node to which it belongs, and sends the aggregated data to the network switching device. In this way, the data received by the network switching device is part of the data that has been aggregated, thereby effectively reducing communication latency and improving overall computing efficiency.

[0117] Schematically, the present application configures a special address in the data transmission request, so that it serves as a trigger condition for the forwarding component to forward the request. When the forwarding component of the accelerator obtains the data transmission request, if it recognizes this special address, it triggers the forwarding component to forward the data transmission request to the communication component of the node. Based on this, the implementation process of this step includes the following steps:

[0118] Step 1: The forwarding component of the first accelerator obtains a data sending request for a distributed aggregation task.

[0119] Among them, the present application does not limit the form of the data sending request. For example, the data sending request is a read request (read request), a write request (write request) or a send request (send request), etc., and can be set according to actual needs (such as network protocols, implementation methods of online computing, etc.). Schematically, the data sending request is generated based on the send queue entry (send queue element, SQE) issued by the data processing system. It should be understood that before executing step 801, the data processing system pre-configures multiple queue pairs (queue pairs, QP) for each accelerator of each node in the system, and each QP includes a send queue (send queue, SQ) and a receive queue (receive queue, RQ). Each SQ is used to store at least one SQE. Each RQ is used to store at least one receive queue entry (receive queue element, RQE). SQE and RQE can be collectively referred to as transmission instruction entries. Among them, the so-called SQE refers to the instruction information required for the RDMA engine component of the accelerator to obtain data from the storage space (such as memory). The so-called RQE is the instruction information required by the RDMA engine component of the accelerator to store the data after receiving the data. That is, each SQE and RQE is used to transmit instruction information and does not contain data. Therefore, the receiving end or sending end of the data needs to obtain data from the storage space (such as memory) according to the instruction information indicated by the SQE or RQE. In some embodiments, based on the above Figure 6 and Figure 7 It can be seen from the structure of the accelerator shown that in the accelerator, the forwarding component is connected to the RDMA engine component through a bus. Therefore, the RDMA engine component generates a data sending request according to the SQE issued by the data processing system, and sends the data sending request to the forwarding component. Of course, the forwarding component can also directly obtain the data sending request through the bus, and this application does not limit the way in which the forwarding component obtains the data sending request.

[0120] Step 2: If the data sending request includes the first address, the forwarding component of the first accelerator forwards the data sending request to the communication component of the first node.

[0121] The first address includes the task identifier of the distributed aggregation task and the storage address of the data of the distributed aggregation task on the first accelerator. If the forwarding component of the first accelerator recognizes that the data sending request includes the first address, it forwards the data sending request to the communication component of the first node. It should be understood that the first address is also a special address provided by this application. For example, refer to Fig. 9 , Fig. 9 is a schematic diagram of a first address provided in an embodiment of the present application. Fig. 9As shown, the high bit of the first address is the task ID (job ID) of the distributed aggregation task, and the low bit of the first address is the storage address of the data of the distributed aggregation task on the first accelerator (i.e., the offset address of the data to be aggregated, which is not limited to this and can also be a physical address, etc.). Among them, the task ID of the distributed aggregation task is globally unified, that is, for each accelerator participating in the distributed aggregation task, the special address of its data sending request includes the same task ID.

[0122] It should be understood that SQE usually includes a destination identifier (destination ID, dst_id) and a source address (sourceaddress, src_id). The destination identifier refers to the identifier of the network switching device, that is, the destination of the data to be sent, and the source address is the storage address of the data to be sent. In this application, by configuring the source address in SQE as a special address, the data sending request will carry this special address, so that when the forwarding component recognizes this special address, it triggers the forwarding component to forward the data sending request to the communication component, thereby triggering the on-line computing capability in the node. Of course, SQE can also include a source identifier (source ID, src_id) and a destination address (destination address, dst_addr), etc. This application does not limit the form of SQE, and it can be set according to actual needs (such as network protocols, implementation methods of on-line computing, etc.).

[0123] 802. The communication component of the first node aggregates the data of the distributed aggregation task on each accelerator in the first node in response to the data sending request to obtain first aggregated data.

[0124] Among them, the communication component of the first node responds to the data transmission request, obtains the data of the distributed aggregation task on each accelerator in the first node, aggregates the obtained data, and obtains the first aggregated data. In some embodiments, the communication component of the first node responds to the data transmission request, aggregates the data of the first data block on each accelerator in the first node, and obtains the first aggregated data, and the first data block refers to any data block of the distributed aggregation task. For the introduction of the first data block, see the aforementioned step 801, which will not be repeated here.

[0125] In addition, based on the above Figure 5 As can be seen from the node architecture shown, the communication component of the node can be a network switching chip deployed inside the node or a communication engine deployed on an accelerator. The following describes the implementation process of this step based on the deployment methods of these two communication components:

[0126] Case 1: The communication component of the first node is a network switching chip deployed on the first node, and the accelerators in the first node are communicatively connected through the communication component.

[0127] Among them, the communication component determines the storage address of the data of the distributed aggregation task on each accelerator of the first node in response to the data sending request, obtains the data corresponding to each accelerator from each accelerator of the first node, aggregates the data corresponding to each accelerator, and obtains the first aggregated data. It should be understood that each accelerator participating in the distributed aggregation task in the first node will forward the corresponding data sending request to the communication component of the first node. Therefore, the communication component can determine the storage address of the data to be aggregated on each accelerator of the first node based on the first address carried by each data sending request. In this process, the communication component can determine the storage address of the corresponding data and obtain the corresponding data each time it receives a data sending request, or it can determine the storage address of the data on each accelerator and obtain the corresponding data after receiving the data sending request sent by all accelerators in the node. This application is not limited to this.

[0128] In some embodiments, the storage address of the data in the first address is an offset address, and the communication component is pre-configured with the starting address of the data corresponding to the distributed aggregation task on each accelerator. The communication component uses the task identifier of the distributed aggregation task in the first address as an index to obtain the starting address of the data on the first accelerator, and combines the starting address of the data with the offset address of the data to obtain the storage address of the data. This process can also be understood as an address translation process. It should be noted that this application does not limit the storage address type of the data. The storage address can be an offset address or a physical address, and can be configured according to the actual network protocol.

[0129] In some embodiments, the communication component aggregates the data corresponding to each accelerator based on the task execution information to obtain the first aggregated data. Among them, the task execution information includes at least one of the following: the operation type of data aggregation (such as addition, subtraction, multiplication, etc.), the data type (such as 32 bits, 64 bits, etc.), the number of ranks, the rank number, the physical address of the data, etc., and the present application is not limited to this. Schematically, the task execution information can be information pre-configured in the communication component, or it can be carried in the data sending request. For example, taking the data sending request as a read request as an example, the task execution information is pre-configured in the communication component, and the communication component responds to the data sending request, using the task identifier of the distributed aggregation task in the first address as an index to obtain the task execution information. For another example, taking the data sending request as a write request or a send request as an example, the task execution information is carried in the data sending request, so that the communication component can aggregate the data corresponding to each accelerator based on the task execution information carried by the data sending request.

[0130] Reference below Fig.10 , the data aggregation process corresponding to the above situation is illustrated by example. Fig.10 Schematic diagram of a communication component performing data aggregation provided by an embodiment of the present application. Fig.10 As shown, taking any accelerator as an example, the RDMA engine component of the accelerator sends a data transmission request carrying a first address to the forwarding component, the forwarding component recognizes that the data transmission request includes the first address, and forwards the data transmission request carrying the first address to the communication component (i.e., the SW in the node), and the communication component responds to the data transmission request and performs address translation on the first address, that is, taking the storage address of the data in the first address as the offset address as an example, the communication component uses the task identifier (job ID) as an index to obtain the starting address of the data on the accelerator, and combines the starting address and the offset address of the data to obtain the storage address of the data on the accelerator. It should be understood that the communication component will receive the data transmission request sent by each accelerator in the node, so that the communication component can determine the storage address of the data on each accelerator, initiate a data acquisition request for each accelerator, and then obtain the data corresponding to each accelerator, aggregate the data corresponding to each accelerator, and obtain the first aggregated data.

[0131] Case 2: The communication component of the first node is a communication engine deployed on the first accelerator, and the forwarding component of the first accelerator is communicatively connected to the communication component.

[0132] Among them, the communication component responds to the data transmission request, obtains the storage address of the data corresponding to the distributed aggregation task on at least one second accelerator of the first node from the data transmission request, obtains the data corresponding to each second accelerator from each second accelerator, aggregates the data corresponding to the first accelerator and the data corresponding to each second accelerator, and obtains the first aggregated data, and the second accelerator refers to the accelerator other than the first accelerator in the first node. It should be understood that since in the second case, the communication component is a communication engine deployed on the first accelerator, that is, the communication component is inside the first accelerator, so that the communication component can directly read the corresponding data from the memory of the first accelerator, and the forwarding component of the first accelerator carries the storage address of the data of the distributed aggregation task on each second accelerator in the data transmission request when forwarding the data transmission request, so that the communication component can obtain the corresponding data from the external accelerator according to the storage address carried in the data transmission request. Of course, the data transmission request can also carry the storage address of the data on the first accelerator, and the present application is not limited to this. It should be noted that the storage address, data aggregation process, etc. involved in the second case are the same as the above case, so they are not repeated.

[0133] Reference below Fig.11, the data aggregation process corresponding to the above situation 2 is illustrated by example. Fig.11 FIG. 1 is a schematic diagram of another communication component for data aggregation provided in an embodiment of the present application. Fig.11 As shown, taking any accelerator as an example, the RDMA engine component of the accelerator sends a data sending request carrying a first address to the forwarding component, and the forwarding component recognizes that the data sending request includes the first address, and sends the data sending request carrying the first address to the communication component (i.e., the intra-node communication engine), wherein the forwarding component performs the address translation process to obtain the storage address of the data on at least one second accelerator, and then the communication component obtains the data corresponding to each second accelerator from each second accelerator, aggregates the data corresponding to the first accelerator and the data corresponding to each second accelerator, and obtains the first aggregated data.

[0134] After the above step 802, corresponding data aggregation methods are provided for different deployment methods of communication components. In other words, if there is a network switching chip with on-line computing capabilities in the node, the on-line computing in the node can be realized through the network switching chip. If there is no network switching chip with on-line computing capabilities in the node, the on-line computing in the node can be realized through the communication engine in the node with on-line computing capabilities. It can be seen that the present application provides a variety of configuration methods for communication components, which is convenient for flexible configuration of communication components according to needs in actual applications, thereby improving the applicability of the data processing system.

[0135] 803. The communication component of the first node sends the first aggregated data to the forwarding component of the first accelerator.

[0136] 804. The forwarding component of the first accelerator sends the first aggregated data to the network switching device.

[0137] The communication component may also send the first aggregated data to the RDMA engine component of the first accelerator, and the RDMA engine component sends the first aggregated data to the network switching device, but the present application is not limited thereto.

[0138] Through the above steps 801 to 804, taking any accelerator of any node participating in the distributed aggregation task as an example, the process of how the forwarding component of the accelerator triggers the in-network computing capability of the node is introduced. It should be understood that for each node participating in the distributed aggregation task, each accelerator participating in the distributed aggregation task on each node executes the process shown in the above steps 801 to 804, that is, the forwarding component of each accelerator in each node will send aggregation data to the network switching device, so that the network switching device can perform the distributed aggregation task based on the received aggregation data sent by each accelerator in each node. This process is introduced through step 805 below.

[0139] 805. The network switching device receives the aggregated data sent by each accelerator in each node, aggregates the received aggregated data, and obtains target aggregated data.

[0140] After receiving the aggregated data sent by each accelerator in each node, the network switching device aggregates the received aggregated data based on the operation type of data aggregation to obtain target aggregated data.

[0141] In some embodiments, the network switching device aggregates the received aggregated data belonging to the same data block to obtain target aggregated data. This process is to aggregate the received data of the same-plane card. It should be understood that based on the aforementioned step 801, the data required to perform the distributed aggregation task is distributed on each accelerator of each node in the data processing system. The forwarding component of an accelerator is responsible for triggering the communication component to aggregate the data of a data block. The so-called same-plane card is the accelerator responsible for the same data block.

[0142] For example, refer to Fig.12 , Fig.12 Schematic diagram of a data processing method provided in an embodiment of the present application. Fig.12 As shown, the data processing system includes node 0 and node 1, each node includes 4 accelerators XPU, node 0 includes XPU0, XPU1, XPU2 and XPU3, node 1 includes XPU4, XPU5, XPU6 and XPU7, and the data of data blocks A, B, C, and D required for executing the distributed aggregation task are distributed on these 8 accelerators. Take XPU0 and XPU4 as an example, both of which are responsible for data block A (XPU0 and XPU4 are coplanar cards), the forwarding component of XPU0 triggers the communication component of node 0 (intra-node SW) to aggregate the data of data block A in node 0, obtain aggregated data A0-A3, and send it to the network switching device (inter-node SW), the forwarding component of XPU4 triggers the communication component of node 1 (intra-node SW) to aggregate the data of data block A in node 1, obtain aggregated data A4-A7, and send it to the network switching device (inter-node SW), so that the network switching device aggregates the aggregated data A0-A3 and A4-A7 to obtain the target aggregated data A0-A7. The same is true for the other data blocks B, C, and D, so they will not be described in detail.

[0143] 806. The network switching device sends the target aggregated data to each accelerator in each node.

[0144] In some embodiments, in the above steps 801 to 806, the data aggregation performed by the communication component and the data aggregation performed by the network switching device are pipelined, that is, the communication component returns each packet calculated to the forwarding component, so that the network switching device can timely aggregate the data according to the received data and distribute it to each accelerator.

[0145] For example, continuing to refer to the above Fig.12 After the communication component of node 0 obtains the aggregate data A0-A3, it immediately sends it to the network switching device. After the communication component of node 1 obtains the aggregate data A4-A7, it also immediately sends it to the network switching device. In this way, the network switching device can aggregate the aggregate data A0-A3 and A4-A7 in time, and send the target aggregate data A0-A7 to each accelerator in each node, so that each accelerator performs the target aggregate data distribution process shown in the following steps 807 and 808. Through this pipeline processing method, the networking bandwidth within and between nodes can be further synchronously utilized, and the online computing capabilities within and between nodes can also be further synchronously utilized, thereby effectively reducing the cross-node communication delay and improving the network utilization and data processing efficiency.

[0146] In addition, during the distribution of the target aggregated data, the present application continues to use the forwarding component deployed on the accelerator to trigger the broadcast capability and multicast capability within the node, thereby reducing data transmission latency and improving network utilization and data processing efficiency. The following, through steps 807 to 808, continues to take the first accelerator in the first node as an example to introduce the process of the first accelerator triggering the broadcast capability within the node.

[0147] 807. The forwarding component of the first accelerator forwards the data reception request to the communication component of the first node in response to the data reception request for the distributed aggregation task.

[0148] In an embodiment of the present application, the data reception request indicates that the target aggregate data is written to the first accelerator. The forwarding component of the first accelerator forwards the data reception request to the communication component, which can trigger the intra-node broadcast capability of the communication component and broadcast the target aggregate data to each accelerator in the first node.

[0149] In some embodiments, the data receiving request indicates that the aggregated data corresponding to the first data block in the target aggregated data is written to the first accelerator. The first data block refers to any data block of the distributed aggregation task. It should be understood that based on the aforementioned step 801, in the present application, the forwarding component of an accelerator can be responsible for triggering the communication component to aggregate the data of a data block. Similarly, in the distribution process of the target aggregated data, the forwarding component of an accelerator can be responsible for triggering the communication component to broadcast the aggregated data of the same data block, so that communication resources can be saved. For example, continue with Fig.12 For example, node 0 includes four accelerators XPU0, XPU1, XPU2 and XPU3. The data required to execute the distributed aggregation task is distributed on these four accelerators. Taking the first data block as data block A and the first accelerator as XPU0 as an example, then the forwarding component of XPU0 is responsible for triggering the communication component to broadcast the target aggregation data A0-A7 to XPU1, XPU2 and XPU3. Similarly, the forwarding component of XPU1 is responsible for triggering the communication component to broadcast the target aggregation data B0-B7 to XPU0, XPU2 and XPU3. No further details are given.

[0150] It should be understood that since the present application provides an accelerator deployed with a forwarding component, the forwarding component can trigger the broadcast capability of the communication component within the node. Therefore, when the forwarding component obtains the data reception request issued by the data processing system, it can forward this data reception request to the communication component of the node, so that it broadcasts the aggregated data to each accelerator in the node. Moreover, in the case where each accelerator is responsible for a data block, since each accelerator is responsible for broadcasting a part of the target aggregated data, and each accelerator can execute synchronously, it can effectively reduce the communication delay and improve the overall computing efficiency.

[0151] Schematically, the present application configures a special address in the data receiving request in the same manner as the aforementioned step 801, so that it serves as a trigger condition for the forwarding component to forward the request. When the forwarding component of the accelerator obtains the data receiving request, if it recognizes this special address, it triggers the forwarding component to forward the data receiving request to the communication component of the node. Based on this, the implementation process of this step includes the following steps:

[0152] Step 1: The forwarding component of the first accelerator obtains a data receiving request for a distributed aggregation task.

[0153] The present application does not limit the form of the data receiving request. For example, the data receiving request is a write request, a send request, etc., and can be set according to actual needs (such as network protocol, implementation method of intra-node broadcast, etc.). Schematically, the data receiving request is generated based on the RQE issued by the data processing system. In some embodiments, based on the aforementioned Figure 6 and Figure 7 It can be seen from the structure of the accelerator shown that in the accelerator, the forwarding component is connected to the RDMA engine component through a bus. Therefore, the RDMA engine component generates a data reception request according to the RQE issued by the data processing system, and sends the data reception request to the forwarding component. Of course, the forwarding component can also directly obtain the data reception request through the bus, and this application does not limit the way in which the forwarding component obtains the data reception request.

[0154] Step 2: If the data receiving request includes the second address, the forwarding component of the first accelerator forwards the data receiving request to the communication component of the first node.

[0155] The second address includes the task identifier of the distributed aggregation task and the write address of the target aggregation data on the first accelerator. If the forwarding component of the first accelerator recognizes that the data receiving request includes the second address, it forwards the data receiving request to the communication component of the first node. It should be understood that the second address is another special address provided by the present application. For example, refer to Fig.13 , Fig.13 is a schematic diagram of a second address provided in an embodiment of the present application. Fig.13 As shown, the high bit of the second address is the job ID of the distributed aggregation task, and the low bit of the second address is the write address of the target aggregation data on the first accelerator, for example, the offset address of the data to be written. It should be understood that the second address here is the same as the first address, so it will not be repeated.

[0156] It should be understood that usually RQE includes a source identifier (source ID, src_id) and a destination address (destination address, dst_addr). The source identifier refers to the identifier of the network switching device, and the destination address refers to the destination of the data, that is, the write address of the data. In this application, by configuring the destination address in RQE as a special address, the data receiving request will carry this special address, so that when the forwarding component recognizes this special address, it triggers the forwarding component to forward the data receiving request to the communication component, thereby triggering the broadcast capability within the node. Of course, RQE can also include a destination identifier (destination ID, dst_id) and a source address (source address, src_id). This application does not limit the form of RQE, and it can be set according to actual needs (such as network protocols, implementation methods of broadcasting within nodes, etc.).

[0157] 808. The communication component of the first node broadcasts the target aggregate data to each accelerator in the first node in response to the data reception request.

[0158] In some embodiments, the communication component of the first node broadcasts the aggregate data corresponding to the first data block in the target aggregate data to each accelerator in the first node in response to the data reception request.

[0159] In addition, based on the above Figure 5 As can be seen from the node architecture shown, the communication component of the node can be a network switching chip deployed inside the node or a communication engine deployed on an accelerator. The following describes the implementation process of this step based on the deployment methods of these two communication components:

[0160] Case 1: The communication component of the first node is a network switching chip deployed on the first node, and the accelerators in the first node are communicatively connected through the communication component.

[0161] Among them, the communication component determines the write address of the target aggregate data on each accelerator of the first node in response to the data reception request, and broadcasts the target aggregate data to each accelerator in the first node. It should be understood that each accelerator participating in the distributed aggregation task in the first node will send a data reception request to the communication component of the first node. The communication component can broadcast the corresponding data each time it receives a data reception request, or it can broadcast the corresponding data after receiving the data reception request sent by all accelerators in the node. This application does not limit this. In addition, if the write address of the target aggregate data on the first accelerator in the second address is an offset address, the communication component performs address translation on the second address based on the same process as the aforementioned first address, which will not be repeated here.

[0162] Reference below Fig.14 , the data broadcasting process corresponding to the above situation is explained with an example. Fig.14 Schematic diagram of a communication component performing data broadcasting provided by an embodiment of the present application. Fig.14 As shown, taking any accelerator as an example, the RDMA engine component of the accelerator sends a data reception request carrying the second address to the forwarding component. The forwarding component recognizes that the data reception request includes the second address, and forwards the data reception request carrying the second address to the communication component (i.e., the SW in the node). In response to the data reception request, the communication component performs address translation on the second address to obtain the write address of the target aggregate data on the accelerator. It should be understood that the communication component will receive the data reception requests sent by each accelerator in the node. In this way, the communication component can determine the write address of the target aggregate data on each accelerator, thereby realizing data broadcasting.

[0163] Case 2: The communication component of the first node is a communication engine deployed on the first accelerator, and the forwarding component of the first accelerator is communicatively connected to the communication component.

[0164] Among them, the communication component obtains the write address of the target aggregate data on at least one second accelerator in the first node from the data reception request in response to the data reception request, and broadcasts the target aggregate data to each accelerator in the first node. It should be understood that since in situation two, the communication component is a communication engine deployed on the first accelerator, that is, the communication component is inside the first accelerator, so that the communication component can directly write data into the memory of the first accelerator, and the forwarding component of the first accelerator carries the write address of the target aggregate data on each second accelerator in the data reception request when forwarding the data reception request. Of course, the data reception request can also carry the write address of the target aggregate data on the first accelerator, and the present application is not limited to this.

[0165] Reference below Fig.15 , the data broadcast process corresponding to the above situation 2 is illustrated by example. Fig.15 FIG. 1 is a schematic diagram of another communication component for data broadcasting provided in an embodiment of the present application. Fig.15 As shown, taking any accelerator as an example, the RDMA engine component of the accelerator sends a data receiving request carrying a second address to the forwarding component, and the forwarding component recognizes that the data sending request includes the second address, and forwards the data receiving request carrying the second address to the communication component (i.e., the intra-node communication engine), wherein the forwarding component performs the address translation process to obtain the write address of the target aggregate data on at least one second accelerator, thereby realizing data broadcasting.

[0166] After the above step 807, corresponding data broadcasting methods are provided for different deployment methods of communication components. In other words, if there is a network switching chip with broadcasting capability in the node, data broadcasting within the node can be achieved through the network switching chip. If there is no network switching chip with broadcasting capability in the node, data broadcasting within the node can be achieved through an intra-node communication engine with broadcasting capability.

[0167] Let’s continue to refer to the above Fig.12 , taking an accelerator responsible for a data block as an example, the distribution process of the target aggregated data shown in the above steps 807 and 808 is illustrated. Fig.12 As shown, when the network switching device obtains the target aggregate data A0-A7, B0-B7, C0-C7 and D0-D7, it distributes these target aggregate data to each XPU in node 0 and node 1. Taking XPU0 as an example, the forwarding component of XPU0 triggers the communication component (SW in the node) of node 0 to broadcast the aggregate data A0-A7 associated with data block A to each XPU of node 0. The other XPUs are similar and will not be described in detail.

[0168] In addition, in the above steps 807 and 808, the communication component broadcasts the target aggregate data to each accelerator in the node by broadcasting. In some embodiments, the communication component can also multicast the target aggregate data to other accelerators in the node except the first accelerator by multicasting. That is, since the first accelerator is the accelerator that initiates the broadcast, the first accelerator can directly write the received target aggregate data into the memory without broadcasting through the communication component, thereby saving communication resources.

[0169] Reference below Fig.16 , the data processing method shown in the above steps 801 to 808 is illustrated by way of example. Fig.16 is a flow chart of a data processing method provided in an embodiment of the present application. Fig.16 As shown, taking the communication component as a network switching chip deployed in a node as an example, for any accelerator in any node, the data processing method includes the following steps:

[0170] 1. The data processing system sends the SQE for the distributed aggregation task to the accelerator. The RDMA engine component of the accelerator generates a data sending request based on the SQE and sends it to the forwarding component.

[0171] 2. The forwarding component recognizes that the data sending request includes the first address (ie, the special address), and forwards the data sending request carrying the first address to the communication component.

[0172] 3. In response to the data sending request, the communication component aggregates the data of a certain data block corresponding to the distributed aggregation task on each accelerator in the node, obtains an aggregation result, and returns the aggregation result to the forwarding component.

[0173] 4. The forwarding component sends the aggregation results to the network switching device through the RDMA engine component.

[0174] 5. The network switching device receives the aggregated data sent by each accelerator in each node, aggregates the received aggregated data, and obtains target aggregated data.

[0175] 6. The network switching device sends the target aggregate data to each accelerator in each node.

[0176] 7. Continuing with any accelerator as an example, the data processing system sends an RQE for the distributed aggregation task to the accelerator. The RDMA engine component of the accelerator generates a data reception request based on the RQE and sends it to the forwarding component.

[0177] 8. The forwarding component recognizes that the data receiving request includes the second address (ie, the special address), and forwards the data receiving request carrying the second address to the communication component.

[0178] 9. In response to the data reception request, the communication component broadcasts the aggregate data for which the accelerator is responsible in the target aggregate data to each accelerator of the node to which it belongs.

[0179] It can be seen that in the data processing method provided by the present application, by deploying a forwarding component on the accelerator, on the one hand, it is possible to trigger the on-line computing capability in the node based on the data sending request for the distributed aggregation task and the source address of the data sending request as the trigger condition; on the other hand, it is possible to trigger the broadcast capability (or multicast capability) in the node based on the data receiving request for the distributed aggregation task and the destination address of the data receiving request as the trigger condition. In this way, the networking bandwidth within and between nodes can be utilized synchronously, and the on-line computing capability within and between nodes can also be utilized synchronously, which effectively reduces the cross-node communication delay and improves the network utilization and data processing efficiency. Moreover, the entire data processing process is implemented by calling a data sending request carrying a special address and a data receiving request carrying a special address, which is convenient to operate. In addition, combined with Fig.12 As can be seen from the embodiment shown, since the present application utilizes the on-line computing capability of the node, and one accelerator is responsible for the data of one data block, compared to Figure 2 The related technology shown in the figure can reduce the communication delay from D / N / B+2D*((N-1) / N) / b to D / N / B, where D is the total data volume, N is the number of accelerators in the node, B is the inter-node bandwidth, and b is the intra-node bandwidth. Taking the accelerator as NPU as an example, the intra-node bandwidth b is 7 times the inter-node bandwidth B. Then, using the data processing method provided by this application, compared with Figure 2 The related technology shown can reduce the communication delay to 1 / 3 of the related technology.

[0180] It should be understood that in the above Figures 8 to 16 In the data processing method shown, the forwarding component deployed on the accelerator can trigger the on-line computing capability, broadcast capability, and multicast capability within the node, thereby reducing the cross-node communication delay and improving network utilization and data processing efficiency. In other embodiments, in the scenario of cross-node data broadcast, the forwarding component deployed on the accelerator can trigger the broadcast capability and multicast capability within the node, thereby reducing the communication delay.

[0181] Schematically, refer to Fig.17 , Fig.17 Schematic diagram of another data processing method provided in an embodiment of the present application. Fig.17As shown, the data processing system includes node 0 and node 1, each node includes 4 accelerators XPU, node 0 includes XPU0, XPU1, XPU2 and XPU3, and node 1 includes XPU4, XPU5, XPU6 and XPU7. In some scenarios (such as scenarios of pipeline parallel processing based on AI models), the data of node 0 needs to be sent to each accelerator in node 1. In the related art, each XPU in node 0 broadcasts all data to the same plane card in node 1, so that the amount of data transmitted by each accelerator is D. However, the data in each XPU in node 0 is the same, and it is wasteful for each XPU to transmit the amount of data D. By adopting the data processing method provided by the present application, for the data receiving end node 1, the forwarding component of any XPU in node 1 can trigger the broadcast capability in the node, and then each XPU of node 0 only needs to transmit D / N amount of data (N is the number of accelerators in the node), thereby effectively reducing the communication delay. For example, compared with the related art, the delay can be reduced from D / B in the related art to D / N / B, where N is the number of accelerators in the node. If N is 8, the delay can be reduced to 1 / 8. It should be noted that Fig.17 Only the broadcasting of data block A is taken as an example for introduction. The same is true for data blocks B, C, and D, which will not be described in detail.

[0182] Based on the data processing system provided by this application, the above Fig.17 The contents shown are introduced.

[0183] Schematically, refer to Fig.18 , Fig.18 is a flow chart of another data processing method provided in an embodiment of the present application. Fig.18 As shown, the data processing method is applied to the aforementioned Figures 4 to 7 The data processing system shown in the figure takes the interaction between various execution entities in the data processing system as an example to introduce the data processing method for the data processing system to perform any broadcast task. Schematically, the data processing method includes the following steps 1801 to 1804. The method includes:

[0184] 1801. A first accelerator in a first node sends broadcast data to be broadcast to a second node to a network switching device.

[0185] In some embodiments, each accelerator in the first node is responsible for sending the data of a data block as broadcast data to the network switching device. Fig.17 , taking the first accelerator as XPU0 of node 0 as an example, the broadcast data sent by the first accelerator is the data of data block A. It should be understood that the first accelerator can implement the aforementioned Figures 8 to 16 All functions of the first accelerator in the illustrated embodiment will not be described in detail here.

[0186] 1802. The network switching device forwards the broadcast data sent by the first accelerator to the third accelerator in the second node.

[0187] The third accelerator refers to an accelerator in the second node that is responsible for the same data block as the first accelerator.

[0188] 1803. The forwarding component of the third accelerator forwards the data reception request to the communication component of the second node in response to the data reception request for the broadcast data.

[0189] Among them, based on the same process as the aforementioned step 807, the present application configures a special address in the data reception request for the broadcast data, so that it serves as a trigger condition for the forwarding component to forward the request. When the forwarding component of the accelerator obtains the data reception request, if this special address is identified, the forwarding component is triggered to forward the data reception request to the communication component of the node. Schematically, this step 1803 includes: if the data reception request for the broadcast data includes a third address, the forwarding component of the third accelerator forwards the data reception request to the communication component of the second node, and the third address includes the task identifier of this broadcast task and the write address of the broadcast data on the third accelerator. It should be noted that the composition of the third address, the form of the data reception request, etc. are the same as those of the aforementioned step 807, so they are not repeated here.

[0190] 1804. The communication component of the second node broadcasts the broadcast data to each accelerator in the second node in response to the data reception request.

[0191] In some embodiments, the communication component of the second node responds to the data reception request and broadcasts the data of the first broadcast data block in the broadcast data to each accelerator in the second node. The first broadcast data block refers to any broadcast data block in the broadcast data. It should be understood that the first broadcast data block is the same as the aforementioned step 808. Figure 8 The same is true for the first data block in the illustrated embodiment, which will not be described in detail here.

[0192] It should be understood that the above steps 1801 to 1804 are introduced by taking any accelerator in the first node as an example, and each accelerator in the first node executes the process shown in the above steps 1801 to 1804, so that the data on the first node can be quickly broadcast to the second node, effectively reducing the communication delay. That is, in the scenario of cross-node data broadcasting, the forwarding component deployed on the accelerator triggers the broadcast capability and multicast capability within the node, thereby reducing the communication delay and improving the network utilization. Moreover, the entire data broadcasting process is implemented by calling a normal data sending request and a data receiving request carrying a special address, which is convenient to operate.

[0193] Fig.19 1901 is a schematic diagram of the structure of a data processing device provided in an embodiment of the present application. The data processing device can implement part or all of the functions of any one of the accelerators in the aforementioned embodiments. The data processing device can be a chip or board including any of the aforementioned accelerators. The data processing device includes a communication interface 1901 and a processing unit 1902. The communication interface 1901 can be an interface of a chip for interacting with other chips or devices for instructions or information, and the processing unit 1902 can be a hardware logic for performing instruction processing, and the processing unit 1902 can be used to implement the functions of the accelerator described in the aforementioned embodiments.

[0194] In the present application, the words such as the term "first", "second", etc. are used to distinguish the same or similar items with substantially the same effect and function. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", and the quantity and execution order are not limited. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish an element from another element. For example, without departing from the scope of various described examples, the first node can be referred to as the second node, and similarly, the second node can be referred to as the first node. The first node and the second node can both be nodes, and in some cases, can be separate and different nodes.

[0195] The term "at least one" in this application means one or more, and the term "plurality" in this application means two or more, for example, a plurality of nodes means two or more nodes.

[0196] The above description is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

[0197] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part of the embodiments may be implemented in the form of program structure information. The program structure information includes one or more program instructions. When the program instructions are loaded and executed on a computing device, all or part of the processes or functions in the embodiments of the present application are generated.

[0198] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0199] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A data processing method, characterized in that: Applied to a data processing system, the data processing system includes a plurality of nodes, each of the nodes is communicatively connected via a network switching device, wherein a first node includes a communication component and a plurality of accelerators, and a forwarding component is deployed on the accelerator of the first node, the method includes: The forwarding component of the first accelerator in the first node forwards the data sending request to the communication component of the first node in response to the data sending request for the distributed aggregation task, the distributed aggregation task indicates to aggregate the data of the distributed aggregation task, and the data sending request indicates to send the data of the distributed aggregation task on the first accelerator to the network switching device; The communication component of the first node aggregates the data of the distributed aggregation tasks on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, and sends the first aggregated data to the forwarding component of the first accelerator; The forwarding component of the first accelerator sends the first aggregated data to the network switching device.

2. The method according to claim 1, characterized in that The communication component of the first node is a network switching chip deployed on the first node, and the accelerators in the first node are communicatively connected through the communication component.

3. The method according to claim 2, characterized in that The communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, including: The communication component of the first node determines the storage address of the data of the distributed aggregation task on each accelerator of the first node in response to the data sending request, obtains the data corresponding to each accelerator from each accelerator of the first node, aggregates the data corresponding to each accelerator, and obtains the first aggregated data.

4. The method according to claim 1, characterized in that The communication component of the first node is a communication engine deployed on the first accelerator, and the forwarding component of the first accelerator is communicatively connected with the communication component.

5. The method according to claim 4, characterized in that The communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, including: The communication component of the first node responds to the data sending request, obtains from the data sending request the storage address of the data of the distributed aggregation task on at least one second accelerator of the first node, obtains from each second accelerator the data corresponding to each second accelerator, aggregates the data corresponding to the first accelerator and the data corresponding to each second accelerator to obtain the first aggregated data, and the second accelerator refers to an accelerator in the first node other than the first accelerator.

6. The method according to any one of claims 1 to 5, characterized in that The communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node in response to the data sending request to obtain first aggregated data, including: The communication component of the first node aggregates the data of the first data blocks on each of the accelerators in the first node in response to the data sending request to obtain the first aggregated data, where the first data block refers to any data block of the distributed aggregation task.

7. The method according to any one of claims 1 to 6, characterized in that The forwarding component of the first accelerator forwards the data sending request to the communication component of the first node in response to the data sending request for the distributed aggregation task, including: If the data sending request includes a first address, the forwarding component of the first accelerator forwards the data sending request to the communication component of the first node, and the first address includes the task identifier of the distributed aggregation task and the storage address of the data of the distributed aggregation task on the first accelerator.

8. The method according to any one of claims 1 to 7, characterized in that The method further comprises: The network switching device receives the aggregated data sent by each of the accelerators in each of the nodes, aggregates the received aggregated data, and obtains target aggregated data; The network switching device sends the target aggregate data to each of the accelerators in each of the nodes.

9. The method according to claim 8, characterized in that The method further comprises: The forwarding component of the first accelerator forwards the data reception request to the communication component of the first node in response to the data reception request for the distributed aggregation task, wherein the data reception request indicates writing the target aggregation data to the first accelerator; The communication component of the first node broadcasts the target aggregate data to each of the accelerators in the first node in response to the data reception request.

10. The method according to claim 9, characterized in that The communication component of the first node broadcasts the target aggregate data to each of the accelerators in the first node in response to the data reception request, including: The communication component of the first node broadcasts the aggregate data corresponding to the first data block in the target aggregate data to each of the accelerators in the first node in response to the data reception request, where the first data block refers to any data block of the distributed aggregation task.

11. The method according to claim 9 or 10, characterized in that: The forwarding component of the first accelerator forwards the data reception request to the communication component of the first node in response to the data reception request of the distributed aggregation task, including: If the data reception request includes a second address, the forwarding component of the first accelerator forwards the data reception request to the communication component of the first node, and the second address includes the task identifier of the distributed aggregation task and the write address of the target aggregation data on the first accelerator.

12. A data processing method, characterized in that: Applied to a data processing system, the data processing system includes a plurality of nodes, each of the nodes is communicatively connected via a network switching device, wherein each of the nodes includes a communication component and a plurality of accelerators, and a forwarding component is deployed on the accelerator of the node, the method includes: The first accelerator of the first node sends the broadcast data to be broadcasted to the second node to the network switching device; The network switching device sends the broadcast data to a third accelerator of the second node; The forwarding component of the third accelerator forwards the data reception request to the communication component of the second node in response to the data reception request for the broadcast data; The communication component of the second node broadcasts the broadcast data to each of the accelerators in the second node in response to the data reception request.

13. The method according to claim 12, characterized in that The communication component of the second node broadcasts the broadcast data to each of the accelerators in the second node in response to the data reception request, including: In response to the data reception request, the communication component of the second node broadcasts data of a first broadcast data block in the broadcast data to each of the accelerators in the second node, where the first broadcast data block refers to any broadcast data block in the broadcast data.

14. The method according to claim 12 or 13, characterized in that The forwarding component of the third accelerator forwards the data reception request to the communication component of the second node in response to the data reception request for the broadcast data, including: If the data reception request includes a third address, the forwarding component of the third accelerator forwards the data reception request to the communication component of the second node, and the third address includes the task identifier of this broadcast task and the write address of the broadcast data on the third accelerator.

15. The method according to any one of claims 12 to 14, characterized in that The data processing system is used to implement the data processing method as claimed in one of the preceding claims 1 to 11.

16. An acceleration chip, characterized in that: The acceleration chip includes a processor, a memory, and a forwarding component, the memory is used to store at least one section of program code, and the processor is used to call the program code to implement the function of the accelerator in the node as described in any one of claims 1 to 15.

17. A node, characterized in that: The node includes a communication component and a plurality of accelerators, a forwarding component is deployed on the accelerator, and the node is used to implement the function of a node as described in any one of claims 1 to 15.

18. A data processing system, characterized in that: The data processing system includes multiple nodes, each of which is communicatively connected via a network switching device, each of which includes a communication component and multiple accelerators, and a forwarding component is deployed on the accelerator. The data processing system is used to implement the data processing method as described in any one of claims 1 to 15.

19. A computer-readable storage medium, characterized in that: The computer-readable storage medium is used to store at least one program code, and the at least one program code is used to execute the data processing method as described in any one of claims 1 to 15.

20. A computer program product, characterized in that When the computer program product is run on a data processing system, the data processing system is caused to execute the data processing method as claimed in any one of claims 1 to 15.

Citation Information

Patent Citations

  • Computing system, accelerator, switching plane and aggregation communication method

    CN114363248A

  • Data transmission system and method and related equipment

    CN114979000A

  • Data processing method and computing cluster

    CN117596242A

  • Accelerating distributed reinforcement learning with in-switch computing

    US20210194831A1

  • System and method for implementing a network-interface-based allreduce operation

    US20230035657A1

Cited By

  • Collective communication method, device, and storage medium

    WO2026189300A1