Data transmission method, system and device, storage medium and program product

By defining the virtual path and preset memory mapping tables through software-defined network controllers, the problem of high data transmission cost between servers is solved, efficient data transmission between different servers is achieved, and transmission delay and cost are reduced.

CN120186086AInactive Publication Date: 2025-06-20INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Application Number
CN202510656428.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-21
Publication Date
2025-06-20
Estimated Expiration
Not applicable · inactive patent

AI Technical Summary

Technical Problem

In the prior art, data transmission costs between servers are relatively high, mainly due to the need for customized hardware equipment and interfaces, as well as customized communication protocols.

Method used

Define virtual paths through software-defined network controllers, build different virtual paths for processors on different servers, and determine the storage location of required data through preset memory mapping tables, thereby achieving efficient data transmission between different servers.

Benefits of technology

Reduce data transmission costs, reduce end-to-end latency by reducing requests and multiple copies of data between host memory and network cards, and realize efficient data transmission between different servers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120186086A_ABST
    Figure CN120186086A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method, system and device, a storage medium and a program product, and relates to the technical field of data processing. Determining a target virtual path by adopting a preset flow table rule according to the address of the first processor and the address of the second processor, sending the target data acquisition request to a memory management unit of the second processor by adopting the target virtual path, and receiving target data sent by the memory management unit of the second processor through the target virtual path, according to the method, a virtual path is defined by software, and direct mapping is carried out through a memory address, so that efficient data transmission among different servers is realized, and the data transmission cost is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the technical field of data processing, and particularly to a data transmission method, system, device, storage medium, and program product. Background Art

[0002] As a key carrier for achieving high-precision and strong generalization ability intelligence, the scale of large artificial intelligence models has shown an explosive growth trend. Artificial intelligence models involve massive data, complex algorithms, and large-scale parallel computing requirements during the training process. To meet this computing demand, the training tasks are usually decomposed and distributed across multiple servers for distributed training.

[0003] Currently, for data transmission between servers, point-to-point communication between servers can be achieved through customized hardware devices and interfaces as well as customized communication protocols, resulting in relatively high data transmission costs. Summary of the Invention

[0004] This application provides a data transmission method, system, device, storage medium, and program product to at least solve the problem of relatively high data transmission costs in related technologies.

[0005] In a first aspect, this application provides a data transmission method, which includes:

[0006] Receiving a target data acquisition request sent by the memory management unit of a first processor; the target data acquisition request includes the address of the first processor and the address of a second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data;

[0007] Determining a target virtual path based on the address of the first processor and the address of the second processor and using a preset flow table rule; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path; the preset flow table rule is sent by a software-defined network controller;

[0008] Sending the target data acquisition request to the memory management unit of the second processor using the target virtual path;

[0009] Receiving the target data sent by the memory management unit of the second processor through the target virtual path and sending it to the memory management unit of the first processor.

[0010] In a second aspect, this application provides a data transmission method, which includes:

[0011] Send a target data acquisition request to the switch. The target data acquisition request includes the address of the first processor and the address of the second processor, so that the switch determines a target virtual path based on the address of the first processor and the address of the second processor and using a preset flow table rule. The target virtual path is used to instruct the switch to send the target data acquisition request to the memory management unit of the second processor; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data;

[0012] Receive the target data sent by the switch; the target data is sent by the memory management unit of the second processor to the switch through the target virtual path.

[0013] In a third aspect, the present application provides a data transmission method, and the method includes:

[0014] Obtain a preset flow table rule;

[0015] Send the preset flow table rule to at least one switch. The preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path, and the preset flow table rule is used to instruct at least one switch to store the preset flow table rule and determine a target virtual path based on the preset flow table rule.

[0016] In a fourth aspect, the present application further provides a data transmission system, and the system includes the memory management unit of the first processor, the memory management unit of the second processor, a switch, and a software-defined network controller;

[0017] The memory management unit of the first processor is used to send a target data acquisition request to the switch; the target data acquisition request includes the address of the first processor and the address of the second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data;

[0018] The software-defined network controller is used to send the preset flow table rule to the switch;

[0019] The switch is used to determine a target virtual path based on the address of the first processor and the address of the second processor and using the preset flow table rule, and send the target data acquisition request to the memory management unit of the second processor using the target virtual path; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path;

[0020] The memory management unit of the second processor is used to send the target data to the switch through the target virtual path;

[0021] The memory management unit of the first processor is further configured to receive the target data sent by the switch.

[0022] In a fifth aspect, the present application further provides an electronic device, including: a memory for storing a computer program; a processor for implementing the steps of the data transmission method provided in the first aspect, the second aspect, or the third aspect when executing the computer program.

[0023] In a sixth aspect, the present application further provides a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by a processor, the steps of the data transmission method provided in the first aspect, the second aspect, or the third aspect are implemented.

[0024] In a seventh aspect, the present application further provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of the data transmission method provided in the first aspect, the second aspect, or the third aspect are implemented.

[0025] Through the data transmission method, system, device, storage medium, and program product provided by the present application, since each server includes multiple processors, when data is transmitted between processors distributed on different servers, a target data acquisition request sent by the memory management unit of the first processor is received, where the target acquisition request includes the address of the first processor and the address of the second processor. A preset memory mapping table is stored in the memory management unit, and the preset memory mapping table includes the storage locations of at least one type of data. The address of the second processor is obtained from the preset memory mapping table stored in the memory management unit. To achieve efficient data transmission between processors, a target virtual path is determined according to the preset flow table rules and based on the address of the first processor and the address of the second processor. Thus, the target data acquisition request can be sent to the memory management unit of the second processor through the target virtual path, and the target data sent by the memory management unit of the second processor through the target virtual path is received and sent to the memory management unit of the first processor. Thus, the address of the second processor storing the target data is determined through the preset memory mapping table, and a software-defined virtual path is adopted to directly map through memory addresses, reducing multiple copies of requests and data between the host memory and the network card, reducing the end-to-end latency, and further realizing efficient data transmission between different servers. It is implemented through general hardware devices, reducing the data transmission cost. Description of the Drawings

[0026] To more clearly illustrate the embodiments of the present application, the following will briefly introduce the drawings required for the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0027] Figure 1 It is a scenario diagram of the data transmission method provided by the embodiment of the present application;

[0028] Figure 2 It is a schematic flowchart of the data transmission method provided by an embodiment of the present application;

[0029] Figure 3 It is a schematic flowchart of the data transmission method provided by another embodiment of the present application;

[0030] Figure 4 It is a schematic flowchart of the data transmission method provided by yet another embodiment of the present application;

[0031] Figure 5 It is a schematic diagram of the data transmission system provided by an embodiment of the present application;

[0032] Figure 6 It is a schematic structural diagram of the first data transmission device provided by an embodiment of the present application;

[0033] Figure 7 It is a schematic structural diagram of the second data transmission device provided by another embodiment of the present application;

[0034] Figure 8 It is a schematic structural diagram of the third data transmission device provided by yet another embodiment of the present application;

[0035] Figure 9 It is a schematic structural diagram of the electronic device provided by an embodiment of the present application. Detailed implementation manners

[0036] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the protection scope of the present application.

[0037] It should be noted that in the description of the present application, the terms "include", "comprise" or any other variant thereof are intended to cover a non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements, but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or device. The terms "first", "second", etc. in the present application are used to distinguish similar objects, rather than to describe a specific order or sequence.

