Computing cluster, data transmission method and computing module

By establishing redundant transmission links between computing modules and reducing bus overhead using the management module, the data transmission problem caused by transmission link failures in the computing cluster was solved, and efficient execution of computing tasks was achieved.

CN121864567APending Publication Date: 2026-04-14HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2024-10-12
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

A failure in the transmission link between the computing module and the transmission module in the computing cluster prevents data from being transmitted normally, affecting the efficiency of the computing cluster in executing computing tasks.

Method used

By establishing redundant transmission links between computing modules, data can be transmitted through other links in the event of a transmission link failure. The management module reduces bus overhead, and the CDR module enhances data signal quality.

Benefits of technology

This ensures normal data transmission in the event of transmission link failure in the computing cluster, improving the execution efficiency and stability of computing tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121864567A_ABST
    Figure CN121864567A_ABST
Patent Text Reader

Abstract

The embodiment of the invention belongs to the technical field of computers, and particularly relates to a computing cluster, a data transmission method and a computing module. Wherein the computing cluster comprises a plurality of computing module groups and a plurality of transmission modules, the plurality of computing module groups comprise a first computing module group, and the first computing module group at least comprises a first computing module and a second computing module which are connected with each other. And in the process of sending the first data to the first transmission module through the first transmission link, the first calculation module sends the first data to the second calculation module in response to the failure of the first transmission link. And the second calculation module sends the first data to the second transmission module through the second transmission link, so that the second transmission module executes outgoing processing on the first data. By adopting the data transmission method and device, the calculation module can use the transmission link to transmit the data through other calculation modules when the transmission link fails, and normal transmission of the data in the calculation cluster can be ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a computing cluster, a data transmission method, and a computing module. Background Technology

[0002] With the development of computing technology, the number of computing modules and transmission modules included in computing clusters has increased significantly. Computing modules are used to execute computing tasks, such as artificial intelligence (AI) computing tasks and high-performance computing (HPC) tasks. Transmission modules connect to computing modules and are used to send data obtained from computing tasks to other computing modules, allowing them to continue executing their tasks. Computing modules can be various computing devices or processors, such as central processing units (CPUs) and graphics processing units (GPUs), while transmission modules can be optical modules, electrical interface modules, etc.

[0003] As the number of computing and transmission modules in a computing cluster increases, so does the number of transmission links between them. Consequently, the probability of transmission link failures in a computing cluster also increases. Currently, when a transmission link between a computing module and a transmission module fails, data cannot be transmitted normally within the computing cluster, which severely impacts the efficiency of the computing cluster in executing computing tasks. Summary of the Invention

[0004] This application provides a computing cluster, a data transmission method, and a computing module. In the event of a failure in a computing node or optical module, data transmission between the computing node and the optical module can be guaranteed, thereby improving the efficiency of the computing cluster in performing computing tasks. The corresponding technical solution includes:

[0005] In a first aspect, a computing cluster is provided, which includes multiple computing module groups and multiple transmission modules. The multiple computing module groups include a first computing module group, and the first computing module group includes at least a first computing module and a second computing module that are connected to each other.

[0006] A first computing module is configured to send first data to a first transmission module among a plurality of transmission modules via a first transmission link, so that the first transmission module performs outgoing processing on the first data. A second computing module is configured to send second data to a second transmission module among a plurality of transmission modules via a second transmission link, so that the second transmission module performs outgoing processing on the second data. The first computing module is also configured to send the first data to the second computing module in response to a failure of the first transmission link. The second computing module is also configured to send the first data to the second transmission module via the second transmission link, so that the second transmission module performs outgoing processing on the first data.

[0007] In the computing cluster shown in this application, computing modules within the same group can be interconnected. Thus, if the first transmission link fails during data transmission from the first computing module to the first transmission module, the first computing module can send the data to the second computing module in the same group, which then transmits the data to the second transmission module via the second transmission link. Similarly, if the second transmission link fails, the second computing module can send the data to the first computing module in the same group, which then transmits the data to the first transmission module via the first transmission link. Therefore, in the computing cluster shown in this application, even if the transmission link between the computing module and the transmission module fails, the transmission module can still transmit data using other transmission links, thus ensuring normal data transmission within the computing cluster and improving the efficiency of the computing cluster in executing computing tasks.

[0008] In one possible implementation, the first calculation module is used to determine that the first transmission link has failed after detecting a disconnection of the first transmission link or an abnormality in the data transmission parameters corresponding to the first transmission link, wherein the data transmission parameters include at least one of data transmission delay, packet loss rate and packet error rate.

[0009] In one possible implementation, the first computing module determines that the first transmission link has failed after receiving a fault notification from the first transmission module. This addition of the first transmission module to detect transmission link faults improves the accuracy of fault detection, thereby enhancing the stability of data transmission within the computing cluster.

