Data transmission method, switching device, electronic device, and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-06-29
- Publication Date
- 2026-08-11
AI Technical Summary
在多个计算节点同时向同一个目标计算节点传输数据时,来自多个计算节点的流量会集中于与目标计算节点绑定的出口端口,这会导致该出口端口流量负载过重,从而出现带宽瓶颈,甚至引发数据包丢失等问题
[0010]根据本公开实施例的数据传输方法,处理系统中的交换设备包括端口路由模块和路径调度模块,端口路由模块中存储有两级路由表,分别为用于表征处理节点与端口组之间的对应关系的一级路由表和用于表征每个端口组包括的端口的二级路由表。因此,本公开的实施例中,每个处理节点对应一个端口组中的多个端口,而非与绑定一个固定端口。在交换设备接收到待发送的数据包时,能够通过端口路由模块,根据数据包的目的地址确定目标节点,然后通过查询一级路由表及二级路由表,确定目标节点对应的目标端口组及目标端口组包括的多个端口,并从目标端口组的多个端口中确定出目标端口;然后通过路径调度模块将数据包传输至目标端口。基于此,当多个处理节点同时向目标节点传输数据包时,由于其发送至目标节点的目的地址不同,基于目的地址确定出的目标端口可能不同,从而能够将发往目标节点的多个数据包分散至目标节点对应的目标端口组内的多个端口进行传输,实现了交换设备的流量负载均衡,进而降低了出现带宽瓶颈、数据包丢失等问题的风险。
Smart Images