[0038] To enable those skilled in the art of the present technology to better understand the solution of this application, the following further detailed description of this application will be given in conjunction with the accompanying drawings and specific embodiments.

[0039] Artificial intelligence models involve massive amounts of data, complex algorithms, and large-scale parallel computing requirements during the training process. Therefore, by decomposing the training tasks and executing them in parallel on multiple servers, the computing resources of multiple servers can be utilized to improve the training efficiency. Among them, each server includes multiple image processors. To ensure efficient collaborative work among multiple servers, data needs to be transferred at high speed between different servers. Currently, for data transfer between different servers, customized hardware devices, interfaces, and supporting servers are used, and a customized communication protocol is adopted to achieve point-to-point communication between the graphics processors distributed on different servers, resulting in a relatively high cost of data transfer.

[0040] Therefore, when facing the above technical problems, when transferring data between different servers, the software-defined network controller defines virtual paths according to different data transfer requirements, constructs different virtual paths for the processors on different servers, and can determine the storage location of the required data through a preset memory mapping table, thereby realizing efficient data transfer between different servers without additional customized hardware and reducing the data transfer cost. Specifically, since the preset memory mapping table includes the storage locations of at least one type of data, when the switch receives a target data acquisition request sent by the memory management unit of the first processor, the switch can determine the target virtual path according to the address of the first processor and the address of the second processor and by using the preset flow table rules sent by the software-defined network controller. The address of the second processor is obtained from the preset memory mapping table stored in the memory management unit, and the preset flow table rules include the mapping relationship between each processor address and the corresponding virtual path. After determining the target virtual path, the target data acquisition request can be sent to the memory management unit of the second processor by using the target virtual path. Further, the target data sent by the memory management unit of the second processor through the target virtual path is received and sent to the memory management unit of the first processor. Compared with the need for additional customized hardware, the virtual path is defined by software and can be implemented by reusing general network devices, thereby reducing the data transfer cost.

[0041] Figure 1 It is an application scenario diagram of the data transfer method provided by the embodiment of this application. As Figure 1As shown in the figure, the application scenario provided in this embodiment includes: a server 10, a memory management unit 110 of a first processor, a memory management unit 120 of a second processor, a switch 20, and a software-defined network controller 30. The data transmission method is applied to the switch 20. The server 10 includes a memory management unit 11 of the first processor and a memory management unit 12 of the second processor. The first processor and the second processor are located in different servers 10. Exemplarily, the server 10 includes a server A 11 and a server B 12. The first processor is located in the server A 11, and the second processor is located in the server B 12. That is, the memory management unit 110 of the first processor is located in the server A 11, and the memory management unit 120 of the second processor is located in the server B 12. The switch 20 receives a target data acquisition request sent by the memory management unit 110 of the first processor. The target data acquisition request includes the address of the first processor and the address of the second processor. The address of the second processor is obtained from a preset memory mapping table stored in the memory management unit. The preset memory mapping table includes the storage locations of at least one type of data. The switch 20 can determine a target virtual path according to the preset flow table rules sent by the software-defined network controller 30 and based on the address of the first processor and the address of the second processor, and send the target data acquisition request to the memory management unit 120 of the second processor by using the target virtual path. The preset flow table rules include the mapping relationship between each processor address and the corresponding virtual path. Further, the switch 20 receives the target data sent by the memory management unit 120 of the second processor through the target virtual path, and after receiving the target data, sends the target data to the memory management unit 110 of the first processor.

[0042] Figure 2 It is a schematic flowchart of the data transmission method provided in an embodiment of the present application. As Figure 2 shown. The data transmission method provided in this embodiment is applied to the switch. The data transmission method provided in this embodiment specifically includes the following steps:

[0043] S201: Receive a target data acquisition request sent by the memory management unit of the first processor.

[0044] The target data acquisition request includes the address of the first processor and the address of the second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data; the first processor and the second processor are located in different servers.

[0045] It can be understood that each processor has a corresponding unit, the memory management unit.

[0046] Among them, the processor can be a Graphics Processing Unit (GPU). A graphics processing unit is a processor designed specifically for parallel computing.

[0047] Among them, the first processor is the processor for obtaining target data. The second processor is the processor for storing target data. The target data is the data to be obtained.

[0048] Optionally, the memory management unit of each processor can be implemented through a process or in other ways, which is not limited in this embodiment.

[0049] Optionally, the memory management unit has functions such as storing a preset memory mapping table, receiving data, and sending requests, which is not limited in this embodiment.

[0050] Specifically, in this embodiment, the switch receives a target data acquisition request sent by the memory management unit of the first processor.

[0051] S202: Determine a target virtual path based on the address of the first processor and the address of the second processor and using a preset flow table rule.

[0052] Among them, the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path; the preset flow table rule is sent by a software-defined network controller.

[0053] Among them, the target virtual path is a virtual path determined based on the address of the first processor and the address of the second processor.

[0054] Among them, the flow table rule is the core mechanism for interaction between the control plane and the data plane in a software-defined network controller. It specifies corresponding processing actions (such as forwarding, discarding, modifying, etc.) by matching specific fields of data packets to achieve flexible network traffic control.

[0055] Optionally, the specific field of the data packet can be the source Internet Protocol address, the destination Internet Protocol address, the port number, etc., which is not limited in this embodiment.

[0056] It can be understood that the forwarding rule is stored in the flow table rule, which determines how to process the data packet.

[0057] It can be understood that the virtual path refers to a logically independent communication path that allows data to be transmitted in the network according to a predetermined rule without having to strictly follow the physical network topology.

[0058] Specifically, in this embodiment, the processor determines the target virtual path corresponding to the address of the first processor and the address of the second processor by matching in the preset flow table rule according to the address of the first processor and the address of the second processor.

[0059] S203: Send the target data acquisition request to the memory management unit of the second processor using the target virtual path.

[0060] Specifically, in this embodiment, the processor executes the forwarding action matched in the preset flow table rule based on the addresses of the first processor and the second processor, puts the target data acquisition request into a preset queue, forwards it using a preset port, and sends the target data acquisition request to the memory management unit of the second processor.

[0061] Exemplarily, the forwarding action matched by the switch in the preset flow table rule based on the addresses of the first processor and the second processor is a high-priority action. Among them, the high-priority action includes setting queue 0 (low-latency queue) and forwarding from port 2. Therefore, the switch puts the target data acquisition request into queue 0 and forwards the target data acquisition request through port 2.

[0062] S204: Receive the target data sent by the memory management unit of the second processor through the target virtual path and send it to the memory management unit of the first processor.

[0063] Among them, the target data is the data to be acquired by the first processor.

[0064] Specifically, in this embodiment, the switch receives the target data sent by the memory management unit of the second processor through the target virtual path, performs preset processing on the target data, and then sends the target data to the memory management unit of the first processor through a preset port.

[0065] Optionally, the preset processing can be decapsulation, etc., which is not limited in this embodiment.

[0066] It can be understood that the preset port changes according to different scenarios.

[0067] Optionally, the preset port can be set independently, which is not limited in this embodiment.