[0010] In one possible implementation, the plurality of computing module groups includes a second computing module group, which in turn includes at least a third computing module and a fourth computing module connected to each other. The third computing module is used to send third data to a first transmission module via a third transmission link, so that the first transmission module performs outgoing processing on the third data. The fourth computing module is used to send fourth data to the second transmission module via a fourth transmission link, so that the second transmission module performs outgoing processing on the fourth data.

[0011] In the computing cluster shown in this application, multiple computing module groups can share a set of transmission modules. In this way, multiple computing module groups and their corresponding set of transmission modules can form a local whole in the computing cluster, which facilitates the management of the computing cluster.

[0012] In one possible implementation, the computing cluster further includes a management module connected to both the first computing module and the third computing module. The first computing module, upon receiving a fault notification from the first transmission module, forwards the fault notification to the third computing module via the management module. Thus, by sending the corresponding fault notification from the first transmission module to the third computing module through the management module, the bus overhead between the third computing module and the first transmission module can be reduced.

[0013] In one possible implementation, the computing cluster further includes a CDR module, which comprises a first connection terminal, a second connection terminal, a third connection terminal, and a fourth connection terminal. A first computing module connects to a first transmission module via the first connection terminal to establish a first transmission link with the first transmission module. A second computing module connects to the second transmission module via the second connection terminal to establish a second transmission link with the second transmission module. A third computing module connects to the first transmission module via the third connection terminal to establish a third transmission link with the first transmission module. A fourth computing module connects to the second transmission module via the fourth connection terminal to establish a fourth transmission link with the second transmission module. Thus, the CDR module can connect computing modules from different computing module groups to different transmission modules, and can improve the quality of data signals transmitted between the computing modules and the transmission modules.

[0014] In one possible implementation, the computing module is a die of the processor, and a group of computing modules includes computing modules that belong to the same processor.

[0015] In one feasible approach, the transmission module is either an optical module or an electrical port module.

[0016] Secondly, a data transmission method is provided, applied to a first computing module in a computing cluster. The method includes: the first computing module sending first data to a first transmission module within the computing cluster via a first transmission link, causing the first transmission module to perform outgoing processing on the first data; and in response to a failure of the first transmission link, sending the first data to a second computing module within the computing cluster, causing the second computing module to send the first data to a second transmission module within the computing cluster via a second transmission link, and performing outgoing processing on the first data through the second transmission module.

[0017] In one possible implementation, a failure of the first transmission link includes: detecting a disconnection of the first transmission link, or an abnormality in the data transmission parameters corresponding to the first transmission link, wherein the data transmission parameters include at least one of data transmission delay, packet loss rate, and packet error rate.

[0018] In one feasible approach, before sending the first data to the second computing module included in the computing cluster, the method further includes:

[0019] Set the source address included in the first data to the first IP address, and set the source port number included in the first data to the first port number, wherein the first IP address is the IP address used by the second computing module, and the first port number is the port number used by the first computing module to connect to the second computing module.

[0020] In one possible implementation, the method further includes: a first computing module receiving second data sent by a second transmission link, the second data being second data sent by the second computing module to the first transmission module via the first transmission link in response to a failure of the second transmission link, so that the first transmission module performs outgoing processing on the second data.

[0021] In one possible implementation, the method further includes: receiving third data sent by the first transmission module through the first transmission link. If it is determined that the destination port number included in the third data is a second port number, the third data is forwarded to the second computing module, wherein the second port number is the port number used by the second computing module to connect to the first computing module.

[0022] Thirdly, a computing module is provided, comprising a processor and a memory. The processor executes instructions stored in the memory to cause the processor to perform the method described in the second aspect above.

[0023] Fourthly, a computer program product containing instructions is provided, which, when executed by computing modules included in a computing cluster, cause the computing modules included in the computing cluster to perform the method described in the second aspect above.

[0024] Fifthly, a computer-readable storage medium is provided, including computer program instructions that, when executed by a computing module included in a computing cluster, perform the method described in the second aspect above. Attached Figure Description

[0025] Figure 1 This is a schematic diagram of an exemplary computing cluster provided in an embodiment of this application;

[0026] Figure 2This is a schematic diagram illustrating the connection between a computing module and a transmission module provided in an embodiment of this application;

[0027] Figure 3 This is a schematic diagram illustrating the connection between a computing module and a transmission module provided in an embodiment of this application;

[0028] Figure 4 This is a fault diagram of a transmission module provided in an embodiment of this application;

[0029] Figure 5 This is a flowchart of a data transmission method provided in an embodiment of this application;

[0030] Figure 6 This is a schematic diagram of the structure of a computing cluster provided in an embodiment of this application;

[0031] Figure 7 This is a schematic diagram of the structure of a computing cluster provided in an embodiment of this application;

