A communication method and apparatus
By generating retransmission messages based on table entry information using the first device, the problem of low network device efficiency in AI large model training and inference is solved, improving efficiency and saving resources.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2024-11-30
- Publication Date
- 2026-06-02
AI Technical Summary
In existing technologies, the efficiency of network devices performing collective communication operations during the training and inference of large AI models is relatively low and urgently needs to be improved.
The first device generates retransmission messages based on table entry information, avoiding the need to maintain complex state machines and additional caches, and directly sends retransmission messages to the second device, reducing computing resource consumption and cache requirements.
It improves the training and inference efficiency of large AI models, enables timely retransmission of messages, and saves computing resources and caching requirements.
Smart Images

Figure CN122137795A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and in particular to a communication method and apparatus. Background Technology
[0002] The training and inference of large-scale artificial intelligence (AI) models require a computing cluster, which consists of multiple computing nodes. These nodes include, but are not limited to, graphics processing units (GPUs) or neural network processing units (NPUs) capable of performing computational operations. The computing nodes within the cluster are interconnected via a network, including network devices.
[0003] Both the training and inference processes of large AI models involve collective communication operations. Currently, these collective communication operations can be performed by network devices in the aforementioned network, such as all-reduce operations, thereby improving the efficiency of training and inference of large AI models.
[0004] However, in some scenarios, although network devices perform collective communication operations, the efficiency of training and inference of large AI models remains low. Therefore, a solution is urgently needed to address these issues. Summary of the Invention
[0005] This application provides a communication method and apparatus that can improve the training and inference efficiency of large AI models.
[0006] Firstly, this application provides a communication method applicable to a first device. The first device can send a first control message to a second device. This first control message is a retransmission message, generated by the first device based on table entry information, which includes the information required to generate the first control message. In this application, the first device can generate the first control message based on the table entry information, thereby enabling the transmission of the retransmission message to the second device. The first device does not need to maintain a complex state machine corresponding to message retransmission; nor does it need to use additional cache to cache the information required to generate the first control message, i.e., the first device does not need to reserve additional cache for message retransmission. Using this solution, the transmission of the retransmission message to the second device can be achieved while reducing the computational resource consumption and cache requirements of the first device. This solution enables timely transmission of the retransmission message to the second device, thereby improving the training and inference efficiency of large AI models.
[0007] In one possible implementation, the first control message is a retransmission of the second control message, and the first control message is generated by the first device based on the table entry information after the second control message is lost. In other words, the first device can generate the first control message after determining that the second control message has been lost, thereby avoiding the problem of generating unnecessary control messages that would exist if the first control message were generated in other ways (such as pre-generating the first control message), and saving the resource consumption of the first device.
[0008] In one possible implementation, the first device can determine that the second control message has been lost before generating the first control message. In one example, after successfully receiving the second control message, the second device sends a corresponding response message to the first device. Therefore, the first device can determine that the second control message has been lost if it does not receive the response message. In another example, considering that if the second control message is lost, the first data aggregation task will stall at a certain stage, during which the first device will experience a data interruption, the first device can determine that the second control message has been lost if it experiences a data interruption itself.
[0009] In one possible implementation, the entry information includes information required to generate the first control message. As an example, the first control message may include a header and a payload, and the entry information may include information required to generate the header and / or the payload of the first control message. As an example, the header of the first control message includes address information; therefore, the aforementioned entry information may include the address information required to generate the header of the first control message. As another example, the payload of the first control message includes task information for the first data aggregation task. In other words, the aforementioned entry information may include the task information for the first data aggregation task.
[0010] In one possible implementation, the task information of the first data aggregation task includes at least one of the following: the task identifier of the first data aggregation task, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information on the first address for storing task completion notifications, authentication information for accessing the first address, information on the second address for storing task synchronization result notifications, authentication information for accessing the second address, information on the third address for storing the storage space for the data to be aggregated, authentication information for accessing the third address, information on the fourth address for storing the storage space for the aggregation results, and authentication information for accessing the fourth address. The first device can use at least one of the above information as the payload of the first control message to obtain the first control message.
[0011] In one possible implementation, the second control message includes a sequence number. Since the first control message is a retransmission of the second control message, the sequence number of the first control message is the same as that of the second control message. In other words, the first control message carries the sequence number of the second control message. In one example, the sequence number of the second control message can be carried in the header of the first control message. In this scenario, the aforementioned entry information can also include a sequence number, which is the sequence number of the last message sent by the first device to the second device. The first device can locally maintain a state machine related to message transmission. Based on this state machine, the first device can determine the number of messages it has sent to the second device after sending the second control message. Accordingly, the first device can determine the sequence number of the second control message based on the number of messages and the sequence number in the entry information, thereby generating a first control message carrying the sequence number of the second control message.
[0012] In one possible implementation, the table entry information can also be generated by the first device. As an example, the first device can receive a third control message, which includes task information for a first data aggregation task. Accordingly, after receiving the third control message, the first device can extract the task information from the third control message and further generate the aforementioned table entry information based on that task information. As another example, the first device can generate the table entry information based on the configuration information of the first data aggregation task, wherein the configuration information includes the table entry information. In one example, the configuration information can be sent to the first device by a control management unit. As yet another example, the first device can generate the table entry information based on the task information and the configuration information in the third control message, for example, by extracting partial information from both the third control message and the configuration information to generate the table entry information. After generating the table entry information, the first device can generate a first control message based on this table entry information after a second control message packet loss.
[0013] In one possible implementation, the third control message may be a task request message, which is used to notify the task information of the first data aggregation task. In other words, the task request message includes the task information of the first data aggregation task. After receiving the task request message, the first device can extract the task information from the task request message and generate the aforementioned table entry information based on the extracted task information.
[0014] In one possible implementation, the first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device. Using this scheme, the leaf aggregation node can promptly generate a retransmission message for the second control message and send it to the retransmission node if the second control message it sends is lost.
[0015] In one possible implementation, the first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node. Using this scheme, the root aggregation node can promptly generate a retransmission message for the second control message and send it to the retransmission node if the second control message it sends is lost.
[0016] In one possible implementation, the first control message includes: a task request message, used to notify the task information of the first data aggregation task; or, a response message to the task request message; a task synchronization result notification message, used to notify the result of task synchronization; or, a response message to the task synchronization result notification message; or, a data request message, used to request data to be aggregated, the data to be aggregated including: data generated by computing nodes, or, intermediate results obtained by leaf aggregation nodes; or, a response message to the aggregation result; or, a task completion notification message, used to notify the completion of the first data aggregation task; or, a response message to the task completion notification message.
[0017] As an example, if the first device is a leaf aggregation node and the second device is a root aggregation node, then the first control message can be: a task request message, a response message to a task synchronization result notification message, or a response message to the aggregation result.
[0018] As another example, if the first device is a leaf aggregation node and the second device is the computing node corresponding to the leaf aggregation node, then the first control message can be: a task synchronization result notification message, a data request message, a task completion notification message, or a response message to a task request message.
[0019] As another example, if the first device is the root aggregation node, the first device can send a response message to the task request message, a task synchronization result notification message, a data request message, or a task completion notification message to the second device.
[0020] In one possible implementation, the first device may include a control plane processing unit and a data plane processing unit. The aforementioned operation of determining that the second control message has been lost can be performed by the data plane processing unit. The operation of generating the first control message can be performed by either the control plane processing unit or the data plane processing unit, offering flexibility in implementation.
[0021] In a specific example, after the data plane processing unit determines that the second control message has been lost, it further generates the first control message based on the aforementioned table entry information and sends the first control message to the second device.
[0022] In another specific example, after the data plane processing unit determines that the second control message has been lost, it can send an interrupt message to the control plane processing unit. This interrupt message indicates that the second control message has been lost. Accordingly, after receiving the interrupt message, the control plane processing unit can generate the first control message based on the aforementioned table entry information and send the first control message to the data plane processing unit, which then sends the first control message to the second device.
[0023] Secondly, this application provides a communication method applicable to a second device. The second device can receive a first control message sent by a first device. The first control message is a retransmission message, generated by the first device based on table entry information, which includes information required to generate the first control message. In this application, the first device can generate the first control message based on the table entry information, thereby enabling the sending of a retransmission message to the second device. Correspondingly, the second device can receive the retransmission message sent by the first device. The first device does not need to maintain a complex state machine corresponding to message retransmission; nor does it need to use additional cache to cache the information required to generate the first control message, i.e., the first device does not need to reserve a cache for message retransmission. Using this solution, the sending of retransmission messages to the second device can be achieved while reducing the computational resource consumption and cache requirements of the first device. This solution enables timely sending of retransmission messages to the second device, thereby improving the training and inference efficiency of large AI models.
[0024] In one possible implementation, the first control message is a retransmission of the second control message, and the first control message is generated by the first device based on the table entry information after the second control message is lost.
[0025] In one possible implementation, the entry information includes: address information required to generate the header of the first control message, and / or, task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
[0026] In one possible implementation, the task information of the first data aggregation task includes at least one of the following: the task identifier of the first data aggregation task, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information on the first address for storing task completion notifications, authentication information for accessing the first address, information on the second address for storing task synchronization result notifications, authentication information for accessing the second address, information on the third address for storing the storage space for the data to be aggregated, authentication information for accessing the third address, information on the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
[0027] In one possible implementation, the first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information, and the first control message is a retransmission of the second control message.
[0028] In one possible implementation, the table entry information is generated based on the task information and / or configuration information of the first data aggregation task in the third control message received by the first device.
[0029] In one possible implementation, the third control message includes a task request message, which is used to notify the task information of the first data aggregation task.
[0030] In one possible implementation, the first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
[0031] In one possible implementation, the first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
[0032] In one possible implementation, the first control message includes: a task request message, used to notify the task information of the first data aggregation task; or, a response message to the task request message; a task synchronization result notification message, used to notify the result of task synchronization; or, a response message to the task synchronization result notification message; or, a data request message, used to request data to be aggregated, the data to be aggregated including: data generated by computing nodes, or, intermediate results obtained by leaf aggregation nodes; or, a response message to the aggregation result; or, a task completion notification message, used to notify the completion of the first data aggregation task; or, a response message to the task completion notification message.
[0033] In one possible implementation, the first device includes a control plane processing unit and a data plane processing unit, wherein the data plane processing unit is used to determine that the second control message has been lost, and the control plane processing unit is used to generate the first control message based on the table entry information.
[0034] In one possible implementation, the first device includes a data plane processing unit, which is used to determine that the second control message has been lost and to generate the first control message based on the table entry information.
[0035] Thirdly, this application provides a communication device applied to a first device, the device comprising: a transmitting unit for transmitting a first control message to a second device, the first control message being a retransmission message, the first control message being generated by the first device based on table entry information, the table entry information including information required to generate the first control message.
[0036] In one possible implementation, the first control message is a retransmission of the second control message, and the first control message is generated by the first device based on the table entry information after the second control message is lost.
[0037] In one possible implementation, the device further includes a processing unit configured to: determine that the second control message has been lost if no response message to the second control message is received; or determine that the second control message has been lost if the first device experiences a traffic interruption.
[0038] In one possible implementation, the entry information includes: address information required to generate the header of the first control message, and / or, task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
[0039] In one possible implementation, the task information of the first data aggregation task includes at least one of the following: the task identifier of the first data aggregation task, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information on the first address for storing task completion notifications, authentication information for accessing the first address, information on the second address for storing task synchronization result notifications, authentication information for accessing the second address, information on the third address for storing the storage space for the data to be aggregated, authentication information for accessing the third address, information on the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
[0040] In one possible implementation, the first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information, and the first control message is a retransmission of the second control message.
[0041] In one possible implementation, the table entry information is generated based on the task information and / or configuration information of the first data aggregation task in the third control message received by the first device.
[0042] In one possible implementation, the third control message includes a task request message, which is used to notify the task information of the first data aggregation task.
[0043] In one possible implementation, the first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
[0044] In one possible implementation, the first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
[0045] In one possible implementation, the first control message includes: a task request message, used to notify the task information of the first data aggregation task; or, a response message to the task request message; a task synchronization result notification message, used to notify the result of task synchronization; or, a response message to the task synchronization result notification message; or, a data request message, used to request data to be aggregated, the data to be aggregated including: data generated by computing nodes, or, intermediate results obtained by leaf aggregation nodes; or, a response message to the aggregation result; or, a task completion notification message, used to notify the completion of the first data aggregation task; or, a response message to the task completion notification message.
[0046] In one possible implementation, the first device includes a control plane processing unit and a data plane processing unit, wherein the data plane processing unit is used to determine that the second control message has been lost, and the control plane processing unit is used to generate the first control message based on the table entry information.
[0047] In one possible implementation, the first device includes a data plane processing unit, which is used to determine that the second control message has been lost and to generate the first control message based on the table entry information.
[0048] Fourthly, this application provides a communication device applied to a second device, the device comprising: a receiving unit for receiving a first control message sent by a first device, the first control message being a retransmission message, the first control message being generated by the first device based on table entry information, the table entry information including information required to generate the first control message.
[0049] In one possible implementation, the first control message is a retransmission of the second control message, and the first control message is generated by the first device based on the table entry information after the second control message is lost.
[0050] In one possible implementation, the entry information includes: address information required to generate the header of the first control message, and / or, task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
[0051] In one possible implementation, the task information of the first data aggregation task includes at least one of the following: the task identifier of the first data aggregation task, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information on the first address for storing task completion notifications, authentication information for accessing the first address, information on the second address for storing task synchronization result notifications, authentication information for accessing the second address, information on the third address for storing the storage space for the data to be aggregated, authentication information for accessing the third address, information on the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
[0052] In one possible implementation, the first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information, and the first control message is a retransmission of the second control message.
[0053] In one possible implementation, the table entry information is generated based on the task information and / or configuration information of the first data aggregation task in the third control message received by the first device.
[0054] In one possible implementation, the third control message includes a task request message, which is used to notify the task information of the first data aggregation task.
[0055] In one possible implementation, the first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
[0056] In one possible implementation, the first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
[0057] In one possible implementation, the first control message includes: a task request message, used to notify the task information of the first data aggregation task; or, a response message to the task request message; a task synchronization result notification message, used to notify the result of task synchronization; or, a response message to the task synchronization result notification message; or, a data request message, used to request data to be aggregated, the data to be aggregated including: data generated by computing nodes, or, intermediate results obtained by leaf aggregation nodes; or, a response message to the aggregation result; or, a task completion notification message, used to notify the completion of the first data aggregation task; or, a response message to the task completion notification message.
[0058] In one possible implementation, the first device includes a control plane processing unit and a data plane processing unit, wherein the data plane processing unit is used to determine that the second control message has been lost, and the control plane processing unit is used to generate the first control message based on the table entry information.
[0059] In one possible implementation, the first device includes a data plane processing unit, which is used to determine that the second control message has been lost and to generate the first control message based on the table entry information.
[0060] Fifthly, this application provides an apparatus comprising: a processor and a memory; the memory being used to store instructions or a computer program; the processor being used to execute the instructions or the computer program to perform the method described in the first aspect above and any one of the first aspects above; or, the processor being used to execute the instructions or the computer program to perform the method described in the second aspect above and any one of the second aspects above.
[0061] Sixthly, this application provides a computer-readable storage medium including instructions or a computer program that, when run on a computer, causes the computer to perform the methods described in the first aspect and any one of the first aspects above, or, when run on a computer, causes the computer to perform the methods described in the second aspect and any one of the second aspects above.
[0062] In a seventh aspect, this application provides a computer program product comprising instructions or a computer program, which, when run on a computer, causes the computer to perform the methods described in the first aspect and any one of the first aspects above, or, when run on a computer, causes the computer to perform the methods described in the second aspect and any one of the second aspects above.
[0063] Eighthly, this application provides a communication system comprising: a first device for performing the method described in the first aspect and any one of the first aspects above, and a second device for performing the method described in the second aspect and any one of the second aspects above.
[0064] Ninthly, this application provides a chip including an interface circuit for receiving and / or transmitting data.
[0065] In one example, the chip can be applied to the first device, for which:
[0066] The chip also includes a processing circuit, and the interface circuit is used to send a first control message to the second device. The first control message is a retransmission message, and the first control message is generated by the processing circuit based on table entry information, which includes the information required to generate the first control message.
[0067] Optionally, the processing circuit is configured to determine that the second control message has been lost if no response message to the second control message is received; or, if the first device experiences a flow interruption, determine that the second control message has been lost.
[0068] In yet another example, this chip can be applied to a second device, for which:
[0069] The interface circuit is used to receive a first control message sent by the first device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, and the table entry information includes the information required to generate the first control message. Attached Figure Description
[0070] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0071] Figure 1a A schematic diagram of a communication system provided in an embodiment of this application;
[0072] Figure 1b A schematic diagram of a network architecture is shown;
[0073] Figure 1c Another network architecture diagram is shown;
[0074] Figure 1dAnother network architecture diagram is shown;
[0075] Figure 1e This illustrates yet another network architecture diagram;
[0076] Figure 1f This illustrates yet another network architecture diagram;
[0077] Figure 2a A schematic diagram of signaling interaction for a communication method is shown;
[0078] Figure 2b A schematic diagram of signaling interaction for another communication method is shown;
[0079] Figure 3 A signaling interaction diagram of a communication method provided in an embodiment of this application;
[0080] Figure 4 A schematic diagram of a task request message provided in an embodiment of this application;
[0081] Figure 5 A schematic diagram illustrating a control message retransmission provided in an embodiment of this application;
[0082] Figure 6 This is a schematic diagram of the structure of a communication device provided in an embodiment of this application;
[0083] Figure 7 This is a schematic diagram of the structure of another communication device provided in the embodiments of this application;
[0084] Figure 8 This is a schematic diagram of the structure of a device provided in an embodiment of this application;
[0085] Figure 9 This is a schematic diagram of the structure of a chip provided in an embodiment of this application. Detailed Implementation
[0086] This application provides a communication method and apparatus that can achieve the retransmission of control messages while reducing the computational resource consumption of the first device and reducing the first device's need for caching, thereby improving the training and inference efficiency of large AI models.
[0087] The control messages mentioned in this application can be understood as messages carrying control information. Of course, in addition to carrying control information, control messages can also carry other data. For example, the task request message mentioned below can carry some data to be aggregated in addition to control information.
[0088] For ease of description, the application scenarios of the embodiments of this application will be introduced first.
[0089] See Figure 1a This figure is a schematic diagram of a communication system provided in an embodiment of this application.
[0090] The communication system shown in Figure 1 includes: compute nodes and aggregation nodes (AN). Figure 1a The diagram illustrates a two-level aggregation node hierarchy: a root aggregation node and a leaf aggregation node. Figure 1a The diagram shows two root aggregation nodes, root aggregation node 1 and root aggregation node 2, and three leaf aggregation nodes, leaf aggregation node 1, leaf aggregation node 2, and leaf aggregation node 3. Additionally, Figure 1a The document also shows six computing nodes, from computing node 1 to computing node 6. (About...) Figure 1a The connection relationships between compute nodes and aggregation nodes are shown, but will not be described in detail here.
[0091] Computational nodes are used to perform computational operations. For example, during the training of a large AI model, they perform computational operations related to the training of the large AI model; similarly, during the inference process of a large AI model, they perform computational operations related to the inference process of the large AI model.
[0092] Leaf aggregation nodes are interconnected with their corresponding computing nodes to receive the computation results from their corresponding computing nodes and perform aggregation operations on the computation results to obtain intermediate aggregated data (i.e., intermediate results).
[0093] The root aggregator node is used to interconnect with the leaf aggregators node. It receives intermediate aggregated data sent by the leaf nodes and further aggregates the received intermediate aggregated data to obtain the aggregated result. After obtaining the aggregated result, the root aggregator node can send the aggregated result to the compute node through the leaf aggregator node.
[0094] Although Figure 1a The diagram illustrates two levels of aggregation nodes; however, in practical applications, the number of levels for aggregation nodes is not limited to two. For example, the aggregation node may have only one level, meaning it includes only the root aggregation node and excludes leaf aggregation nodes. Alternatively, the aggregation node may have three or more levels, meaning it may include at least two levels of leaf aggregation nodes.
[0095] In this application, the aforementioned communication system can be deployed on a scale-out domain interconnection network or a scale-up domain interconnection network. The scale-out domain interconnection network is used for the horizontal scaling of the network cluster, enabling the interconnection of more computing nodes. The scale-up domain interconnection network is a single-node system domain, such as an interconnection network domain within a server or an interconnection network domain for a supernode.
[0096] The network architecture of scale-out domains typically adopts a typical Layer 2 or Layer 3 CLOS network topology, and specific networking forms include, but are not limited to, those shown below. Figure 1b , Figure 1c , Figure 1d The three networking types shown are shown. Multi-rail networking can also be used, such as... Figure 1e As shown. The CLOS networking method employs a multi-level architecture, proposed by Charles Clos, hence the name CLOS networking. Figure 1b The network architecture shown includes a core node, spine nodes, top-of-rack (TOR) switches, and servers. Each TOR corresponds one-to-one with a server, each TOR is connected to two spine nodes, and all spine nodes are connected to the core node. Figure 1a The communication system shown is deployed in Figure 1b In the network shown, the computing node corresponds to Figure 1b The server in the middle, the leaf aggregation node corresponds to Figure 1b In TOR, the root aggregation node corresponds to Figure 1b The spine node in the text.
[0097] Figure 1c and Figure 1b The difference is that the relationship between TOR and servers is no longer one-to-one; instead, each server is connected to two TORs. When Figure 1a The communication system shown is deployed in Figure 1c In the network shown, the computing node corresponds to Figure 1c The server in the middle, the leaf aggregation node corresponds to Figure 1c In TOR, the root aggregation node corresponds to Figure 1c The spine node in the text.
[0098] Figure 1d The network architecture shown includes three layers: the middle layer is TOR, and the other two layers connected to the middle layer are servers, corresponding to... Figure 1d Servers 100 and 200 are mentioned. Figure 1d In this configuration, each server in server 200 is connected to two TORs, and each TOR is also connected to two servers in server 100. The specific connection relationships are as follows: Figure 1d This will not be described in detail here. Figure 1a The communication system shown is deployed in Figure 1d In the network shown, the computing node corresponds to Figure 1d Server 200 in the middle, leaf aggregation node corresponds to Figure 1dIn TOR, the root aggregation node corresponds to Figure 1d Server 100 in the middle.
[0099] Figure 1e The network architecture shown includes two layers: servers and TORs. The servers and TORs are connected via full connectivity, meaning each TOR is connected to each server. When... Figure 1a The communication system shown is deployed in Figure 1e In the network shown, the computing node corresponds to Figure 1e The server in the middle, the root aggregation node corresponds to Figure 1e In this scenario, there can be no leaf aggregation nodes, and the root aggregation node is directly connected to the compute nodes. In one example, Figure 1e A server may include a network interface card (NIC) and multiple compute cards, which are connected to the TOR via the NIC. In this scenario, the NIC in the server can act as a leaf aggregation node to aggregate data generated by at least one compute card in the server.
[0100] A scale-up domain interconnection network architecture can employ a single-layer switching network interconnected with multiple planes. Specific network structures include, but are not limited to, those shown below. Figure 1f The network topology shown is as follows. In this model, the end-side devices in the scale-up domain typically use the PU's direct network port to interface with the switching chip, without requiring a network interface card (NIC). In some scenarios, the PU can also be called an xPU, where the xPU can be a GPU or an NPU.
[0101] when Figure 1a The communication system shown is deployed in Figure 1f In the network shown, the computing node corresponds to Figure 1f In xPU, the root aggregation node corresponds to Figure 1e The switch in the system. In this scenario, there are no leaf aggregation nodes, and the root aggregation node is directly connected to the compute nodes.
[0102] For training or inference of large AI models, it can include multiple tasks executed sequentially. In some examples, the next task can only be executed after all computing nodes executing the current task have obtained the same aggregated result. For example:
[0103] These multiple sequential tasks include Task 1 and Task 2, where Task 2 can only be executed after Task 1 has completed. For example... Figure 1a As shown, compute node 1, compute node 2, compute node 3, and compute node 5 ( Figure 1aThe nodes shown in gray need to participate in the computation of Task 1 and Task 2. Therefore, when executing Task 1: Computing nodes 1 and 2 can send their computation results to leaf aggregation node 1. Leaf aggregation node 1 aggregates the computation results of computing nodes 1 and 2 to obtain intermediate result 1. Computing node 3 sends its computation result to leaf aggregation node 2. Since only computing node 3 among the computing nodes corresponding to leaf aggregation node 2 participates in the computation of Task 1 and Task 2, leaf aggregation node 2 can use the computation result of computing node 3 as intermediate result 2. Similarly, computing node 5 sends its computation result to leaf aggregation node 3. Since only computing node 5 among the computing nodes corresponding to leaf aggregation node 3 participates in the computation of Task 1 and Task 2, leaf aggregation node 3 can use the computation result of computing node 5 as intermediate result 3. Leaf aggregation node 1 sends intermediate result 1 to root aggregation node 1, leaf aggregation node 2 sends intermediate result 2 to root aggregation node 1, and leaf aggregation node 3 sends intermediate result 3 to root aggregation node 1. After receiving intermediate results 1, 2, and 3, root aggregator node 1 aggregates these results to obtain an aggregated result, which is then sent to leaf aggregator nodes 1, 2, and 3, respectively. Correspondingly, leaf aggregator node 1 sends the aggregated result to compute node 1 and 2, leaf aggregator node 2 sends it to compute node 3, and leaf aggregator node 3 sends it to compute node 5. Once compute nodes 1, 2, 3, and 5 have all received the aggregated result, they can then proceed to execute task 2.
[0104] In the above process, the interaction between compute nodes, leaf aggregation nodes, and root aggregation nodes can be described as follows: Figure 2a Or as shown in 2b. Figure 2a and Figure 2b A schematic diagram of the signaling interaction between the two communication methods is shown.
[0105] In the introduction Figure 2a and Figure 2b Before showing the process, it should be noted that, although Figure 1a The diagram illustrates two root aggregation nodes, but in practical applications, the number of root aggregation nodes is not limited to two. For example, there could be one, three, or even more root aggregation nodes. Different root nodes can, for example, execute different tasks in parallel. Figure 1aIn the scenario shown, root aggregation node 1 can execute tasks 1 and 2 in sequence, and root aggregation node 2 can execute tasks 3 and 4 in sequence. Task 1 (or task 2) and task 3 (or task 4) can be executed in parallel.
[0106] Figure 2a The illustrated communication flow includes three phases: the task request phase, the aggregation and distribution phase, and the task completion phase. Specifically:
[0107] The task request phase can be initiated by a compute node to request the start of a task, which can be a data aggregation task. As an example, the task request phase may include the following process:
[0108] The compute node sends a task request message to the leaf aggregator node. This task request message is used to announce the task information of the data aggregation task. After receiving the task request message, the leaf aggregator node also generates another task request message and sends its generated task request message to the root aggregator node. The task request message generated by the leaf aggregator node is used to announce the task information of the data aggregation task to the root aggregator node.
[0109] The root aggregator node can send a task synchronization result notification message to each of its corresponding leaf aggregators participating in the data aggregation task. This message announces the success or failure of the task synchronization. Specifically, if the root aggregator node receives task request messages from all participating leaf aggregators, the synchronization result indicates success. Conversely, if the root aggregator node does not receive such messages, the synchronization result indicates failure.
[0110] After receiving the task synchronization result notification message sent by the root aggregation node, the leaf aggregation node can also generate a task synchronization result notification message and send it to each of the corresponding computing nodes participating in the data aggregation task to notify the result of the task synchronization. The result of the task synchronization is used to indicate whether the task synchronization was successful.
[0111] In one example, after receiving a task request message, a leaf aggregator node can send a response message to the compute node for that task request message. Similarly, after receiving a task request message from a leaf aggregator node, the root aggregator node can send a response message to the leaf aggregator node for that task request message.
[0112] In one example, after a compute node receives a task synchronization result notification message from a leaf aggregator node, it can send a response message to the leaf aggregator node in response to that message. Similarly, after a leaf aggregator node receives a task synchronization result notification message from a root aggregator node, it can send a response message to the root aggregator node in response to that message.
[0113] After the task request phase is completed, the aggregation and distribution phase begins. As a concrete example, the aggregation and distribution phase may include the following process:
[0114] Leaf aggregator nodes send data request messages to compute nodes. These messages request data to be aggregated, which can be data generated by the compute nodes, i.e., data calculated by the compute nodes. In one example, a leaf aggregator node may send a data request message to a compute node after receiving a response message from the compute node regarding the task synchronization result notification message.
[0115] Correspondingly, after receiving the data request message sent by the leaf aggregator, the compute node can send the data to be aggregated (i.e. the data calculated by the compute node itself) to the leaf aggregator. The leaf aggregator can then aggregate the received data to obtain intermediate results.
[0116] The root aggregator sends a data request message to the leaf aggregator. This data request message requests data to be aggregated, which may be the intermediate result obtained by the leaf aggregator. In one example, the root aggregator may send this data request message to the leaf aggregator after receiving a response message from the leaf aggregator regarding the task synchronization result notification message.
[0117] Correspondingly, after receiving the data request message sent by the root aggregator, the leaf aggregator can send the data to be aggregated (i.e. the intermediate result obtained by the leaf aggregator in performing the aggregation calculation) to the root aggregator. The root aggregator can then aggregate the received intermediate data to obtain the aggregation result.
[0118] After the root aggregator node obtains the aggregation result, it can send the aggregation result to the leaf aggregator node. In turn, the leaf aggregator node sends the received aggregation result to the compute node.
[0119] In one example, after receiving the aggregation result from the root aggregator, a leaf aggregator can send a response message to the root aggregator regarding that aggregation result. Similarly, after receiving the aggregation result from a leaf aggregator, a compute node can send a response message to the leaf aggregator regarding that aggregation result.
[0120] The process shown in the aggregation and distribution phase can be repeated until the data aggregation and data distribution operations corresponding to the data aggregation task are completed.
[0121] After the aggregation and distribution phase is completed, the task termination phase begins. As a concrete example, the task termination phase may include the following process:
[0122] The root aggregator node sends a task completion notification message to the leaf aggregators node, which is used to notify that the aforementioned data aggregation task has been completed. In one example, the root aggregator node may send the task completion notification message to the leaf aggregators node after receiving response messages from each of the leaf aggregators node participating in the data aggregation task regarding the aforementioned aggregation result.
[0123] The leaf aggregator node sends a task completion notification message to the compute node. This message is used to announce the completion of the aforementioned data aggregation task. In one example, the leaf aggregator node may send a task completion notification message to its corresponding compute node upon receiving response messages from each of the compute nodes participating in the data aggregation task regarding the aggregation result.
[0124] In one example, after receiving a task completion notification message from a leaf aggregator node, a compute node can send a response message to the leaf aggregator node in response to the task completion notification message. Similarly, after receiving a task completion notification message from a root aggregator node, a leaf aggregator node can send a response message to the root aggregator node in response to the task completion notification message.
[0125] Thus, the data aggregation task (e.g., the task 1 mentioned above) is completed.
[0126] Figure 2b The process shown is the same as Figure 2a The difference in the illustrated processes lies in the aggregation and distribution phase. Figure 2a In this process, the leaf aggregator node sends a data request message to the compute node, and the compute node, upon receiving the data request message, then sends the data to be aggregated back to the leaf aggregator node. And... Figure 2b In this process, the compute nodes actively send the data to be aggregated to the leaf aggregators. Additionally, in... Figure 2a In this process, the root aggregator sends a data request message to the leaf aggregators, and the leaf aggregators, upon receiving the data request message, then send the data to be aggregated back to the root aggregator. Meanwhile... Figure 2b In this process, the leaf aggregator actively sends the data to be aggregated to the root aggregator.
[0127] In addition, although Figure 2a and Figure 2b Although not shown in the diagram, in some scenarios, the task request message sent by the compute node to the leaf aggregator node may also include some of the data generated by the compute node. Similarly, the task request message sent by the leaf aggregator node to the root aggregator node may also include some of the intermediate results.
[0128] Furthermore, in a communication system that includes both aggregation nodes and compute nodes, only one layer of aggregation nodes is included (excluding leaf aggregation nodes), and the root aggregation node directly aggregates the data calculated by the compute nodes. In this scenario, the operations performed by the compute nodes are similar to... Figure 2a and Figure 2b The operations performed by the compute nodes shown are identical, the difference being that the compute nodes communicate with the root aggregator node instead of the leaf aggregators. Similarly, the operations performed by the root aggregator node are the same as... Figure 2a and Figure 2b The root aggregator node shown performs the same operations as the leaf aggregator node, except that the root aggregator node communicates with compute nodes instead of leaf aggregators.
[0129] As can be seen from the above description, the above interaction process involves a variety of control messages.
[0130] As an example, a leaf aggregator node can send control messages to both the root aggregator node and compute nodes. Specifically, a leaf aggregator node can send a task request message to the root aggregator node; it can also send a response message to a task synchronization result notification message; it can send a response message to the root aggregator node regarding the aggregation result; and it can send a response message to a task completion notification message. As yet another specific example, a leaf aggregator node can send a task synchronization result notification message to a compute node; it can send a data request message; it can send a task completion notification message; and it can send a response message to a task request message.
[0131] As another example, the root aggregator node can send control messages to the leaf aggregators node. Specifically, the root aggregator node can send response messages to task request messages; it can send task synchronization result notification messages to the leaf aggregators node; it can send data request messages to the leaf aggregators node; and it can send task completion notification messages to the leaf aggregators node.
[0132] In scenarios where the root aggregator directly aggregates data computed by the compute nodes, the root aggregator can send control messages to the compute nodes. As a concrete example, the root aggregator can send response messages to task request messages; it can send task synchronization result notification messages; it can send data request messages; and it can send task completion notification messages.
[0133] In the above process, if any control message sent by the root aggregation node or the leaf aggregation node is lost, the entire data aggregation task will fail to execute normally, resulting in low efficiency in AI large model training or AI large model inference.
[0134] For example, if a task request message from a compute node to a leaf aggregator is lost, task synchronization will fail, causing the data aggregation task to stall in the task request phase. Similarly, if a task request message from a leaf aggregator to the root aggregator is lost, the root aggregator will be unable to send a task synchronization result notification message to the leaf aggregator, causing the data aggregation task to stall in the task request phase.
[0135] For example, if a data request message sent from a leaf aggregator to a compute node is lost, the compute node cannot send the data to be aggregated to the leaf aggregator in a timely manner, causing the data aggregation task to stall in the aggregation and distribution phase. Similarly, if a data request message sent from a root aggregator to a leaf aggregator is lost, the leaf aggregator cannot send the data to be aggregated to the root aggregator in a timely manner, causing the data aggregation task to stall in the aggregation and distribution phase.
[0136] For example, if a task completion notification message sent from a leaf aggregator node to a compute node is lost, the data aggregation task will be stalled at the task completion stage. Similarly, if a task completion notification message sent from a root aggregator node to a leaf aggregator node is lost, the data aggregation task will be stalled at the task completion stage.
[0137] In one example, an aggregation node (such as a root or leaf aggregation node) can utilize a retransmission mechanism to retransmit lost control messages. Specifically, the aggregation node can maintain a state machine corresponding to the message retransmission. Based on this state machine, the state of the sent control message is determined, and information for constructing the retransmitted message is cached. Thus, when the state machine corresponding to the message retransmission determines that a control message has been lost, the retransmitted message is reconstructed based on the cached information and sent. However, this approach has several drawbacks. First, maintaining the state machine corresponding to the message retransmission requires significant computational resources. Second, the aggregation node has high cache requirements. As a concrete example, each port of the aggregation node needs at least one additional cache resource for the bandwidth-delay product (BDP). Here, BDP is the product of the port rate and the round-trip time (RTT).
[0138] In view of this, this application provides a communication method and apparatus that can achieve the retransmission of control messages while reducing the computational resource consumption of the first device and reducing the first device's need for buffering, thereby improving the training and inference efficiency of large AI models.
[0139] See Figure 3 The figure is a signaling interaction diagram of a communication method provided in an embodiment of this application.
[0140] Figure 3 The first device shown can be an aggregation node, and the second device can be an aggregation node different from the first device, or the second device can be a compute node. The aggregation node can be a root aggregation node or a leaf aggregation node. Of course, in some scenarios, the aggregation node can also be a network interface card (NIC). For example, in... Figure 1e In the scenario shown, a server may include a network interface card (NIC) and multiple compute cards. These compute cards are connected to the TOR via the NIC. In this scenario, the NIC in the server can act as an aggregation node to aggregate data generated by at least one compute card included in the server.
[0141] As a specific example, the first device can be a leaf aggregation node, and correspondingly, the second device can be a root aggregation node or a computing node corresponding to the first device.
[0142] In this application, the computing node corresponding to the first device can be understood as the computing node managed by the first device. The first device can aggregate the data generated by its corresponding computing node. In a specific example, the first device can correspond to multiple computing nodes, and some or all of these computing nodes will participate in the computation of a data aggregation task (such as the first data aggregation task mentioned below). In this scenario, the computing node corresponding to the first device can be some or all of the aforementioned computing nodes participating in the data aggregation task. For example, in Figure 1a In the scenario shown, the first device is leaf aggregation node 1, and the computing nodes corresponding to leaf aggregation node 1 include computing node 1 and computing node 2. For example, in... Figure 1a In the scenario shown, if the first device is leaf aggregation node 2, then the computing nodes corresponding to leaf aggregation node 2 include computing node 3. Similarly, if the first device is the root aggregation node, then the computing nodes corresponding to the first device can be computing nodes connected to the first device that participate in the data aggregation task.
[0143] As another specific example, the first device can be a root aggregation node. Correspondingly, in one example, the second device is a leaf aggregation node, specifically, a leaf aggregation node corresponding to the root aggregation node. Here, a leaf aggregation node corresponding to the root aggregation node can be understood as a leaf aggregation node managed by the root aggregation node, and the root aggregation node can aggregate the data generated by its corresponding leaf aggregation nodes. In a specific example, the root aggregation node can correspond to multiple leaf aggregation nodes, and some or all of these leaf aggregation nodes will participate in the calculation of a data aggregation task (such as the first data aggregation task mentioned below). In this scenario, the leaf aggregation node corresponding to the root aggregation node can be some or all of the aforementioned leaf aggregation nodes participating in the data aggregation task.
[0144] In another example, in a scenario where the root aggregation node directly aggregates the data calculated by the computing node, the second device is the computing node corresponding to the first device.
[0145] Figure 3 The communication method shown includes the following steps S101-S102.
[0146] S101: The first device sends a first control message to the second device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, and the table entry information includes the information required to generate the first control message.
[0147] In this application, the first control message is a retransmission of the second control message sent from the first device to the second device. In this application, the second control message is a control message sent from the first device to the second device. This application does not specifically limit the second control message; in a specific example, the second control message may be a control message related to the first data aggregation task. The first data aggregation task is, for example, a task in the training or inference process of a large AI model.
[0148] As before Figure 2a or Figure 2b As described above, the second control message can be a task request message, a response message to the task request message, a task synchronization result notification message, a response message to the task synchronization result notification message, a data request message, a response message to the aggregation result, a task completion notification message, or a response message to the task completion notification message. Correspondingly, the first control message, as a retransmission message of the second control message, can also be a task request message, a response message to the task request message, a task synchronization result notification message, a response message to the task synchronization result notification message, a data request message, a response message to the aggregation result, a task completion notification message, or a response message to the task completion notification message. For the task request message, the response message to the task request message, the task synchronization result notification message, the response message to the task synchronization result notification message, the data request message, the response message to the aggregation result, the task completion notification message, or the response message to the task completion notification message, please refer to the relevant descriptions above, which will not be repeated here.
[0149] In one example, the first device may send the first control message to the second device after sending the second control message to the second device. As a specific example, the first device may send the first control message to the second device even if the second control message is lost.
[0150] In this application, the first control message is generated by the first device based on table entry information. In one example, the first device may generate the first control message in advance based on the table entry information. In another example, the first device may generate the first control message based on the table entry information after the second control message has been lost. In this scenario, it is not necessary to generate the first control message in advance; the first control message can be generated only after it is determined that the second control message has been lost, thereby avoiding the unnecessary generation of control messages in advance and saving the resource consumption of the first device.
[0151] In one example, the first device can determine that the second control message has been lost before generating the first control message. In other words, the first device generates the first control message based on the aforementioned table entry information after determining that the second control message has been lost. This application does not specifically limit the specific implementation of the first device determining that the second control message has been lost. Several specific implementation methods for the first device to determine that the second control message has been lost will be described below.
[0152] In one example, the first device may be equipped with packet loss detection technology, which can be used to determine that the second control message has been lost.
[0153] In another example, after successfully receiving the second control message, the second device sends a corresponding response message to the first device. The first device can then determine that the second control message has been lost if it does not receive a response message. As a specific example, the first device can determine that the second control message has been lost if it does not receive a response message within a certain period after sending the second control message.
[0154] In another example, considering that if the second control message is lost, the first data aggregation task will stall at a certain stage. During this stage, the first device will experience a data interruption, meaning it will neither receive data (e.g., data to be aggregated sent by the computing node) nor send data (e.g., the final aggregation result or intermediate aggregation result). Therefore, the first device can determine that the second control message has been lost if it experiences a data interruption. The data interruption in the first device could be due to its ingress and egress queues being empty, or the state machine maintained by the first device related to the first data aggregation task experiencing a timeout in a certain state; this embodiment does not impose specific limitations.
[0155] The first device stores the table entry information, which includes information required to generate the first control message. As an example, the first control message may include a header and a payload, and the table entry information may include information required to generate the header of the first control message and / or information required to generate the payload of the first control message.
[0156] In a specific example, the header of the first control message includes address information, such as the address information of the sender (i.e., the first device) and the address information of the receiver (i.e., the second device). In other words, the aforementioned table entry information may include the address information required to generate the header of the first control message. The address information mentioned herein includes, but is not limited to, Internet Protocol (IP) addresses and / or Media Access Control (MAC) addresses.
[0157] In another specific example, the payload of the first control message includes the task information of the first data aggregation task. In other words, the aforementioned table entry information may include the task information of the first data aggregation task.
[0158] This application does not specifically limit the task information of the first data aggregation task. The task information of the first data aggregation task refers to information related to the first data aggregation task.
[0159] In one example, the task information of the first data aggregation task may include the task identifier of the first data aggregation task, which is used to uniquely identify the first data aggregation task.
[0160] In another example, the task information for the first data aggregation task may include the data type of the data to be aggregated. Data types mentioned here include, but are not limited to, integers, floating-point numbers, etc., which will not be listed individually. This data type is used to indicate whether the aggregation node correctly parses the received data to be aggregated during the data aggregation phase.
[0161] In another example, the task information of the first data aggregation task may include the operation type corresponding to the first data aggregation task. The operation type mentioned here includes, but is not limited to, operations such as addition, subtraction, multiplication, or division. This operation type is used to indicate the aggregation operation that the aggregation node needs to perform.
[0162] In another example, the task information for the first data aggregation task may include whether the first device is a root aggregation node. Specifically, it indicates whether the first device is a root aggregation node. If the first device is a root aggregation node, the result obtained by the first device in performing the aggregation calculation is the final aggregation result. After calculating the aggregation result, the first device needs to distribute the aggregation result to leaf aggregation nodes or computation nodes. If the first device is not a root aggregation node, the result obtained by the first device in executing the aggregation node is an intermediate result, and the first device also needs to send this intermediate result to the next higher-level aggregation node (e.g., the root aggregation node).
[0163] In another example, the task information of the first data aggregation task may also include the identifier of the logical tree corresponding to the first data aggregation task, wherein the logical tree may be the logical tree created by the control management unit for the first data aggregation task when the first data aggregation task is initiated.
[0164] In another example, the task information for the first data aggregation task may include the number of computing nodes corresponding to the first device. The first device may, for example, determine the result of task synchronization based on the number of its corresponding computing nodes.
[0165] In another example, the task information for the first data aggregation task may include the total number of computing nodes corresponding to the first data aggregation task. The root aggregation node may, for example, determine the task synchronization result based on this total number.
[0166] In another example, the task information for the first data aggregation task may include information about a first address for storing task completion notifications. Accordingly, during the task completion phase, the root aggregation node can directly write the task completion notification to the first address.
[0167] In another example, the task information corresponding to the first data aggregation task may include authentication information for accessing the first address. For instance, if the root aggregation node uses remote direct memory access (RDMA) technology to access the first address, then the authentication information for accessing the first address refers to authentication information for directly accessing the first address. Accordingly, the root aggregation node can obtain permission to access the first address based on the authentication information for accessing the first address, thereby directly writing the task completion notification to the first address.
[0168] In another example, the task information corresponding to the first data aggregation task may include information about a second address for storing task synchronization result notifications. Accordingly, during the task request phase, the root aggregation node can directly write the task synchronization result to the second address.
[0169] In another example, the task information corresponding to the first data aggregation task may include authentication information for accessing the second address. In a scenario where the root aggregation node uses RDMA technology to access the second address, this authentication information for accessing the second address may be authentication information for direct access to the second address. Accordingly, the root aggregation node can obtain permission to access the second address based on the authentication information for accessing the second address, thereby directly writing the task synchronization results to the second address.
[0170] In another example, the task information corresponding to the first data aggregation task may include information about a third address of the storage space where the data to be aggregated is stored. Accordingly, during the aggregation and distribution phase, the root aggregation node can request to read the data to be aggregated stored in the storage space corresponding to the third address.
[0171] In another example, the task information corresponding to the first data aggregation task may include authentication information for accessing the third address. In a scenario where the root aggregation node uses RDMA technology to access the third address, this authentication information for accessing the third address may be authentication information for directly accessing the third address. Accordingly, the root aggregation node can obtain permission to access the third address based on the authentication information for accessing the third address, thereby reading the data to be aggregated stored in the third address.
[0172] In another example, the task information corresponding to the first data aggregation task may include information about a fourth address of the storage space where the aggregation results are stored. Accordingly, during the aggregation distribution phase, the root aggregation node can directly write the aggregation results into the fourth address.
[0173] In another example, the task information corresponding to the first data aggregation task may include authentication information for accessing the fourth address. In a scenario where the root aggregation node uses RDMA technology to access the fourth address, this authentication information for accessing the fourth address may be authentication information for directly accessing the fourth address. Accordingly, the root aggregation node can obtain permission to access the fourth address based on the authentication information for accessing the fourth address, thereby directly writing the aggregation results into the fourth address.
[0174] In one example, the second control message includes a sequence number. Since the first control message is a retransmission of the second control message, the sequence number of the first control message is the same as that of the second control message. In other words, the first control message carries the sequence number of the second control message. In one example, the sequence number of the second control message can be carried in the header of the first control message. In this scenario, the aforementioned entry information can include a sequence number, which is the sequence number of the last message sent by the first device to the second device. The first device can locally maintain a state machine related to message transmission. Based on this state machine, the first device can determine the number of messages it has sent to the second device after sending the second control message. Accordingly, the first device can determine the sequence number of the second control message based on the number of messages and the sequence number in the entry information. For example, subtracting the number of messages from the sequence number in the entry information yields the sequence number of the second control message.
[0175] In one example, the first device may store a first entry, which includes the aforementioned entry information.
[0176] In another example, the first device may also include multiple entries, through which the aforementioned entry information is carried. For example, the first device may include a second entry and a third entry, wherein the second entry includes the aforementioned sequence number and the address information required to generate the header of the first control message; and the third entry includes the aforementioned task information.
[0177] In one example, the table entry information may be configured on the first device before the first data aggregation task is initiated.
[0178] In another example, the table entry information may also be generated by the first device. As an example, the first device may receive a third control message, which includes task information for a first data aggregation task. Accordingly, after receiving the third control message, the first device may extract the task information from the third control message and further generate the aforementioned table entry information based on that task information. As another example, the first device may generate the table entry information based on the configuration information of the first data aggregation task, wherein the configuration information includes the table entry information. In one example, the configuration information may be sent to the first device by the control management unit. As yet another example, the first device may generate the table entry information based on the task information in the third control message and the configuration information, for example, by extracting partial information from both the third control message and the configuration information to generate the table entry information. In some scenarios, the control management unit mentioned here may also be referred to as an in-network-collective manager (INC manager).
[0179] This application embodiment does not specifically limit the third control message. The third control message can be any control message received by the first device that includes task information of the first data aggregation task, as mentioned above. Figure 2a and Figure 2b As described above, in a specific example, the third control message can be a task request message. For details on task request messages, please refer to the preceding description; they will not be repeated here.
[0180] This application does not specifically limit the message format of the first control message. The format of the first control message is related to the communication protocol between the first device and the second device. The interaction protocol between the first device and the second device includes, but is not limited to, the Ultra Ethernet Consortium (UEC) protocol or the Remote Direct Memory Access over Converged Ethernet version 2 (RoCEv2) protocol. In one example, when the protocol used for interaction between the first device and the second device is RoCEv2, the format of the first control message may be, for example, a send-only message format, a write-only message format, or an ack message format.
[0181] Next, taking the first control message as a task request message, with a send-only message format, as an example, we will introduce the specific generation method of the first control message. (See also...) Figure 4 , Figure 4 This is a schematic diagram of a task request message provided in an embodiment of this application. Figure 4 As shown:
[0182] The aforementioned information is carried through the second and third entries. The second entry includes: task identifier, peer IP, local IP, peer MAC, local MAC, source queue pair (Src QP), destination queue pair (Dest QP), and packet sequence number (PSN). The third entry includes task information; for details on task information, please refer to the relevant descriptions above.
[0183] The task request message includes: a MAC header ( Figure 4 In short, it is MAC address and IP header ( Figure 4 In short, it is the IP header and the User Datagram Protocol (UDP) header. Figure 4 In short, it consists of UDP, a base transport header (BTH), data, and an invariant cyclic redundancy check (ICRC). Among these:
[0184] The MAC header includes the MAC address of the first device (i.e., local MAC) and the MAC address of the second device (i.e., peerMAC).
[0185] The IP header includes the local IP address of the first device (i.e., local IP) and the IP address of the second device (i.e., peer IP).
[0186] The BTH includes the Dest QP and the sequence number of the second control message obtained based on the PSN in the second entry information.
[0187] The data portion of the task request message, which is also the payload of the task request message, includes the task information in the third entry.
[0188] In one example, the first device may include a control plane processing unit and a data plane processing unit. The control plane processing unit may be, for example, a central processing unit (CPU), a field-programmable gate array (FPGA), a network processor (NP), or an artificial intelligence chip. The data plane processing unit may be a forwarding chip, which may be, for example, an NP-architecture chip or a pipelined architecture chip. In some scenarios, the data plane processing unit may also be referred to as a forwarding plane processing unit.
[0189] In this application, the aforementioned operation of determining that the second control message has been lost can be performed by the data plane processing unit. The operation of generating the first control message can be performed by either the control plane processing unit or the data plane processing unit, offering flexibility in implementation.
[0190] In a specific example, after the data plane processing unit determines that the second control message has been lost, it further generates the first control message based on the aforementioned table entry information and sends the first control message to the second device.
[0191] In another specific example, after the data plane processing unit determines that the second control message has been lost, it can send an interrupt message to the control plane processing unit. This interrupt message indicates that the second control message has been lost. Accordingly, after receiving the interrupt message, the control plane processing unit can generate the first control message based on the aforementioned table entry information and send the first control message to the data plane processing unit, which then sends the first control message to the second device. (See reference...) Figure 5 To understand, Figure 5 The following explanation uses the first device as a leaf aggregation node and the second device as a root aggregation node as an example. Figure 5 This is a schematic diagram illustrating a control message retransmission provided in an embodiment of this application. Figure 5 As shown, if the original control message (i.e., the second control message) sent by the leaf aggregator to the root aggregator is lost, the data plane processing unit of the leaf aggregator detects the loss of the original control message and sends an interruption message to its control plane processing unit. After receiving the interruption message, the control plane processing unit generates a retransmission control message (i.e., the first control message) and passes the retransmission control message to the data plane processing unit. The data plane processing unit performs forwarding processing on the retransmission control message to send the retransmission to the root aggregator.
[0192] S102: The second device receives the first control message sent by the first device.
[0193] The first device sends a first control message to the second device, and the second device can receive the first control message sent by the first device. After receiving the first control message, the second device can continue to execute subsequent steps that can only be executed after successfully receiving the second control message, thereby preventing the first data aggregation task from stalling at a certain stage and improving the efficiency of the first data aggregation task. Consequently, this improves the training or inference efficiency of the large AI model.
[0194] As described above, using the solution of this application embodiment, the first device can generate a first control message based on table entry information, thereby enabling the sending of a retransmission message to the second device. The first device does not need to maintain a complex state machine corresponding to message retransmission; nor does it need to use additional cache to cache the information required to generate the first control message, i.e., the first device does not need to reserve a cache for message retransmission. Using this solution, the sending of retransmission messages to the second device can be achieved while reducing the computational resource consumption of the first device and reducing the first device's cache requirements, thereby improving the efficiency of the first data aggregation task and, correspondingly, improving the training or inference efficiency of the large AI model.
[0195] Based on the methods provided in the above embodiments, this application also provides a corresponding device, which will be described below with reference to the accompanying drawings.
[0196] See Figure 6 The figure is a schematic diagram of the structure of a communication device provided in an embodiment of this application. Figure 6 The communication device 600 shown can be applied to the first device to execute the method steps provided above, which are performed by the first device. For example... Figure 6 As shown: The device 600 includes a transmitting unit 601. Wherein:
[0197] The sending unit 601 is used to send a first control message to the second device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, and the table entry information includes the information required to generate the first control message.
[0198] In one possible implementation, the first control message is a retransmission of the second control message, and the first control message is generated by the first device based on the table entry information after the second control message is lost.
[0199] In one possible implementation, the device further includes a processing unit 602, configured to:
[0200] If no response message is received for the second control message, it is determined that the second control message has been lost; or,
[0201] If the first device experiences a flow interruption, it is determined that the second control message has been lost.
[0202] In one possible implementation, the entry information includes: address information required to generate the header of the first control message, and / or, task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
[0203] In one possible implementation, the task information of the first data aggregation task includes at least one of the following: the task identifier of the first data aggregation task, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information on the first address for storing task completion notifications, authentication information for accessing the first address, information on the second address for storing task synchronization result notifications, authentication information for accessing the second address, information on the third address for storing the storage space for the data to be aggregated, authentication information for accessing the third address, information on the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
[0204] In one possible implementation, the first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information, and the first control message is a retransmission of the second control message.
[0205] In one possible implementation, the table entry information is generated based on the task information and / or configuration information of the first data aggregation task in the third control message received by the first device.
[0206] In one possible implementation, the third control message includes a task request message, which is used to notify the task information of the first data aggregation task.
[0207] In one possible implementation, the first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
[0208] In one possible implementation, the first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
[0209] In one possible implementation, the first control message includes: a task request message, used to notify the task information of the first data aggregation task; or, a response message to the task request message; a task synchronization result notification message, used to notify the result of task synchronization; or, a response message to the task synchronization result notification message; or, a data request message, used to request data to be aggregated, the data to be aggregated including: data generated by computing nodes, or, intermediate results obtained by leaf aggregation nodes; or, a response message to the aggregation result; or, a task completion notification message, used to notify the completion of the first data aggregation task; or, a response message to the task completion notification message.
[0210] In one possible implementation, the first device includes a control plane processing unit and a data plane processing unit, wherein the data plane processing unit is used to determine that the second control message has been lost, and the control plane processing unit is used to generate the first control message based on the table entry information.
[0211] In one possible implementation, the first device includes a data plane processing unit, which is used to determine that the second control message has been lost and to generate the first control message based on the table entry information.
[0212] See Figure 7 The figure is a schematic diagram of the structure of a communication device provided in an embodiment of this application. Figure 7 The communication device 700 shown can be applied to the second device to execute the method steps provided above, which are performed by the second device. For example... Figure 7 As shown: The device 700 includes a receiving unit 701. Wherein:
[0213] The receiving unit 701 is used to receive a first control message sent by the first device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, and the table entry information includes information required to generate the first control message.
[0214] In one possible implementation, the device 700 further includes a processing unit 702 for parsing the first control message.
[0215] In one possible implementation, the first control message is a retransmission of the second control message, and the first control message is generated by the first device based on the table entry information after the second control message is lost.
[0216] In one possible implementation, the entry information includes: address information required to generate the header of the first control message, and / or, task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
[0217] In one possible implementation, the task information of the first data aggregation task includes at least one of the following: the task identifier of the first data aggregation task, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information on the first address for storing task completion notifications, authentication information for accessing the first address, information on the second address for storing task synchronization result notifications, authentication information for accessing the second address, information on the third address for storing the storage space for the data to be aggregated, authentication information for accessing the third address, information on the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
[0218] In one possible implementation, the first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information, and the first control message is a retransmission of the second control message.
[0219] In one possible implementation, the table entry information is generated based on the task information and / or configuration information of the first data aggregation task in the third control message received by the first device.
[0220] In one possible implementation, the third control message includes a task request message, which is used to notify the task information of the first data aggregation task.
[0221] In one possible implementation, the first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
[0222] In one possible implementation, the first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
[0223] In one possible implementation, the first control message includes: a task request message, used to notify the task information of the first data aggregation task; or, a response message to the task request message; a task synchronization result notification message, used to notify the result of task synchronization; or, a response message to the task synchronization result notification message; or, a data request message, used to request data to be aggregated, the data to be aggregated including: data generated by computing nodes, or, intermediate results obtained by leaf aggregation nodes; or, a response message to the aggregation result; or, a task completion notification message, used to notify the completion of the first data aggregation task; or, a response message to the task completion notification message.
[0224] In one possible implementation, the first device includes a control plane processing unit and a data plane processing unit, wherein the data plane processing unit is used to determine that the second control message has been lost, and the control plane processing unit is used to generate the first control message based on the table entry information.
[0225] In one possible implementation, the first device includes a data plane processing unit, which is used to determine that the second control message has been lost and to generate the first control message based on the table entry information.
[0226] For details on the specific implementation of the devices 600 and 700, please refer to the description of the communication method provided in the embodiments of this application above, which will not be repeated here.
[0227] For details on the specific implementation of each unit of the devices 600 and 700, please refer to the relevant descriptions in the above method embodiments; they will not be repeated here.
[0228] Please see Figure 8 As shown, Figure 8 This is a schematic diagram of the structure of a device provided in an embodiment of this application. The structures of both the first device and the target device can be as follows... Figure 8 As shown. Figure 8 The device 800 shown includes a processor 810, a communication interface 820, and a memory 830. The number of processors 810 in the device 800 can be one or more. Figure 8 Taking a processor as an example. In this embodiment, the processor 810, communication interface 820, and memory 830 can be connected via a bus system or other means, wherein, Figure 8 Taking the connection between China and Israel via the 840 bus system as an example.
[0229] Processor 810 may be a CPU, NP, or a combination of CPU and NP. Processor 810 may further include hardware chips. The aforementioned hardware chips may be ASICs, programmable logic devices (PLDs), or combinations thereof. The aforementioned PLDs may be complex programmable logic devices (CPLDs), FPGAs, generic array logic (GALs), or any combination thereof.
[0230] The memory 830 may include volatile memory, such as random-access memory (RAM); the memory 830 may also include non-volatile memory, such as flash memory, hard disk drive (HDD) or solid-state drive (SSD); the memory 830 may also include a combination of the above types of memory.
[0231] Optionally, the memory 830 stores an operating system and programs, executable modules, or data structures, or subsets thereof, or extended sets thereof. The programs may include various operation instructions for implementing various operations. The operating system may include various system programs for implementing various basic services and processing hardware-based tasks. The processor 810 can read the programs from the memory 830 to implement the methods provided in the embodiments of this application (e.g., those described above). Figure 3 (The method shown).
[0232] The bus system 840 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus system 840 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 8 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0233] This application also provides a chip, which can be referred to in the embodiments. Figure 9 As shown, Figure 9 This is a schematic diagram of the structure of a chip provided in an embodiment of this application, such as... Figure 9 As shown, the chip 900 includes an interface circuit 901.
[0234] In one example, the chip 900 can be applied to a first device to perform the steps provided in the above method embodiments, which are executed by the first device. In this case:
[0235] The chip 900 further includes a processing circuit 902, and the interface circuit 901 is used to send a first control message to the second device. The first control message is a retransmission message. The first control message is generated by the processing circuit 902 based on table entry information, and the table entry information includes the information required to generate the first control message.
[0236] Optionally, the processing circuit 902 is further configured to determine that the second control message has been lost if no response message to the second control message is received; or, if the first device experiences a flow interruption, determine that the second control message has been lost.
[0237] In yet another example, the chip 900 can be applied to a second device to perform the steps provided in the above method embodiments, which are executed by the second device. In this case:
[0238] The interface circuit 901 is used to receive a first control message sent by the first device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, and the table entry information includes the information required to generate the first control message.
[0239] Optionally, the processing circuit 902 is used to parse the first control message. This application embodiment provides a computer-readable storage medium, including instructions or a computer program, which, when run on a computer, causes the computer to perform the methods described in the above method embodiments. For example, causing the computer to execute... Figure 3 The method shown.
[0240] This application provides a computer program product containing instructions or a computer program, which, when run on a computer, causes the computer to perform the methods described in the above-described method embodiments. For example, it causes the computer to execute... Figure 3 The method shown.
[0241] This application also provides a communication system, which may include the first device and the second device mentioned in the above embodiments, for executing the method provided in the above embodiments (e.g., the method executed by the first device and the second device). Figure 3 (The method shown).
[0242] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a particular order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0243] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0244] In the embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical business division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.
[0245] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0246] Furthermore, the various business units in the embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software business unit.
[0247] If the integrated unit is implemented as a software business unit and sold or used as a separate product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0248] Those skilled in the art will recognize that, in one or more of the examples above, the services described in this invention can be implemented using hardware, software, firmware, or any combination thereof. When implemented in software, these services can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium. Computer-readable media include computer storage media and communication media, wherein communication media include any medium that facilitates the transmission of computer programs from one place to another. Storage media can be any available medium accessible to general-purpose or special-purpose computers.
[0249] The above specific embodiments further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above are merely specific embodiments of the present invention.
[0250] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A communication method, characterized in that, Applied to a first device, the method includes: A first control message is sent to the second device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, which includes the information required to generate the first control message.
2. The method according to claim 1, characterized in that, The first control message is a retransmission of the second control message. The first control message is generated by the first device based on the table entry information after the second control message is lost.
3. The method according to claim 1 or 2, characterized in that, The method further includes: If no response message is received for the second control message, it is determined that the second control message has been lost; or, If the first device experiences a flow interruption, it is determined that the second control message has been lost.
4. The method according to any one of claims 1-3, characterized in that, The table entry information includes: The address information required to generate the header of the first control message, and / or the task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
5. The method according to claim 4, characterized in that, The task information for the first data aggregation task includes at least one of the following: The first data aggregation task's task identifier, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information about the first address for storing task completion notifications, authentication information for accessing the first address, information about the second address for storing task synchronization result notifications, authentication information for accessing the second address, information about the third address for storing the data to be aggregated, authentication information for accessing the third address, information about the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
6. The method according to any one of claims 1-5, characterized in that, The first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information. The first control message is a retransmission of the second control message.
7. The method according to any one of claims 1-6, characterized in that, The table entry information is generated based on the task information and / or configuration information of the first data aggregation task in the third control message received by the first device.
8. The method according to claim 7, characterized in that, The third control message includes: A task request message, which is used to announce the task information of the first data aggregation task.
9. The method according to any one of claims 1-8, characterized in that, The first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
10. The method according to any one of claims 1-8, characterized in that, The first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
11. The method according to any one of claims 1-10, characterized in that, The first control message includes: A task request message, used to announce task information for the first data aggregation task; or... The response message to the task request message; A task synchronization result notification message, used to notify the result of task synchronization; or... A response message to the task synchronization result notification message; or, A data request message, used to request data to be aggregated, including: data generated by compute nodes, or intermediate results obtained from aggregation by leaf aggregation nodes; or... A response message for the aggregation result; or, A task completion notification message is sent to announce the completion of the first data aggregation task; or... A response message to the task completion notification message.
12. The method according to any one of claims 1-11, characterized in that, The first device includes a control plane processing unit and a data plane processing unit. The data plane processing unit is used to determine that the second control message has been lost, and the control plane processing unit is used to generate the first control message based on the table entry information.
13. The method according to any one of claims 1-11, characterized in that, The first device includes a data plane processing unit, which is used to determine that the second control message has been lost and to generate the first control message based on the table entry information.
14. A communication method, characterized in that, Applied to a second device, the method includes: The device receives a first control message sent by a first device. The first control message is a retransmission message. The first control message is generated by the first device based on table entry information, which includes the information required to generate the first control message.
15. The method according to claim 14, characterized in that, The table entry information includes: The address information required to generate the header of the first control message, and / or the task information of the first data aggregation task, wherein the first control message is a control message related to the first data aggregation task.
16. The method according to claim 15, characterized in that, The task information for the first data aggregation task includes at least one of the following: The first data aggregation task's task identifier, the data type of the data to be aggregated, the task type of the first data aggregation task, the operation type corresponding to the first data aggregation task, whether the first device is the root aggregation node, the number of computing nodes corresponding to the first device, the total number of computing nodes corresponding to the first data aggregation task, information about the first address for storing task completion notifications, authentication information for accessing the first address, information about the second address for storing task synchronization result notifications, authentication information for accessing the second address, information about the third address for storing the data to be aggregated, authentication information for accessing the third address, information about the fourth address for storing the aggregation result, and authentication information for accessing the fourth address.
17. The method according to any one of claims 14-16, characterized in that, The first control message includes the sequence number of the second control message, which is obtained based on the sequence number in the table entry information. The first control message is a retransmission of the second control message.
18. The method according to any one of claims 14-17, characterized in that, The first device is a leaf aggregation node, and the second device is a root aggregation node or a computing node corresponding to the first device.
19. The method according to any one of claims 14-17, characterized in that, The first device is a root aggregation node, and the second device is a leaf aggregation node or a computing node corresponding to the root aggregation node.
20. The method according to any one of claims 14-19, characterized in that, The first control message includes: A task request message, used to announce task information for the first data aggregation task; or... The response message to the task request message; A task synchronization result notification message, used to notify the result of task synchronization; or... A response message to the task synchronization result notification message; or, A data request message, used to request data to be aggregated, including: data generated by compute nodes, or intermediate results obtained from aggregation by leaf aggregation nodes; or... A response message for the aggregation result; or, A task completion notification message is sent to announce the completion of the first data aggregation task; or... A response message to the task completion notification message.
21. A communication device, characterized in that, The device includes at least one functional module that interacts with each other to implement the method as described in any one of claims 1-20.
22. A communication system, characterized in that, The communication system includes: A first apparatus for performing the method according to any one of claims 1-13, and a second apparatus for performing the method according to any one of claims 14-20.
23. A communication device comprising a processor and a memory, the memory for storing program code, the processor for calling the program code in the memory to cause the communication device to perform the method as claimed in any one of claims 1-20.
24. A computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1-20.
25. A chip, characterized in that, The chip includes an interface circuit and a processing circuit. The interface circuit is used to send a first control message to the second device. The first control message is a retransmission message. The first control message is generated by the processing circuit based on table entry information, which includes the information required to generate the first control message.
26. The chip according to claim 25, characterized in that, The processing circuit is also used for: If no response message is received for the second control message, it is determined that the second control message has been lost. or, If the first device experiences a flow interruption, it is determined that the second control message has been lost.
27. A chip, characterized in that, The chip includes an interface circuit for receiving a first control message sent by a first device. The first control message is a retransmission message and is generated by the first device based on table entry information, which includes information required to generate the first control message.