[0068] Specifically, since each server includes multiple processors, when data is transmitted between processors distributed on different servers, the memory management unit of the first processor receives a target data acquisition request. The target acquisition request includes the address of the first processor and the address of the second processor. A preset memory mapping table is stored in the memory management unit, and the preset memory mapping table includes the storage locations of at least one type of data. The address of the second processor is obtained from the preset memory mapping table stored in the memory management unit. To achieve efficient data transmission between processors, a target virtual path is determined according to the preset flow table rules and based on the addresses of the first processor and the second processor. Thus, the target data acquisition request can be sent to the memory management unit of the second processor using the target virtual path, and the target data sent by the memory management unit of the second processor through the target virtual path is received and sent to the memory management unit of the first processor. Thus, the address of the second processor storing the target data is determined through the preset memory mapping table, and the software-defined virtual path is used to directly map through the memory address, reducing multiple copies of requests and data between the host memory and the network card, reducing the end-to-end latency, and further achieving efficient data transmission between different servers, which is implemented through general hardware devices and reduces the data transmission cost.

[0069] As an alternative implementation, based on the address of the first processor and the address of the second processor and using the preset flow table rules to determine the target virtual path, it includes:

[0070] Query in the preset flow table rules for the virtual path in which the addresses of the first processor and the second processor have a mapping relationship;

[0071] Determine the virtual path with the mapping relationship as the target virtual path.

[0072] It can be understood that the virtual path is a logically end-to-end transmission channel, which is used to provide flexible service isolation and traffic scheduling capabilities.

[0073] It can be understood that the preset flow table rules include the mapping relationships between the addresses of each processor and the corresponding virtual paths. After performing a preset specific field matching, the corresponding actions can be obtained.

[0074] Specifically, in this embodiment, the switch searches in the preset flow table rules according to the address of the first processor and the address of the second processor, determines the flow table entry in the flow table rules that has the same addresses of the first processor and the second processor, thereby obtaining the corresponding virtual path, and determines the virtual path as the target virtual path.

[0075] Specifically, by using preset flow table rules, path decision-making is transformed into a simple table query, avoiding real-time computing overhead, and the address can be bound to the corresponding path through the flow table rules, enabling service differentiation based on services and thus avoiding single-link congestion.

[0076] As an alternative implementation, based on any of the above embodiments, the target virtual path has a unique path identifier;

[0077] Sending the target data acquisition request to the memory management unit of the second processor by using the target virtual path includes:

[0078] Encapsulating the target data acquisition request based on the unique path identifier and using a preset virtual path encapsulation technology to obtain the encapsulated target data acquisition request;

[0079] Sending the encapsulated target data acquisition request to the memory management unit of the second processor by using the target virtual path.

[0080] Among them, the target virtual path has a unique path identifier. The path identifier is used to uniquely identify the virtual path, which can be a path identification code, etc., and is not limited in this embodiment.

[0081] Specifically, in this embodiment, the switch adds a new header to the outside of the data packet corresponding to the target data acquisition request by using a preset virtual path encapsulation technology, which includes the unique path identifier of the target virtual path, and adds an outer address header for specifying the start and end points of the target virtual path, so as to obtain the encapsulated target data acquisition request. The switch puts the encapsulated target data acquisition request into a preset queue, forwards it through a preset port, and sends the encapsulated target data acquisition request to the memory management unit of the second processor.

[0082] Optionally, the preset virtual path encapsulation technology can be Virtual Extensible Local Area Network (VXLAN), Network Virtualization using Generic Routing Encapsulation (NVGRE) technology, etc., and is not limited in this embodiment.

[0083] Among them, the core idea of network virtualization based on generic routing encapsulation is to encapsulate virtual network traffic into a generic routing encapsulation tunnel, and then de-encapsulate it after transmission through the physical network, realizing the decoupling of the logical network and the physical network. Virtual Extensible Local Area Network is a tunnel encapsulation technology that extends the traditional layer 2 broadcast domain to a large-scale virtual network spanning layer 3 physical networks by encapsulating a header outside the original Ethernet frame.

[0084] It is understandable that when the preset virtual path encapsulation technology is adopted, virtual tunnel endpoints will be deployed on the switch to be responsible for corresponding encapsulation and decapsulation of traffic.

[0085] It is understandable that according to the different preset virtual path encapsulation technologies selected, the encapsulation methods and processes may be different, and the target data acquisition request is encapsulated according to the selected preset virtual path encapsulation technology.

[0086] Specifically, during the data transmission of the target data acquisition request, the source address is the address of the first processor, and the destination address is the address of the second processor.

[0087] Exemplarily, the switch queries in the preset flow table rules according to the source address being the address of the first processor and the destination address being the address of the second processor. It is found that the action corresponding to the source address being the address of the first processor and the destination address being the address of the second processor is to allocate a virtual path with a path identification information of 1234. Therefore, the virtual path with a path identification information of 1234 is used as the target virtual path.

[0088] It is understandable that the path identification information of 1234 is the unique path identification information of the virtual path.

[0089] Among them, during the data transmission of the target data, the destination address is the address of the first processor, and the source address is the address of the second processor.

[0090] Specifically, if a symmetric path is adopted between the first processor and the second processor, when sending the target data acquisition request and the target data in response to the target data acquisition request, the unique path identification of the virtual path adopted is the same, so as to ensure the consistency of the paths of the round-trip traffic.

[0091] Optionally, if an asymmetric path is adopted between the first processor and the second processor, when sending the target data acquisition request and the target data in response to the target data acquisition request, the unique path identification of the virtual path adopted may be different, so as to ensure the consistency of the paths of the round-trip traffic.

[0092] Specifically, by encapsulating the virtual path through the unique path identification, the accuracy of the virtual path for data transmission between different processors can be ensured, and different services can be logically isolated through the unique virtual path identification, so as to share the physical network without bandwidth contention.

[0093] As an optional implementation manner, on the basis of any of the above embodiments, the preset flow table rules include a queue corresponding to the target virtual path;

[0094] Sending the encapsulated target data acquisition request to the memory management unit of the second processor using the target virtual path, including:

[0095] Determining the corresponding queue of the target virtual path; the queue includes a preset scheduling policy;

[0096] Sending the encapsulated target data acquisition request to the memory management unit of the second processor through the target virtual path based on the preset scheduling policy.

[0097] Wherein, the queue is a hardware or software cache structure inside a network device (such as a switch or a router) for managing the transmission of data packets.

[0098] Wherein, the preset scheduling policy includes a preset priority and a preset bandwidth corresponding to the target virtual path;

[0099] Optionally, the preset scheduling policy can be set independently according to requirements, and is not limited in this embodiment.

[0100] Specifically, in this embodiment, the switch determines the queue corresponding to the target data acquisition request according to the preset flow table rules, then allocates the target data acquisition request to the corresponding queue, and sends the target data acquisition request to the memory management unit of the second processor at the transmission rate of the preset bandwidth and according to the preset priority.

[0101] Exemplarily, assume that the preset priority of queue 1 is 7, the bandwidth is 50 Gbps, and the virtual path is 5001. The switch matches the preset flow table rules, determines that the queue corresponding to the target virtual path is 1, and the priority of queue 1 is the highest priority, which is superior to other queues. Therefore, the data in queue 1 is sent first. Therefore, the switch allocates the target data acquisition request to queue 1, schedules it according to the priority 7 and the 50 Gbps bandwidth, and sends the target data acquisition request from the preset port to the memory management unit of the second processor at a rate of 50 Gbps.

[0102] Wherein, in distributed model training, a high priority can be set for parameter synchronization between different processors, and a low priority can be set for log upload.