Figure CN122554415A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of network communication technology, and in particular to a data transmission method, switching device, electronic device, and computer-readable storage medium. Background Technology
[0002] In the field of network communication technology, a cluster network formed by interconnecting multiple computing nodes (such as graphics processing units (GPUs) and central processing units (CPUs) through switches is called a supernode network. Supernode networks are the core architecture supporting large-scale data interaction, and their core function is to achieve efficient transmission of data packets between different computing nodes through the routing mechanism of switches.
[0003] In related technologies, switches in supernode networks use single-level routing tables, and each compute node is bound to an egress port. When multiple compute nodes transmit data to the same target compute node simultaneously, traffic from multiple compute nodes will be concentrated on the egress port bound to the target compute node. This can lead to excessive traffic load on that egress port, resulting in bandwidth bottlenecks and even packet loss. Summary of the Invention
[0004] This disclosure provides a data transmission method, a switching device, an electronic device, a computer-readable storage medium, and a computer program product.
[0005] In a first aspect, this disclosure provides a data transmission method applied to a switching device in a processing system. The switching device includes a port routing module and a path scheduling module. The processing system includes multiple processing nodes interconnected through the switching device. The method includes: using the port routing module, upon receiving a data packet to be sent, determining a target node corresponding to the destination address from among the multiple processing nodes based on the destination address of the data packet; using the port routing module, determining a target port group corresponding to the target node and multiple ports included in the target port group based on a primary routing table and a secondary routing table in the port routing module; wherein the primary routing table is used to characterize the correspondence between processing nodes and port groups, and the secondary routing table is used to characterize the ports included in each port group; using the port routing module, determining a target port from among the multiple ports of the target port group; and using the path scheduling module, transmitting the data packet to the target port, so that the data packet reaches the target node through the target port.
[0006] Secondly, this disclosure provides a switching device for connecting multiple processing nodes in a processing system. The switching device includes a port routing module and a path scheduling module. The port routing module is configured to: upon receiving a data packet to be sent, determine the target node corresponding to the destination address from among the multiple processing nodes based on the destination address of the data packet; determine the target port group corresponding to the target node and multiple ports included in the target port group based on a primary routing table and a secondary routing table in the port routing module, wherein the primary routing table characterizes the correspondence between processing nodes and port groups, and the secondary routing table characterizes the ports included in each port group; and determine the target port from among the multiple ports of the target port group. The path scheduling module is configured to: transmit the data packet to the target port so that the data packet reaches the target node through the target port.
[0007] Thirdly, this disclosure provides an electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores one or more computer programs executable by the at least one processor, the one or more computer programs being executed by the at least one processor to enable the at least one processor to perform the data transmission method described above.
[0008] Fourthly, this disclosure provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the above-described data transmission method.
[0009] Fifthly, this disclosure provides a computer program product comprising computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is executed in a processor of an electronic device, the processor in the electronic device performs the data transmission method described above.
[0010] According to the data transmission method of this disclosure, the switching device in the processing system includes a port routing module and a path scheduling module. The port routing module stores two levels of routing tables: a primary routing table representing the correspondence between processing nodes and port groups, and a secondary routing table representing the ports included in each port group. Therefore, in the embodiments of this disclosure, each processing node corresponds to multiple ports in a port group, rather than being bound to a fixed port. When the switching device receives a data packet to be sent, it can determine the target node based on the destination address of the data packet through the port routing module. Then, by querying the primary and secondary routing tables, it determines the target port group corresponding to the target node and the multiple ports included in the target port group, and determines the target port from the multiple ports in the target port group. Then, the path scheduling module transmits the data packet to the target port. Based on this, when multiple processing nodes transmit data packets to the target node simultaneously, since their destination addresses to the target node are different, the target ports determined based on the destination addresses may be different. This allows multiple data packets destined for the target node to be distributed to multiple ports in the target port group corresponding to the target node for transmission, achieving traffic load balancing of the switching device and reducing the risk of bandwidth bottlenecks, data packet loss, and other problems.
[0011] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0012] The accompanying drawings are provided to further illustrate the present disclosure and form part of the specification. They are used together with the embodiments of the present disclosure to explain the disclosure and do not constitute a limitation thereof. The above and other features and advantages will become more apparent to those skilled in the art from the description of detailed exemplary embodiments with reference to the accompanying drawings, which are described below.
[0013] Figure 1 A flowchart illustrating a data transmission method provided in an embodiment of this disclosure.
[0014] Figure 2 This is a schematic diagram of a data transmission method provided in an embodiment of the present disclosure.
[0015] Figure 3 This is a block diagram of a switching device provided in an embodiment of the present disclosure.
[0016] Figure 4 This is a schematic diagram of a switching device provided in an embodiment of the present disclosure.
[0017] Figure 5 This is a block diagram of an electronic device provided in an embodiment of the present disclosure. Detailed Implementation
[0018] To enable those skilled in the art to better understand the technical solutions of this disclosure, exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments of this disclosure to aid understanding. These should be considered merely exemplary. Therefore, those skilled in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.
[0019] Where there is no conflict, the various embodiments of this disclosure and the features thereof in the embodiments may be combined with each other.
[0020] As used herein, the term “and / or” includes any and all combinations of one or more related enumerated entries.
[0021] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. As used herein, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that when the terms “comprising” and / or “made of” are used in this specification, the presence of the stated feature, integral, step, operation, element, and / or component is specified, but the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or groups thereof is not excluded. Words such as “connected” or “linked” are not limited to physical or mechanical connections but can include electrical connections, whether direct or indirect.
[0022] Unless otherwise specified, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and this disclosure, and will not be interpreted as having an idealized or overly formal meaning, unless expressly so defined herein.
[0023] In a supernode network, data packets generated by compute nodes typically carry a destination address (e.g., Global Physical Address, GPA). Upon receiving this packet, the switch queries its routing table based on the destination address to determine the egress port, and then forwards the packet to that port to complete the transmission. In related technologies, the switch's routing table is a single-level routing table, and each compute node is bound to a single egress port. When multiple compute nodes simultaneously transmit data to the same target compute node, traffic concentrates on the target compute node's bound egress port. This can lead to overload on that egress port, resulting in bandwidth bottlenecks and even packet loss.
[0024] To address the aforementioned technical problems, embodiments of this disclosure provide a data transmission method applied to a switching device in a processing system. The switching device includes a port routing module and a path scheduling module. The processing system includes multiple processing nodes interconnected via the switching device. The method includes: using the port routing module, upon receiving a data packet to be sent, determining a target node corresponding to the destination address from among the multiple processing nodes based on the destination address of the data packet; using the port routing module, determining a target port group corresponding to the target node and multiple ports included in the target port group based on a primary routing table and a secondary routing table in the port routing module; wherein the primary routing table characterizes the correspondence between processing nodes and port groups, and the secondary routing table characterizes the ports included in each port group; using the port routing module, determining a target port from among the multiple ports of the target port group; and using the path scheduling module, transmitting the data packet to the target port, so that the data packet reaches the target node through the target port.
[0025] According to the data transmission method of this disclosure, the switching device in the processing system includes a port routing module and a path scheduling module. The port routing module stores two levels of routing tables: a primary routing table representing the correspondence between processing nodes and port groups, and a secondary routing table representing the ports included in each port group. Therefore, in the embodiments of this disclosure, each processing node corresponds to multiple ports in a port group, rather than being bound to a fixed port. When the switching device receives a data packet to be sent, it can determine the target node based on the destination address of the data packet through the port routing module. Then, by querying the primary and secondary routing tables, it determines the target port group corresponding to the target node and the multiple ports included in the target port group, and determines the target port from the multiple ports in the target port group. Then, the path scheduling module transmits the data packet to the target port. Based on this, when multiple processing nodes transmit data packets to the target node simultaneously, since the destination addresses sent to the target node are different, the target ports determined based on the destination addresses may be different. This allows multiple data packets destined for the target node to be distributed to multiple ports in the target port group corresponding to the target node for transmission, achieving network traffic load balancing of the switching device, thereby reducing the risk of bandwidth bottlenecks, data packet loss, and other problems.
[0026] The data transmission method of this disclosure can be applied to switching devices in a processing system. The processing system can be considered as a system including a network of supernodes. For example, the processing system can be a GPU computing cluster, a distributed storage system, a high-performance computing center, an artificial intelligence training cluster, a cloud computing data center, etc. The processing system can also be other systems requiring large-scale data interaction; this disclosure does not limit the specific type of processing system. The processing device may include multiple processing nodes (also called computing nodes), each of which may be, for example, a central processing unit (CPU), a graphics processing unit (GPU), a general-purpose graphics processing unit (GPGPU), etc. This disclosure also does not limit the specific type of processing nodes. Multiple processing nodes in the processing device are interconnected through switching devices (e.g., switches, SWs).
[0027] Figure 1 This is a flowchart illustrating a data transmission method provided in an embodiment of this disclosure. The data transmission method is applied to a switching device in a processing system. The switching device includes a port routing module and a path scheduling module. The processing system includes multiple processing nodes interconnected through the switching device. (Refer to...) Figure 1 The data transmission method includes steps S11 to S14, which will be described in detail below.
[0028] In step S11, the port routing module, upon receiving a data packet to be sent, determines the target node corresponding to the destination address from among the multiple processing nodes based on the destination address of the data packet.
[0029] In step S12, the port routing module determines the target port group corresponding to the target node and the multiple ports included in the target port group based on the primary routing table and the secondary routing table in the port routing module. The primary routing table represents the correspondence between processing nodes and port groups, and the secondary routing table represents the ports included in each port group.
[0030] In step S13, the target port is determined from multiple ports of the target port group by the port routing module.
[0031] In step S14, the data packet is transmitted to the target port through the path scheduling module, so that the data packet reaches the target node through the target port.
[0032] In some possible implementations, the processing system includes a switching device and multiple processing nodes interconnected through the switching device. The switching device includes multiple ports, each connecting to one or more processing nodes. Each processing node connects to multiple ports. Processing nodes receive and send data through the ports they are connected to. For example, the processing system includes four processing nodes: processing node 0, processing node 1, processing node 2, and processing node 3. The switching device in this system has eight ports, designated as ports 0 through 7. Each port connects to one processing node. Ports 0 and 1 are connected to processing node 0, allowing processing node 0 to send and receive data via ports 0 and 1. Ports 2 and 3 are connected to processing node 1, allowing processing node 1 to send and receive data via ports 2 and 3. Ports 4 and 5 are connected to processing node 2, allowing processing node 2 to send and receive data via ports 4 and 5. Ports 6 and 7 are connected to processing node 3, allowing processing node 3 to send and receive data via ports 6 and 7.
[0033] For example, a processing system includes four processing nodes: node 0, node 1, node 2, and node 3. The switching equipment in this system has eight ports, numbered 0 through 7. Each port connects to multiple processing nodes. Port 0 is connected to both nodes 0 and 1; port 1 is connected to both nodes 0 and 1; port 2 is connected to both nodes 0 and 1; and port 3 is connected to both nodes 0 and 1. Therefore, both nodes 0 and 1 can send and receive data through ports 0, 1, 2, and 3. Similarly, port 4, 5, 6, and 7 are connected to nodes 2 and 3. Thus, both nodes 2 and 3 can send and receive data through ports 4, 5, 6, and 7.
[0034] It should be noted that the specific number of processing nodes connected to the ports of the switching equipment and the specific number of ports connected to the processing nodes can be set by those skilled in the art according to the actual situation, and this disclosure does not impose any restrictions on this.
[0035] In some possible implementations, the switching device may include a port routing module and a path scheduling module. The port routing module can be used to determine the destination port for the data packet to be sent, and the path scheduling module can be used to transmit the data packet to the destination port. In step S11, when the switching device receives the data packet to be sent, it can obtain the destination address from the data packet through the port routing module, and determine the target node corresponding to the destination address from multiple processing nodes based on the destination address. When transmitting data in the processing system, the Global Physical Address (GPA) is used. Each processing node corresponds to a GPA range. When a processing node sends a data packet, it carries the destination address in the data packet, which is a GPA. The processing node can send the data packet to be sent to any port connected to it. After the switching device receives the data packet to be sent through the port, it can extract the destination address from the data packet through the port routing module, and then parse the destination address to determine the target node corresponding to the destination address from multiple processing nodes. That is, the target node is one of the processing nodes other than the processing node that sent the data packet, and the destination address of the data packet is located in the GPA range corresponding to the target node.
[0036] In some possible implementations, after the target node is determined, in step S12, the target port group corresponding to the target node and the multiple ports included in the target port group can be determined through the port routing module based on the primary and secondary routing tables in the port routing module. The primary and secondary routing tables are stored in the port routing module. The primary routing table represents the correspondence between processing nodes and port groups. That is, the index of the primary routing table is the node identifier (e.g., ID) of the processing node, and the entry is the group identifier of the port group. The secondary routing table represents the ports included in each port group. That is, the index of the secondary routing table is the group identifier of the port group, and the entry is a list of available ports within the port group.
[0037] For example, the processing system includes four processing nodes: processing node 0, processing node 1, processing node 2, and processing node 3. The switching equipment of this processing device has eight ports. Port 0, port 1, port 2, and port 3 are all connected to processing nodes 0 and 1. Port 4, port 5, port 6, and port 7 are all connected to processing nodes 2 and 3.
[0038] Therefore, the ports can be divided into port group 1 and port group 2. Available ports in port group 1 include port 0, port 1, port 2, and port 3, while available ports in port group 2 include port 4, port 5, port 6, and port 7. The corresponding first-level routing table can be exemplified as follows:
[0039] {Processing node 0, port group 1};
[0040] {Processing node 1, port group 1};
[0041] {Processing node 2, port group 2};
[0042] {Processing node 3, port group 2};
[0043] The corresponding second-level routing table can be exemplified as follows:
[0044] {Port group 1, {Port 0, Port 1, Port 2, Port 3}}
[0045] {Port group 2, {Port 4, Port 5, Port 6, Port 7}}
[0046] After identifying the target node, its node identifier can be used as an index to determine the group identifier of the target port group from the first-level routing table. Then, using the group identifier of the target port group as an index, the multiple ports included in the target port group can be determined from the second-level routing table. All ports included in the target port group are available ports. For example, if the target node is processing node 2, when querying the two-level routing tables, first, the node identifier of processing node 2 is used as an index to determine the target port group, i.e., port group 2, from the first-level routing table. Then, using port group 2 as an index, the multiple ports included in port group 2 are determined from the second-level routing table, namely port 4, port 5, port 6, and port 7.
[0047] In some possible implementations, in step S13, the port routing module can determine the target port from multiple ports in the target port group. A preset conversion method (e.g., hash algorithm, modulo operation) can be used to convert the destination address of the data packet into an intermediate value, and then the target port can be determined from multiple ports in the target port group based on this intermediate value. For example, the destination address of the data packet can be converted using a preset conversion method to obtain the intermediate value 2, and then the second port (port 6) among the multiple ports (port 4, port 5, port 6, port 7) in the target port group (port group 2) can be determined as the target port. Here, port 4 is the 0th port, and so on, with port 6 being the 2nd port.
[0048] In some possible implementations, after the target port is determined, the data packet can be transmitted to the target port through the path scheduling module in step S14, so that the data packet reaches the target node through the target port. For example, in the case where the processing system is a GPU computing cluster, the target node is processing node 2, and the target port is port 6, the data packet can be routed to port 6 through the network-on-chip (NoC) via the path scheduling module, so that processing node 2 can receive the data packet through port 6 and store it to the destination address, thereby completing the transmission of the data packet.
[0049] According to the data transmission method of this disclosure, the switching device in the processing system includes a port routing module and a path scheduling module. The port routing module stores two levels of routing tables: a primary routing table representing the correspondence between processing nodes and port groups, and a secondary routing table representing the ports included in each port group. Therefore, in the embodiments of this disclosure, each processing node corresponds to multiple ports in a port group, rather than being bound to a fixed port. When the switching device receives a data packet to be sent, it can determine the target node based on the destination address of the data packet through the port routing module. Then, by querying the primary and secondary routing tables, it determines the target port group corresponding to the target node and the multiple ports included in the target port group, and determines the target port from the multiple ports in the target port group. Then, the path scheduling module transmits the data packet to the target port. Based on this, when multiple processing nodes transmit data packets to the target node simultaneously, since the destination addresses sent to the target node are different, the target ports determined based on the destination addresses may be different. This allows multiple data packets destined for the target node to be distributed to multiple ports in the target port group corresponding to the target node for transmission, achieving network traffic load balancing of the switching device, thereby reducing the risk of bandwidth bottlenecks, data packet loss, and other problems.
[0050] The data transmission method according to embodiments of this disclosure will now be described in detail.
[0051] In some possible implementations, the processing node includes a graphics processor, the switching device stores the type of the graphics processor and the memory size of the graphics processor, and the destination address is a global physical address; step S11 includes: mapping the global physical address, the type of the graphics processor, and the memory size of the graphics processor according to a preset mapping method to obtain a target node.
[0052] The processing nodes in the processing system can be graphics processing units (GPUs). When the processing node is a GPU, the switching device stores the type of the GPU and the GPU's memory size. The GPU's memory size indicates the amount of GPU memory (also called video memory). When determining the target node, the port routing module can obtain the GPU type and GPU memory size stored in the switching device. Then, according to a preset mapping method (e.g., a mapping function), the destination address of the data packet (i.e., the global physical address of the data packet), the GPU type, and the GPU's memory size are mapped to obtain the target node.
[0053] The destination address of the data packet (i.e., the global physical address of the data packet), the type of the graphics processor, and the memory size of the graphics processor can be mapped using the following formula (1) to obtain the node identifier of the target node.
[0054] (1)
[0055] In the above formula (1), The node identifier representing the target node. Represents a mapping function. Indicates the destination address of the data packet (i.e., the global physical address of the data packet). Indicates the type of graphics processor. This indicates the memory size of the graphics processor.
[0056] In the embodiments of this disclosure, when the processing node is a GPU, the global physical address of the data packet, the type of the graphics processor, and the memory size of the graphics processor can be mapped according to a preset mapping method to obtain the target node. This enables the target node to be determined quickly and accurately, improving the processing efficiency when determining the target node.
[0057] In some possible implementations, the port routing module includes identification information indicating the transmission type, which may include out-of-order transmission or in-order transmission. When the transmission type is out-of-order transmission, the identification information is configured with a first value (e.g., 0). When the transmission type is in-order transmission, the identification information is configured with a second value (e.g., 1). It should be noted that the specific transmission type can be determined based on the data transmission protocol used by the data packet, or it can be determined in other ways, such as based on the transmission type field in the data packet; this disclosure does not limit this determination.
[0058] In some possible implementations, step S13 may include: obtaining identification information in the port routing module; if the identification information is a first value, performing a hash operation on the destination address to obtain a first value, and determining the target port from multiple ports of the target port group based on the first value; if the identification information is a second value, performing a modulo operation on the value corresponding to the node identifier of the target node and the number of ports in the target port group to obtain a second value, and determining the target port from multiple ports of the target port group based on the second value.
[0059] When determining the target port, the identification information in the port routing module can be obtained first, and then processed according to the value of the identification information. If the identification information is the first value, the transmission type is out-of-order transmission. The port routing module can perform a hash operation on the destination address of the data packet according to a preset hash algorithm (i.e., through a hash mechanism) to obtain a first value. Then, based on this first value, the target port is determined from multiple ports in the target port group. For example, the port corresponding to the position of the first value among the multiple ports in the target port group is determined as the target port.
[0060] For example, if the target port group is port group 2, which includes four ports: port 4 (0th position), port 5 (1st position), port 6 (2nd position), and port 7 (3rd position), and the identifier information in the port routing module is the first value, the destination address of the data packet can be hashed according to the preset hash algorithm, and the first value obtained is 3. Then, the port in port group 2 that corresponds to the first value 3 (i.e., the 3rd position port in port group 2: port 7) is determined as the target port.
[0061] In this way, given a first value in the identifier information of the port routing module, the module performs a hash operation on the destination address to obtain a first value. Based on this first value, the target port is determined from multiple ports in the target port group. This allows for rapid determination of the target port by hashing the destination address when the identifier information in the port routing module is the first value, improving processing efficiency. Furthermore, data packets destined for different addresses on the target node will correspond to different ports in the target port group, thus achieving port traffic load balancing on the switching device.
[0062] When the identifier information in the port routing module is the second value, the transmission type is ordered transmission, and the hash mechanism of the port routing module can be disabled. When determining the target port, the port routing module can perform a modulo operation between the value corresponding to the node identifier of the target node and the number of ports in the target port group to obtain the second value. The port corresponding to the second value among the multiple ports in the target port group is then determined as the target port. This ensures that data packets transmitted to the target node are always forwarded through the same target port, achieving ordered data transmission.
[0063] For example, if the node identifier of the target node is 8, and the target port group is port group 2, including four ports: port 4 (0th position), port 5 (1st position), port 6 (2nd position), and port 7 (3rd position), and the identifier information in the port routing module is the second value, the modulo operation can be performed on the node identifier of the target node (8) and the number of ports in the target port group (4), and the second value obtained is 0. Then, the port in port group 2 that corresponds to the second value 0 (i.e., the 0th position port in port group 2: port 4) is determined as the target port.
[0064] In this way, when the identifier information in the port routing module is the second value, the port routing module performs a modulo operation on the value corresponding to the node identifier of the target node and the number of ports in the target port group to obtain the second value. Based on the second value, the target port is determined from multiple ports in the target port group. Thus, when the identifier information in the port routing module is the second value, the target port can be selected by modulo operation, a static mapping method. This is not only simple and fast, improving the processing efficiency when determining the target port, but also realizes the ordered transmission of data packets.
[0065] In some possible implementations, when the identifier information in the port routing module is the second value, the determination of the target port can also be based on information such as the sequence number of the data packet to be sent to determine whether a preceding data packet exists. If a preceding data packet exists (i.e., the data packet is not the first data packet transmitted in order), the port that transmitted the preceding data packet can be determined as the target port. This method allows for rapid determination of the target port, improving processing efficiency.
[0066] In some possible implementations, the port routing module may receive and store the primary routing table and the secondary routing table, wherein the primary routing table and the secondary routing table are generated based on the hardware connection relationship between the plurality of processing nodes and the switching device.
[0067] The processing system may include an architecture management module, which is used to configure and manage the switching devices in the processing system. This architecture management module can be implemented in software; for example, it could be a switching matrix manager (FabricManager). The architecture management module can be located within the switching devices or on the CPU side of the processing system; this disclosure makes no limitation in this regard.
[0068] The architecture management module can generate primary and secondary routing tables based on the hardware connections between multiple processing nodes and switching devices in the processing system. In some examples, the architecture management module can obtain the hardware connections between multiple processing nodes and switching devices in the processing system, and then generate primary and secondary routing tables based on these connections.
[0069] For example, the architecture management module is Fabric Manager. The processing system includes four processing nodes, identified as GPU1, GPU2, GPU3, and GPU4. The switching devices in the processing system have 16 ports, designated Port1 to Port16. GPU1 is connected to Port1, Port2, Port3, and Port4; GPU2 is connected to Port5, Port6, Port7, and Port8; GPU3 is connected to Port9, Port10, Port11, and Port12; and GPU4 is connected to Port13, Port14, Port15, and Port16. Based on the connection relationships between these four processing nodes and the switching devices, Fabric Manager generates the following primary and secondary routing tables, where PortGroup1, PortGroup2, PortGroup3, and PortGroup4 represent port groups:
[0070] First-level routing table:
[0071] {GPU1, PortGroup1}
[0072] {GPU2, PortGroup2}
[0073] {GPU3, PortGroup3}
[0074] {GPU4, PortGroup4}
[0075] The secondary routing table is as follows:
[0076] {PortGroup1, {Port1, Port2, Port3, Port4}}
[0077] {PortGroup2, {Port5, Port6, Port7, Port8}}
[0078] {PortGroup3, {Port9, Port10, Port11, Port12}}
[0079] {PortGroup4, {Port13, Port14, Port15, Port16}}
[0080] In other examples, the architecture management module can also receive port mapping rules from the software layer of the processing system, based on the hardware connection relationships between multiple processing nodes and switching devices in the processing system, and generate a first-level routing table and a second-level routing table according to the port mapping rules. The port mapping rules are used to indicate the mapping relationships between processing nodes and port groups, and between port groups and ports.
[0081] After generating the primary and secondary routing tables using the methods described above, the architecture management module can send them to the port routing module of the switching device. The port routing module can receive the primary and secondary routing tables and store them in a preset storage space, such as in the cache of each port of the switching device, so that each port can transmit data based on the primary and secondary routing tables.
[0082] In the embodiments of this disclosure, the port routing module can receive a primary routing table and a secondary routing table and store them locally, thereby enabling it to quickly determine the target port based on the locally stored primary and secondary routing tables during data transmission, thus improving data transmission efficiency.
[0083] In some possible implementations, the port routing module receives the updated first port group and updates the updated first port group to the secondary routing table, wherein the first port group is the port group among the plurality of port groups that has experienced port failure, and the updated first port group does not include the failed ports.
[0084] During the operation of the switching equipment, the architecture management module can periodically check whether any ports of the switching equipment have failed. If a failed port is detected, the system can determine the first port group (i.e., the first port group is the group of ports with the failed port among multiple port groups) based on the locally stored secondary routing table. Then, the first port is removed from the first port group in the currently stored secondary routing table, resulting in an updated first port group that does not include the failed port. The architecture management module can then send the updated first port group to the port routing module of the switching equipment. The port routing module receives the updated first port group and updates it in its locally stored secondary routing table, enabling the port routing module to perform data transmission based on the updated first port group.
[0085] For example, the secondary routing table of a switching device is as follows:
[0086] {PortGroup1, {Port1, Port2, Port3, Port4}}
[0087] {PortGroup2, {Port5, Port6, Port7, Port8}}
[0088] {PortGroup3, {Port9, Port10, Port11, Port12}}
[0089] {PortGroup4, {Port13, Port14, Port15, Port16}}
[0090] During the operation of this switching device, the Fabric Manager module periodically checks for faults in Ports 1 through 16. If the Fabric Manager detects a fault in Port 10, it determines the first port group to which Port 10 belongs as PortGroup3 based on the local secondary routing table. Then, it removes Port 10 from the first port group PortGroup3 in the local secondary routing table, resulting in an updated PortGroup3: {PortGroup3, {Port9, Port11, Port12}}. The Fabric Manager then sends the updated PortGroup3 to the switching device's port routing module. The port routing module receives the updated PortGroup3 and updates its local (port routing module local) secondary routing table. After the update, PortGroup3 in the secondary routing table stored by the port routing module is {PortGroup3, {Port9, Port11, Port12}}.
[0091] In the embodiments of this disclosure, the secondary routing table stored in the port routing module can be updated in a timely manner when a port failure occurs in the switching device. Moreover, during the update, only the port group in the secondary routing table that has experienced a port failure needs to be updated, without having to update the entire routing table, thus shortening the maintenance time of the routing table.
[0092] In some possible implementations, the port routing module receives the updated second port group and updates the updated second port group to the secondary routing table, wherein the updated second port group contains newly added ports.
[0093] During the operation of the switching equipment, the architecture management module can periodically check whether a faulty port has recovered. If a faulty port has recovered, since it was previously unavailable and not listed in the secondary routing table, it can be considered a newly added port – a port that has recovered from a fault in the switching equipment. Upon detecting a new port, the architecture management module can determine the secondary port group to which the new port belongs based on the connection relationships between multiple processing nodes and the switching equipment. The new port is then added to the secondary port group, resulting in an updated secondary port group containing the new port. Afterward, the architecture management module can send the updated secondary port group to the port routing module of the switching equipment. The port routing module receives the updated secondary port group and updates it in its locally stored secondary routing table to enable data transmission based on the updated secondary port group.
[0094] For example, the secondary routing table of a switching device is as follows:
[0095] {PortGroup1, {Port1, Port2, Port3, Port4}}
[0096] {PortGroup2, {Port5, Port6, Port7, Port8}}
[0097] {PortGroup3, {Port9, Port11, Port12}}
[0098] {PortGroup4, {Port13, Port14, Port15, Port16}}
[0099] During the operation of this switching device, the Fabric Manager module periodically checks whether the faulty port Port10 has recovered. If Port10 recovers, based on the connection relationships between multiple processing nodes and the switching device, the second port group to which Port10 belongs is determined to be PortGroup3. Then, Port10 is added to the second port group PortGroup3 in the local secondary routing table, resulting in the updated PortGroup3: {PortGroup3, {Port9, Port10, Port11, Port12}}. Afterwards, the Fabric Manager sends the updated PortGroup3 to the port routing module of the switching device. The port routing module receives the updated PortGroup3 and then updates it in its locally stored secondary routing table. After the update, PortGroup3 in the secondary routing table stored by the port routing module is {PortGroup3, {Port9, Port10, Port11, Port12}}.
[0100] In the embodiments of this disclosure, when a faulty port of the switching device recovers to normal, it can be updated as a new port in the secondary routing table stored by the port routing module in a timely manner. Moreover, during the update, only the corresponding port group in the secondary routing table needs to be updated, without updating the entire routing table (including the primary routing table and the secondary routing table), thus shortening the maintenance time of the routing table.
[0101] Figure 2 This diagram illustrates a data transmission method according to an embodiment of the present disclosure. The data transmission method is applied to a processing system comprising multiple processing nodes interconnected via a switching device. Each processing node is a graphics processing unit (GPU). The switching device includes a port routing module and a path scheduling module. (Refer to...) Figure 2 The data transmission method includes steps S201 to S207, which are described in detail below.
[0102] In step S201, the port routing module receives and stores the primary routing table and the secondary routing table. The primary and secondary routing tables are generated based on the hardware connection relationships between the multiple processing nodes of the processing system and the switching equipment.
[0103] In step S202, the port routing module determines the destination address of the data packet upon receiving it.
[0104] In step S203, the port routing module maps the destination address of the data packet, the type of GPU, and the memory size of the GPU according to a preset mapping method to obtain the target node.
[0105] In step S204, the port routing module determines the target port group corresponding to the target node and the multiple ports included in the target port group based on the primary routing table and the secondary routing table.
[0106] In step S205, the port routing module performs a hash operation on the destination address when the identification information in the port routing module is a first value, and determines the target port from multiple ports in the target port group based on the first value.
[0107] In step S206, the port routing module performs a modulo operation on the value corresponding to the node identifier of the target node and the number of ports in the target port group to obtain the second value, and determines the target port from the multiple ports in the target port group based on the second value.
[0108] In step S207, the data packet is transmitted to the target port through the path scheduling module so that the data packet reaches the target node through the target port.
[0109] It is understood that the various method embodiments mentioned above in this disclosure can be combined with each other to form combined embodiments without violating the principle and logic. Due to space limitations, this disclosure will not elaborate further. Those skilled in the art will understand that in the above methods of specific implementation, the specific execution order of each step should be determined by its function and possible internal logic.
[0110] In addition, this disclosure also provides switching equipment and computer-readable storage media, all of which can be used to implement any of the data transmission methods provided in this disclosure. The corresponding technical solutions and descriptions are described in the corresponding descriptions in the method section, and will not be repeated here.
[0111] Figure 3 This is a block diagram of a switching device provided according to an embodiment of the present disclosure. (Refer to...) Figure 3 The switching device is used to connect multiple processing nodes in the processing system, and the switching device includes a port routing module 31 and a path scheduling module 32.
[0112] The port routing module 31 is configured to: upon receiving a data packet to be sent, determine the target node corresponding to the destination address from the plurality of processing nodes based on the destination address of the data packet; determine the target port group corresponding to the target node and the plurality of ports included in the target port group based on the primary routing table and the secondary routing table in the port routing module; wherein the primary routing table is used to characterize the correspondence between processing nodes and port groups, and the secondary routing table is used to characterize the ports included in each port group; and determine the target port from the plurality of ports in the target port group.
[0113] The path scheduling module 32 is used to: transmit the data packet to the target port so that the data packet reaches the target node through the target port.
[0114] In some possible implementations, the port routing module 31 is specifically used to: obtain identification information in the port routing module; if the identification information is a first value, perform a hash operation on the destination address to obtain a first value, and determine the target port from multiple ports of the target port group based on the first value; if the identification information is a second value, perform a modulo operation on the value corresponding to the node identifier of the target node and the number of ports in the target port group to obtain a second value, and determine the target port from multiple ports of the target port group based on the second value.
[0115] In some possible implementations, the identification information is configured to the first value in the case of out-of-order transmission, and the identification information is configured to the second value in the case of order-preserving transmission.
[0116] In some possible implementations, the processing node includes a graphics processor, the switching device stores the type of the graphics processor and the memory size of the graphics processor, and the destination address is a global physical address; the port routing module 31 is specifically used to: perform mapping processing on the global physical address, the type of the graphics processor and the memory size of the graphics processor according to a preset mapping method to obtain the target node.
[0117] In some possible implementations, the port routing module receives and stores the primary routing table and the secondary routing table, wherein the primary routing table and the secondary routing table are generated based on the hardware connection relationship between the plurality of processing nodes and the switching device.
[0118] In some possible implementations, the port routing module receives the updated first port group and updates the updated first port group to the secondary routing table, wherein the first port group is the port group among the plurality of port groups that has experienced port failure, and the updated first port group does not include the failed ports.
[0119] In some possible implementations, the port routing module receives the updated second port group and updates the updated second port group to the secondary routing table, wherein the updated second port group contains newly added ports.
[0120] Figure 4 This is a schematic diagram of a switching device provided according to an embodiment of this disclosure. (Refer to...) Figure 4 The switching device includes 16 ports, an on-chip network (NOC), and a routing management module (Fabric Manager). The 16 ports are designated as Port1 to Port16 (only a portion of the ports are shown in the diagram), and each port includes a port routing module and a path scheduling module.
[0121] The processing system includes four processing nodes, identified as GPU1, GPU2, GPU3, and GPU4. The switching devices in the processing system have 16 ports, numbered Port1 to Port16. GPU1 is connected to Port1, Port2, Port3, and Port4; GPU2 is connected to Port5, Port6, Port7, and Port8; GPU3 is connected to Port9, Port10, Port11, and Port12; and GPU4 is connected to Port13, Port14, Port15, and Port16. Based on this connection relationship, the software layer of the processing system determines the port mapping rules as follows: PortGroup1 includes Port1, Port2, Port3, and Port4; PortGroup2 includes Port5, Port6, Port7, and Port8; PortGroup3 includes Port9, Port10, Port11, and Port12; PortGroup4 includes Port13, Port14, Port15, and Port16; GPU1 corresponds to PortGroup1; GPU2 corresponds to PortGroup2; GPU3 corresponds to PortGroup3; and GPU4 corresponds to PortGroup4.
[0122] The primary and secondary routing tables generated by the routing management module of the switching device based on the port mapping rules sent by the software layer are shown below.
[0123] First-level routing table:
[0124] {GPU1, PortGroup1}
[0125] {GPU2, PortGroup2}
[0126] {GPU3, PortGroup3}
[0127] {GPU4, PortGroup4}
[0128] The secondary routing table is as follows:
[0129] {PortGroup1, {Port1, Port2, Port3, Port4}}
[0130] {PortGroup2, {Port5, Port6, Port7, Port8}}
[0131] {PortGroup3, {Port9, Port10, Port11, Port12}}
[0132] {PortGroup4, {Port13, Port14, Port15, Port16}}
[0133] The routing management module of the switching device sends the above-mentioned primary routing table and secondary routing table to each port of the switching device. The port routing module of each port receives and stores the primary routing table and secondary routing table.
[0134] The following is combined Figure 4 Taking the sending of data from processing node GPU1 to processing node GPU3 as an example, the data transmission method of this embodiment of the disclosure will be described by way of example.
[0135] After the processing node GPU1 generates a data packet (carrying the destination address 0x4000), it sends the data packet to Port1. After receiving the data packet to be sent, Port1's port routing module extracts the destination address 0x4000 from the data packet, and maps the type and memory size of the destination address 0x4000, GPU1, GPU2, GPU3, and GPU4 according to the type and memory size of GPU1, GPU2, GPU3, and GPU4 stored in the switching device, using the above formula (1), and the target node is the processing node GPU3.
[0136] Then, the port routing module of Port1 uses GPU3 as an index to query the first-level routing table and obtains the target port group as PortGroup3; using PortGroup3 as an index, it queries the second-level routing table and obtains the ports in PortGroup3: Port9, Port10, Port11, and Port12.
[0137] The identifier information in the port routing module of Port1 is configured with the first value. The port routing module of Port1 enables a hash mechanism, performing a hash operation on the destination address 0x4000 to obtain the first value 1. Then, among the ports in PortGroup3 (Port9, Port10, Port11, and Port12, with Port9 being the 0th position), the port corresponding to the first value 1, i.e., the 1st position port, Port10, is determined as the destination port. Each time a data packet is transmitted, the destination address is different; the first value obtained through the hash operation will be mapped to one of the four ports (Port9, Port10, Port11, and Port12), thus achieving traffic balancing on the ports.
[0138] Next, the port routing module of Port1 sends the target port (Port10) to the path invocation module of Port1. The path invocation module of Port1 converts the identifier of the target port into a slave node identifier (Slave_id=0x0a) and selects the NOC path based on the slave node identifier (Slave_id=0x0a), sending the data packet to Port10. The data packet arrives at the processing node GPU3 through Port10, completing the data transmission.
[0139] It should be noted that, for ease of understanding the data transmission process, Figure 4 Data transfer direction is from left to right, and the GPUs and ports on both the left and right sides are identical. Furthermore, Figure 4 Each port in the system is equipped with a port routing module and a path calling module. In some embodiments, multiple ports or all ports may share a single port routing module and path calling module. This disclosure does not impose any restrictions on this.
[0140] According to the data transmission method of this disclosure, the switching device in the processing system includes a port routing module and a path scheduling module. The port routing module stores two levels of routing tables: a primary routing table representing the correspondence between processing nodes and port groups, and a secondary routing table representing the ports included in each port group. Therefore, in the embodiments of this disclosure, each processing node corresponds to multiple ports in a port group, rather than being bound to a fixed port. When the switching device receives a data packet to be sent, it can determine the target node based on the destination address of the data packet through the port routing module. Then, by querying the primary and secondary routing tables, it determines the target port group corresponding to the target node and the multiple ports included in the target port group, and determines the target port from the multiple ports in the target port group. Then, the path scheduling module transmits the data packet to the target port. Based on this, when multiple processing nodes transmit data packets to the target node simultaneously, since their destination addresses to the target node are different, the target ports determined based on the destination addresses may be different. This allows multiple data packets destined for the target node to be distributed to multiple ports in the target port group corresponding to the target node for transmission, achieving traffic load balancing of the switching device and reducing the risk of bandwidth bottlenecks, data packet loss, and other problems.
[0141] Figure 5 This is a block diagram of an electronic device provided in an embodiment of the present disclosure.
[0142] Reference Figure 5 This disclosure provides an electronic device, which includes: at least one processor 701; at least one memory 702; and one or more I / O interfaces 703 connected between the processor 701 and the memory 702; wherein the memory 702 stores one or more computer programs that can be executed by the at least one processor 701, and the one or more computer programs are executed by the at least one processor 701 to enable the at least one processor 701 to perform the above-described data transmission method.
[0143] This disclosure also provides a computer-readable storage medium storing a computer program thereon, wherein the computer program, when executed by a processor, implements the aforementioned data transmission method. The computer-readable storage medium may be volatile or non-volatile.
[0144] This disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, wherein when the computer-readable code is run in a processor of an electronic device, the processor in the electronic device executes the above-described data transmission method.
[0145] Those skilled in the art will understand that all or some of the steps, systems, and apparatuses disclosed above, and their functional modules / units, can be implemented as software, firmware, hardware, or suitable combinations thereof. In hardware implementations, the division between functional modules / units mentioned above does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed collaboratively by several physical components. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit (ASIC). Such software can be distributed on a computer-readable storage medium, which may include computer storage media (or non-transitory media) and communication media (or transient media).
[0146] As is known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable program instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), static random access memory (SRAM), flash memory or other memory technologies, portable compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible to a computer. Furthermore, it is known to those skilled in the art that communication media typically contain computer-readable program instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.
[0147] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.
[0148] Computer program instructions used to perform the operations of this disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing the status information of the computer-readable program instructions to implement various aspects of this disclosure.
[0149] The computer program product described herein can be implemented specifically through hardware, software, or a combination thereof. In one alternative embodiment, the computer program product is specifically embodied in a computer storage medium; in another alternative embodiment, the computer program product is specifically embodied in a software product, such as a software development kit (SDK), etc.
[0150] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0151] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0152] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0153] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction containing one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those shown in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0154] Example embodiments have been disclosed herein, and while specific terminology has been used, it is for illustrative purposes only and should be construed as such, and is not intended to be limiting. In some instances, it will be apparent to those skilled in the art that features, characteristics, and / or elements described in connection with particular embodiments may be used alone, or in combination with features, characteristics, and / or elements described in connection with other embodiments, unless otherwise expressly indicated. Therefore, those skilled in the art will understand that various changes in form and detail may be made without departing from the scope of this disclosure as set forth by the appended claims.
Claims
1. A data transmission method, characterized by, A switching device is used in a processing system. The switching device includes a port routing module and a path scheduling module. The processing system includes multiple processing nodes, which are interconnected through the switching device. The method includes: The port routing module, upon receiving a data packet to be sent, determines the target node corresponding to the destination address from among the multiple processing nodes based on the destination address of the data packet. The port routing module determines the target port group corresponding to the target node and the multiple ports included in the target port group based on the primary routing table and the secondary routing table in the port routing module; wherein, the primary routing table is used to represent the correspondence between the processing node and the port group, and the secondary routing table is used to represent the ports included in each port group; The target port is determined from multiple ports in the target port group using the port routing module. The path scheduling module transmits the data packet to the target port so that the data packet reaches the target node through the target port.
2. The method of claim 1, wherein, The step of determining the target port from multiple ports in the target port group through the port routing module includes: Obtain the identification information from the port routing module; If the identification information is a first value, perform a hash operation on the destination address to obtain a first value, and determine the target port from multiple ports of the target port group based on the first value; When the identification information is the second value, the modulo operation is performed between the value corresponding to the node identifier of the target node and the number of ports in the target port group to obtain the second value, and the target port is determined from the multiple ports of the target port group based on the second value.
3. The method of claim 2, wherein, In the case of out-of-order transmission, the identification information is configured to the first value; in the case of order-preserving transmission, the identification information is configured to the second value.
4. The method of claim 1, wherein, The processing node includes a graphics processor, the switching device stores the type of the graphics processor and the memory size of the graphics processor, and the destination address is a global physical address; The step of determining the target node corresponding to the destination address from the plurality of processing nodes based on the destination address of the data packet includes: According to a preset mapping method, the global physical address, the type of the graphics processor, and the memory size of the graphics processor are mapped to obtain the target node.
5. The method of claim 1, wherein, The port routing module receives and stores the primary routing table and the secondary routing table, wherein the primary routing table and the secondary routing table are generated based on the hardware connection relationship between the plurality of processing nodes and the switching device.
6. The method of claim 1, wherein, The port routing module receives the updated first port group and updates the updated first port group to the secondary routing table. The first port group is the port group among the plurality of port groups that has experienced port failure. The updated first port group does not include the failed port.
7. The method according to any one of claims 1 to 6, characterized in that, The port routing module receives the updated second port group and updates the updated second port group to the secondary routing table, wherein the updated second port group contains newly added ports.
8. A switching device, characterized by The switching device is used to connect multiple processing nodes in the processing system. The switching device includes a port routing module and a path scheduling module. The port routing module is configured to: upon receiving a data packet to be sent, determine the target node corresponding to the destination address from the plurality of processing nodes based on the destination address of the data packet; determine the target port group corresponding to the target node and the plurality of ports included in the target port group based on the primary routing table and the secondary routing table in the port routing module, wherein the primary routing table is used to characterize the correspondence between processing nodes and port groups, and the secondary routing table is used to characterize the ports included in each port group; and determine the target port from the plurality of ports in the target port group. The path scheduling module is used to: transmit the data packet to the target port so that the data packet reaches the target node through the target port.
9. An electronic device, comprising: include: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores one or more computer programs that can be executed by the at least one processor, and the one or more computer programs are executed by the at least one processor to enable the at least one processor to perform the data transmission method as described in any one of claims 1-7.
10. A computer-readable storage medium having stored thereon a computer program, characterized in that, When the computer program is executed by the processor, it implements the data transmission method as described in any one of claims 1-7.