Data processing method, acceleration chip, node, system and storage medium
By deploying forwarding components on accelerators within nodes, triggering data aggregation and broadcasting by communication components within the nodes, the problem of low network utilization in cross-node communication is solved, achieving more efficient data processing.
Patent Information
- Application Number
- CN202311017744.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-11
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2043-08-11
AI Technical Summary
In distributed computing systems, cross-node aggregated communication fails to effectively utilize the on-network computing capabilities within nodes, resulting in low network utilization and low data processing efficiency.
By deploying forwarding components on accelerators within nodes, the communication components within the nodes are triggered to perform data aggregation and broadcasting. This leverages the on-network computing capabilities within the nodes, combined with network switching equipment, to perform cross-node data transmission, thereby achieving synchronous utilization of network bandwidth and computing power within and between nodes.
It reduces the latency of cross-node communication and improves network utilization and data processing efficiency.
Smart Images

Figure CN119484518B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of computers, and in particular relates to a data processing method, an acceleration chip, a node, a system and a storage medium. BACKGROUND
[0002] With the increasing size of computing tasks in scenarios such as artificial intelligence (AI) and high performance computing (HPC), distributed computing has emerged. At present, in a data processing system using distributed computing, multiple accelerators are deployed on each node. In order to improve the efficiency of collective communication between different accelerators, an in-network computing (INC) method is often used to place part of the operations (such as calculation, replication, etc.) of collective communication in network switching devices for acceleration. For example, a switch chip with in-network computing capability is deployed in the network within a node, and a switch with in-network computing capability is deployed in the network between nodes, so that different communication domains have in-network computing capability.
[0003] In the related art, taking the cross-node all-reduce (Allreduce) communication algorithm between node 0 and node 1 in a data processing system as an example, each accelerator deployed on node 0 sends data that needs to be aggregated by itself to a switch deployed between node 0 and node 1, and each accelerator deployed on node 1 also sends data that needs to be aggregated by itself to the switch, and the switch aggregates the received data using in-network computing and sends the aggregated data to node 0 and node 1, respectively. However, in the above method, the in-network computing capability within the node is not used for cross-node collective communication, resulting in low network utilization and low data processing efficiency. SUMMARY
[0004] 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 delay and improve network utilization and data processing efficiency in a cross-node communication scenario. The technical solution is as follows:
[0005] In a first aspect, the present application provides a data processing method applied to a data processing system, the data processing system comprising a plurality of nodes, each node being communicatively connected through a network switching device, wherein a first node comprises a communication component and a plurality of accelerators, and a forwarding component is deployed on the accelerators of the first node, and the method comprises:
[0006] The forwarding component of the first accelerator in the first node forwards, in response to a data sending request for a distributed aggregation task, the data sending request to a communication component of the first node, the distributed aggregation task indicating aggregation of data of the distributed aggregation task, the data sending request indicating sending of the data of the distributed aggregation task on the first accelerator to the network switch device;
[0007] The communication component of the first node aggregates, in response to the data sending request, the data of the distributed aggregation task on each of the accelerators in the first node 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 switch device.
[0009] In the above method, the forwarding component deployed on the accelerator in the node can trigger the in-network computing capability of the communication component in the node in response to a data sending request for a distributed aggregation task, so that the communication component aggregates the data on each accelerator in the node and sends the aggregated data to the network switch device between nodes to trigger the in-network computing capability of the network switch device. In this way, the networking bandwidth in the node and between nodes is utilized synchronously, and the in-network computing capability in the node and between nodes is also utilized synchronously, thereby effectively reducing communication latency and improving network utilization and data processing efficiency in a cross-node communication scenario.
[0010] In some embodiments, the communication component of the first node is a network switch chip deployed on the first node, and each of the accelerators in the first node is communicatively connected through the communication component.
[0011] In some embodiments, the communication component of the first node aggregates, in response to the data sending request, the data of the distributed aggregation task on each of the accelerators in the first node to obtain first aggregated data, including:
[0012] The communication component of the first node determines, in response to the data sending request, storage addresses of the data of the distributed aggregation task on each of the accelerators of the first node, obtains the data corresponding to each of the accelerators from each of the accelerators of the first node, and aggregates the data corresponding to each of the accelerators to obtain the first aggregated data.
[0013] Through the above method, a corresponding data aggregation method is provided for the deployment of the communication component as a network switch chip on the first node, that is, if there is a network switch chip with in-network computing capability in the node, in-network computing in the node can be realized through the network switch 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 with the communication component.
[0015] In some embodiments, the communication component of the first node aggregates 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 obtains, in response to the data sending request, a storage address of data of the distributed aggregation task on at least one second accelerator of the first node from the data sending request, obtains corresponding data of each of the second accelerators from each of the second accelerators, and aggregates the corresponding data of the first accelerator and the corresponding data of each of the second accelerators to obtain the first aggregated data, the second accelerator referring to an accelerator other than the first accelerator in the first node.
[0017] Through the above method, a corresponding data aggregation manner is provided for the deployment manner that the communication component is a communication engine deployed on the first accelerator, that is, if there is no network switch chip with in-network computing capability in the node, in-network computing in the node can be realized through the communication engine with in-network computing capability in the node.
[0018] In some embodiments, the communication component of the first node aggregates 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 data of a first data block on each of the accelerators in the first node in response to the data sending request to obtain the first aggregated data, the first data block referring to any data block of the distributed aggregation task.
[0020] Through the above method, when data aggregation is performed inside the node, only data of a certain data block needs to be aggregated, so that the data transmission amount inside the node can be reduced.
[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 comprises 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 comprises a task identifier of the distributed aggregation task and a storage address of data of the distributed aggregation task on the first accelerator.
[0023] In this way, 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 in-network computing capability of the node.
[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 aggregated 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 receiving request to the communication component of the first node in response to the data receiving request for the data of the distributed aggregation task, and the data receiving request indicates that the target aggregated data is to be written to the first accelerator;
[0029] The communication component of the first node broadcasts the target aggregated data to each of the accelerators in the first node in response to the data receiving request.
[0030] In this way, in the distribution process of the target aggregated data, the broadcast capability in the node is triggered by using the forwarding component deployed on the accelerator, so as to reduce the data transmission delay, improve the network utilization and data processing efficiency.
[0031] In some embodiments, the communication component of the first node broadcasts the target aggregated data to each of the accelerators in the first node in response to the data receiving request, comprising:
[0032] The communication component of the first node broadcasts the aggregated data corresponding to a first data block in the target aggregated data to each of the accelerators in the first node in response to the data receiving request, and the first data block refers to any data block of the distributed aggregation task.
[0033] In this way, when data is broadcasted in the node, only the data of a certain data block needs to be broadcasted, so that the data transmission amount in the node can be reduced.
[0034] In some embodiments, the forwarding component of the first accelerator, in response to the data reception request of the distributed aggregation task, forwards the data reception request to the communication component of the first node, including:
[0035] If the data receiving request includes a second address, the forwarding component of the first accelerator forwards the data receiving request to the communication component of the first node. The second address includes the task identifier of the distributed aggregation task and the write address of the target aggregated data on the first accelerator.
[0036] By using the above method, the second address in the data reception request is used as the trigger condition for the forwarding component to forward the request, thus enabling the forwarding component to trigger the broadcast capability within the node.
[0037] Secondly, this application provides a data processing method applied to a data processing system, the data processing system including multiple nodes, each node being communicatively connected via a network switching device, wherein each node includes a communication component and multiple accelerators, and a forwarding component is deployed on the accelerator of each node, the method including:
[0038] The first accelerator of the first node sends the broadcast data to be broadcast to the second node to the network switching device;
[0039] The network switching device sends the broadcast data to the third accelerator of the second node;
[0040] In response to a data reception request for the broadcast data, the forwarding component of the third accelerator forwards the data reception request to the communication component of the second node.
[0041] In response to the data reception request, the communication component of the second node broadcasts the broadcast data to each of the accelerators in the second node.
[0042] In some embodiments, the communication component of the second node, in response to the data reception request, broadcasts the broadcast data to each of the accelerators in the second node, including:
[0043] In response to the data reception request, the communication component of the second node broadcasts the data of the first broadcast data block in the broadcast data to each of the accelerators in the second node, wherein 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, in response to a data reception request for the broadcast data, forwards the data reception request to the communication component of the second node, including:
[0045] If the data receiving request comprises a third address, the forwarding component of the third accelerator forwards the data receiving request to the communication component of the second node, the third address comprising a task identifier of the current broadcast task and a write address of the broadcast data on the third accelerator.
[0046] In some embodiments, the data processing system is configured to implement the data processing method according to the first aspect or any of the possible implementations of the first aspect.
[0047] By 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 in the node, thereby reducing the communication delay and improving the network utilization.
[0048] In a third aspect, an acceleration chip is provided, which comprises a processor, a memory and a forwarding component, the memory is configured to store at least one piece of program code, the processor is configured to invoke the program code to implement the function of the accelerator in the node according to the first aspect or any of the possible implementations of the first aspect, or the processor is configured to invoke the program code to implement the function of the accelerator in the node according to the second aspect or any of the possible implementations of the second aspect.
[0049] In a fourth aspect, an embodiment of the present application provides a node, which comprises a communication component and a plurality of accelerators, and a forwarding component is deployed on the accelerator, the node is configured to implement the function of the accelerator in the node according to the first aspect or any of the possible implementations of the first aspect, or the function of the accelerator in the node according to the second aspect or any of the possible implementations of the second aspect.
[0050] In a fifth aspect, an embodiment of the present application provides a data processing system, which comprises a plurality of nodes, each node is connected with each other through a network switching device, each node comprises a communication component and a plurality of accelerators, and a forwarding component is deployed on the accelerator, the data processing system is configured to implement the data processing method according to the first aspect or any of the possible implementations of the first aspect, or the data processing method according to the second aspect or any of the possible implementations of the second aspect.
[0051] In a sixth aspect, an embodiment of the present application provides a computer readable storage medium for storing at least one piece of program code for implementing the data processing method according to the first aspect or any possible implementation of the first aspect, or the data processing method according to the second aspect or any possible implementation of the second aspect. The storage medium includes, but is not limited to, a volatile memory such as a random access memory, a non-volatile memory such as a flash memory, a hard disk drive (HDD), and a solid state drive (SSD).
[0052] In a seventh aspect, an embodiment of the present application provides a computer program product for causing a data processing system to implement the data processing method according to the first aspect or any possible implementation of the first aspect, or the data processing method according to the second aspect or any possible implementation of the second aspect, when the computer program product is run on the data processing system. The computer program product can be a software installation package, which can be downloaded and executed in the data processing system when the data processing method is needed. BRIEF DESCRIPTION OF DRAWINGS
[0053] Figure 1 is a schematic diagram of an architecture provided by related technologies using in-network computing;
[0054] Figure 2 is a schematic diagram of a cross-node AllReduce communication algorithm provided by related technologies;
[0055] Figure 3 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 by an embodiment of the present application;
[0057] Figure 5 is a schematic diagram of an architecture of a node provided by an embodiment of the present application;
[0058] Figure 6 is a schematic diagram of a structure of an acceleration chip provided by an embodiment of the present application;
[0059] Figure 7 is a schematic diagram of another structure of an acceleration chip provided by an embodiment of the present application;
[0060] Figure 8 is a flowchart of a data processing method provided by an embodiment of the present application;
[0061] Figure 9 is a schematic diagram of a first address provided by an embodiment of the present application;
[0062] Figure 10 is a schematic diagram of data aggregation by a communication component provided by an embodiment of the present application;
[0063] Figure 11 is a schematic diagram of data aggregation by another communication component provided by an embodiment of the present application;
[0064] Figure 12 is a schematic diagram of a data processing method provided by an embodiment of the present application;
[0065] Figure 13 is a schematic diagram of a second address provided by an embodiment of the present application;
[0066] Figure 14 is a schematic diagram of data broadcasting by a communication component provided by an embodiment of the present application;
[0067] Figure 15 is a schematic diagram of data broadcasting by another communication component provided by an embodiment of the present application;
[0068] Figure 16 is a flowchart of a data processing method provided by an embodiment of the present application;
[0069] Figure 17 is a schematic diagram of another data processing method provided by an embodiment of the present application;
[0070] Figure 18 is a flowchart of another data processing method provided by an embodiment of the present application;
[0071] Figure 19 is a structural schematic diagram of a data processing apparatus provided by an embodiment of the present application. DETAILED DESCRIPTION
[0072] To make the objectives, technical solutions and advantages of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the 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 the present application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions. For example, the communication instructions such as data sending request and data receiving request, data stored on the accelerator, etc. involved in the present application are obtained under sufficient authorization.
[0073] For the convenience of understanding, the key terms and key concepts involved in the present application are explained first as follows.
[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 a network. The nodes in the same HPC cluster work in parallel with each other, thereby improving data processing speed and realizing high performance computing.
[0075] Accelerator, or acceleration device, is a special hardware accelerator or computer system designed to accelerate the computing process in AI scenarios and HPC scenarios. Illustratively, the 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., without being limited thereto.
[0076] In-network computing (INC), or network computing, is a distributed parallel computing system that aims to utilize network devices such as network cards, switches, routers, etc. to perform online computing of data in the process of data transmission, so as to reduce communication delay and improve overall computing efficiency. Illustratively, in a data processing system using distributed computing, each node includes multiple accelerators, data is distributed on each accelerator of different nodes, and switches with in-network computing capability are deployed in the network between nodes (such network between nodes is also referred to as a large network), and switch chips with in-network computing capability are deployed in the network within the node (such network within the node is also referred to as a small network), so that different communication domains have in-network computing capability. The network between nodes may be, for example, an Ethernet network, a fiber channel, a remote direct memory access (RDMA), an RDMA over converged Ethernet (RoCE) network, an InfiniBand (IB) network, etc., and the present application is not limited thereto. The network within the node may be, for example, a Nvidia Link (NvLink), a peripheral component interconnect express (PCIe), a compute express link (CXL), a universal chiplet interconnect express (UCIe), a Huawei cache coherent system (HCCS), a cache coherent interconnect for accelerators (CCIX), etc., and the present application is not limited thereto. For example, reference is made to Figure 1 , Figure 1 is an architecture diagram using in-network computing provided by a related technology. Taking a distributed training architecture in an AI scenario as an example, the distributed training architecture uses a large-small network architecture (or a double-plane network architecture), that is, nodes are connected by switches to form a large network between nodes, and multiple accelerators within a node are connected by a switch chip to form a small network within the node, so that different communication domains have in-network computing capability.
[0077] The AllReduce algorithm is a communication algorithm that aggregates data in different machines and then distributes the aggregated results to each machine. Reference is made to Figure 2 and Figure 3An AllReduce communication algorithm across nodes provided by the related art is introduced.
[0078] Figure 2 is a schematic diagram of an AllReduce communication algorithm across nodes provided by the related art. As shown in Figure 2 , taking a data processing system including node 0 and node 1 as an example, node 0 and node 1 are connected in communication through a network switching device (such as a switch, also known as 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, XPU0 stores data A0, B0, C0 and D0, XPU1 stores data A1, B1, C1 and D1, XPU2 stores data A2, B2, C2 and D2, and XPU3 stores data A3, B3, C3 and D3. Node 1 is the same, and will not be repeated. In the figure, data with the same mark belongs to the same data block, for example, data A0, A1, A2 and A3 all belong to data block A, and the rest of the data will not be repeated. In the scenario of cross-node communication between node 0 and node 1 to perform a distributed aggregation task, the data to be aggregated is: data A0 to data A7, data B0 to data B7, data C0 to data C7, and data D0 to data D7, that is, the data of the same data block is aggregated. Illustratively, 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 an XPU being 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, the ring communication mode can also be used between each XPU to realize data transmission, which is not limited here. It should be understood that step 1 is also the process of intra-node data scattering, in which the intra-node data transmission amount is D*((N-1) / N), where D is the total data amount and N is the number of accelerators in the node.
[0080] Step 2, each XPU sends the aggregated data to the network switch (i.e., inter-node switch), and the network switch aggregates the received data of the same plane card. The same plane card refers to the XPU responsible for the same data block, for example, XPU0 sends the aggregated data A0-A3 to the network switch, and XPU4 sends the aggregated data A4-A7 to the network switch. XPU0 and XPU4 are used to aggregate data of the same data block (i.e., data block A), which is called a same plane card. Based on this, the network switch 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 responsible for itself from the network switch, and sends the received data to the XPU of the same node except itself. For example, taking XPU0 as an example, XPU0 receives aggregated data A0-A7, and sends data A0-A7 to XPU1, XPU2, and XPU3, respectively. Of course, the data transmission between each XPU can also be achieved in a ring communication manner, which is not limited herein. It should be understood that step 3 is the process of all-gather of data in the node. In this process, the amount of data transmission in the node is D*((N-1) / N).
[0082] Figure 3 is a schematic diagram of a cross-node AllReduce communication algorithm provided by another related technology. As shown in Figure 3 , taking the data processing system including node 0 and node 1 as an example, node 0 and node 1 are connected by an inter-node switch, each node includes four accelerators (such as XPU), and data is distributed on different accelerators of different nodes. Each accelerator in the node is connected by a switch chip (or called 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 by itself to the intra-node switch, and the intra-node switch aggregates the received data. In this process, the amount of data transmission in 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 transmission between nodes is D.
[0083] Remote direct memory access (RDMA) is a technology for accessing data in the memory of a remote host without passing through the kernel of the operating system of the remote host. Since the data is accessed without passing through the operating system, a large amount of processor resources is saved, and the system throughput is improved and the network communication delay of the system is reduced.
[0084] The application scenario and implementation environment of the present application are introduced below.
[0085] The data processing system provided in the embodiments of the present application can be applied to AI, HPC and other scenarios, and can reduce the communication delay and improve the network utilization and data processing efficiency when aggregating, broadcasting or multicasting data on each node in the system through cross-node communication. For example, the same type of parameters on each node in the system are aggregated through the Allreduce communication algorithm in the parameter training of an AI model, and for another example, the same data block on multiple nodes in the system is broadcasted, multicasted and the like based on the message passing interface (MPI) in the HPC scenario, which is not limited in the present application.
[0086] The application scenario and implementation environment of the present application are introduced below. Figures 4 to 7 The data processing system provided in the embodiments of the present application is introduced.
[0087] Figure 4 is a schematic diagram of a data processing system provided in the embodiments of the present application. As shown in Figure 4 The data processing system 400 provided in the embodiments of the present application includes multiple nodes 410, and each node 410 is communicatively 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, which are not limited in the present application.
[0088] The data processing system 400 is a distributed data processing system with cross-node communication capability, and each node 410 in the data processing system 400 is communicatively connected to each other through the network switching device 420, so that the data processing system 400 can process various distributed aggregation tasks. For example, the distributed aggregation tasks include aggregation tasks in the distributed parallel training process in the AI scenario, aggregation tasks in the distributed high-performance computing process in the HPC scenario, aggregation tasks in the distributed graph computing process or distributed cloud aggregation tasks, etc., which are not limited in the present application. The distributed cloud aggregation task refers to an aggregation task performed by the nodes 410 and the network switching device 420 in the form of virtualization such as virtual machines or containers in the AI, HPC, image computing or other scenarios.
[0089] Node 410 is a device with both computing and storage capabilities, such as a server or desktop computer, but this application is not limited to these. Node 410 can be a standalone physical server, a server cluster or distributed system composed 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 communication, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms. Node 410 can also be a virtualized node, such as a virtual machine or container, in which case the virtual machine or container can be deployed on at least one computing device (e.g., a server).
[0090] In this embodiment, node 410 has on-network computing capabilities, enabling it to perform on-network computation of data synchronously during data transmission within the node, thereby reducing communication latency and improving overall computing efficiency. In some embodiments, node 410 also has broadcast and multicast capabilities, enabling it to perform data broadcasting and multicasting within the node.
[0091] Schematic, node 410 includes a communication component and multiple accelerators. The communication component provides data transmission functionality for communication between the accelerators within the node, and provides on-network computing functionality for communication between the accelerators within the node. In some embodiments, the communication component is a network switching chip deployed inside the node, or a communication engine deployed on an accelerator; this application is not limited to these (the example shown is of a network switching chip deployed inside the node; the configuration of the communication component will be discussed later). Figure 5 (Details are provided in the original text, and will not be repeated here). Accelerators include, for example, GPUs, XPUs, IPUs, TPUs, DSA chips, etc., and this application is not limited to these. It should be understood that the data processing system 400 can communicate with a host, which refers to a device used to run various computing services and can control the various nodes 410 in the data processing system 400 to execute corresponding computing tasks. For example, if an AI model is running on the host, the host can control the various nodes 410 in the data processing system 400 to perform distributed parallel training on the AI model, that is, to load the distributed parallel training task for the AI model into the various accelerators 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 embodiments shown are described in detail here and will not be repeated.
[0092] The network switching device 420 is a device with network switching capability and in-network computing capability, such as a switch, a router, etc., also referred to as an inter-node switch (abbreviated as inter-node SW). In addition, in a distributed cloud aggregation task, the network switching device 420 can also be implemented in a virtualized form. In the embodiments of the present application, the network switching device 420 is configured to provide data transmission function for communication between the nodes 410, and to provide in-network computing function for communication between the nodes 410, that is, in the process of data transmission in the cross-node communication scenario, the network switching device 420 is used to synchronize the in-network computing of data, so as to reduce the communication delay and improve the overall computing efficiency.
[0093] It should be noted that, Figure 4 It should be noted that,
[0094] In some embodiments, the wireless network or the wired network described above uses standard communication technology and / or protocol. The network is usually a transmission control protocol / internet protocol (TCP / IP) network and an RDMA network in a data center network, such as a RDMA over converged Ethernet (RoCE) network, an InfiniBand (IB) network, etc., without limitation. In some other embodiments, custom and / or dedicated data communication technology can be used instead of or in addition to the above data communication technology.
[0095] The architecture of the node 410 in the data processing system 400 described above will be introduced below.
[0096] Based on the foregoing Figure 4 As can be known from the introduction of the node 410 in the embodiments described above, 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. The architectures of the node 410 will be illustrated below with reference to the following figures. Figure 5 The architectures of the node 410 will be illustrated below with reference to the following figures. Figure 5 is a schematic diagram of an architecture of a node provided by the embodiments of the present application.
[0097] As Figure 5As shown in Figure (a), node 410 includes a communication component 411 and multiple accelerators 412. The communication component 411 is a network switching chip (also called an intra-node switch, or intra-node SW) deployed inside the node. The accelerators 412 are connected to each other via the communication component 411. Indicatively, the accelerators 412 are connected to each other via high-speed interconnection paths. It should be understood that the communication bandwidth of these paths is typically greater than the bandwidth of the external network (the intra-node network and inter-node network are described in the foregoing key terms and will not be repeated here). Additionally, in this embodiment, a forwarding component is deployed on the accelerator 412 to trigger the on-network computing capabilities, broadcast capabilities, and multicast capabilities within node 410. This process will be described in detail in 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 illustrative, and this application does not limit the number of communication components 411 and accelerators 412 in node 410.
[0098] like Figure 5 As shown in Figure (b), node 410 includes a communication component 411 and multiple accelerators 412. The communication component 411 is a communication engine deployed on the accelerators 412, also referred to as an intra-node communication engine. Schematic, the accelerators 412 are connected to each other via a high-speed interconnect path. In this embodiment, a forwarding component is deployed on the accelerator 412, which is connected to the communication component 411 and used to trigger the on-network computing capabilities, broadcast capabilities, and multicast capabilities within node 410. In some embodiments, node 410 also includes a network switching chip, which is communicatively connected to each accelerator 412 and used to provide data transmission functionality for communication between the accelerators 412. This application is not limited to this. It should be noted that... Figure 5 The number of accelerators 412 and network switching chips in Figure (b) is only illustrative, and this application does not limit the number of accelerators 412 and network switching chips in node 410.
[0099] The hardware structure of accelerator 412 in node 410 is described below.
[0100] Based on the foregoing Figure 4 and Figure 5 As can be seen from the description of node 410 in the illustrated embodiment, the communication component 411 in node 410 can function as a network switching chip, integrated inside node 410, and communicatively connected to accelerator 412; alternatively, it can function as a communication engine, integrated inside accelerator 412, and communicatively connected to forwarding component 413 of accelerator 412. Based on this, the following references... Figure 6 and Figure 7 The hardware structure of accelerator 412 will be introduced.
[0101] Figure 6 is a structural schematic diagram of an acceleration chip provided by an embodiment of the present application. As shown in the figure, Figure 6 The present application provides an acceleration chip 600, which can be configured as the accelerator 412 described above. Taking the communication component 411 in 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. The processor 601, the memory 602, the RDMA engine component 603 and the forwarding component 604 are communicatively connected to each other through the bus 605.
[0102] The processor 601 can be a central processing unit (CPU), an application-specific integrated circuit (ASIC) or an integrated circuit for controlling the execution of programs of the present application. The processor 601 can be a single-CPU processor or a multi-CPU processor. The number of processors 601 can be one or more.
[0103] The memory 602 can be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disk storage, a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program codes in the form of instructions or data structures and can be accessed by a computer, but is not limited to this. Illustratively, the memory 602 is used to store at least one program code, and the processor 601 is used to invoke the program code to implement the functions of the accelerator involved in the method embodiments described below.
[0104] The processor 601 and the memory 602 described above can be separately arranged or integrated together.
[0105] The RDMA engine component 603 is configured to communicate with other devices, such as other accelerators within the node, or other nodes, or network switching devices between nodes, and the like, without limitation. It should be understood that the RDMA engine component 603 is configured to have RDMA functionality, and is able to access data in the memory of a remote host without going through the kernel of the operating system of the remote host. In some embodiments, the RDMA engine component 603 is a network card that supports RDMA technology. It should be understood that the network card can be implemented as part of the accelerator, or as a separate device from the accelerator. The network card can include one or more ports, specifically ports for receiving data. The network card can include a processor, a cache, a memory, and registers, and the like. The memory or cache within the network card can be implemented using RAM type storage media, without limitation.
[0106] The forwarding component 604 can be a chip (DIE) coupled with the RDMA engine component 603, or can be separate from the components of the chip 600. In some embodiments, the acceleration chip 600 further includes an input / output (I / O) chip, and the forwarding component 604 can be integrated on the I / O chip, without limitation on the location of the forwarding component 604 in the embodiments of the present application. In the embodiments of the present application, the forwarding component 604 is configured to process the communication instructions (including data sending instructions and data receiving instructions) sent by the RDMA engine component 603, and is further configured to forward the communication instructions to the communication component within the node, to trigger the in-network computing capability and the broadcast capability within the node (which will be described in detail in the method embodiments below, and will not be described here).
[0107] The bus 605 is configured to provide communication functionality between the components within the acceleration chip 600.
[0108] Figure 7 is another structural diagram of an acceleration chip provided in the embodiments of the present application. As shown in Figure 7 The acceleration chip 700 provided in the embodiments of the present application can be configured as the accelerator 412 described above. Taking the communication component 411 in the node 410 as an example, the communication component 411 is integrated within the accelerator 412 as a communication engine. 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. The processor 701, the memory 702, the RDMA engine component 703, the forwarding component 704, and the communication component 705 are communicatively 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 the same as the processor 401, the memory 402, the RDMA engine component 403, the forwarding component 404, and the bus 405 described above, respectively, and will not be described here. Figure 6Similarly, the following will not be repeated. Schematic, memory 702 is used to store at least one piece of program code, and processor 701 is used to call this program code to implement the functions of the accelerator involved in the following method embodiments. Communication component 705 is used to provide data transmission functionality for communication within the node, for example, communicating with other accelerators within the node, or communicating with the network switching chip within the node, etc., and this application is not limited to these. Furthermore, this application does not limit the location of communication component 705 on the accelerator chip 700; it can be a chip coupled to forwarding component 704, or it can be separately disposed from the various components in the accelerator chip 700.
[0109] Based on the above Figures 4 to 7 The illustrated embodiment describes the data processing system provided in this application. The data processing method applied to this data processing system is described below.
[0110] As described above, the data processing system comprises multiple nodes connected via network switching equipment. Each node includes a communication component and multiple accelerators, with a forwarding component deployed on each accelerator. Both the network switching equipment and the communication component possess on-network computing capabilities. Indicatively, in the data processing system, nodes are connected via network switching equipment to form an inter-node network, while nodes are connected via communication components and multiple accelerators to form an intra-node network. Since both inter-node and intra-node networks possess on-network computing capabilities, the data processing system provided in this application can achieve a cross-node communication method that integrates inter-node and intra-node networking. During cross-node communication, the network bandwidth and on-network computing capabilities of both nodes can be utilized simultaneously. Specifically, the on-network computing, broadcasting, and multicast capabilities within a node are triggered by the forwarding components deployed on the accelerators, thereby reducing cross-node communication latency and improving network utilization and data processing efficiency.
[0111] The data processing method provided in this application will be described below through several method implementation examples.
[0112] Figure 8 This is a flowchart of a data processing method provided in an embodiment of this application. For example... Figure 8 As shown, this data processing method is applied to the aforementioned Figures 4 to 7 The data processing system shown, taking 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, N is the number of accelerators within a node, N is a positive integer), introduces the data processing method when the data processing system executes arbitrary distributed aggregation tasks. Schematic, this data processing method includes the following steps 801 to 808.
[0113] 801、the forwarding component of the first accelerator in the first node forwards, in response to a data sending request for the distributed aggregation task, the data sending request to the communication component of the first node.
[0114] In the embodiments of the present application, the first node refers to any one node in the data processing system to participate in the distributed aggregation task, and the first accelerator refers to any one accelerator in the first node to participate in the distributed aggregation task. The distributed aggregation task indicates to aggregate the data of the distributed aggregation task, wherein the operation type of data aggregation is, for example, addition, subtraction, multiplication, etc., and the present application is not limited thereto. The data sending request indicates to send the data of the distributed aggregation task on the first accelerator 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 in-network computing capability of the communication component to aggregate the data of the distributed aggregation task on each accelerator in the first node.
[0115] In some embodiments, the data sending request indicates to send the data of a first data block on the first accelerator to the network switching device. Wherein the first data block refers to any one data block of the distributed aggregation task, and it should be understood that the data required for executing 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 sending request to the communication component of the node to which the accelerator belongs, so that the communication component aggregates the data of a certain data block on each accelerator in the node. In this way, the data transmission amount within the node can be reduced, and the communication resources can be saved. In other words, the forwarding component of one accelerator is responsible for triggering the communication component to aggregate the data of one data block. For example, taking the first node comprising four accelerators XPU0, XPU1, XPU2 and XPU3 as an example, the data of data blocks A, B, C and D required for executing the distributed aggregation task is distributed on the four accelerators. Taking the first data block as data block A as an example, the data A0 of data block A is stored on XPU0, the data A1 of data block A is stored on XPU1, the data A2 of data block A is stored on XPU2, and the data A3 of data block A is stored on XPU3. Accordingly, taking the first data block as data block A and the first accelerator as XPU0 as an example, the above-mentioned data sending request indicates to send the data A0 of data block A on XPU0 to the network switching device. 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, i.e., to aggregate the data A0, A1, A2 and A3.
[0116] Based on the foregoing introduction of the data processing system, the data processing system provided in the application is a distributed processing system with cross-node communication capability, which can process various distributed aggregation tasks. For any distributed aggregation task, the data required for executing 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 in-network computing capability, the data processing system sends a data sending request to make each accelerator send the data of the distributed aggregation task stored by itself to the network switching device, triggers the in-network computing capability (i.e. the inter-node in-network computing capability) of the network switching device, makes it aggregate the data of each accelerator received, and distributes the aggregation result to each accelerator, thereby completing the execution of the distributed aggregation task. In this process, since the application provides an accelerator deployed with a forwarding component, the forwarding component can trigger the in-network computing capability (i.e. the intra-node in-network computing capability) of the intra-node communication component, when the forwarding component obtains the data sending request sent 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, and sends the aggregated data to the network switching device. In this way, the data received by the network switching device is already aggregated, thereby effectively reducing the communication delay and improving the overall computing efficiency.
[0117] Illustratively, the application configures a special address in the data sending request, which serves as the trigger condition for the forwarding component to forward the request. When the forwarding component of the accelerator obtains the data sending request, if it identifies the special address, it triggers the forwarding component to forward the data sending 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 the data sending request for the distributed aggregation task.
[0119] The data sending request can be a read request, a write request, or a send request, and the like, which can be set according to actual needs (for example, a network protocol, an implementation manner of in-network computing, and the like). Illustratively, the data sending request is generated based on a send queue element (SQE) issued by the data processing system. It should be understood that, before step 801 is performed, the data processing system preconfigures a plurality of queue pairs (QPs) for each accelerator of each node in the system, and each QP includes a send queue (SQ) and a receive queue (RQ). Each SQ is used to store at least one SQE. Each RQ is used to store at least one receive queue element (RQE). The SQE and the RQE can be collectively referred to as a transmission instruction element. The SQE refers to instruction information required by the RDMA engine component of the accelerator to obtain data from a storage space (for example, a memory). The RQE refers to instruction information required by the RDMA engine component of the accelerator to store data after receiving the data. That is, each SQE and RQE is used to transmit instruction information and does not contain data, and therefore, the receiving end or the sending end of the data needs to obtain the data from the storage space (for example, the memory) according to the instruction information indicated by the SQE or the RQE. In some embodiments, based on the structure of the accelerator shown in FIGS. 1, 2, 3, and 4, the RDMA engine component generates the 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 the application does not limit the manner in which the forwarding component obtains the data sending request. Figure 6 and Figure 7 As shown in the structure of the accelerator in FIGS. 1, 2, 3, and 4, the forwarding component and the RDMA engine component are connected through a bus, and therefore, the RDMA engine component generates the 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 the application does not limit the manner 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 a task identifier of the distributed aggregation task and a storage address of data of the distributed aggregation task on the first accelerator, and the forwarding component of the first accelerator forwards the data sending request to the communication component of the first node if it is identified that the data sending request includes the first address. It should be understood that the first address is a special address provided by the application. For example, referring to Figure 9 , Figure 9 is a schematic diagram of the first address provided by the embodiment of the application. As Figure 9As shown, the high bits of the first address are a job ID of the distributed aggregation task, and the low bits of the first address are a storage address of data of the distributed aggregation task on the first accelerator (i.e., an offset address of the data to be aggregated, which is not limited and can also be a physical address, etc.). The job ID of the distributed aggregation task is globally uniform, that is, the special address of the data sending request of each accelerator participating in the distributed aggregation task includes the same job ID.
[0122] It should be understood that the SQE generally includes a destination ID (dst_id) and a source address (src_id), the destination ID refers to the identification 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, the source address in the SQE is configured as a special address, so that the data sending request carries this special address, so that the forwarding component triggers the forwarding component to forward the data sending request to the communication component under the condition of identifying this special address, thereby triggering the in-network computing capability in the node. Of course, the SQE can also include a source ID (src_id) and a destination address (dst_addr), etc. The form of the SQE is not limited in this application, and can be set according to actual needs (such as network protocols, implementation of in-network 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] 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. In some embodiments, the communication component of the first node aggregates the data of the first data block on each accelerator in the first node in response to the data sending request to obtain first aggregated data, and the first data block refers to any data block of the distributed aggregation task. The first data block is introduced in the foregoing step 801, which will not be described here.
[0125] In addition, based on the foregoing Figure 5 As shown in the node architecture, the communication component of the node can be a network switching chip deployed inside the node, or a communication engine deployed on the accelerator. The implementation process of this step will be introduced based on the deployment of the two communication components as follows:
[0126] Case 1: the communication component of the first node is a network switch chip deployed on the first node, and the communication component is communicatively connected between the accelerators in the first node.
[0127] 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 to obtain first aggregated data. It should be understood that each accelerator participating in the distributed aggregation task in the first node will forward a corresponding data sending request to the communication component of the first node, so that 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 every time a data sending request is received, or 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. The present application does not limit 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 obtains the starting address of the data on the first accelerator by taking the task identifier of the distributed aggregation task in the first address as an index, 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 the present application does not limit the type of storage address of the data, which 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. The task execution information includes at least one of the following: operation type of data aggregation (such as addition, subtraction, multiplication, etc.), data type (such as 32 bits, 64 bits, etc.), rank number, rank number, physical address of data, etc. The present application is not limited thereto. Illustratively, the task execution information can be pre-configured in the communication component, or can be carried in the data sending request. For example, taking the data sending request as a read request, the task execution information is pre-configured in the communication component, and the communication component obtains the task execution information by taking the task identifier of the distributed aggregation task in the first address as an index in response to the data sending request. For example, taking the data sending request as a write request or a send request, 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 in the data sending request.
[0130] The following is for reference. Figure 10 The following example illustrates the data aggregation process corresponding to the above scenario. Figure 10 This is a schematic diagram illustrating data aggregation using a communication component provided in an embodiment of this application. Figure 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 within the node). The communication component responds to the data transmission request by performing address translation on the first address. That is, taking the storage address of the data in the first address as the offset address, the communication component uses the job ID as an index to obtain the starting address of the data on the accelerator. It combines the starting address and the offset address to obtain the storage address of the data on the accelerator. It should be understood that the communication component receives data transmission requests from each accelerator within the node. Thus, the communication component can determine the storage address of the data on each accelerator, initiate data acquisition requests for each accelerator, and then acquire the data corresponding to each accelerator. The data corresponding to each accelerator is then aggregated to obtain the first aggregated data.
[0131] Scenario 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 connected to the communication component.
[0132] In this process, the communication component responds to a data transmission request by obtaining 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, obtaining the data corresponding to each second accelerator from each second accelerator, and aggregating the data corresponding to the first accelerator and the data corresponding to each second accelerator to obtain first aggregated data. The second accelerator refers to any accelerator in the first node other than the first accelerator. It should be understood that, in scenario two, the communication component is a communication engine deployed on the first accelerator, i.e., the communication component is internal to the first accelerator. Therefore, the communication component can directly read the corresponding data from the memory of the first accelerator. Furthermore, when forwarding the data transmission request, 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. Thus, the communication component can obtain the corresponding data from external accelerators based on 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; this application is not limited to this. It should be noted that the storage address, data aggregation process, etc., involved in scenario two are the same as in the aforementioned scenarios, and therefore will not be repeated.
[0133] The following is for reference. Figure 11The data aggregation process corresponding to the second case is described by way of example. Figure 11 is another schematic diagram of a communication component provided by an embodiment of the present application for data aggregation. Figure 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, the forwarding component identifies 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 process of address translation is performed by the forwarding component 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, and aggregates the data corresponding to the first accelerator and the data corresponding to each second accelerator to obtain first aggregated data.
[0134] After the above step 802, different data aggregation methods are provided for different deployment modes of the communication component. In other words, if there is a network switching chip with in-network computing capability in the node, in-network computing in the node can be implemented through the network switching chip, and if there is no network switching chip with in-network computing capability in the node, in-network computing in the node can be implemented through the intra-node communication engine with in-network computing capability. It can be seen that the present application provides multiple configuration methods for the communication component, which facilitates flexible configuration of the communication component according to the needs in actual application, and thus improves 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 can 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. The present application is not limited thereto.
[0138] After 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 performs the process shown in the above steps 801 to 804, i.e., the forwarding component of each accelerator in each node sends aggregated data to the network switching device, so that the network switching device can perform the distributed aggregation task based on the aggregated data sent by each accelerator in each node. The process is introduced below through step 805.
[0139] 805、The network switching device receives the aggregated data sent by each accelerator in each node, aggregates the received aggregated data to obtain target aggregated data.
[0140] The network switching device aggregates the received aggregated data based on the operation type of data aggregation to obtain target aggregated data after receiving the aggregated data sent by each accelerator in each node.
[0141] In some embodiments, the network switching device aggregates the received aggregated data belonging to the same data block to obtain target aggregated data, which is also the aggregation of data of the same plane card. It should be understood that based on the foregoing step 801, the data required for performing the distributed aggregation task is distributed on each accelerator of each node of the data processing system, and the forwarding component of one accelerator is responsible for triggering the communication component to aggregate the data of one data block, and the same plane card refers to the accelerator responsible for the same data block.
[0142] For example, referring to Figure 12 , Figure 12 is a schematic diagram of a data processing method provided by an embodiment of the present application. As shown in Figure 12 , 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 performing the distributed aggregation task is distributed on the 8 accelerators. Taking XPU0 and XPU4 as an example (XPU0 and XPU4 are the same plane card), the forwarding component of XPU0 triggers the communication component (intra-node SW) of node 0 to aggregate the data of data block A in node 0 to obtain aggregated data A0-A3 and sends it to the network switching device (inter-node SW), and the forwarding component of XPU4 triggers the communication component (intra-node SW) of node 1 to aggregate the data of data block A in node 1 to obtain aggregated data A4-A7 and sends 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 target aggregated data A0-A7. The remaining data blocks B, C and D are the same, and therefore will not be described again.
[0143] 806、The network switching device sends the target aggregated data to each accelerator in each node.
[0144] In some embodiments, the data aggregation performed by the communication component and the data aggregation performed by the network switching device in steps 801-806 above are pipelined, i.e., the communication component returns to the forwarding component after calculating each packet, so that the network switching device can timely aggregate the received data and distribute to each accelerator.
[0145] For example, continuing to refer to the above Figure 12 After obtaining the aggregated data A0-A3, the communication component of node 0 sends the aggregated data A0-A3 to the network switching device, and after obtaining the aggregated data A4-A7, the communication component of node 1 also sends the aggregated data A4-A7 to the network switching device, so that the network switching device can timely aggregate the aggregated data A0-A3 and A4-A7, and send the target aggregated data A0-A7 to each accelerator in each node to enable each accelerator to perform the target aggregated data distribution process shown in steps 807 and 808 below. Through this pipelined processing method, the networking bandwidth within the node and between the nodes can be further synchronized and utilized, and the in-network computing capability within the node and between the nodes can also be further synchronized and utilized, thereby effectively reducing the cross-node communication delay, improving the network utilization and data processing efficiency.
[0146] In addition, in the distribution process of the target aggregated data, the forwarding component deployed on the accelerator is used to trigger the broadcast capability and multicast capability within the node, so as to reduce the data transmission delay and improve the network utilization and data processing efficiency. The following steps 807-808 continue to take the first accelerator in the first node as an example to introduce the process of triggering the broadcast capability within the node of the first accelerator.
[0147] 807. The forwarding component of the first accelerator forwards a data receiving request to the communication component of the first node in response to the data receiving request for the distributed aggregation task.
[0148] In the embodiments of the present application, the data receiving request indicates that the target aggregated data is written to the first accelerator, and the forwarding component of the first accelerator forwards the data receiving request to the communication component, which can trigger the broadcast capability of the communication component within the node to broadcast the target aggregated data to each accelerator in the first node.
[0149] In some embodiments, the data receiving request indicates to write the aggregated data corresponding to the first data block in the target aggregated data to the first accelerator. Wherein, the first data block refers to any data block of the distributed aggregation task. It should be understood that based on the foregoing step 801, in the present application, the forwarding component of one accelerator can be responsible for triggering the communication component to aggregate the data of one data block, and similarly, in the distribution process of the target aggregated data, the forwarding component of one accelerator can be responsible for triggering the communication component to broadcast the aggregated data of the same data block, so that the communication resources can be saved. For example, taking the example of Figure 12 For example, node 0 includes 4 accelerators XPU0, XPU1, XPU2 and XPU3, and the data required for executing the distributed aggregation task is distributed on the 4 accelerators. Taking the first data block as data block A and the first accelerator as XPU0 as an example, the forwarding component of XPU0 is responsible for triggering the communication component to broadcast the target aggregated 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 aggregated data B0-B7 to XPU0, XPU2 and XPU3. Details are not described herein.
[0150] It should be understood that since the present application provides an accelerator deployed with a forwarding component capable of triggering the broadcast capability of the communication component within the node, when the forwarding component obtains the data receiving request issued by the data processing system, it can forward the data receiving request to the communication component of the node, so that the communication component broadcasts the aggregated data to each accelerator in the node. Moreover, in the case where each accelerator is responsible for one data block, since each accelerator is responsible for broadcasting a part of the target aggregated data, and each accelerator can be executed synchronously, the communication delay can be effectively reduced, and the overall computing efficiency can be improved.
[0151] Illustratively, the present application configures a special address in the data receiving request as a triggering condition for the forwarding component to request forwarding, and when the forwarding component of the accelerator obtains the data receiving request, if the special address is identified, the forwarding component triggers the communication component of the node to forward the data receiving request. Based on this, the implementation process of the present step includes the following steps:
[0152] Step 1, the forwarding component of the first accelerator obtains the data receiving request for the distributed aggregation task.
[0153] Wherein, 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., which can be set according to actual needs (such as network protocol, implementation manner of intra-node broadcast, etc.). Illustratively, the data receiving request is generated based on the RQE issued by the data processing system. In some embodiments, based on the foregoingFigure 6 and Figure 7 As shown in the structure of the accelerator, the forwarding component and the RDMA engine component are connected through the bus, thus, the RDMA engine component generates a data receiving request according to the RQE issued by the data processing system, and sends the data receiving request to the forwarding component. Of course, the forwarding component can also directly obtain the data receiving request through the bus, and the application does not limit the way in which the forwarding component obtains the data receiving 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 identification 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 identifies that the data receiving request includes the second address, the forwarding component 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 application. For example, referring to Figure 13 , Figure 13 is a schematic diagram of a second address provided by an embodiment of the application. As shown in Figure 13 , the high bits of the second address are the task identification (job ID) of the distributed aggregation task, and the low bits of the second address are 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 described above, and therefore will not be described again.
[0156] It should be understood that the RQE usually includes a source identification (source ID, src_id) and a destination address (destination address, dst_addr). The source identification refers to the identification of the network switching device, and the destination address refers to the destination of the data, i.e., the write address of the data. In the application, the destination address in the RQE is configured as a special address, so that the data receiving request carries this special address, so that the forwarding component triggers the forwarding component to forward the data receiving request to the communication component under the condition of identifying this special address, thereby triggering the broadcast capability in the node. Of course, the RQE can also include a destination identification (destination ID, dst_id) and a source address (source address, src_id), and the application does not limit the form of the RQE, which can be set according to actual needs (such as network protocols, implementation of node broadcast, etc.).
[0157] 808, the communication component of the first node broadcasts the target aggregation data to each accelerator in the first node in response to the data receiving request.
[0158] In some embodiments, the communication component of the first node broadcasts the aggregated data corresponding to the first data block in the target aggregated data to each accelerator in the first node in response to the data receiving request.
[0159] In addition, based on the foregoing Figure 5 As shown in the node architecture, the communication component of the node can be a network switch chip deployed inside the node, or a communication engine deployed on the accelerator. The implementation process of this step is introduced based on the deployment of the two communication components as follows:
[0160] Case one, the communication component of the first node is a network switch chip deployed on the first node, and each accelerator in the first node is connected through the communication component.
[0161] The communication component determines the write address of the target aggregated data on each accelerator of the first node in response to the data receiving request, and broadcasts the target aggregated 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 receiving request to the communication component of the first node. The communication component can broadcast the corresponding data after receiving each data receiving request, or broadcast the corresponding data after receiving the data receiving request sent by all accelerators in the node. The present application does not limit this. In addition, if the write address of the target aggregated data on the first accelerator in the second address is an offset address, the communication component translates the second address based on the same process as the first address, which will not be repeated here.
[0162] The following Figure 14 The data broadcast process corresponding to case one is exemplified. Figure 14 is a schematic diagram of the communication component broadcasting data provided by an embodiment of the present application. As Figure 14 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. The forwarding component identifies that the data receiving request includes the second address, and forwards the data receiving request carrying the second address to the communication component (i.e. the node internal SW). The communication component translates the second address in response to the data receiving request to obtain the write address of the target aggregated data on the accelerator. It should be understood that the communication component will receive the data receiving request sent by each accelerator in the node. Thus, the communication component can determine the write address of the target aggregated data on each accelerator, and then realize data broadcast.
[0163] Case two, 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 connected with the communication component.
[0164] The communication component obtains the write address of the target aggregated data on the at least one second accelerator from the data receiving request in response to the data receiving request, and broadcasts the target aggregated data to each accelerator in the first node. It should be understood that, in case two, the communication component is a communication engine deployed on the first accelerator, that is, the communication component is inside the first accelerator, so 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 aggregated data on each second accelerator in the data receiving request when forwarding the data receiving request. Of course, the write address of the target aggregated data on the first accelerator can also be carried in the data receiving request, and the application is not limited to this.
[0165] Reference is made below to Figure 15 The data broadcasting process corresponding to case two is exemplified. Figure 15 is another schematic diagram of the communication component provided by the embodiment of the application for broadcasting data. As shown in Figure 15 Take any accelerator as an example, the RDMA engine component of the accelerator sends the data receiving request carrying the second address to the forwarding component, the forwarding component identifies that the data sending request includes the second address, and forwards the data receiving request carrying the second address to the communication component (that is, the intra-node communication engine), wherein the address translation process is performed by the forwarding component to obtain the write address of the target aggregated data on the at least one second accelerator, and then the data broadcasting is realized.
[0166] After the above step 807, corresponding data broadcasting modes are provided for different deployment modes of the communication component. In other words, if there is a network switching chip with broadcasting capability in the node, the data broadcasting in the node can be realized through the network switching chip, and if there is no network switching chip with broadcasting capability in the node, the data broadcasting in the node can be realized through the intra-node communication engine with broadcasting capability.
[0167] Reference is made below to the above Figure 12 Take an accelerator responsible for a data block as an example, and the distribution process of the target aggregated data shown in the above steps 807 and 808 is exemplified. As shown in Figure 12 After obtaining the target aggregated data A0-A7, B0-B7, C0-C7 and D0-D7, the network switching device distributes the target aggregated data to each XPU in node 0 and node 1. Take XPU0 as an example, the forwarding component of XPU0 triggers the communication component (intra-node SW) of node 0 to broadcast the aggregated data A0-A7 associated with data block A to each XPU in node 0. The remaining XPU is the same, and details are not repeated.
[0168] In addition, in steps 807 and 808, the communication component broadcasts the target aggregation data to each accelerator in the node. In some embodiments, the communication component can also multicast the target aggregation data to each accelerator in the node except the first accelerator. Since the first accelerator initiates the broadcast, the first accelerator can directly write the received target aggregation data to the memory without broadcasting through the communication component. In this way, communication resources can be saved.
[0169] Reference will now be made to the following description Figure 16 The data processing method shown in steps 801 to 808 is described by way of example. Figure 16 is a flowchart of a data processing method provided by an embodiment of the present application. As shown in Figure 16 The data processing method includes the following steps for any accelerator in any node, taking the communication component as a network switch chip deployed in the node as an example:
[0170] 1. The data processing system issues an SQE for a distributed aggregation task to the accelerator, and the RDMA engine component of the accelerator generates a data sending request according to the SQE and sends it to the forwarding component.
[0171] 2. The forwarding component identifies that the data sending request includes a first address (i.e., a special address) and forwards the data sending request carrying the first address to the communication component.
[0172] 3. The communication component aggregates data of a certain data block corresponding to the distributed aggregation task on each accelerator in the node in response to the data sending request, obtains an aggregation result, and returns the aggregation result to the forwarding component.
[0173] 4. The forwarding component sends the aggregation result to the network switching device through the RDMA engine component.
[0174] 5. The network switching device receives the aggregation data sent by each accelerator in each node, aggregates the received aggregation data, and obtains target aggregation data.
[0175] 6. The network switching device sends the target aggregation data to each accelerator in each node.
[0176] 7. Continuing to take any accelerator as an example, the data processing system issues an RQE for a distributed aggregation task to the accelerator, and the RDMA engine component of the accelerator generates a data receiving request according to the RQE and sends it to the forwarding component.
[0177] 8. The forwarding component identifies that the data receiving request includes a second address (i.e., a special address) and forwards the data receiving request carrying the second address to the communication component.
[0178] 9. The communication component broadcasts the aggregated data for which the accelerator is responsible in the target aggregated data to each accelerator of the node in response to the data receiving request.
[0179] It can be seen that in the data processing method provided in the present application, by deploying the forwarding component on the accelerator, on the one hand, the in-network computing capability in the node can be triggered according to the data sending request for the distributed aggregation task, with the source address of the data sending request as the triggering condition, and on the other hand, the broadcast capability (or multicast capability) in the node can be triggered according to the data receiving request for the distributed aggregation task, with the destination address of the data receiving request as the triggering condition. In this way, the networking bandwidth in the node and between nodes can be utilized synchronously, and the in-network computing capability in the node and between nodes can also be utilized synchronously, thereby effectively reducing the cross-node communication delay and improving the network utilization and data processing efficiency. Moreover, the entire data processing process is implemented by calling one data sending request carrying a special address and one data receiving request carrying a special address, which is convenient to operate. In addition, in combination with Figure 12 It can be seen from the embodiments shown in the present application that, since the in-network computing capability in the node is utilized, and one accelerator is responsible for the data of one data block, compared with the related art shown in Figure 2 , the communication delay can be reduced from D / N / B+2D*((N-1) / N) / b to D / N / B, where D is the total data amount, 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, if the intra-node bandwidth b is 7 times the inter-node bandwidth B, then compared with the related art shown in Figure 2 , the communication delay can be reduced to 1 / 3 of the related art.
[0180] It should be understood that in the data processing method shown in the above Figures 8 to 16 , by the forwarding component deployed on the accelerator, the in-network computing capability, broadcast capability and multicast capability in the node can be triggered, thereby reducing the cross-node communication delay and improving the network utilization and data processing efficiency. In some other embodiments, in the scenario of cross-node data broadcast, by the forwarding component deployed on the accelerator, the broadcast capability and multicast capability in the node can be triggered, thereby reducing the communication delay.
[0181] Schematically, referring to Figure 17 , Figure 17 is a schematic diagram of another data processing method provided in an embodiment of the present application. As shown in Figure 17As shown, the data processing system includes node 0 and node 1, each of which includes 4 accelerators XPU, node 0 includes XPU0, XPU1, XPU2 and XPU3, and node 1 includes XPU4, XPU5, XPU6 and XPU7. In some scenarios (for example, pipeline parallel processing based on an AI model), it is necessary to send data of node 0 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 each accelerator transmits data of an amount of D, however, the data in each XPU in node 0 is the same, and each XPU transmits data of an amount of D, which is wasteful. By using the data processing method provided in the present application, for the data receiving end node 1, the forwarding component of any XPU in node 1 can trigger the intra-node broadcast capability, and then each XPU of node 0 only needs to transmit data of an amount of D / N (N is the number of intra-node accelerators), 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 intra-node accelerators, and if N is 8, the delay can be reduced to 1 / 8. It should be noted that, Figure 17 Only the broadcast of data block A is introduced as an example, and data blocks B, C and D are the same, and will not be described again.
[0182] The above Figure 17 content will be introduced based on the data processing system provided in the present application.
[0183] Illustratively, reference Figure 18 , Figure 18 is a flowchart of another data processing method provided in an embodiment of the present application. As shown in Figure 18 , the data processing method is applied to the data processing system shown in the foregoing Figures 4 to 7 , and the data processing method of the data processing system performing any broadcast task is introduced taking the interaction between each execution subject in the data processing system as an example. Illustratively, the data processing method includes the following steps 1801 to 1804. The method includes:
[0184] 1801, the first accelerator in the first node sends broadcast data to be broadcast to the second node to the network switching device.
[0185] In some embodiments, each accelerator in the first node is responsible for sending data of a data block as broadcast data to the network switching device. For example, referring to the foregoing Figure 17 , taking XPU0 of node 0 as the first accelerator 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 realize all the functions of the first accelerator in the embodiment shown in the foregoing Figures 8 to 16 , and will not be described again.
[0186] 1802、The network switching device forwards the broadcast data sent by the first accelerator to a third accelerator in the second node.
[0187] The third accelerator refers to an accelerator in the second node responsible for the same data block as the first accelerator.
[0188] 1803、The forwarding component of the third accelerator forwards the data receiving request to the communication component of the second node in response to the data receiving request for the broadcast data.
[0189] The application configures a special address in the data receiving request for the broadcast data based on the process as in the foregoing step 807, so as to serve as the trigger condition for the forwarding component to forward the request. When the forwarding component of the accelerator obtains the data receiving request, if the special address is identified, the forwarding component is triggered to forward the data receiving request to the communication component of the node. Illustratively, the step 1803 includes: if the data receiving request for the broadcast data includes a third address, the forwarding component of the third accelerator forwards the data receiving request to the communication component of the second node, and the third address includes the task identifier of the current 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 receiving request, and the like are the same as in the foregoing step 807, and thus are not described herein again.
[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 receiving request.
[0191] The step 1804 is the same as the foregoing step 808, and thus is not described herein again. In some embodiments, the communication component of the second node broadcasts the data of a first broadcast data block in the broadcast data to each accelerator in the second node in response to the data receiving request. 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 first data block in the foregoing embodiment, and thus is not described herein again. Figure 8
[0192] It should be understood that the steps 1801 to 1804 are described by taking any one accelerator in the first node as an example. Each accelerator in the first node performs the process as in the foregoing steps 1801 to 1804. In this way, the data on the first node can be quickly broadcast to the second node, and the communication delay is effectively reduced. That is, in the scenario of cross-node data broadcast, the broadcast capability and multicast capability in the node are triggered through the forwarding component deployed on the accelerator, so as to reduce the communication delay and improve the network utilization. Moreover, the entire data broadcast process is implemented by calling a normal data sending request and a data receiving request carrying a special address, and the operation is convenient.
[0193] Figure 19 FIG. 19 is a structural schematic diagram of a data processing apparatus according to an embodiment of the present application. The data processing apparatus can implement part or all of the functions of any of the accelerators in the foregoing embodiments. The data processing apparatus can be a chip or a board card including any of the foregoing accelerators. The data processing apparatus includes a communication interface 1901 and a processing unit 1902. The communication interface 1901 can be an interface of a chip, used for interaction of instructions or information with other chips or devices, and the processing unit 1902 can be hardware logic used for processing instructions. The processing unit 1902 can be used to implement the functions of the accelerators described in the foregoing embodiments.
[0194] The terms "first", "second", and the like in the present application are used to distinguish between the same or similar items or elements having substantially the same function, and it should be understood that there is no logical or timing dependency between "first", "second", and "nth", and the number and execution order are not limited. It should also be understood that although the following description uses the terms first, second, and the like to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of various described examples, a first node can be referred to as a second node, and similarly, a second node can be referred to as a first node. The first node and the second node can both be nodes, and in some cases, can be separate and distinct nodes.
[0195] In the present application, the term "at least one" means one or more, and the term "multiple" in the present application means two or more, for example, multiple nodes refer to two or more nodes.
[0196] The above description is merely one specific implementation of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art 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 covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
[0197] In the above embodiments, all or part can be implemented by software, hardware, firmware, or any combination thereof. When implemented by software, all or part can 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] Those skilled in the art can understand that all or part of the steps of the above-mentioned embodiments can be completed by hardware, or can be instructed by a program to instruct relevant hardware to complete, and the program can be stored in a computer readable storage medium. The storage medium mentioned above can be a read-only memory, a magnetic disk or an optical disk, etc.
[0199] The above-described embodiments are only used to illustrate the technical solutions of the present application, rather than limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that the technical solutions recorded in the foregoing embodiments can be modified, or some technical features can be replaced by equivalents; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A data processing method, characterized by, The application is applied to a data processing system, the data processing system comprises a plurality of nodes, each node is connected through a network switching device, wherein a first node comprises a communication component and a plurality of accelerators, a forwarding component is deployed on the accelerators of the first node, and the method comprises: The forwarding component of a first accelerator in the first node forwards a data sending request to the communication component of the first node in response to the data sending request for a distributed aggregation task, the distributed aggregation task indicates that data of the distributed aggregation task is aggregated, and 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 communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node to obtain first aggregated data in response to the data sending request, 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 of claim 1, wherein, The communication component of the first node is a network switching chip deployed on the first node, and each of the accelerators in the first node is connected through the communication component.
3. The method of claim 2, wherein, The communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node to obtain first aggregated data in response to the data sending request, comprising: The communication component of the first node determines the storage addresses of the data of the distributed aggregation task on each of the accelerators of the first node in response to the data sending request, obtains the corresponding data of each of the accelerators from each of the accelerators, and aggregates the corresponding data of each of the accelerators to obtain the first aggregated data.
4. The method of claim 1, wherein, 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 connected with the communication component.
5. The method of claim 4, wherein, The communication component of the first node aggregates the data of the distributed aggregation task on each of the accelerators in the first node to obtain first aggregated data in response to the data sending request, comprising: The communication component of the first node obtains the storage addresses of the data of the distributed aggregation task on at least one second accelerator of the first node from the data sending request in response to the data sending request, obtains the corresponding data of each of the second accelerators from each of the second accelerators, and aggregates the corresponding data of the first accelerator and the corresponding data of each of the second accelerators to obtain the first aggregated data, wherein the second accelerator refers to an accelerator other than the first accelerator in the first node.
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 to obtain first aggregated data in response to the data sending request, comprising: The communication component of the first node aggregates data of first data blocks on each of the accelerators in the first node to obtain the first aggregated data in response to the data sending request, the first data block being 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, the first address including a task identifier of the distributed aggregation task and a storage address of 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 includes: The network switching device receives the aggregated data sent by each of the accelerators in each of the nodes, aggregates the received aggregated data to obtain target aggregated data, and The network switching device sends the target aggregated data to each of the accelerators in each of the nodes.
9. The method of claim 8, wherein, The method further includes: The forwarding component of the first accelerator forwards the data receiving request to the communication component of the first node in response to the data receiving request for the distributed aggregation task, the data receiving request indicating writing the target aggregated data to the first accelerator; The communication component of the first node broadcasts the target aggregated data to each of the accelerators in the first node in response to the data receiving request.
10. The method of claim 9, wherein, The communication component of the first node broadcasts the target aggregated data to each of the accelerators in the first node in response to the data receiving request, including: The communication component of the first node broadcasts aggregated data corresponding to a first data block in the target aggregated data to each of the accelerators in the first node in response to the data receiving request, the first data block being 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 receiving request to the communication component of the first node in response to the data receiving request for the distributed aggregation task, including: If the data receiving request includes a second address, the forwarding component of the first accelerator forwards the data receiving request to the communication component of the first node, the second address including a task identifier of the distributed aggregation task and a write address of the target aggregated data on the first accelerator.
12. A data processing method, characterized by, The method is applied to a data processing system, the data processing system including a plurality of nodes, each of the nodes being communicatively connected through a network switching device, wherein each of the nodes includes a communication component and a plurality of accelerators, a forwarding component being deployed on the accelerators of the node, and the method including: A first accelerator of a first node sends broadcast data to be broadcast to a second node to the network switching device; The network switching device sends the broadcast data to a third accelerator of the second node; 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 receiving request to the communication component of the second node in response to the data receiving 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 receiving request.
13. The method of claim 12, wherein, 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 receiving request, including: 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 in response to the data receiving request, the first broadcast data block being 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 receiving request to the communication component of the second node in response to the data receiving request for the broadcast data, including: If the data receiving request includes a third address, the forwarding component of the third accelerator forwards the data receiving request to the communication component of the second node, the third address including a task identifier of the current broadcast task and a 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 configured to implement the data processing method according to any one of the preceding claims 1 to 11.
16. An acceleration chip, comprising: The acceleration chip includes a processor, a memory and a forwarding component, the memory is configured to store at least one piece of program code, and the processor is configured to invoke the program code to implement the function of the accelerator in the node according to any one of the preceding claims 1 to 15.
17. A node, characterized by The node includes a communication component and a plurality of accelerators, and the forwarding component is deployed on the accelerators, and the node is configured to implement the function of the node according to any one of the preceding claims 1 to 15.
18. A data processing system, characterized by The data processing system includes a plurality of nodes, each of the nodes is connected with each other through a network switching device, each of the nodes includes a communication component and a plurality of accelerators, and the forwarding component is deployed on the accelerators, and the data processing system is configured to implement the data processing method according to any one of the preceding claims 1 to 15.
19. A computer-readable storage medium, characterized in that, The computer readable storage medium is configured to store at least one piece of program code, and the at least one piece of program code is configured to execute the data processing method according to any one of the preceding claims 1 to 15.
20. A computer program product, characterised in that, When the computer program product is running on the data processing system, the data processing system is caused to execute the data processing method according to any one of the preceding 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