[0103] Specifically, through the preset queues and scheduling policies, different virtual paths with different bandwidths and priorities can be created for each processor according to different scenarios and data transmission requirements, breaking through physical limitations, so as to realize the reasonable allocation of network resources, and further improve the service quality. And the flow table rules can be dynamically adjusted according to the network state to enhance the flexibility of the system.

[0104] As an alternative implementation manner, on the basis of any of the above embodiments, the preset flow table rules further include the physical path corresponding to the virtual path, and the method further includes:

[0105] Send real-time status information to the software-defined network controller. The real-time status information is used to represent the network status of each network node and is used to instruct the software-defined network controller to determine whether the physical path corresponding to the target virtual path needs to be updated.

[0106] Receive the updated preset flow table rules sent by the software-defined network controller. The updated preset flow table rules are generated when the software-defined network controller determines that the physical path corresponding to the target virtual path needs to be updated.

[0107] Store the updated preset flow table rules and execute the step of determining the target virtual path based on the addresses of the first processor and the second processor using the updated preset flow table rules.

[0108] Among them, the real-time status information is the real-time status information of each switch and is used to represent the network status of each network node.

[0109] Optionally, the real-time status information may include information such as delay time and fault condition, which is not limited in this embodiment.

[0110] It can be understood that the physical path is the actual hardware path for data packet transmission.

[0111] Specifically, in this embodiment, the switch sends the real-time status information to the software-defined network controller so that the software-defined network controller can determine whether the physical path corresponding to the target virtual path needs to be updated. When the software-defined network controller determines that the physical path corresponding to the target virtual path needs to be updated and generates the updated preset flow table rules, the switch receives the updated preset flow table rules sent by the software-defined network controller through the OpenFlow protocol, saves the updated preset flow table rules, and then receives the use of the updated preset flow table rules to determine the target virtual path according to the addresses of the first processor and the second processor.

[0112] It can be understood that the virtual path is bound to the physical path through the preset flow table rules. If there is a fault in the physical path, the physical path corresponding to the virtual path can be updated, thereby ensuring the stability of data transmission.

[0113] Specifically, by sending the real-time status information to the software-defined network controller, the software-defined network controller can perceive the network status and link quality and determine whether to update the preset flow table rules. By receiving the updated preset flow table rules and using the updated preset flow table rules for data transmission, the stability and accuracy of data transmission can be ensured.

[0114] As an alternative implementation, based on any of the above embodiments, after receiving the target data sent by the memory management unit of the second processor through the target virtual path, it further includes:

[0115] Unencapsulate the target data using a preset virtual path encapsulation technology to obtain the unencapsulated target data; the target data is data generated by the second processor for model training; the target data is used to synchronize data between the first processor and the second processor;

[0116] Send it to the memory management unit of the first processor, including:

[0117] Send the unencapsulated target data to the memory management unit of the first processor.

[0118] Specifically, in this embodiment, the switch strips the unique path identifier, address header, etc. of the outer virtual path of the acquired target data using a preset virtual path encapsulation technology, thereby realizing the decapsulation of the target data, obtaining the target address of the inner layer data from the decapsulated target data, that is, the address of the first processor, and determining the corresponding port through a preset flow table rule. The switch sends the decapsulated target data to the memory management unit of the first processor through the corresponding port.

[0119] Exemplarily, the first processor and the second processor are distributed between different servers and are used for distributed model training, responsible for different training tasks, but need to synchronize data. The second processor generates target data, and the first processor needs to synchronize the target data. Therefore, the second processor sends the target data to the switch through the target virtual path. When the switch sends it through the target virtual path, the switch is configured as a tunnel endpoint and serves as the tunnel start point for sending the target data, and encapsulates the target data. Therefore, after the switch, which is configured as a tunnel endpoint and serves as the tunnel end point for sending the target data, receives the target data, it decapsulates the target data and sends the decapsulated target data to the first processor.

[0120] Specifically, through the virtual path encapsulation and decapsulation mechanism, it can ensure the reliable transmission of data between heterogeneous devices and maintain format consistency and integrity.

[0121] Figure 3 It is a schematic flowchart of the data transmission method provided by another embodiment of the present application, as Figure 3 shown. The data transmission method provided in this embodiment is applied to the memory management unit. The data transmission method provided in this embodiment specifically includes the following steps:

[0122] S301: Send a target data acquisition request to the switch. The target data acquisition request includes the addresses of the first processor and the second processor, so that the switch determines the target virtual path based on the addresses of the first processor and the second processor and using a preset flow table rule.

[0123] Among them, the target virtual path is used to instruct the switch to send the target data acquisition request to the memory management unit of the second processor; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit. The preset memory mapping table includes the storage locations of at least one type of data.

[0124] It can be understood that the preset memory mapping table is preset. Among them, the preset memory mapping table includes the storage locations of various types of data. The preset memory mapping table includes the locations and states of each graphics processor.

[0125] Among them, when a graphics processor needs to access data in the memory of other graphics processors, it can obtain the location information of the data to be accessed through the preset memory mapping table and directly access it without data copying.

[0126] Optionally, the storage locations of each data can be located in different processors on the same server, or in different processors on different servers, etc., which are not limited in this embodiment.

[0127] Optionally, the structure of the preset memory mapping table can be implemented in the form of a hash table or a tree structure, etc., and can be set independently, which is not limited in this embodiment.

[0128] Exemplarily, if the structure of the preset memory mapping table is a hash table, the unique identifier of the data can be used as the key, and the location and state of the data can be used as the value. The hash value can be calculated through a preset hash function to quickly locate the storage location of the data.

[0129] Exemplarily, if the structure of the preset memory mapping table is a tree structure, it can be a balanced binary tree or a B-tree, sorted according to the address range of the data for query.

[0130] Among them, a balanced binary tree is a special binary search tree. A B-tree is a self-balancing tree data structure.

[0131] Specifically, in this embodiment, the memory management unit of the first processor obtains the target data acquisition request of the first processor, queries the storage location of the target data through the stored preset memory mapping table, thereby obtains the address of the second processor, and then generates a corresponding target data acquisition request according to the address of the first processor and the address of the second processor, and sends it to the switch, so that the switch can determine the target virtual path according to the first processor address, the second processor address included in the target data acquisition request, and the preset flow table rule.

[0132] S302: Receive the target data sent by the switch.

[0133] Among them, the target data is sent by the memory management unit of the second processor to the switch through the target virtual path.

[0134] Specifically, in this embodiment, the memory management unit of the first processor receives the target data sent by the switch.

[0135] Specifically, by determining the storage address of the target data through the memory management unit, the target data can be quickly obtained, and the data transmission time can be reduced.

[0136] As an alternative embodiment, on the basis of the above embodiment, it further includes:

[0137] Obtain the target data update status information;

[0138] Broadcast the target data update status information, and update the preset memory mapping table based on the target data update status information.

[0139] Among them, the target data update status information is used to indicate the storage status of the target data, and the latest storage location of the target data is included in the target data update status information.

[0140] Specifically, in this embodiment, after the memory management unit of the first processor obtains the target data, the first processor updates according to the target data, and uses the address of the first processor as the latest storage address of the target data. Therefore, the first processor sends the target data update status information to the memory management unit of the first processor. After the memory management unit of the first processor obtains the target data update status information, it broadcasts to the memory management units on other processors. The memory management units of other processors and the memory management unit of the first processor update the preset memory mapping table stored in the memory management unit according to the target data update status information, and update the latest storage location of the target data in the preset memory mapping table.