[0032] Figure 8 This is a schematic diagram of a link interleaving provided in an embodiment of this application;

[0033] Figure 9 This is a schematic diagram of a link interleaving provided in an embodiment of this application;

[0034] Figure 10 This is a schematic diagram of a link interleaving provided in an embodiment of this application;

[0035] Figure 11 This is a schematic diagram of a link interleaving provided in an embodiment of this application;

[0036] Figure 12 This is a schematic diagram of the structure of a computing cluster provided in an embodiment of this application;

[0037] Figure 13 This is a schematic diagram of the structure of a computing cluster provided in an embodiment of this application;

[0038] Figure 14 This is a schematic diagram of the structure of a computing module provided in an embodiment of this application. Detailed Implementation

[0039] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.

[0040] Figure 1 This is an exemplary computing cluster diagram provided in an embodiment of this application, such as... Figure 1 As shown, the computing cluster includes a computing module, a transmission module, a Leaf module, and a Spine module.

[0041] A computing cluster includes multiple computing modules that can perform computational tasks, such as Artificial Intelligence (AI) computing tasks and High Performance Computing (HPC) tasks. Computing modules can connect to transmission modules, allowing them to send data obtained from computational tasks. These computing modules can be various processors or processing chips (e.g., wafer dies) included within processors. For example, if a computing module is a processor, it can be a central processing unit (CPU), graphics processing unit (GPU), neural network processing unit (NPU), etc. Similarly, if a computing module is a die included within a processor, it can be a die comprising a CPU, GPU, NPU, etc.

[0042] After receiving data from the connected computing module, the transmission module can send the data to the connected Leaf module. The transmission module can be an optical module or an electrical module, etc. If the transmission module is an optical module, it can be a Quad Small Form Factor Pluggable-Double Density (QDD) high-speed module. The QDD can receive data sent by the computing module via electrical signals, then convert the received electrical signals into optical signals and send them to the Leaf module.

[0043] After receiving data, the Leaf module can either send the data to the internet outside the computing cluster or to the Spine module. The Leaf module can be a switch.

[0044] After receiving data, the Spine module can send the data to other Leaf modules. These Leaf modules then forward the data to other computing modules via connected transmission modules, allowing them to perform computational tasks based on the received data. The Spine module can be a switch.

[0045] Figure 2 This is a schematic diagram illustrating the connection between a computing module and a transmission module in a computing cluster, as provided in an embodiment of this application. Figure 2 In this example, taking the computing module as a die included in the NPU and the transmission module as an optical module, the connection method between the computing module and the transmission module is explained. Figure 2As shown, multiple NPUs can be inserted into the front panel of a cabinet (frame). Each die in the NPU can connect to a connector on the back panel of the cabinet (frame). Each connector can connect to an optical module in the switching board of the cabinet (frame), thus enabling each die in the NPU to connect to an optical module. The back panel and front panel can be located in the same cabinet (frame), while the switching board can be located in a different cabinet (frame). When the distance between the switching board and the front panel is long, the dies in the NPU can also connect to the optical module via a Clock and Data Recovery (CDR) chip to ensure the accuracy of data signal transmission. Figure 2 As shown, the connector can be connected to the optical module via the CDR in the interface board of the cabinet (frame).

[0046] In the aforementioned computing cluster, data generated by the computing modules can be called a "source." The path through which data is transmitted between the computing modules and the transmission modules can be called a "path," and the transmission module responsible for sending data to other modules can be called a "carrier." With the development of computing and internet technologies, the number of "sources," "paths," and "carriers" in a computing cluster has increased dramatically. For example, a single rack (frame) may contain hundreds of "sources" or "carriers," and the total number of "sources" or "carriers" in a computing cluster may reach hundreds of thousands. This significantly increases the probability of failure in any of the "sources," "paths," or "carriers" within the computing cluster. A failure in any of these components will affect data transmission within the computing cluster, reducing its efficiency in executing computing tasks. In severe cases, it may even lead to the interruption of computing tasks.

[0047] For potential faults in the "source" and "load":

[0048] Figure 3 This is a schematic diagram illustrating the connection between a computing module and a transmission module provided in an embodiment of this application. Figure 3 As shown, both the computing module's port (hereinafter referred to as the first port) and the transmission module's port (hereinafter referred to as the second port) can each include four lanes. The four interfaces (L0 to L3) of the first port of the computing module and the second port of the transmission module are connected one-to-one through multiple lanes. The computing module can send the data to be sent in parallel through the four interfaces of the first port to the four interfaces of the second port of the transmission module. Both the computing module and the transmission module may experience failures during data transmission. Figure 4 This is a fault diagram of a transmission module provided in an embodiment of this application. Taking a transmission module with two ports as an example, as follows... Figure 4 As shown, the faults that occurred in the transmission module include:

[0049] Scenario 1: The entire transmission module fails, meaning that none of the ports on the transmission module can transmit data normally. For example... Figure 4 Ports 1 and 2 in the system are unable to transmit data normally.

[0050] Scenario 2: Single-port failure of the transmission module, meaning that one port in the transmission module is unable to transmit data normally. For example... Figure 4 Port 1 in the system is unable to transmit data normally.

[0051] Scenario 3: Partial interface failure of the transmission module, meaning that some interfaces on one port of the transmission module cannot transmit data normally. For example... Figure 4 The L1 lane in port 1 of the transmission module is unable to transmit data normally. In the event of a partial interface failure in the transmission module, although there are still unaffected interfaces within the port, these unaffected interfaces cannot currently transmit data independently of the faulty interface. Therefore, currently, as long as there is a faulty lane in the port, the port cannot transmit data normally.

[0052] Failures in the computing module are similar to those in the transmission module, and will not be described in detail in this application's embodiments. Furthermore, a CDR module may be connected between the computing module and the transmission module. The ports in the CDR module that connect to both the computing module and the transmission module may also experience similar failures, all of which can lead to transmission link failures and consequently affect data transmission within the computing cluster.

[0053] Regarding potential road malfunctions:

[0054] During the data transmission process from the computing module to the transmission module, the data transmission status of the transmission link consisting of multiple lanes between the computing module and the transmission module can be monitored. If an anomaly is detected in the data transmission status, a fault in the transmission link between the computing module and the transmission module can be determined. Anomalies in the data transmission status can include link breaks or abnormal data transmission parameters, such as data transmission latency, packet loss rate, and packet error rate. The transmission link between the computing module and the transmission module consists of multiple lanes between multiple interfaces between the first port of the computing module and the second port of the transmission module.

[0055] Among them, the faults that occur in the "source", "path", and "load" may overlap. For example, after the "source" or "load" fails, the computing module may also detect that the corresponding "path" has failed, such as detecting a broken link.

[0056] The data transmission method provided in this application can be applied to computing clusters, and can cope with possible failures in the "source," "path," and "load" of the computing cluster, ensuring the normal transmission of data in the computing cluster, thereby ensuring the efficiency of the computing cluster in executing computing tasks. Furthermore, the computing cluster to which the data transmission method provided in this application is applied is not limited to... Figure 1 The computing cluster shown can also be other computing clusters with a "source," "path," and "carrier" structure. That is, when the computing cluster includes interconnected computing modules and transmission modules, the data transmission method provided in this application can be applied to ensure the efficiency of the computing cluster in performing computing tasks.

[0057] Figure 5 This is a flowchart illustrating a data transmission method provided in an embodiment of this application. This transmission method is applied to, for example... Figure 6 In the computing cluster shown, such as Figure 6 As shown, the computing cluster includes multiple computing module groups and multiple transmission modules. Among the multiple computing module groups is a first computing module group, which includes at least two interconnected first and second computing modules. The first computing module can be connected to the first transmission module in the multiple transmission modules via a first transmission link, and the second computing module can be connected to the second transmission module in the multiple transmission modules via a second transmission link. (Continue to see...) Figure 5 The data transmission method provided in this application includes:

[0058] Step 501: The first computing module sends the first data to the first transmission module among multiple transmission modules through the first transmission link.

[0059] In implementation, the first computing module can establish a first transmission link with the first transmission module in the computing cluster based on the first IP address. In one example, the first data refers to the data obtained by the first computing module performing a computing task. After obtaining the first data, the first computing module can send the first data to the first transmission module through the first transmission link.

[0060] Step 502: The first transmission module performs outgoing processing on the first data.

[0061] The first transmission module can be an optical module or an electrical module. After receiving the first data through the first transmission link, the first transmission module can perform outgoing processing on the first data. For example, if the first transmission module is an optical module, it can convert the electrical signal of the received first data into an optical signal and send it to the connected Leaf node.

[0062] Step 503: The second computing module sends the second data to the second transmission module among the multiple transmission modules through the second transmission link.

[0063] In implementation, the second computing module can establish a second transmission link with the second transmission module in the computing cluster based on the second IP address. In one example, the second data refers to the data obtained by the second computing module performing computing tasks. After obtaining the second data, the second computing module can send the second data to the second transmission module through the second transmission link.

[0064] Step 504: The second transmission module performs outgoing processing on the second data.

[0065] The second transmission module can also be an optical module or an electrical module. After receiving the second data through the second transmission link, the second transmission module can perform outgoing processing on the second data. For example, if the second transmission module is an optical module, it can convert the electrical signal of the received second data into an optical signal and send it to the connected Leaf node.

[0066] Step 505: In response to a failure in the first transmission link, the first computing module sends the first data to the second computing module.

