Server, communication control method, communication method, device, medium and product
By dynamically modifying the data routing configuration of the accelerator card in the data center server, transferring data from the congested accelerator card to the uncongested accelerator card, solving the problem of untimely network congestion processing in the prior art, and achieving more efficient data transmission and network resource utilization.
Patent Information
- Application Number
- CN202411735904.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-29
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2044-11-29
AI Technical Summary
When handling data center network congestion, the prior art relies on feedback from the data receiver, resulting in response delays and affects the real-time nature of network congestion processing.
By introducing a substrate management controller and multiple accelerator cards into the server, using dynamic modifications of the data routing configuration, data is transferred from a congested accelerator card to an uncongested accelerator card, and sent directly to the network switch through the accelerator card.
It improves the real-time nature of network congestion processing, avoids the problem of untimely processing caused by feedback delay of data receiver, and maintains the data transmission rate, and even improves data transmission performance.
Smart Images

Figure CN119232657B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of server technology, and in particular to a server, a communication control method, a communication method, a device, a medium and a product. Background Art
[0002] With the development of technologies such as data analysis, high-performance computing, and artificial intelligence, the scale of data centers is gradually increasing. As a facility that processes large amounts of data information, once a data center encounters network congestion, it will lead to packet loss or network failure, which will cause relatively serious impacts. Therefore, how to build a high-performance data center GPUDirect RDMA network has become a core technology that needs to be focused on.
[0003] At present, some technologies use a control method based on the ECN (Explicit Congestion Notification) algorithm to alleviate the network congestion problem in data centers. However, this method relies on the congestion feedback from the data receiving end to the data sending end. Once the feedback from the data receiving end is delayed, the data sending end will not be able to respond in time, affecting the real-time performance of network congestion processing. Summary of the invention
[0004] In view of this, the present disclosure provides a server, a communication control method, a communication method, an electronic device, a computer-readable storage medium, and a computer program product, which can improve the real-time performance of network congestion processing.
[0005] In a first aspect, the present disclosure provides a server, the server comprising:
[0006] Data transmission channel;
[0007] a plurality of accelerator cards connected to the network switch and the data transmission channel, wherein the accelerator cards include data routing configurations, wherein for any of the accelerator cards, when the data routing configuration in the accelerator card is a first data routing configuration pointing to a local location, the accelerator card sends data to the network switch through a local network interface card, and when the data routing configuration in the accelerator card is a second data routing configuration pointing to other target accelerator cards, the accelerator card sends data to the target accelerator card through the data transmission channel, and sends the data to the network switch through the target accelerator card;
[0008] The baseboard management controller is used to connect the network switch and each of the acceleration cards, and to modify the data routing configuration in the acceleration card when a specified condition is met, wherein the initial data routing configuration in each of the acceleration cards is the first data routing configuration.
[0009] In a second aspect, the present disclosure provides a communication control method, which is applied to a baseboard management controller in the above server; the method comprises:
[0010] Receiving a first congestion detection result sent by the network switch;
[0011] If it is determined according to the first congestion detection result that a first accelerator card with data congestion exists in the server, searching for a second accelerator card with no data congestion;
[0012] The first data routing configuration pointing to the local area in the first accelerator card is modified to a second data routing configuration pointing to the second accelerator card, so that the first accelerator card sends the data to be sent to the network switch to the second accelerator card based on the second data routing configuration, and sends the data to the network switch through the second accelerator card.
[0013] In a third aspect, the present disclosure provides a communication method, which is applied to a first accelerator card in the above server, and includes:
[0014] When generating target data to be sent to the network switch, obtaining a local data routing configuration;
[0015] If the data routing configuration is a second data routing configuration pointing to a second acceleration card, it is determined that a data congestion problem occurs locally, and the target data is sent to the second acceleration card, so that the target data is sent to the network switch through the second acceleration card.
[0016] In a fourth aspect, the present disclosure provides a communication control device, which is applied to a baseboard management controller in the above-mentioned server; the device comprises:
[0017] A detection result receiving module, used for receiving a first congestion detection result sent by a network switch;
[0018] an accelerator card state identification module, configured to search for a second accelerator card that does not experience data congestion if it is determined, based on the first congestion detection result, that a first accelerator card that experiences data congestion exists in the server;
[0019] The routing configuration modification module is used to modify the first data routing configuration pointing to the local in the first acceleration card to the second data routing configuration pointing to the second acceleration card, so that the first acceleration card sends the data to be sent to the network switch to the second acceleration card based on the second data routing configuration, and sends the data to the network switch through the second acceleration card.
[0020] In a fifth aspect, the present disclosure provides a communication device, which is applied to a first acceleration card in the above server, and includes:
[0021] A routing configuration acquisition module, used to acquire local data routing configuration when generating target data to be sent to the network switch;
[0022] The data sending module is used to determine that a data congestion problem occurs locally if the data routing configuration is a second data routing configuration pointing to the second acceleration card, and send the target data to the second acceleration card, so as to send the target data to the network switch through the second acceleration card.
[0023] In a sixth aspect, the present disclosure provides an electronic device comprising a memory and a processor, wherein the memory and the processor are communicatively connected to each other, computer instructions are stored in the memory, and the processor executes the above-mentioned communication control method or the above-mentioned communication method by executing the computer instructions.
[0024] In a seventh aspect, the present disclosure provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the above-mentioned communication control method, or to execute the above-mentioned communication method.
[0025] In an eighth aspect, the present disclosure provides a computer program product, including computer instructions, and the computer instructions are used to enable a computer to execute the above-mentioned communication control method, or execute the above-mentioned communication method.
[0026] In the technical solutions of some embodiments of the present disclosure, after determining the first accelerator card with data congestion in the server based on the first congestion detection result sent by the network switch, the data to be sent to the network switch can be sent to the second accelerator card without data congestion by modifying the data routing configuration in the first accelerator card, and the data can be sent to the network switch through the second accelerator card. In this way, on the one hand, the data congestion problem in the first accelerator card can be alleviated by transferring data; on the other hand, based on the congestion detection result sent by the network switch, operations to alleviate the data congestion problem can be performed at the source of data transmission without waiting for feedback from the data receiver. Therefore, the problem of insufficiently timely network congestion processing caused by delayed feedback from the data receiver can be avoided, that is, in the solution of the present disclosure, the real-time performance of network congestion processing can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] In order to more clearly illustrate the specific embodiments of the present disclosure or the technical solutions in the related technologies, the drawings required for use in the specific embodiments or the related technical descriptions will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0028] Figure 1 This is a server diagram of the data center GPU Direct RDMA network architecture provided by some technologies;
[0029] Figure 2 It is a schematic diagram of a server under a data center GPU Direct RDMA network architecture provided by an embodiment of the present disclosure;
[0030] Figure 3 is a flow chart of a communication control method provided by an embodiment of the present disclosure;
[0031] Figure 4 is a flow chart of a communication method provided by an embodiment of the present disclosure;
[0032] Figure 5 is a module schematic diagram of a communication control device provided by an embodiment of the present disclosure;
[0033] Figure 6 is a module schematic diagram of a communication device provided by an embodiment of the present disclosure;
[0034] Figure 7 It is a schematic diagram of the structure of an electronic device provided by some embodiments of the present disclosure. DETAILED DESCRIPTION
[0035] In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure clearer, the technical solution in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, rather than all the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those skilled in the art without creative work are within the scope of protection of the present disclosure.
[0036] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0037] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.
[0038] Herein, unless explicitly stated, executing a step “in response to A” does not mean executing the step immediately after “A” but may include one or more intermediate steps.
[0039] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition, use, storage or deletion of the data) shall comply with the requirements of relevant laws, regulations and relevant provisions.
[0040] It is understandable that before using the technical solutions disclosed in the various embodiments of the present disclosure, the types, scopes of use, usage scenarios, etc. of the information involved in the present disclosure should be informed to relevant users and their authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations. The relevant users may include any type of right holders, such as individuals, enterprises, and groups.
[0041] For example, in response to receiving an active request from a user, a prompt message is sent to the relevant user to clearly prompt the relevant user that the operation requested to be performed will require obtaining and using the information of the relevant user, so that the relevant user can independently choose whether to provide information to software or hardware such as an electronic device, application, server or storage medium that executes the operation of the technical solution of the present disclosure based on the prompt message.
[0042] As an optional but non-limiting implementation, in response to receiving an active request from a relevant user, a prompt message is sent to the relevant user, for example, in the form of a pop-up window, in which the prompt message may be presented in text form. In addition, the pop-up window may also carry a selection control for the user to select "agree" or "disagree" to provide information to the electronic device.
[0043] It is understandable that the above notification and the process of obtaining user authorization are merely illustrative and do not constitute a limitation on the implementation of the present disclosure. Other methods that meet relevant laws and regulations may also be applied to the implementation of the present disclosure.
[0044] Before describing the technical solution of the present application, the related concepts are first explained.
[0045] Data centers can provide powerful computing and storage capabilities by integrating servers, storage devices, network switches, routers, firewalls and other equipment, and are widely used in big data analysis, high-performance computing, artificial intelligence and other fields.
[0046] RDMA technology is a high-performance network communication technology that allows a node in the network to directly access the memory of another node without the intervention of the operating system. This technology can significantly reduce the delay of data transmission and the load of the CPU, thereby improving the efficiency of network communication.
[0047] An RDMA network device refers to a network device that supports the RDMA technology. Such a network device may generally include a high-performance network interface card (ie, a network card), and these network interface cards may have the ability to process RDMA requests.
[0048] The GPU Direct RDMA network architecture refers to a network architecture that combines GPU (Graphics Processing Unit) accelerated computing and RDMA (Remote Direct Memory Access) technology. This network architecture can bypass the CPU (Central Processing Unit) and host memory and directly transfer data between the GPU and RDMA network devices, thereby greatly reducing the latency of data transmission. After using the GPU Direct RDMA network architecture in the data center, the low latency characteristics of the GPU Direct RDMA network architecture can meet the data transmission speed and efficiency requirements in fields such as big data analysis, high-performance computing, and artificial intelligence, thereby promoting the development of these technologies.
[0049] Specifically, in some embodiments, the data center GPU Direct RDMA network architecture may include multiple servers, network interconnection devices (such as network switches and routers) for connecting servers, storage devices that provide data storage functions for servers, operating systems installed in servers and network interconnection devices, CPUs, GPUs, network interface cards, etc. in servers. The network interface card in the server may have the ability to process RDMA requests, so that the GPU in the server can bypass the operating system and CPU and directly access the memory of another server through the network interface card and network interconnection device in the server, thereby greatly improving the data transmission speed and efficiency between servers.
[0050] For easier understanding, please refer to Figure 1 , a server diagram of the data center GPU Direct RDMA network architecture provided for some technologies. Figure 1In the example, two servers A and B are included. For any server among servers A and B, the server may include a central processing unit, a baseboard management controller, a switching controller 0 and multiple acceleration cards. For any acceleration card n, the acceleration card n may include a switching controller n, a graphics processing unit n (i.e., a GPU) and a network interface card n (i.e., a network card). The central processing unit and the baseboard controller may communicate with each other to control the operation of the server. In addition, the central processing unit and the baseboard controller may exchange data with the graphics processing unit n through the switching controller 0 and the switching controller n in the acceleration card n, respectively. In addition to exchanging data with the central processing unit and the baseboard management controller, the graphics processing unit n may also be connected to a network switch through the network interface card n in the acceleration card n, and exchange data with another server through the network switch.
[0051] Switching controller 0 can be understood as a data routing device located in the server, and switching controller n can be understood as a data routing device located in accelerator card n. Data routing configuration can be performed in switching controller 0 and switching controller n to specify the data flow between various devices in the server. For example, in switching controller 1, data routing configuration can be performed to specify that data sent by graphics processor 1 is forwarded to network interface card 1, so that graphics processor 1 can directly exchange data with another server through network interface card 1 and the network switch.
[0052] Figure 1 In the process, since the graphics processor n in the acceleration card n bypasses the central processor and operating system in the server and directly interacts with another server, it can have a higher data transmission speed and lower data transmission delay. Therefore, in some technologies, similar Figure 1 The data center GPU Direct RDMA network architecture shown in the figure is widely used in big data analysis, high performance computing, artificial intelligence and other fields. However, as a facility for processing large amounts of data information, once Figure 1 If the data center GPU Direct RDMA network architecture shown in the figure has network congestion, it will directly affect the applications running in the data center. Therefore, how to build a high-performance data center GPU Direct RDMA network has become a core technology that needs to be focused on.
[0053] In some technologies, based on Figure 1The network architecture shown can use a control method based on the ECN (Explicit Congestion Notification) algorithm to alleviate the network congestion problem in the data center. Specifically, in these control methods, when the network interconnection device (such as a router) detects network congestion, it will mark the passing data packets, that is, set the corresponding mark in the ECN bit of the IP header or TCP header. When these marked data packets reach the data receiving end, the data receiving end will confirm the congestion indication, and this confirmation process is usually achieved by the data receiving end sending an acknowledgment signal (ACK) with the same ECN mark to the data sending end. After receiving the confirmation signal with the ECN mark, the data sending end will actively adjust the data transmission rate (that is, reduce the data transmission rate) to alleviate the problem of network congestion. For example, with Figure 1 For example. Assume that in some technologies, after the graphics processor 1 in the accelerator card 1 of server A sends data packets to the network switch through the network interface card 1, if the network switch detects network congestion, it will mark these data packets and send these marked data packets to server B. After receiving these marked data packets, server B can send a confirmation signal with an ECN mark to the graphics processor 1. After receiving the confirmation signal, the graphics processor 1 can actively reduce the data transmission rate to alleviate the data congestion problem between the network interface card 1 and the network switch.
[0054] In the above technology, it depends on the congestion feedback from the data receiving end to the data sending end. Once the feedback from the data receiving end is delayed, the data sending end will not be able to respond in time, affecting the real-time performance of network congestion processing.
[0055] To solve the above problems, the present disclosure first proposes a new data center GPU Direct RDMA network architecture. Figure 2 , is a server schematic diagram of a data center GPU Direct RDMA network architecture provided by an embodiment of the present disclosure. Figure 2 and Figure 1 Basically similar, the main difference is that the server disclosed in the present invention includes a data transmission channel, a baseboard management controller, and multiple acceleration cards connected to the network switch and the data transmission channel.
[0056] In this embodiment, the switching controller 0 in each server is used as a data transmission channel. The accelerator card may include a data routing configuration, wherein, for any accelerator card, when the data routing configuration in the accelerator card is a first data routing configuration pointing to the local, the accelerator card sends data to the network switch through the local network interface card, and when the data routing configuration in the accelerator card is a second data routing configuration pointing to other target accelerator cards, the accelerator card sends the data to the target accelerator card through the data transmission channel, and sends the data to the network switch through the target accelerator card. For example, assuming that the data routing configuration in accelerator card 1 is the first data routing configuration, accelerator card 1 sends the data in the graphics processor 1 to the network switch through the local network interface card 1. For another example, assuming that the data routing configuration in accelerator card 2 is the second data routing configuration pointing to accelerator card 1, accelerator card 2 sends the data in the graphics processor 1 to accelerator card 1 through switching controller 0 (i.e., data transmission channel), and sends the data to the network switch through accelerator card 1.
[0057] The baseboard management controller can be used to connect the network switch and each accelerator card, and modify the data routing configuration in the accelerator card when the specified conditions are met, and the initial data routing configuration in each accelerator card is the first data routing configuration. Specifically, the data routing configuration in the accelerator card is stored in the switching controller of the accelerator card, and the baseboard management controller is used to connect with the switching controller in the accelerator card to modify the data routing configuration in the accelerator card when the specified conditions are met.
[0058] based on Figure 2 The present disclosure first provides a communication control method, which can improve the real-time performance of network congestion processing. The communication control method can be applied to Figure 2 The baseboard management controller in the server shown. Figure 3 , which is a flow chart of a communication control method provided by an embodiment of the present disclosure. Figure 3 In the communication control method, the communication control method comprises the following steps:
[0059] Step S301: receiving a first congestion detection result sent by a network switch.
[0060] Among them, the first congestion detection result may be a congestion detection result of the network switch at a certain moment. The congestion detection result can be used to characterize whether a data congestion problem occurs in the network interface card n of each accelerator card n. In practical applications, the congestion detection result can be expressed in a variety of forms. For example, in some embodiments, the network switch can directly return the accelerator card identifier of the accelerator card n that has a data congestion problem. In this way, the baseboard management controller can determine the accelerator card that has data congestion and the accelerator card that has not experienced data congestion based on the accelerator card identifiers of each accelerator card n in the server and the accelerator card identifier returned by the network switch. For another example, in other embodiments, the network switch can return the amount of data in the network interface card n of each accelerator card n. The baseboard management controller can determine whether a data congestion problem occurs in each accelerator card n based on the amount of data received. The present disclosure does not limit the specific form of the congestion detection result.
[0061] The network switch may send a congestion detection result to the baseboard management controller at a preset time interval. Due to the dynamic variability of the network, the congestion detection results of different times may not be completely the same. The first congestion detection result may be any congestion detection result sent by the network switch to the baseboard management controller.
[0062] The network switch can detect the data congestion problem in the network interface card n of each accelerator card n based on conventional methods known to those skilled in the art. These conventional methods may include but are not limited to queue management methods, flow monitoring methods, port status monitoring methods, buffer management methods, and control methods based on ECN algorithms.
[0063] Step S302: If it is determined according to the first congestion detection result that a first accelerator card with data congestion exists in the server, a second accelerator card with no data congestion is searched.
[0064] As described in step S301, based on the first congestion detection result, it can be determined whether each accelerator card in the server has data congestion, and when an accelerator card has data congestion, it can be determined which is the first accelerator card with data congestion and which is the second accelerator card without data congestion.
[0065] Step S303: modify the first data routing configuration pointing to the local in the first accelerator card to the second data routing configuration pointing to the second accelerator card, so that the first accelerator card sends the data to be sent to the network switch to the second accelerator card based on the second data routing configuration, and sends the data to the network switch through the second accelerator card.
[0066] Specifically, the data in the first accelerator card to be sent to the network switch may include the first data newly generated by the graphics processor in the first accelerator card but not yet routed, and the second data in the first accelerator card that has been routed but is still sent to the network switch due to data congestion. For the first data, the first data can be directly sent to the second accelerator card according to the modified second data routing configuration. For the second data, if the second data needs to be sent to the second accelerator card, the second data can be re-routed according to the modified second data routing configuration, so as to send the second data to the second accelerator card.
[0067] In this embodiment, the first data can be sent to the network switch through the second accelerator card, and the second data can be sent to the network switch through the first accelerator card. In this way, on the one hand, by transferring the first data to the second accelerator card, the data congestion problem in the first accelerator card can be greatly alleviated. On the other hand, by continuing to send the first data through the first accelerator card, the network resources in the first accelerator card can be fully utilized to reduce the waste of network resources. At the same time, the additional data processing caused by re-routing the first data can also be avoided.
[0068] Of course, if it is determined according to the first congestion detection result that no data congestion occurs in each acceleration card in the server, the data routing configuration in each acceleration card can continue to be maintained as the initial first data routing configuration.
[0069] In summary, in the technical solutions of some embodiments of the present disclosure, after determining the first accelerator card with data congestion in the server based on the first congestion detection result sent by the network switch, the data to be sent to the network switch can be sent to the second accelerator card without data congestion by modifying the data routing configuration in the first accelerator card, and the data can be sent to the network switch through the second accelerator card. In this way, on the one hand, the data congestion problem in the first accelerator card can be alleviated by transferring data; on the other hand, based on the congestion detection result sent by the network switch, the operation of alleviating the data congestion problem can be performed at the source of data transmission without waiting for feedback from the data receiver, so the problem of insufficient timely processing of network congestion caused by feedback delay from the data receiver can be avoided, that is, in the solution of the present disclosure, the real-time performance of network congestion processing can be improved; on the third hand, in some technologies, the network congestion problem is alleviated by reducing the data transmission rate, which undoubtedly reduces the data transmission performance of the data center. However, in the technical solution disclosed in the present invention, by transferring data to a second acceleration card where data congestion does not occur for transmission, the data transmission rate can be kept unchanged, or data can even be transmitted at a higher data transmission rate, thereby helping to improve the data transmission performance of the data center; fourthly, by transferring data to the second acceleration card, the network resources on the second acceleration card can be fully utilized when the data transmission pressure on the second acceleration card is relatively small, thereby avoiding waste of network resources.
[0070] The communication control method disclosed in the present invention is further described below.
[0071] In some embodiments, when there are multiple second accelerator cards, modifying the first data routing configuration pointing to the local in the first accelerator card to the second data routing configuration pointing to the second accelerator card in step S303 may include:
[0072] The first data routing configuration is modified to a second data routing configuration pointing to at least two second acceleration cards, so that the first acceleration card divides the data to be sent to the network switch into multiple subsets based on the second data routing configuration, and sends the data in different subsets to the network switch in parallel through the at least two second acceleration cards pointed to.
[0073] For example, assuming that there are three second accelerator cards A1, A2, and A3 that do not experience data congestion, three first data routing configurations can be configured, namely, the first data routing configuration A1 pointing to the second accelerator card A1, the first data routing configuration A2 pointing to the second accelerator card A2, and the first data routing configuration A3 pointing to the second accelerator card A3. Then, the data can be divided into three subsets a1, a2, and a3. According to the first data routing configuration A1, the data in the subset a1 can be sent to the second accelerator card A1; according to the first data routing configuration A2, the data in the subset a2 can be sent to the second accelerator card A2; according to the first data routing configuration A3, the data in the subset a3 can be sent to the second accelerator card A3. In this way, data can be sent in parallel through multiple second accelerator cards that do not experience data congestion, greatly improving the data transmission rate. At the same time, the network resources in each second accelerator card are fully utilized to avoid the problem of network resource waste.
[0074] In some embodiments, after the first data routing configuration in the first accelerator card is modified to the second data routing configuration, the method of the present disclosure may further include:
[0075] receiving a second congestion detection result sent by the network switch;
[0076] If it is determined according to the second congestion detection result that the data congestion problem of the first acceleration card has been solved, the second data routing configuration in the first acceleration card can be modified to the first data routing configuration, so that the first acceleration card sends data to the network switch through the local network interface card based on the first data routing configuration.
[0077] In this way, on the one hand, it can prevent the data in the first accelerator card from occupying the network resources in the second accelerator card for a long time. On the other hand, the data can be directly sent to the network switch through the network interface card in the first accelerator card, which can reduce the time required to send the data to the second accelerator card and improve the data transmission rate.
[0078] In some embodiments, after receiving the second congestion detection result, the method of the present disclosure further includes:
[0079] If it is determined according to the second congestion detection result that both the first accelerator card and the second accelerator card are data congested, searching for a third accelerator card in the server that is not data congested;
[0080] The second data routing configuration in the first accelerator card and the third data routing configuration pointing to the local area in the second accelerator card are modified to be a fourth data routing configuration pointing to the third accelerator card, so that the first accelerator card and the second accelerator card send data to the network switch through the third accelerator card based on the fourth data routing configuration.
[0081] Specifically, the data congestion in the second accelerator card may be caused by excessive data transmission pressure on the second accelerator card after the data is allocated to the second accelerator card, or it may be caused by the data output by the graphics processor in the second accelerator card. But no matter what the reason, when the second accelerator card is congested, it means that it is no longer suitable to send the data in the first accelerator card to the second accelerator card. Therefore, the second data routing configuration in the first accelerator card can be modified to a fourth data routing configuration pointing to the third accelerator card. In this way, the data in the first accelerator card can be sent to the third accelerator card to alleviate the data congestion problem in the second accelerator card. Of course, it is understandable that in order to further alleviate the data congestion problem in the second accelerator card, the third data routing configuration pointing to the local in the second accelerator card can also be modified to a fourth data routing configuration pointing to the third accelerator card. In this way, the second accelerator card can send at least part of the local data to the third accelerator card for transmission, further alleviating the data congestion problem in the second accelerator card.
[0082] Furthermore, considering that the local data of the second accelerator card may include data obtained from the first accelerator card but not yet transmitted and data output by the local graphics processor, and the data in the first accelerator card also has a long delay, the second accelerator card may first send the data obtained from the first accelerator card but not yet transmitted to the third accelerator card, and then send the data output by the local graphics processor to the third accelerator card, so as to avoid a long delay in the data in the first accelerator card.
[0083] In some embodiments, when there are multiple third accelerator cards, modifying the second data routing configuration in the first accelerator card and the third data routing configuration pointing to the local in the second accelerator card to a fourth data routing configuration pointing to the third accelerator card may include:
[0084] Modify the second data routing configuration in the first accelerator card to point to a fourth data routing configuration of the target third accelerator card;
[0085] Modify the third data routing configuration in the second accelerator card to point to a fourth data routing configuration of the non-target third accelerator card;
[0086] The target third accelerator card and the non-target third accelerator card are different third accelerator cards.
[0087] For example, assuming that there are third accelerator cards B1, B2, B3, and B4, then the data routing configuration in the first accelerator card can be modified to point to the third accelerator cards B1 and B2, and the data routing configuration in the second accelerator card can be modified to point to the third accelerator cards B3 and B4. In this way, it can be avoided that the first accelerator card and the second accelerator card send data to the same third accelerator card, causing the corresponding third accelerator card to have excessive data transmission pressure.
[0088] In some embodiments, the first accelerator card includes a routing register, and the routing register is used to store an accelerator card identifier of an accelerator card currently pointed to in a data routing configuration of the first accelerator card;
[0089] The above-mentioned modification of the first data routing configuration pointing to the local in the first accelerator card to the second data routing configuration pointing to the second accelerator card may include:
[0090] In the routing register of the first accelerator card, the accelerator card identifier of the first accelerator card is modified to the accelerator card identifier of the second accelerator card.
[0091] Specifically, the routing register may be located in the switching controller of the first accelerator card, and the number of routing registers may be one or more. In the case where there are multiple routing registers, if it is necessary to configure a second data routing configuration pointing to multiple second accelerator cards, the second accelerator cards may correspond to the routing registers one by one, and each routing register is used to configure the accelerator card identifier of one of the second accelerator cards. In the case where there is only one routing register, the routing register may be a multi-bit register (such as a 16-bit routing register), so that the accelerator card identifiers of multiple second accelerator cards may be configured in the same routing register.
[0092] This completes the description of the communication control method.
[0093] Corresponding to the communication control method, the present disclosure also provides a communication method. The communication method can be applied to Figure 2 The first accelerator card in the server shown. Figure 4 , which is a flow chart of a communication method provided by an embodiment of the present disclosure. Figure 4 In the communication method, the communication method comprises the following steps:
[0094] Step S401, when generating target data to be sent to a network switch, obtaining a local data routing configuration.
[0095] Step S402: If the data routing configuration is a second data routing configuration pointing to the second acceleration card, it is determined that data congestion occurs locally, and the target data is sent to the second acceleration card, so that the target data is sent to the network switch through the second acceleration card.
[0096] For the relevant principles of the communication method, please refer to the relevant description of the communication control method, which will not be repeated here.
[0097] In the technical solutions of some embodiments of the present disclosure, after determining the first accelerator card in the server where data congestion occurs based on the first congestion detection result sent by the network switch, the target data to be sent to the network switch can be sent to the second accelerator card where data congestion does not occur by modifying the data routing configuration in the first accelerator card, and the target data can be sent to the network switch through the second accelerator card. In this way, on the one hand, the data congestion problem in the first accelerator card can be alleviated by transferring the target data; on the other hand, based on the congestion detection result sent by the network switch, the operation of alleviating the data congestion problem can be performed at the source of data transmission without waiting for the feedback of the data receiver, so the problem of insufficient timely processing of network congestion caused by the feedback delay of the data receiver can be avoided, that is, in the solution of the present disclosure, the real-time performance of network congestion processing can be improved; on the third hand, in some technologies, the network congestion problem is alleviated by reducing the data transmission rate, which undoubtedly reduces the data transmission performance of the data center. However, in the technical solution disclosed in the present invention, by transferring the target data to the second acceleration card where data congestion does not occur for transmission, the data transmission rate can be kept unchanged, or the target data can even be transmitted at a higher data transmission rate, thereby helping to improve the data transmission performance of the data center; fourthly, by transferring the target data to the second acceleration card, the network resources on the second acceleration card can be fully utilized when the data transmission pressure on the second acceleration card is relatively small, thereby avoiding waste of network resources.
[0098] In some embodiments, if the second data routing configuration points to at least two second accelerator cards, the method of the present disclosure may further include:
[0099] Divide the target data into multiple subsets;
[0100] The target data in different subsets are sent to the network switch in parallel through the at least two second acceleration cards pointed to.
[0101] Specifically, the technical solution in this embodiment can be found in the relevant description of the communication control method, which will not be repeated here.
[0102] In some embodiments, sending the target data to the second acceleration card in step S402 may include:
[0103] Determine the sending priority of target data;
[0104] According to the determined sending priority, the target data is marked with a priority, so that after receiving the target data, the second acceleration card determines the sending time of the target data based on the marked sending priority.
[0105] Specifically, the sending priority can characterize the urgency of sending the target data. The sending priority can be proportional to the sending urgency. After receiving the target data, the second acceleration card can determine the sending order between the target data and other data based on the sending priority of the target data. For example, when the sending priority of the target data is relatively high, the second acceleration card can immediately send the target data to the network switch after receiving the target data. In this way, the real-time transmission of the target data can be guaranteed to avoid causing excessive delays. Conversely, when the sending priority of the target data is relatively low, the second acceleration card can place the target data behind other data after receiving the target data, and send the target data after the other data are sent. In this way, it can be ensured that data with a higher sending urgency can be sent first.
[0106] Furthermore, if the first accelerator card does not mark the sending priority of the target data, after receiving the target data, the second accelerator card can first send the local graphics processor output data, and then send the target data in the first accelerator card. In other words, the sending priority corresponding to the data in the second accelerator card can be higher than the sending priority corresponding to the data in the first accelerator card.
[0107] In practical applications, a suitable solution may be selected according to actual needs to determine the data transmission priority in the first accelerator card and the second accelerator card.
[0108] In some embodiments, the method of the present disclosure may further include:
[0109] If the data routing configuration in step S401 is the first data routing configuration pointing to the local area, it can be determined that there is no data congestion problem in the local area, and the target data is sent to the network switch through the local network interface card.
[0110] In some embodiments, the first accelerator card includes a routing register, and the routing register is used to store an accelerator card identifier of an accelerator card currently pointed to in a data routing configuration of the first accelerator card;
[0111] The above-mentioned local data routing configuration may include:
[0112] Obtaining the currently stored target accelerator card identifier from the routing register of the first accelerator card;
[0113] If the target accelerator card identifier is the accelerator card identifier of the second accelerator card, determine that the data routing configuration is a second data routing configuration pointing to the second accelerator card;
[0114] If the target accelerator card identifier is the accelerator card identifier of the first accelerator card, the data routing configuration is determined to be a first data routing configuration pointing to the local area.
[0115] The specific principles of the above embodiments can be found in the relevant description of the communication control method, which will not be repeated here.
[0116] In some embodiments, when sending the target data to the second acceleration card, the method of the present disclosure may further include:
[0117] If there is congestion data generated locally before the target data and needs to be sent to the network switch, at least part of the congestion data is sent to the second acceleration card, so that the congestion data is sent to the network switch through the second acceleration card.
[0118] In this way, the data transmission pressure in the first acceleration card is further reduced.
[0119] Corresponding to the above communication control method, the present disclosure also provides a communication control device. Figure 5 , which is a module diagram of a communication control device provided in one embodiment of the present disclosure. Figure 5 In the embodiment, the communication control device comprises:
[0120] The detection result receiving module 501 is used to receive a first congestion detection result sent by the network switch;
[0121] The accelerator card state identification module 502 is used to search for a second accelerator card that does not experience data congestion if it is determined that there is a first accelerator card that experiences data congestion in the server according to the first congestion detection result;
[0122] The routing configuration modification module 503 is used to modify the first data routing configuration pointing to the local in the first acceleration card to the second data routing configuration pointing to the second acceleration card, so that the first acceleration card sends the data to be sent to the network switch to the second acceleration card based on the second data routing configuration, and sends the data to the network switch through the second acceleration card.
[0123] In some embodiments, when there are multiple second accelerator cards, the routing configuration modification module 503 is specifically used to:
[0124] The first data routing configuration is modified to a second data routing configuration pointing to at least two second acceleration cards, so that the first acceleration card divides the data to be sent to the network switch into multiple subsets based on the second data routing configuration, and sends the data in different subsets to the network switch in parallel through the at least two second acceleration cards pointed to.
[0125] In some embodiments, after the first data routing configuration in the first acceleration card is modified to the second data routing configuration, the routing configuration modification module 503 is further used to:
[0126] receiving a second congestion detection result sent by the network switch;
[0127] If it is determined according to the second congestion detection result that the data congestion problem of the first acceleration card has been solved, the second data routing configuration in the first acceleration card is modified to the first data routing configuration, so that the first acceleration card sends data to the network switch through the local network interface card based on the first data routing configuration.
[0128] In some embodiments, after receiving the second congestion detection result, the detection result receiving module 501 is further configured to:
[0129] If it is determined according to the second congestion detection result that both the first accelerator card and the second accelerator card are data congested, searching for a third accelerator card in the server that is not data congested;
[0130] The second data routing configuration in the first accelerator card and the third data routing configuration pointing to the local area in the second accelerator card are modified to be a fourth data routing configuration pointing to the third accelerator card, so that the first accelerator card and the second accelerator card send data to the network switch through the third accelerator card based on the fourth data routing configuration.
[0131] In some embodiments, when there are multiple third accelerator cards, the routing configuration modification module 503 is specifically used to:
[0132] Modify the second data routing configuration in the first accelerator card to point to a fourth data routing configuration of the target third accelerator card;
[0133] Modify the third data routing configuration in the second accelerator card to point to a fourth data routing configuration of the non-target third accelerator card;
[0134] The target third accelerator card and the non-target third accelerator card are different third accelerator cards.
[0135] In some embodiments, if it is determined according to the first congestion detection result that data congestion does not occur in each accelerator card in the server, the routing configuration modification module 503 is specifically used to:
[0136] The data routing configuration in each acceleration card continues to be maintained as the initial first data routing configuration.
[0137] Corresponding to the above communication method, the present disclosure also provides a communication device. Figure 6 , which is a module diagram of a communication device provided in one embodiment of the present disclosure. Figure 6 In the communication device, the communication device comprises:
[0138] The routing configuration acquisition module 601 is used to acquire the local data routing configuration when generating target data to be sent to the network switch;
[0139] The data sending module 602 is used to determine that data congestion occurs locally if the data routing configuration is a second data routing configuration pointing to the second acceleration card, and send the target data to the second acceleration card, so as to send the target data to the network switch through the second acceleration card.
[0140] In some embodiments, if the second data routing configuration points to at least two second acceleration cards, the data sending module 602 is further configured to:
[0141] Divide the target data into multiple subsets;
[0142] The target data in different subsets are sent to the network switch in parallel through the at least two second acceleration cards pointed to.
[0143] In some embodiments, the data sending module 602 is specifically used to:
[0144] Determine the sending priority of target data;
[0145] According to the determined sending priority, the target data is marked with a priority, so that after receiving the target data, the second acceleration card determines the sending time of the target data based on the marked sending priority.
[0146] In some embodiments, the data sending module 602 is further configured to:
[0147] If the data routing configuration is the first data routing configuration pointing to the local area, it is determined that there is no data congestion problem in the local area, and the target data is sent to the network switch through the local network interface card.
[0148] In some embodiments, when sending the target data to the second acceleration card, the data sending module 602 is further configured to:
[0149] If there is congestion data generated locally before the target data and needs to be sent to the network switch, at least part of the congestion data is sent to the second acceleration card, so that the congestion data is sent to the network switch through the second acceleration card.
[0150] The communication control device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.
[0151] The communication control device disclosed in the present invention has the same beneficial effects as the above-mentioned communication control method and communication method, which will not be repeated here.
[0152] Combined with reference Figure 7, is a schematic diagram of the structure of an electronic device provided by some embodiments of the present disclosure. Figure 7 As shown, the electronic device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. The various components are connected to each other using different buses for communication, and can be installed on a common mainboard or installed in other ways as needed. The processor can process instructions executed in the electronic device, including instructions stored in or on the memory to display graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 7 A processor 10 is taken as an example.
[0153] The processor 10 may be a first PCIe device, a network processor or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be a dedicated integrated circuit, a programmable logic device or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic or any combination thereof.
[0154] The memory 20 stores instructions executable by at least one processor 10, so that the at least one processor 10 executes the method shown in the above embodiment.
[0155] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the electronic device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely arranged relative to the processor 10, and these remote memories may be connected to the electronic device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0156] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive; the memory 20 may also include a combination of the above types of memory.
[0157] The electronic device further comprises a communication interface 30 for the electronic device to communicate with other devices or a communication network.
[0158] The embodiments of the present disclosure also provide a computer-readable storage medium. The above-mentioned method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or can be implemented as a computer code that can be recorded in a storage medium, or can be implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and will be stored in a local storage medium and downloaded through a network, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state drive, etc.; further, the storage medium can also include a combination of the above-mentioned types of memory. It can be understood that a computer, a processor, a microprocessor controller, or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor, or hardware, the method shown in the above embodiment is implemented.
[0159] A part of the present disclosure may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present disclosure through the operation of the computer. Those skilled in the art should understand that the existence of computer program instructions in computer-readable media includes, but is not limited to, source files, executable files, installation package files, etc., and accordingly, the way in which computer program instructions are executed by a computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to the computer.
[0160] Although the embodiments of the present disclosure have been described in conjunction with the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present disclosure, and such modifications and variations are all within the scope defined by the appended claims.
Claims
1. A communication control method, characterized in that: The method comprises: Receiving a first congestion detection result sent by the network switch; If it is determined according to the first congestion detection result that a first accelerator card with data congestion exists in the server, searching for a second accelerator card with no data congestion; The first data routing configuration pointing to the local area in the first accelerator card is modified to a second data routing configuration pointing to the second accelerator card, so that the first accelerator card sends the data to be sent to the network switch to the second accelerator card based on the second data routing configuration, and sends the data to the network switch through the second accelerator card.
2. The method according to claim 1, characterized in that In the case where there are multiple second accelerator cards, modifying the first data routing configuration pointing to the local in the first accelerator card to the second data routing configuration pointing to the second accelerator card includes: The first data routing configuration is modified to a second data routing configuration pointing to at least two of the second acceleration cards, so that the first acceleration card divides the data to be sent to the network switch into multiple subsets based on the second data routing configuration, and sends the data in different subsets to the network switch in parallel through the at least two second acceleration cards pointed to.
3. The method according to claim 1 or 2, characterized in that: After modifying the first data routing configuration in the first acceleration card to the second data routing configuration, the method further includes: receiving a second congestion detection result sent by the network switch; If it is determined according to the second congestion detection result that the data congestion problem of the first acceleration card has been solved, the second data routing configuration in the first acceleration card is modified to the first data routing configuration, so that the first acceleration card sends data to the network switch through the local network interface card based on the first data routing configuration.
4. The method according to claim 3, characterized in that After receiving the second congestion detection result, the method further includes: If it is determined according to the second congestion detection result that both the first accelerator card and the second accelerator card have data congestion, searching for a third accelerator card in the server that has no data congestion; The second data routing configuration in the first acceleration card and the third data routing configuration pointing to the local area in the second acceleration card are modified to be a fourth data routing configuration pointing to the third acceleration card, so that the first acceleration card and the second acceleration card send data to the network switch through the third acceleration card based on the fourth data routing configuration.
5. The method according to claim 4, characterized in that In the case where there are multiple third accelerator cards, modifying the second data routing configuration in the first accelerator card and the third data routing configuration pointing to the local in the second accelerator card to a fourth data routing configuration pointing to the third accelerator card includes: Modify the second data routing configuration in the first accelerator card to a fourth data routing configuration pointing to a target third accelerator card; Modify the third data routing configuration in the second accelerator card to a fourth data routing configuration pointing to a non-target third accelerator card; The target third accelerator card and the non-target third accelerator card are different third accelerator cards.
6. The method according to claim 1, characterized in that If it is determined according to the first congestion detection result that data congestion does not occur in each of the acceleration cards in the server, the method further includes: The data routing configuration in each of the acceleration cards continues to be maintained as the initial first data routing configuration.
7. A server, characterized in that: The server comprises: Data transmission channel; a plurality of accelerator cards connected to the network switch and the data transmission channel, wherein the accelerator cards include data routing configurations, wherein for any of the accelerator cards, when the data routing configuration in the accelerator card is a first data routing configuration pointing to a local location, the accelerator card sends data to the network switch through a local network interface card, and when the data routing configuration in the accelerator card is a second data routing configuration pointing to other target accelerator cards, the accelerator card sends data to the target accelerator card through the data transmission channel, and sends the data to the network switch through the target accelerator card; A baseboard management controller, used to connect the network switch and each of the acceleration cards, and execute the method according to any one of claims 1 to 6.
8. The server according to claim 7, characterized in that: The accelerator card includes a switch controller, and the data routing configuration in the accelerator card is stored in the switch controller; The baseboard management controller is used to connect with the switch controller.
9. A communication method, characterized in that: The method is applied to the first accelerator card in the server according to claim 7 or 8, and the method comprises: When generating target data to be sent to the network switch, obtaining a local data routing configuration; If the data routing configuration is a second data routing configuration pointing to a second acceleration card, it is determined that a data congestion problem occurs locally, and the target data is sent to the second acceleration card, so that the target data is sent to the network switch through the second acceleration card.
10. The method according to claim 9, characterized in that If the second data routing configuration points to at least two of the second accelerator cards, the method further includes: Dividing the target data into a plurality of subsets; The target data in different subsets are sent to the network switch in parallel through at least two of the second acceleration cards pointed to in the second data routing configuration.
11. The method according to claim 9 or 10, characterized in that: The sending the target data to the second acceleration card includes: Determining the sending priority of the target data; According to the determined sending priority, the target data is marked with a priority, so that after receiving the target data, the second acceleration card determines a sending time of the target data based on the marked sending priority.
12. The method according to claim 9, characterized in that The method further comprises: If the data routing configuration is the first data routing configuration pointing to the local location, it is determined that no data congestion problem occurs locally, and the target data is sent to the network switch through the local network interface card.
13. The method according to claim 9, characterized in that When sending the data to the second acceleration card, the method further includes: If there is congestion data locally that is generated before the target data and needs to be sent to the network switch, at least part of the congestion data is sent to the second acceleration card, so that the congestion data is sent to the network switch through the second acceleration card.
14. An electronic device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the communication control method according to any one of claims 1 to 6, or executes the communication method according to any one of claims 9 to 13 by executing the computer instructions.
15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the communication control method according to any one of claims 1 to 6, or to execute the communication method according to any one of claims 9 to 13.
16. A computer program product, characterized in that The method comprises computer instructions for causing a computer to execute the communication control method according to any one of claims 1 to 6, or to execute the communication method according to any one of claims 9 to 13.
Citation Information
Patent Citations
Flow control method, device and apparatus and readable storage medium
CN112653634A
Congestion control method and equipment
CN118381763A