[0141] Specifically, when the target data update status information is obtained, through the broadcast mechanism, the target data update status can be quickly propagated to the memory management unit of each processor, ensuring that the memory management unit of each processor can synchronously and in real-time know the change in the storage location of the target data.

[0142] Figure 4 It is a schematic flowchart of a data transmission method provided in another embodiment of the present application, as Figure 4 shown. The data transmission method provided in this embodiment is applied to a software-defined network controller. The data transmission method provided in this embodiment specifically includes the following steps:

[0143] S401: Obtain a preset flow table rule;

[0144] Specifically, in this embodiment, the software-defined network controller obtains the preset flow table rule from a preset database.

[0145] Optionally, the preset flow table rule can be set independently according to requirements, and is not limited in this embodiment.

[0146] S402: Send the preset flow table rule to at least one switch. The preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path, and the preset flow table rule is used to instruct at least one switch to store the preset flow table rule and determine the target virtual path based on the preset flow table rule.

[0147] Specifically, in this embodiment, the software-defined network controller distributes the flow table rule to the switch through the OpenFlow protocol.

[0148] Among them, the OpenFlow protocol is a communication protocol that allows the software-defined network controller to directly interact with the switch supporting the OpenFlow protocol, so as to control the forwarding behavior of network data packets.

[0149] It can be understood that the switch supports the OpenFlow protocol.

[0150] Specifically, by uniformly managing the preset flow table rule through the software-defined network controller, when the network topology or service changes, a new preset flow table rule can be re-distributed, so as to realize the dynamic adjustment of the network. Moreover, the mapping relationship between the processor address and the virtual path is included in the preset flow table rule, so that the forwarding path of each data packet can be precisely controlled. Designed based on the standard OpenFlow protocol, it can be applied to various types of switches, thereby improving system compatibility and having strong expansion ability.

[0151] As an optional implementation manner, on the basis of the above embodiment, the preset flow table rule includes the physical path corresponding to the target virtual path;

[0152] The method further includes:

[0153] During the target data transmission, obtaining real-time status information sent by at least one network node; the network nodes include switches and processors;

[0154] Determining whether the physical path corresponding to the target virtual path needs to be updated based on the real-time status information sent by at least one network node;

[0155] If the physical path corresponding to the target virtual path needs to be updated, generating a new physical path;

[0156] Updating the preset flow table rules based on the new physical path, and sending the updated preset flow table rules to at least one switch.

[0157] Wherein, the real-time status information is used to represent the network status of each network node.

[0158] Wherein, if the network node is a switch, the real-time status information of the switch includes the queue status of the switch.

[0159] Optionally, the real-time status information may include delay time, packet loss rate, etc., which are not limited in this embodiment.

[0160] Specifically, in this embodiment, during the data transmission, the software-defined network controller receives the real-time status information sent by at least one network node, and compares the real-time status information of the current physical path with the preset corresponding threshold. If there is at least one greater than the preset threshold, it is determined that the physical path corresponding to the target virtual path needs to be updated. If all are less than the preset corresponding threshold, it is determined that the physical path corresponding to the target virtual path does not need to be updated. If the physical path corresponding to the target virtual path needs to be updated, the software-defined network controller uses a preset path calculation algorithm to generate a new physical path, updates the preset flow table rules according to the new physical path, and uses the OpenFlow protocol to send the updated preset flow table rules to at least one switch.

[0161] Optionally, the preset path calculation algorithm may be the shortest path first, etc., which are not limited in this embodiment.

[0162] Optionally, in this embodiment, after generating the new physical path, a queuing theory model can be used to evaluate the performance of the generated physical paths respectively, obtain the scores of each physical path, and use the physical path with the highest score among each physical path as the new physical path for updating in the preset flow table rules.

[0163] Specifically, obtain the real-time status information of each network node. The real-time status information may include the arrival rate, queue capacity, and service rate. Input the real-time status information into the queuing theory model to calculate the system utilization rate, average queuing delay, and congestion probability, and perform weighted summation of the calculated system utilization rate, average queuing delay, and congestion probability according to a preset probability, so as to obtain the score of each physical path.

[0164] Among them, the arrival rate is the number of data packets arriving per unit time, the service rate is the theoretical processing capacity of the link, which can be calculated by dividing the bandwidth by the average packet size, and the queue capacity is the upper limit of the switch cache. The system utilization rate reflects the link load and can be calculated by dividing the arrival rate by the service rate. The average queuing delay is the waiting time of the data packet, and the congestion probability is used to predict the possibility of queue overflow.

[0165] Optionally, the weights can be set independently and are not limited in this embodiment.

[0166] It can be understood that each virtual path can map at least one physical path, which is divided into a primary path and a backup path. When the utilization rate of the primary path is too high or a failure occurs, the physical path with the highest score can be determined as the new physical path by performing performance scoring on multiple physical paths.

[0167] Specifically, by obtaining the real-time status information sent by the network node in real time, the software-defined network controller can timely detect situations such as link congestion or node overload, and dynamically select the optimal path according to the situation of the physical path, improve resource utilization rate and ensure load balance, thereby improving the user experience and service quality.

[0168] As an alternative implementation manner, based on the real-time status information sent by at least one network node, on the basis of the above embodiment, determine whether the physical path corresponding to the target virtual path needs to be updated, including:

[0169] Adopt a preset network prediction model and predict the utilization rate of the physical path corresponding to the target virtual path based on the real-time status information sent by at least one network node to obtain the utilization rate of the physical path corresponding to the target virtual path; the utilization rate of the physical path corresponding to the target virtual path is the utilization rate within a preset future time period;

[0170] Compare the utilization rate of the physical path corresponding to the target virtual path with a preset utilization rate threshold;

[0171] If the utilization rate of the physical path corresponding to the target virtual path is less than the preset utilization rate threshold, it is determined that the physical path corresponding to the target virtual path does not need to be updated;

[0172] If the utilization rate of the physical path corresponding to the target virtual path is greater than or equal to the preset utilization rate threshold, it is determined that the physical path corresponding to the target virtual path needs to be updated.

[0173] Among them, the utilization rate of the physical path refers to the bandwidth utilization rate of the physical link, that is, the percentage of the actual data transmission rate of the link to its maximum theoretical bandwidth capacity, which can be used to reflect the busyness of network resources. The utilization rate within a future preset time period is the bandwidth usage of the physical path within the future preset time period.

[0174] Optionally, the preset time period can be 5 seconds, etc., and can also be set independently according to requirements, which is not limited in this embodiment.

[0175] Among them, the preset network prediction model is a pre-trained network prediction model, which is used to predict the utilization rate of the physical path within a future preset time period of the physical path.

[0176] Specifically, the software-defined network controller receives the real-time status information sent by the network nodes, denoises and normalizes the received real-time status information of each node, and performs time alignment, so as to form continuous time-series status data. Among them, the real-time status information may include historical bandwidth utilization rate, delay time, packet loss rate, etc. Divide the continuous time-series status data into windows of a fixed length to construct the input features of the model. Exemplarily, taking 1 second as the step length, intercept 60 consecutive seconds of data from the time series as a sample, and the 5-second data at the next moment as the label. 60 seconds is the historical window, and 5 seconds is the prediction window. Further, the mean, variance, peak value, etc. can be calculated for each 60-second feature. Take the average value of the bandwidth utilization rate of the prediction window as the label. Construct a data set, where each sample is the statistical feature of a 60-second window, and the label vector is the average bandwidth of the next 5 seconds corresponding to each sample. Divide the data set into a training set, a validation set, and a test set. The training set is used for model parameter learning, the validation set is used for hyperparameter tuning, and the test set is used for final performance evaluation. Input the data set into the preset model for training, and test according to the preset evaluation index. When the preset evaluation index indicates that the model training converges, stop training, so as to obtain the preset network prediction model.