[0067] In implementation, the first computing module can detect whether the first transmission link has failed. Failures in the first transmission link can include a broken link or abnormal data transmission parameters. A broken link may be caused by a hardware failure, such as a fault in the port of the first computing module or the port of the first transmission module connected to the first transmission link. Data transmission parameters can include transmission latency, packet loss rate, and packet error rate.

[0068] After detecting a failure in the first transmission link, the first computing module can send first data to the second computing module. In one example, the source address of the first data sent from the first computing module to the second computing module can be a second IP address, and the source port number is the first port number corresponding to the first port used by the first computing module to connect to the second computing module.

[0069] Step 506: The second computing module sends the first data to the second transmission module through the second transmission link.

[0070] Step 507: The second transmission module performs outgoing processing on the first data.

[0071] In one example, the second computing module is equipped with a data transmission queue, which can hold first data received by the second computing module and second data calculated by the second computing module. The second computing module can then transmit the first data and the second data to the second transmission module sequentially via the second transmission link, according to the order of the first data and the second data in the data transmission queue.

[0072] In this embodiment, if the first transmission link between the first transmission module and the first computing module fails, the first computing module can send the first data out through the second transmission link of the second transmission module. This avoids the problem of the first data being unable to be transmitted within the computing cluster due to a failure of the first transmission link, thus improving the stability of the computing cluster in executing computing tasks.

[0073] Steps 501 to 507 shown in this embodiment are for ease of understanding. In a practical solution, steps 501 to 507 can be executed in other orders. For example, the transmission of the first data in step 501 and the transmission of the second data in step 502 can be executed in parallel, the outward processing of the first data in step 502 and the outward processing of the second data in step 504 can be executed in parallel, or after determining that the first transmission link has failed, the outward processing of the second data in step 504 and the outward processing of the first data in step 507 can be executed sequentially according to the order of the first data and the second data in the data transmission queue.

[0074] Steps 505 to 507 above illustrate that, in the event of a failure in the first transmission link, the first computing module sends the first data to the second computing module, which then sends the first data to the second transmission module, which then performs outgoing processing on the first data. Similarly, in this embodiment, in the event of a failure in the second transmission link, the second computing module can send the second data to the first computing module, which then sends the second data to the first transmission module, which then performs outgoing processing on the second data. Further implementation methods for handling a failure in the second transmission link are similar to steps 505 to 507 above, and will not be repeated in this embodiment.

[0075] In the event of a failure in the second transmission link, the first computing module can not only send second data to the second computing module based on the first IP address, but also receive third data sent to the second computing module by other modules in the computing cluster via the first transmission link. The destination port number included in the third data is the second port number used by the second computing module to connect to the first computing module. Thus, when the first computing module determines that the received third data includes the second port number, it can forward the third data to the second computing module, thereby enabling data reception for the second computing module via the first transmission link. Similarly, in the event of a failure in the first transmission link, the second computing module can receive data for the first computing module via the second transmission link.

[0076] In the computing cluster provided in this application embodiment, different computing module groups can share a set of transmission modules. In one example, the computing cluster further includes a second computing module group, which includes at least a third computing module and a fourth computing module connected to each other. This second computing module group can share the first and second transmission modules with the first computing module group.

[0077] Figure 7 This is a schematic diagram of the structure of a computing cluster provided in an embodiment of this application. Figure 7 As shown, the first computing module can be connected to the first transmission module via the first transmission link, and the second computing module can be connected to the second transmission module via the second transmission link. The third computing module can be connected to the first transmission module via the third transmission link, and the fourth computing module can be connected to the second transmission module via the fourth transmission link.

[0078] The third computing module can send third data to the first transmission module via the third transmission link, so that the first transmission module can perform outgoing processing on the third data. The fourth computing module can send fourth data to the second transmission module via the fourth transmission link, so that the second transmission module can perform outgoing processing on the fourth data.

[0079] Similar to steps 505 to 507 above, in the event of a failure in the third transmission link, the third computing module can send the third data to the fourth computing module, which then sends the third data to the second transmission module, which then processes the third data for external transmission. Similarly, in the event of a failure in the fourth transmission link, the fourth computing module can send the fourth data to the third computing module, which then sends the fourth data to the first transmission module, which then processes the fourth data for external transmission. Further implementation methods for failures in the third and fourth transmission links are similar to steps 505 to 507 above, and will not be repeated in this embodiment.

[0080] In this embodiment, having at least one of the first and second transmission modules in normal working order ensures the normal transmission of data calculated by the first and second computing module groups within the computing cluster. This improves the stability of data transmission within the computing cluster.

[0081] See also Figure 7 In the embodiments of this application, the computing modules included in the first computing module group and the second computing module group are connected to the first transmission module and the second transmission module in a manner that can be referred to as link interleaving. The following provides an example of how link interleaving is implemented in the embodiments of this application:

[0082] Method 1: Link interleaving is achieved through backplane connectors.