[0177] Optionally, the evaluation index can be the mean absolute error, root mean square error, etc., which is not limited in this embodiment.

[0178] Optionally, the preset model can be a long short-term memory network, a temporal convolutional network, etc., which is not limited in this embodiment.

[0179] Specifically, in this embodiment, the software-defined network controller inputs the real-time status information sent by at least one network node into a preset network prediction model to predict the utilization rate of the physical path, so as to obtain the utilization rate of the physical path corresponding to the target virtual path within a preset future time period, and compares the obtained utilization rate of the physical path corresponding to the target virtual path with a preset utilization rate threshold. If the utilization rate of the physical path corresponding to the target virtual path is less than the preset utilization rate threshold, it indicates that the current physical path can still be used, so the physical path corresponding to the target virtual path does not need to be updated. If the utilization rate of the physical path corresponding to the target virtual path is greater than or equal to the preset utilization rate threshold, it indicates that the future utilization rate of the current physical path is relatively high and needs to be updated.

[0180] Optionally, the preset utilization rate threshold can be set independently according to requirements and is not limited in this embodiment.

[0181] Specifically, by using the preset network prediction model to predict the future utilization rate and comparing the predicted future utilization rate with the preset utilization rate threshold, potential problems of the physical path can be identified in advance, which helps to update the physical path in a timely manner.

[0182] Figure 5 It is a schematic diagram of a data transmission system provided by an embodiment of the present application, as Figure 5 shown. This embodiment also provides a data transmission system, which includes a memory management unit of a first processor, a memory management unit of a second processor, a switch, and a software-defined network controller;

[0183] The memory management unit of the first processor is used to send a target data acquisition request to the switch; the target data acquisition request includes the address of the first processor and the address of the second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data;

[0184] The software-defined network controller is used to send a preset flow table rule to the switch;

[0185] The switch is used to determine a target virtual path based on the address of the first processor and the address of the second processor and by using the preset flow table rule, and to send the target data acquisition request to the memory management unit of the second processor by using the target virtual path; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path;

[0186] The memory management unit of the second processor is used to send target data to the switch through the target virtual path;

[0187] The memory management unit of the first processor is further used to receive the target data sent by the switch.

[0188] Specifically, the software-defined network controller sends preset flow table rules to the switch. Among them, the preset flow table rules include the mapping relationship between each processor address and the corresponding virtual path. When data needs to be transmitted between different processors, first obtain the address of the target data through the preset memory mapping table stored in the memory management unit of the processor that needs to obtain the target data, so that the switch uses the virtual link to send the request for obtaining the target data and receive the response. Different virtual paths are set between different processors.

[0189] Among them, when performing distributed training using multiple servers for parallel computing, the training task can be decomposed and distributed to multiple servers for training. Each server has multiple graphics processors. During the training process, when data is transmitted between processors on different servers, it can be achieved through virtual paths, realizing logical isolation, and different priorities and bandwidths can be set according to different services, thereby achieving fast data transmission, and the path policy can be dynamically adjusted, thereby improving efficient data transmission and improving the model training efficiency.

[0190] It can be understood that the number of switches can be multiple.

[0191] Exemplarily, when performing distributed training using multiple servers for parallel computing, each server has multiple graphics processors. During the data transmission process in training, the software-defined network controller sends preset flow table rules to the switch, and obtains the storage address of the target data according to the memory management unit of the processor. The switch uses the virtual link to send the request for obtaining the target data and receive the response. As Figure 5 shown, there are 4 servers, namely server 1, server 2, server 3, and server 4. Each server has a graphics processor, namely graphics processor 1, graphics processor 2, graphics processor 3, and graphics processor 4. Each server has a memory management unit, namely memory management unit 1, memory management unit 2, memory management unit 3, and memory management unit 4. The software-defined network controller sends preset flow table rules to the switch, and different virtual paths are used for data transmission between different graphics processors. The data transmission between graphics processor 1 and graphics processor 4 uses virtual path 1, the data transmission between graphics processor 1 and graphics processor 2 uses virtual path 2, and the data transmission between graphics processor 3 and graphics processor 4 uses virtual path 3.

[0192] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases the former is a better implementation method.

[0193] Figure 6 The structural schematic diagram of the first data transmission device provided by an embodiment of the present application. As Figure 6 shown, the execution subject of the above data transmission method is the first data transmission device, and the first data transmission device can be implemented by a computer program; it can also be implemented by a medium storing relevant computer programs, such as a USB flash drive and / or an optical disc, etc., or, it can also be implemented by an entity device integrated or installed with relevant computer programs, such as an electronic device, etc. The electronic device can be a computer or a server, etc. If the first data transmission device provided by this embodiment is located in an electronic device, then the first data transmission device 60 provided by this embodiment includes: a first receiving module 61, a determining module 62, and a first sending module 63.

[0194] Specifically, the first receiving module 61 is configured to receive a target data acquisition request sent by the memory management unit of the first processor; the target data acquisition request includes the address of the first processor and the address of the second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data; the first processor and the second processor are located in different servers; the determining module 62 is configured to determine a target virtual path based on the address of the first processor and the address of the second processor and by using a preset flow table rule; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path; the preset flow table rule is sent by a software-defined network controller; the first sending module 63 is configured to send the target data acquisition request to the memory management unit of the second processor by using the target virtual path; the first receiving module 61 is further configured to receive the target data sent by the memory management unit of the second processor through the target virtual path; the first sending module 63 is further configured to send it to the memory management unit of the first processor.

[0195] Optionally, when determining the target virtual path based on the address of the first processor and the address of the second processor and by using a preset flow table rule, the determining module 62 is configured to query in the preset flow table rule for a virtual path having a mapping relationship with the address of the first processor and the address of the second processor; and determine the virtual path having a mapping relationship as the target virtual path.

[0196] Optionally, there is a unique path identifier for the target virtual path.

[0197] Correspondingly, when the first sending module 63 sends the target data acquisition request to the memory management unit of the second processor by using the target virtual path, it is specifically configured to: encapsulate the target data acquisition request based on the unique path identifier and by using a preset virtual path encapsulation technique to obtain the encapsulated target data acquisition request; and send the encapsulated target data acquisition request to the memory management unit of the second processor by using the target virtual path.

[0198] Optionally, the preset flow table rule includes a queue corresponding to the target virtual path.

[0199] Correspondingly, the first sending module 63, when sending the encapsulated target data acquisition request to the memory management unit of the second processor using the target virtual path, is configured to determine the queue corresponding to the target virtual path; the queue includes a preset scheduling policy; the preset scheduling policy includes a preset priority and a preset bandwidth corresponding to the target virtual path; and send the encapsulated target data acquisition request to the memory management unit of the second processor through the target virtual path based on the preset scheduling policy.

[0200] Optionally, the first data transmission device 60 further includes: an execution module.