[0083] Figure 8 This is a schematic diagram of a link interleaving provided in an embodiment of this application. In a computing cluster, a first computing module group and a second computing module group can be located in the same rack (frame). The backplane of the rack (frame) is equipped with connectors, i.e., backplane connectors. The first computing module and the second computing module included in the first computing module group can be connected to the first transmission module and the second transmission module, respectively, through the backplane connectors. The third computing module and the fourth computing module included in the second computing module group can be connected to the first transmission module and the second transmission module, respectively, through the backplane connectors.

[0084] In one example, the backplane connector includes four input ports and four output ports. For example... Figure 9 As shown, in the backplane connector, the first input port is connected to the first output port, the second input port is connected to the third output port, the third input port is connected to the second output port, and the fourth input port is connected to the fourth output port. Specifically, the first computing module is connected to the first input port, the second computing module is connected to the second input port, the third computing module is connected to the third input port, and the fourth computing module is connected to the fourth input port. Thus, by connecting the first and second output ports to the first transmission module, and the third and fourth output ports to the second transmission module, link interleaving can be achieved through the backplane connector.

[0085] The four input ports and four output ports included in the backplane connector can be implemented on the PCB board of the backplane connector. In this way, link interleaving can be achieved inside the backplane connector, which can reduce costs and achieve link interleaving between computing modules and transmission modules without changing the connection method between the backplane connector, computing modules and transmission modules in the computing cluster.

[0086] Method 2: Implement link interleaving through the CDR module.

[0087] When the distance between the computing module and the transmission module is far, a CDR module can be connected between the computing module and the transmission module to enhance the transmission signal and ensure the accuracy of the data signal transmitted between the computing module and the transmission module. Figure 10 This is a schematic diagram of a link interleaving provided in an embodiment of this application. Figure 10In the computing cluster shown, the first, second, third, and fourth computing modules can be connected to the CDR module via backplane connectors. The CDR module can include a first connection terminal, a second connection terminal, a third connection terminal, and a fourth connection terminal. In one example, the first computing module can be connected to the first transmission module via the first connection terminal of the CDR module. The second computing module can be connected to the second transmission module via the second connection terminal of the CDR module. The third computing module can be connected to the first transmission module via the third connection terminal of the CDR module. The fourth computing module can be connected to the second transmission module via the fourth connection terminal of the CDR module. This allows for link interleaving via the CDR module.

[0088] In one example, a processor in a compute cluster may include two dies, and each die can be connected to the QDD via a port. A compute cluster may include multiple... Figure 11 The modules shown can contain multiple computing modules that can reside in the same rack. See also... Figure 11 ,exist Figure 11 The module shown includes multiple interfaces, and each port of each die can be connected to the QDD via one interface. Figure 11 The diagram illustrates the connection methods of four interfaces to the QDD. These four interfaces can be connected to the ports of Die0 and Die1 included in NPU0 and NPU1, respectively. Specifically, the two interfaces connected to Die0 and Die1 of NPU0 can be connected via backplane connectors to ports 0-3 of Die0 and ports 4-7 of Die1 in the CDR module. Similarly, the two interfaces connected to Die0 and Die1 of NPU1 can be connected via backplane connectors to ports 0-3 of Die1 and ports 4-7 of Die0 in the CDR module. Ports 0-3 and 4-7 of Die0 in the CDR module are connected to QDD0, and ports 0-3 and 4-7 of Die1 in the CDR module are connected to QDD1. This allows the Die0 and Die1 components of NPU0 and NPU1 to be connected to different QDDs, enabling link interleaving between NPU0 / NPU1 and QDD0 / QDD1.

[0089] The following example uses the NPU as the computing module group and the Die included in the NPU as the computing module group, combined with... Figure 12 The data transmission method provided in the embodiments of this application will be described below:

[0090] like Figure 12As shown, Die0, included in NPU0, can establish a transmission link with Port A in QDD1 based on port number nic0 and IP address ip0. Similarly, Die1, included in NPU1, can establish a transmission link with Port A in QDD2 based on port number nic1 and IP address ip1. Likewise, Die0, included in NPU1, can establish a transmission link with Port B in QDD1 based on port number nic2 and IP address ip2. And Die1, included in NPU2, can establish a transmission link with Port B in QDD2 based on port number nic3 and IP address ip3.

[0091] Taking Die0, which is included in NPU0, as an example, a communication management process runs in Die0, which includes a routing unit and a detection unit. The detection unit detects whether there is an anomaly in the transmission link between Die0 and Port A. If the transmission link is not abnormal, Die0 sends data to Port A of QDD1 according to ip0 and nic0 to achieve data transmission. If the transmission link is abnormal, Die0 sends data to Die1 according to ip1 and nic4. Die1 can then send the received data to Port A of QDD2 via ip1 and nic1, thereby achieving data transmission. Here, nic4 refers to the port number where Die0 and Die1 establish a cross-Die connection. Similar to Die0 included in NPU0, Die1 included in NPU0 and Die0 and Die1 included in NPU1 also run communication management processes; the specific implementation details are not elaborated in this embodiment.