[0201] Wherein, the preset flow table rule further includes a physical path corresponding to the virtual path.

[0202] Correspondingly, the first sending module 63 is configured to send real-time status information to the software-defined network controller, where the real-time status information is used to represent the network status of each network node, and the real-time status information is used to instruct the software-defined network controller to determine whether the physical path corresponding to the target virtual path needs to be updated; the first receiving module 61 is configured to receive the updated preset flow table rule sent by the software-defined network controller, and the updated preset flow table rule is generated when the software-defined network controller determines that the physical path corresponding to the target virtual path needs to be updated; the execution module is configured to store the updated preset flow table rule and execute the step of determining the target virtual path based on the address of the first processor and the address of the second processor using the updated preset flow table rule.

[0203] Optionally, the first data transmission device 60 further includes: a de-encapsulation module.

[0204] Correspondingly, after receiving the target data sent by the memory management unit of the second processor through the target virtual path, the de-encapsulation module de-encapsulates the target data using the preset virtual path encapsulation technology to obtain the de-encapsulated target data; the target data is data generated by the second processor for model training; the target data is used to synchronize data between the first processor and the second processor. The sending module 63, when sending to the memory management unit of the first processor, is configured to send the de-encapsulated target data to the memory management unit of the first processor.

[0205] For the description of the features in the embodiments corresponding to the first data transmission device, reference can be made to the relevant descriptions in the embodiments corresponding to the data transmission method, which will not be elaborated here one by one.

[0206] Figure 7 This is a schematic structural diagram of a second data transmission device provided in another embodiment of the present application. As Figure 7As shown in the figure, the execution subject of the above data transmission method is the second data transmission device, which can be implemented through a computer program; it can also be implemented through a medium storing relevant computer programs, such as a USB flash drive and / or an optical disc, etc., or it can also be implemented through an entity device integrated or installed with relevant computer programs, such as an electronic device, etc. The electronic device can be a computer or a server, etc. If the second data transmission device provided in this embodiment is located in the electronic device, then the second data transmission device 70 provided in this embodiment includes: a second sending module 71 and a second receiving module 72.

[0207] Specifically, the second sending module 71 is configured to send a target data acquisition request to the switch. The target data acquisition request includes the address of the first processor and the address of the second processor, so that the switch determines a target virtual path based on the address of the first processor and the address of the second processor and by using a preset flow table rule. The target virtual path is used to instruct the switch to send the target data acquisition request to the memory management unit of the second processor; the preset flow table rule includes the mapping relationship between each processor address and the corresponding virtual path; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes the storage locations of at least one type of data; the second receiving module 72 is configured to receive the target data sent by the switch; the target data is sent by the memory management unit of the second processor to the switch through the target virtual path.

[0208] Optionally, the second data transmission device 70 further includes: an acquisition module and an update module.

[0209] Correspondingly, the acquisition module is configured to acquire target data update status information; the target data update status information includes the latest storage location of the target data. The update module is configured to broadcast the target data update status information and update the preset memory mapping table based on the target data update status information.

[0210] Figure 8 This is a schematic structural diagram of a third data transmission device provided in another embodiment of the present application. As Figure 8 shown in the figure, the execution subject of the above data transmission method is the third data transmission device, which can be implemented through a computer program; it can also be implemented through a medium storing relevant computer programs, such as a USB flash drive and / or an optical disc, etc., or it can also be implemented through an entity device integrated or installed with relevant computer programs, such as an electronic device, etc. The electronic device can be a computer or a server, etc. If the third data transmission device provided in this embodiment is located in the electronic device, then the third data transmission device 80 provided in this embodiment includes: an acquisition module 81 and a third sending module 82.

[0211] Specifically, an acquisition module 81 is configured to acquire a preset flow table rule. A third sending module 82 is configured to send the preset flow table rule to at least one switch. The preset flow table rule includes a mapping relationship between each processor address and a corresponding virtual path, and is used to instruct at least one switch to store the preset flow table rule and determine a target virtual path based on the preset flow table rule.

[0212] Optionally, the third data transmission device 80 further includes: a determination module, a generation module, and a sending module.

[0213] Among them, the preset flow table rule includes a physical path corresponding to the target virtual path.

[0214] Correspondingly, the acquisition module 81 is configured to acquire real-time status information sent by at least one network node during the target data transmission process; the network nodes include switches and processors; the real-time status information is used to represent the network status of each network node. The determination module is configured to determine whether the physical path corresponding to the target virtual path needs to be updated based on the real-time status information sent by at least one network node. The generation module is configured to generate a new physical path if the physical path corresponding to the target virtual path needs to be updated. The sending module is configured to update the preset flow table rule based on the new physical path and send the updated preset flow table rule to at least one switch.

[0215] Optionally, when determining whether the physical path corresponding to the target virtual path needs to be updated based on the real-time status information sent by at least one network node, the determination module is configured to adopt a preset network prediction model and predict the utilization rate of the physical path corresponding to the target virtual path based on the real-time status information sent by at least one network node, so as to obtain the utilization rate of the physical path corresponding to the target virtual path; the utilization rate of the physical path corresponding to the target virtual path is the utilization rate within a preset future time period; compare the utilization rate of the physical path corresponding to the target virtual path with a preset utilization rate threshold; if the utilization rate of the physical path corresponding to the target virtual path is less than the preset utilization rate threshold, it is determined that the physical path corresponding to the target virtual path does not need to be updated; if the utilization rate of the physical path corresponding to the target virtual path is greater than or equal to the preset utilization rate threshold, it is determined that the physical path corresponding to the target virtual path needs to be updated.

[0216] Figure 9 This is a schematic structural diagram of an electronic device provided by an embodiment of the present application. As Figure 9 shown, the electronic device 90 provided by the embodiment of the present application includes: a memory 91 and a processor 92.

[0217] A computer program is stored in the memory 91, and the processor 92 is configured to run the computer program to execute the steps in any of the above-mentioned data transmission method embodiments.

[0218] For the specific implementation process of the processor 92, reference may be made to the above method embodiments. Their implementation principles and technical effects are similar, and will not be elaborated here in this embodiment.

[0219] In the above embodiments, it should be understood that the processor may be a central processing unit (Central Processing Unit, abbreviated as CPU), or may also be other general-purpose processors, digital signal processors (Digital Signal Processor, abbreviated as DSP), application specific integrated circuits (Application Specific Integrated Circuit, abbreviated as ASIC), etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The steps of the method disclosed in combination with the application can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules in the processor.

[0220] The memory may include high-speed memory (Random Access Memory, RAM), and may also include non-volatile memory (Non-volatile Memory, NVM), such as at least one disk memory.

[0221] The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the sake of representation, the buses in the drawings of this application are not limited to only one bus or one type of bus.

[0222] The embodiments of the present application also provide a computer-readable storage medium, in which a computer program is stored. Wherein, the computer program is set to execute the steps in any of the above data transmission method embodiments when running.

[0223] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to: USB flash drives, read-only memories (abbreviated as ROM), random access memories (abbreviated as RAM), mobile hard disks, magnetic disks, or optical discs, etc., various media that can store computer programs.

[0224] An embodiment of the present application further provides a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, the steps in any of the above-described data transmission method embodiments are implemented.

[0225] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium. The non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in any of the above-described data transmission method embodiments are implemented.

[0226] Those skilled in the art can further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. To clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described according to functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Skilled professionals can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.