[0092] In one possible implementation, the computing module determines that a transmission link failure has occurred by receiving a fault notification from the transmission module. In this embodiment, the control terminals corresponding to the computing module and the transmission module that establish the transmission link can be interconnected, for example, via an Inter-Integrated Circuit (I2C) bus. After detecting a fault in a port or lane, the transmission module can send a fault notification to the computing module via I2C. This fault notification can be an interrupt signal triggered by the transmission module after detecting the fault.

[0093] In one example, the transmission module can be connected to multiple computing modules, for example in Figure 7In this configuration, the first transmission module can be connected to both the first and third computing modules. If the transmission module sends a fault notification to each connected computing module, it needs to establish a connection with the control terminal of each transmission module via the bus, increasing the bus overhead in the computing cluster. In this embodiment, to reduce the bus overhead between the control terminal of the transmission module and the control terminals of multiple computing modules, a connection can be established between the control terminal of the transmission module and the control terminal of one computing module. For fault notifications sent by the transmission module, the receiving computing module can forward the fault notification to other computing modules connected to the transmission module.

[0094] Since the computing modules connected to the transmission module are located in different computing module groups, the computing modules connected to the transmission module may not be able to directly send fault notifications. Therefore, the computing cluster provided in this embodiment may also include a management module, which can be set in a rack, such as a Complex Programmable Logic Device (CPLD), a Field Programmable Gate Array (FPGA), etc.

[0095] In the computing cluster provided in this application embodiment, multiple computing modules connected to the same transmission module can be connected to the same management module. Since the management module and computing modules are located in the same rack, the overhead of establishing a connection between each computing module and the management module via a bus is much less than the overhead of establishing a connection between each computing module and the transmission module via a bus. In one example, the computing modules included in multiple computing module groups sharing the same set of transmission modules can be connected to the same management module.

[0096] Figure 13 This is a schematic diagram of the structure of a computing cluster provided in an embodiment of this application, such as... Figure 13 As shown, the first computing module group and the second computing module group include a first computing module, a second computing module, a third computing module and a fourth computing module, which are respectively connected to the management module.

[0097] The control terminal of the first transmission module can be connected to the control terminal of the first computing module via a bus, and the control terminal of the second transmission module can be connected to the control terminal of the fourth computing module via a bus. Thus, if the first transmission module fails, it can send a fault notification to the first computing module via the bus. Upon receiving the fault notification, the first computing module can forward it to the management module. The management module, upon receiving the fault notification from the first computing module, can forward it to the third computing module. Similarly, if the second transmission module fails, it can send a fault notification to the fourth computing module via the bus. Upon receiving the fault notification, the fourth computing module can forward it to the management module. The management module, upon receiving the fault notification from the fourth computing module, can forward it to the second computing module. In this way, by forwarding fault notifications through the management module, the overhead of establishing connections between the transmission modules and the computing modules in the computing cluster via the bus can be reduced.

[0098] Figure 14 This is a schematic diagram of the structure of a computing module provided in an embodiment of this application, such as... Figure 14 As shown, the computing module 1400 includes a bus 1402, a processor 1404, a memory 1406, and a communication interface 1408. The processor 1404, the memory 1406, and the communication interface 1408 communicate with each other via the bus 1402. The computing module 1400 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing module 1400.

[0099] Bus 1402 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 14 The bus 1402 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 1402 may include a path for transmitting information between various components of the computing module 1400 (e.g., memory 1406, processor 1404, communication interface 1408).

[0100] Processor 1404 may include any one or more processors such as CPU, GPU, and NPU.

[0101] Memory 1406 may include volatile memory, such as random access memory (RAM). Memory 1406 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0102] The memory 1406 stores executable program code, and the processor 1404 executes the executable program code to perform the data transmission method provided in the above embodiments. That is, the memory 1406 stores instructions for performing the data transmission method. The specific details of the processor performing the data transmission method are similar to those in the above embodiments, and will not be repeated in this application embodiment.

[0103] The communication interface 1408 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing module 1400 and other devices or communication networks.

[0104] This application also provides a computer program product containing instructions. The computer program product may be a software or program product containing instructions, capable of running on a computing module or stored on any usable medium. When the computer program product runs on at least one computing module, it causes the at least one computing module to execute a data transmission method.

[0105] This application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center that includes one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to perform a data transmission method.

[0106] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention 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; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.

Claims

1. A computing cluster, characterized in that, The computing cluster includes multiple computing module groups and multiple transmission modules. The multiple computing module groups include a first computing module group, and the first computing module group includes at least a first computing module and a second computing module that are connected to each other. The first computing module is used to send first data to the first transmission module among the plurality of transmission modules through the first transmission link, so that the first transmission module performs outgoing processing on the first data; The second computing module is used to send second data to the second transmission module among the plurality of transmission modules through the second transmission link, so that the second transmission module performs outgoing processing on the second data; The first computing module is also configured to send the first data to the second computing module in response to a failure of the first transmission link; The second computing module is also used to send the first data to the second transmission module through the second transmission link, so that the second transmission module performs outgoing processing on the first data.

2. The computing cluster according to claim 1, characterized in that, The first calculation module is used to determine that the first transmission link has failed after detecting that the first transmission link is disconnected or that the data transmission parameters corresponding to the first transmission link are abnormal. The data transmission parameters include at least one of data transmission delay, packet loss rate and packet error rate.

3. The computing cluster according to claim 1 or 2, characterized in that, The first calculation module is used to determine that the first transmission link has failed after receiving a fault notification sent by the first transmission module.

4. The computing cluster according to claim 3, characterized in that, The plurality of computing module groups includes a second computing module group, and the second computing module group includes at least a third computing module and a fourth computing module that are connected to each other; The third computing module is used to send third data to the first transmission module through the third transmission link, so that the first transmission module performs outgoing processing on the third data. The fourth computing module is used to send fourth data to the second transmission module through the fourth transmission link, so that the second transmission module performs outgoing processing on the fourth data.

5. The computing cluster according to claim 4, characterized in that, The computing cluster also includes a management module, which is connected to the first computing module and the third computing module respectively. The first computing module is further configured to, upon receiving a fault notification sent by the first transmission module, forward the fault notification to the third computing module through the management module.

6. The computing cluster according to claim 4, characterized in that, The computing cluster also includes a clock data recovery (CDR) module, which includes a first connection terminal, a second connection terminal, a third connection terminal, and a fourth connection terminal. The first computing module is connected to the first transmission module through the first connection terminal to establish the first transmission link with the first transmission module; The second computing module is connected to the second transmission module through the second connection terminal to establish the second transmission link with the second transmission module; The third computing module is connected to the first transmission module through the third connection terminal to establish the third transmission link with the first transmission module; The fourth computing module is connected to the second transmission module through the fourth connection terminal to establish the fourth transmission link with the second transmission module.

7. The computing cluster according to any one of claims 1 to 6, characterized in that, The computing module is a wafer die of the processor, and a computing module group includes computing modules that belong to the same processor.

8. The computing cluster according to any one of claims 1 to 7, characterized in that, The transmission module is an optical module or an electrical port module.

9. A data transmission method, characterized in that, The method is applied to a first computing module in a computing cluster, and the method includes: First data is sent to a first transmission module included in the computing cluster via a first transmission link, so that the first transmission module performs outgoing processing on the first data; In response to a failure of the first transmission link, the first data is sent to the second computing module included in the computing cluster, so that the second computing module sends the first data to the second transmission module included in the computing cluster through the second transmission link, and performs outgoing processing on the first data through the second transmission module.

10. The method according to claim 9, characterized in that, The failure of the first transmission link includes: detecting a disconnection of the first transmission link, or an abnormality in the data transmission parameters corresponding to the first transmission link, wherein the data transmission parameters include at least one of data transmission delay, packet loss rate, and packet error rate.

11. The method according to claim 9 or 10, characterized in that, Before sending the first data to the second computing module included in the computing cluster, the method further includes: Set the source address included in the first data to the first IP address, and set the source port number included in the first data to the first port number, wherein the first IP address is the IP address used by the second computing module, and the first port number is the port number used by the first computing module to connect to the second computing module.

12. The method according to any one of claims 9 to 11, characterized in that, The method further includes: Receive second data sent by the second transmission link, the second data being sent by the second computing module in response to a failure of the second transmission link; The second data is sent to the first transmission module through the first transmission link, so that the first transmission module performs outgoing processing on the second data.

13. The method according to claim 12, characterized in that, The method further includes: Receive third data sent by the first transmission module through the first transmission link; If the destination port number included in the third data is determined to be the second port number, the third data is forwarded to the second computing module, wherein the second port number is the port number used by the second computing module to connect to the first computing module.

14. A computing module, characterized in that, The computing module includes a processor and a memory; The processor is configured to execute instructions stored in the memory to cause the processor to perform the method as described in any one of claims 9 to 13.

15. A computer program product containing instructions, characterized in that, When the instruction is executed by a computing module included in the computing cluster, the computing module included in the computing cluster performs the method as described in any one of claims 9 to 13.

16. A computer-readable storage medium, characterized in that, It includes computer program instructions, which, when executed by computing modules included in a computing cluster, perform the method as described in any one of claims 9 to 13.