[0227] The above has introduced in detail a data transmission method provided by the present application. Specific examples are used herein to elaborate on the principle and implementation manner of the present application. The description of the above embodiments is only used to help understand the method and its core idea of the present application. It should be noted that for those of ordinary skill in the art in the technical field, without departing from the principle of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.

Claims

1. A data transmission method, characterized in that: The method comprises: receiving a target data acquisition request sent by a memory management unit of a first processor; the target data acquisition request includes an address of the first processor and an address of a second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes a storage location of at least one type of data; the first processor and the second processor are located in different servers; Determine the target virtual path based on the address of the first processor and the address of the second processor and using a preset flow table rule; the preset flow table rule includes a mapping relationship between each processor address and a corresponding virtual path; the preset flow table rule is sent by a software defined network controller; Using the target virtual path to send the target data acquisition request to a memory management unit of the second processor; The target data sent by the memory management unit of the second processor through the target virtual path is received, and the target data is sent to the memory management unit of the first processor.

2. The data transmission method according to claim 1, characterized in that: The determining the target virtual path based on the address of the first processor and the address of the second processor and using a preset flow table rule includes: Searching the preset flow table rule for a virtual path in which the address of the first processor and the address of the second processor have a mapping relationship; The virtual path having the mapping relationship is determined as the target virtual path.

3. The data transmission method according to claim 1, characterized in that: The target virtual path has a unique path identifier; The step of using the target virtual path to send the target data acquisition request to a memory management unit of the second processor includes: Encapsulating the target data acquisition request based on the unique path identifier and using a preset virtual path encapsulation technology to obtain an encapsulated target data acquisition request; The encapsulated target data acquisition request is sent to the memory management unit of the second processor using the target virtual path.

4. The data transmission method according to claim 3, characterized in that: The preset flow table rule includes a queue corresponding to the target virtual path; The step of sending the encapsulated target data acquisition request to the memory management unit of the second processor using the target virtual path includes: Determine a corresponding queue of the target virtual path; the queue includes a preset scheduling strategy; the preset scheduling strategy includes a preset priority and a preset bandwidth corresponding to the target virtual path; The encapsulated target data acquisition request is sent to the memory management unit of the second processor through the target virtual path based on the preset scheduling policy.

5. The data transmission method according to claim 1, characterized in that: The preset flow table rule also includes a physical path corresponding to the virtual path, and the method further includes: Sending real-time status information to the software-defined network controller, where the real-time status information is used to indicate the network status of the network node, and the real-time status information is used to instruct the software-defined network controller to determine whether the physical path corresponding to the target virtual path needs to be updated; Receiving an updated preset flow table rule sent by the software defined network controller, wherein the updated preset flow table rule is generated when the software defined network controller determines that a physical path corresponding to the target virtual path needs to be updated; The updated preset flow table rule is stored, and the updated preset flow table rule is used to execute the step of determining the target virtual path based on the address of the first processor and the address of the second processor.

6. The data transmission method according to any one of claims 1 to 5, characterized in that: After receiving the target data sent by the memory management unit of the second processor through the target virtual path, the method further includes: The target data is decapsulated by using the preset virtual path encapsulation technology to obtain the decapsulated target data; the target data is data generated by the second processor for model training; the target data is used to synchronize data between the first processor and the second processor; The memory management unit sent to the first processor includes: The decapsulated target data is sent to a memory management unit of the first processor.

7. A data transmission method, characterized in that: include: Sending a target data acquisition request to a switch, the target data acquisition request including an address of a first processor and an address of a second processor, so that the switch determines a target virtual path based on the address of the first processor and the address of the second processor and using a preset flow table rule, the target virtual path being used to instruct the switch to send the target data acquisition request to a memory management unit of the second processor; the preset flow table rule including a mapping relationship between each processor address and a corresponding virtual path; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table including a storage location of at least one type of data; Receiving target data sent by the switch; The target data is sent to the switch by the memory management unit of the second processor through a target virtual path.

8. The data transmission method according to claim 7, characterized in that: Also includes: Get target data update status information; The target data update status information includes the latest storage location of the target data; The target data update status information is broadcasted, and the preset memory mapping table is updated based on the target data update status information.

9. A data transmission method, characterized in that: include: Get the preset flow table rules; The preset flow table rule is sent to at least one switch, wherein the preset flow table rule includes a mapping relationship between each processor address and a corresponding virtual path, and the preset flow table rule is used to instruct at least one switch to store the preset flow table rule and determine a target virtual path based on the preset flow table rule.

10. The data transmission method according to claim 9, characterized in that: The preset flow table rule includes a physical path corresponding to the target virtual path; The method further comprises: During the target data transmission process, real-time status information sent by at least one network node is obtained; the network node includes a switch and a processor; the real-time status information is used to indicate the network status of each of the network nodes; Determining whether a physical path corresponding to the target virtual path needs to be updated based on the real-time status information sent by the at least one network node; If the physical path corresponding to the target virtual path needs to be updated, a new physical path is generated; The preset flow table rule is updated based on the new physical path, and the updated preset flow table rule is sent to at least one of the switches.

11. The data transmission method according to claim 10, characterized in that: The determining whether the physical path corresponding to the target virtual path needs to be updated based on the real-time status information sent by the at least one network node includes: A preset network prediction model is used and based on the real-time status information sent by at least one of the network nodes, a usage rate of the physical path corresponding to the target virtual path is predicted to obtain the usage rate of the physical path corresponding to the target virtual path; the usage rate of the physical path corresponding to the target virtual path is the usage rate within a future preset time period; Comparing the usage rate of the physical path corresponding to the target virtual path with a preset usage rate threshold; If the usage rate of the physical path corresponding to the target virtual path is less than the preset usage rate threshold, determining that the physical path corresponding to the target virtual path does not need to be updated; If the usage rate of the physical path corresponding to the target virtual path is greater than or equal to the preset usage rate threshold, it is determined that the physical path corresponding to the target virtual path needs to be updated.

12. A data transmission system, characterized in that: The system includes a memory management unit of a first processor, a memory management unit of a second processor, a switch, and a software defined network controller; The memory management unit of the first processor is used to send a target data acquisition request to the switch; the target data acquisition request includes an address of the first processor and an address of the second processor; the address of the second processor is obtained from a preset memory mapping table stored in the memory management unit; the preset memory mapping table includes a storage location of at least one type of data; The software defined network controller is used to send preset flow table rules to the switch; The switch is used to determine a target virtual path based on the address of the first processor and the address of the second processor and using the preset flow table rule, and to send the target data acquisition request to the memory management unit of the second processor using the target virtual path; the preset flow table rule includes a mapping relationship between each processor address and a corresponding virtual path; The memory management unit of the second processor is used to send target data to the switch through the target virtual path; The memory management unit of the first processor is further configured to receive the target data sent by the switch.

13. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the data transmission method according to claims 1 to 11 when executing the computer program.

14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the data transmission method according to claims 1 to 11.

15. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the data transmission method according to any one of claims 1 to 11 are implemented.

Citation Information

Patent Citations

  • Data transmission and task processing method, device and equipment

    CN111309649A

  • Data transmission system and method, storage medium and electronic equipment

    CN119603342A

  • A data acquisition method, device, equipment and storage medium

    CN119759499A

Cited By

  • Communication route control method, device, medium and product

    CN121396876A