A task management method, device, equipment and computer readable storage medium

By determining the task management method for the accelerator card in the cloud computing system, the command has been completed and the CPU queue has been retryed within the preset time limit, the problem of command confirmation delay during data transmission between accelerator cards has been solved, and the problem of command confirmation delay during data transmission between accelerator cards has been improved. Network bandwidth utilization and work efficiency.

CN113722090BActive Publication Date: 2024-12-27LANGCHAO ELECTRONIC INFORMATION IND CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202110845282.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-07-26
Publication Date
2024-12-27
Estimated Expiration
2041-07-26

AI Technical Summary

Technical Problem

In cloud computing systems, during data transmission between accelerator cards, the accelerator card on the response side may not be able to successfully add completed commands to the completed command queue of the CPU, resulting in increased network bandwidth usage and reduced work efficiency.

Method used

When receiving the complete data sent by the accelerator card on the requesting side, it is determined as a completed command and determine whether it can be successfully written to the completed command queue of the CPU. If it fails, try again within the preset time period and After successful writing, a confirmation signal is sent to the requesting end to continue data transmission.

Benefits of technology

It reduces the use of network bandwidth and sends a confirmation signal through an accelerator card with a smaller signal delay in abnormal situations, improving work efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113722090B_ABST
    Figure CN113722090B_ABST
Patent Text Reader

Abstract

The present invention discloses a task management method, device, equipment and computer-readable storage medium. In the present application, when the accelerator card at the responding end cannot add the completed command to the CQ of the responding end CPU, the accelerator card at the responding end can inform the CPU of the situation and continue to try to add the completed command to the CQ within a preset time. During this preset time, the accelerator card at the requesting end will not continue to send data. After the completed command is added to the CQ within the preset time, the accelerator card at the responding end can send a confirmation signal to the accelerator card at the requesting end so that it can continue to send data, thereby reducing the occupancy of the network bandwidth. In addition, when facing abnormal situations, the confirmation signal is sent through the accelerator card with a smaller signal delay, thereby improving work efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of cloud computing systems, and in particular to a task management method. The present invention also relates to a task management device, equipment and a computer-readable storage medium. Background Art

[0002] In a cloud computing system, data transmission often needs to be performed between accelerator cards. The accelerator card on the requesting end can send the data specified by a single send command in the WQ (Work Queue) to the accelerator card on the responding end. The accelerator card on the responding end can store the received data in a memory. When the accelerator card on the responding end receives the data specified by the single send command, it needs to determine the send command as a completed command and store it in the CQ (Complete Queue) of the CPU on the responding end so that the CPU can immediately process the data corresponding to the completed command. However, the accelerator card on the responding end may not be able to successfully add the completed command to the CQ in some cases (for example, CPU data processing process delay). At this time, how to manage the data transmission process between accelerator cards directly affects the network bandwidth occupancy and work efficiency.

[0003] Therefore, how to provide a solution to the above technical problems is a problem that those skilled in the art need to solve at present. Summary of the invention

[0004] The purpose of the present invention is to provide a task management method, which reduces the occupation of network bandwidth, and when faced with abnormal situations, a confirmation signal is sent through an acceleration card with a smaller signal delay, thereby improving work efficiency; another purpose of the present invention is to provide a task management device, equipment and computer-readable storage medium, which reduces the occupation of network bandwidth, and when faced with abnormal situations, a confirmation signal is sent through an acceleration card with a smaller signal delay, thereby improving work efficiency.

[0005] In order to solve the above technical problems, the present invention provides a task management method, which is applied to an accelerator card, comprising:

[0006] When receiving complete data specified by a send command sent by the accelerator card of the requesting end, determining the send command as a completed command;

[0007] Determine whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located;

[0008] If successful, a confirmation signal is sent to the acceleration card at the requesting end so that it can send the next data specified by the sending command;

[0009] If it fails, the failure information is notified to the CPU and it is determined whether the currently determined completed command can be successfully written into the CQ within a preset time period;

[0010] If so, the confirmation signal is sent to the acceleration card at the requesting end.

[0011] Preferably, when receiving complete data specified by a sending command sent by the acceleration card of the requesting end, determining the sending command as a completed command specifically comprises:

[0012] Receive the data packet sent by the accelerator card at the request end;

[0013] Determine whether the latest data packet sent by the accelerator card of the requesting end is the last data packet of the complete data specified by the sending command to which it belongs;

[0014] If yes, the sending command is determined as a completed command;

[0015] Otherwise, the step of receiving the data packet sent by the acceleration card of the requesting end is executed.

[0016] Preferably, the determination of whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the current command is located is specifically as follows:

[0017] Determine whether the completed command queue CQ of the CPU of the device where the device is located has storage space to accommodate the currently determined completed command;

[0018] If yes, write the currently determined completed command into the CQ of the CPU of the device where the device is located;

[0019] If not, it is determined that the currently determined completed command cannot be successfully written into the CQ of the CPU of the device where the device is located.

[0020] Preferably, if the task fails, the CPU is informed of the failure information and it is determined whether the currently determined completed command can be successfully written into the CQ within a preset time. Then, the task management method further includes:

[0021] If not, an alarm message is sent to the CPU.

[0022] Preferably, the acceleration card is a field programmable gate array (FPGA).

[0023] Preferably, the acceleration card at the requesting end sends data to the acceleration card at the responding end through RDMA technology.

[0024] In order to solve the above technical problems, the present invention further provides a task management device, which is applied to an accelerator card and includes:

[0025] A determination module, configured to determine a sending command as a completed command when receiving complete data specified by a sending command sent by an acceleration card at a requesting end;

[0026] A first judgment module is used to judge whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located, and if successful, the feedback module is triggered; if failed, the second judgment module is triggered;

[0027] The feedback module is used to send a confirmation signal to the acceleration card at the requesting end so that it can send the next data specified by the sending command;

[0028] The second judgment module is used to inform the CPU of the failure information and determine whether the currently determined completed command can be successfully written into the CQ within a preset time period, and if so, trigger the feedback module.

[0029] Preferably, the acceleration card at the requesting end sends data to the acceleration card at the responding end through RDMA technology.

[0030] In order to solve the above technical problems, the present invention further provides a task management device, comprising:

[0031] Memory for storing computer programs;

[0032] A processor is used to implement the steps of the task management method described above when executing the computer program.

[0033] In order to solve the above technical problem, the present invention also provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the task management method described above are implemented.

[0034] The present invention provides a task management method. Considering that the CPU cannot process data corresponding to a completed command that does not exist in the CQ, when the currently determined completed command cannot be added to the CQ of the responding end CPU, the acceleration card of the requesting end is not suitable for sending data. Therefore, in the present application, when the acceleration card of the responding end cannot add the completed command to the CQ of the responding end CPU, the acceleration card can inform the CPU of the situation and continue to try to add the completed command to the CQ within a preset time. Within this preset time, the acceleration card of the requesting end will not continue to send data. After the completed command is added to the CQ within the preset time, the acceleration card of the responding end can send a confirmation signal to the acceleration card of the requesting end so that it can continue to send data, thereby reducing the occupancy of the network bandwidth. In addition, when facing abnormal situations, the confirmation signal is sent through the acceleration card with a smaller signal delay, thereby improving work efficiency.

[0035] The present invention also provides a task management apparatus, device and computer-readable storage medium, which have the same beneficial effects as the above task management method. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the prior art and the drawings required for use in the embodiments are briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0037] Figure 1 A flowchart of a task management method provided by the present invention;

[0038] Figure 2 A structural diagram of a task management device provided by the present invention;

[0039] Figure 3 A structural schematic diagram of a task management device provided by the present invention. DETAILED DESCRIPTION

[0040] The core of the present invention is to provide a task management method, which reduces the occupancy of network bandwidth, and when faced with abnormal situations, a confirmation signal is sent through an acceleration card with a smaller signal delay, thereby improving work efficiency; another core of the present invention is to provide a task management device, equipment and computer-readable storage medium, which reduces the occupancy of network bandwidth, and when faced with abnormal situations, a confirmation signal is sent through an acceleration card with a smaller signal delay, thereby improving work efficiency.

[0041] In order to make the purpose, technical solution and advantages of the embodiments of the present invention clearer, the technical solution in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0042] Please refer to Figure 1 , Figure 1 A flowchart of a task management method provided by the present invention is provided, and the task management method includes:

[0043] S101: upon receiving complete data specified by a sending command sent by an accelerator card at a requesting end, determining the sending command as a completed command;

[0044] Specifically, taking into account the technical problems in the above background technology, and considering that the CPU cannot process the data corresponding to the completed command that does not exist in the CQ, the present application needs to add each completed command to the CQ of the responding end. When the complete data specified by a send command sent by the acceleration card of the requesting end is received, this step can determine the send command as a completed command, so that it can be added to the CQ of the CPU in subsequent steps.

[0045] The requesting end may sequentially send the complete data specified by each sending command to the accelerator card of the responding end, and each complete data may be split into several data packets for transmission.

[0046] S102: Determine whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the current command is located;

[0047] Specifically, considering that the CPU cannot process data corresponding to completed commands that do not exist in the CQ, this step needs to ensure that the currently determined completed command can be written into the completed command queue CQ of the CPU of the device where it is located. Therefore, this step determines whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where it is located, so as to trigger the actions in subsequent steps.

[0048] Among them, it is worth mentioning that the number of completed commands that can be accommodated in CQ is limited. After the CPU has processed the data corresponding to a completed command, it can remove the completed command from CQ so that CQ can accept new completed commands.

[0049] S103: If successful, a confirmation signal is sent to the accelerator card at the requesting end so that it can send the data specified by the next sending command;

[0050] Specifically, if the completed command can be successfully added to the CQ of the responding end CPU, it means that the data corresponding to the completed command has been able to be processed by the CPU, so it can continue to receive subsequent data and generate subsequent completed commands. Therefore, at this time, the accelerator card on the responding end can send a confirmation signal to the accelerator card on the requesting end so that it can send the data specified by the next send command.

[0051] S104: If it fails, the failure information is notified to the CPU and it is determined whether the currently determined completed command can be successfully written into the CQ within a preset time;

[0052] Specifically, if the completed command cannot be successfully added to the CQ of the responding end CPU, the data corresponding to the currently determined completed command cannot be processed by the CPU. If the requesting end continues to send data at this time, the data corresponding to the currently determined completed command will be lost, so that it can no longer be processed by the CPU. At this time, the accelerator card no longer feeds back a confirmation signal to the accelerator card on the requesting end, but informs the CPU of the failure information. The CPU will try to repair the CQ or speed up the data processing process to make room in the CQ as soon as possible for the completed command, and the accelerator card needs to retry writing the currently determined completed command into the CQ within a preset time. The subsequent steps can be triggered according to the result of the attempt.

[0053] S105: If yes, a confirmation signal is sent to the acceleration card at the requesting end.

[0054] Specifically, if the currently determined completed command can be successfully written into the CQ within the preset time, then the acceleration card on the requesting end can undoubtedly send subsequent data, so at this time the acceleration card on the responding end can send a confirmation signal to the acceleration card on the requesting end.

[0055] Among them, in the present application, when the accelerator card on the responding end cannot write the completed command into the CQ, it does not immediately feedback a confirmation signal and trigger the requesting end controller to continue sending data, but waits for a preset time and tries to write the confirmed command within the preset time, thereby ensuring that the currently determined completed command will not be lost, and because the accelerator card on the requesting end will not send data within this preset time, the occupancy of the network bandwidth is reduced. In addition, the present application does not control the accelerator card on the requesting end to suspend sending data through the software in the CPU, but delays the data sending of the accelerator card on the requesting end through the handshake mechanism between accelerator cards, thereby reducing signal delay and improving work efficiency.

[0056] The present invention provides a task management method. Considering that the CPU cannot process data corresponding to a completed command that does not exist in the CQ, when the currently determined completed command cannot be added to the CQ of the responding end CPU, the acceleration card of the requesting end is not suitable for sending data. Therefore, in the present application, when the acceleration card of the responding end cannot add the completed command to the CQ of the responding end CPU, the acceleration card can inform the CPU of the situation and continue to try to add the completed command to the CQ within a preset time. Within this preset time, the acceleration card of the requesting end will not continue to send data. After the completed command is added to the CQ within the preset time, the acceleration card of the responding end can send a confirmation signal to the acceleration card of the requesting end so that it can continue to send data, thereby reducing the occupancy of the network bandwidth. In addition, when facing abnormal situations, the confirmation signal is sent through the acceleration card with a smaller signal delay, thereby improving work efficiency.

[0057] Based on the above embodiments:

[0058] As a preferred embodiment, when receiving complete data specified by a send command sent by the accelerator card of the requesting end, determining the send command as a completed command is specifically as follows:

[0059] Receive the data packet sent by the accelerator card at the request end;

[0060] Determine whether the latest data packet sent by the accelerator card of the requesting end is the last data packet of the complete data specified by the sending command to which it belongs;

[0061] If yes, the sending command is determined as a completed command;

[0062] Otherwise, execute the step of receiving the data packet sent by the acceleration card of the requesting end.

[0063] Specifically, the last data packet refers to the data packet that can form a complete data packet together with the previously received data packets, rather than the data packet corresponding to the last position of the complete data (because each data packet may be out of order during the transmission process). That is, in this step, the latest data packet sent by the acceleration card of each request end will be judged. When the judgment is successful, the sending command can be determined as a completed command, thereby improving the accuracy of the generation of completed commands.

[0064] As a preferred embodiment, judging whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located is specifically as follows:

[0065] Determine whether the completed command queue CQ of the CPU of the device where the device is located has storage space to accommodate the currently determined completed commands;

[0066] If so, write the currently determined completed command into the CQ of the CPU of the device where it is located;

[0067] If not, it is determined that the currently determined completed command cannot be successfully written into the CQ of the CPU of the device where the device is located.

[0068] Specifically, considering that the reason why CQ cannot be written usually is that the delay in CPU processing data results in the space for accommodating new completed commands not being cleared out in time in CQ, therefore, in an embodiment of the present invention, it is possible to determine whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where it is located by "determining whether the completed command queue CQ of the CPU of the device where it is located has storage space to accommodate the currently determined completed command".

[0069] As a preferred embodiment, if the task fails, the CPU is informed of the failure information and it is determined whether the currently determined completed command can be successfully written into the CQ within a preset time. Then, the task management method further includes:

[0070] If not, an alarm message is sent to the CPU.

[0071] Specifically, considering that the currently determined completed command still cannot be successfully written to the CQ within the preset time, it may not only involve the delay problem of the CPU processing data, but also the failure of related components. At this time, there is no need to continue waiting. An alarm message can be sent to the CPU so that the user can discover and repair it as soon as possible.

[0072] As a preferred embodiment, the acceleration card is a FPGA (Field Programmable Gate Array).

[0073] Specifically, FPGA has advantages such as fast processing speed and long life.

[0074] Of course, in addition to FPGA, the acceleration card can also be of other types, which is not limited in the embodiment of the present invention.

[0075] As a preferred embodiment, the acceleration card at the requesting end sends data to the acceleration card at the responding end through RDMA (Remote Direct Memory Access) technology.

[0076] Specifically, the RDMA technology has the advantages of fast transmission speed and does not occupy CPU processing power.

[0077] Of course, in addition to RDMA, other technologies may be used to accelerate data transmission between cards, which is not limited in the embodiment of the present invention.

[0078] Please refer to Figure 2 , Figure 2 A structural diagram of a task management device provided by the present invention, the task management device is applied to an accelerator card, comprising:

[0079] A determination module 21, configured to determine a sending command as a completed command when receiving complete data specified by a sending command sent by an acceleration card at a requesting end;

[0080] The first judgment module 22 is used to judge whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located. If successful, the feedback module 23 is triggered; if failed, the second judgment module 24 is triggered;

[0081] A feedback module 23 is used to send a confirmation signal to the acceleration card at the requesting end so that it can send the data specified by the next sending command;

[0082] The second judgment module 24 is used to inform the CPU of the failure information and judge whether the currently determined completed command can be successfully written into the CQ within a preset time period, and if so, trigger the feedback module 23.

[0083] As a preferred embodiment, the acceleration card at the requesting end sends data to the acceleration card at the responding end through RDMA technology.

[0084] For an introduction to the task management device provided in the embodiment of the present invention, please refer to the embodiment of the task management method described above, and the embodiment of the present invention will not be described in detail here.

[0085] Please refer to Figure 3 , Figure 3 A structural diagram of a task management device provided by the present invention, the task management device comprises:

[0086] A memory 31, used for storing computer programs;

[0087] The processor 32 is used to implement the steps of the task management method in the above-mentioned embodiment when executing the computer program.

[0088] For an introduction to the task management device provided in the embodiment of the present invention, please refer to the embodiment of the task management method described above, and the embodiment of the present invention will not be described in detail here.

[0089] The present invention also provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the task management method in the aforementioned embodiment are implemented.

[0090] For an introduction to the computer-readable storage medium provided in an embodiment of the present invention, please refer to the aforementioned embodiment of the task management method, and the embodiment of the present invention will not be described in detail here.

[0091] In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the embodiments can be referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part description. It should also be noted that in this specification, relational terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply that there is any such actual relationship or order between these entities or operations. Moreover, the term "include", "comprise" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, article or equipment including a series of elements includes not only those elements, but also includes other elements that are not explicitly listed, or also includes elements inherent to such process, method, article or equipment. In the absence of more restrictions, the elements defined by the sentence "including one..." do not exclude the existence of other identical elements in the process, method, article or equipment including the element.

[0092] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present invention. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to the embodiments shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A task management method, characterized in that: Applied to accelerator cards, including: When receiving complete data specified by a send command sent by the accelerator card of the requesting end, determining the send command as a completed command; Determine whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located; If successful, a confirmation signal is sent to the acceleration card at the requesting end so that it can send the next data specified by the sending command; If it fails, the failure information is notified to the CPU and it is determined whether the currently determined completed command can be successfully written into the CQ within a preset time period; If yes, sending the confirmation signal to the acceleration card at the requesting end; The determination of whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located is specifically as follows: Determine whether the completed command queue CQ of the CPU of the device where the device is located has storage space to accommodate the currently determined completed command; If yes, write the currently determined completed command into the CQ of the CPU of the device where the device is located; If not, it is determined that the currently determined completed command cannot be successfully written into the CQ of the CPU of the device where the device is located; After determining whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the task management method is located, the task management method further includes: If it fails, stop feeding back confirmation signals to the accelerator card at the requesting end; The confirmation signal is used to trigger the acceleration card at the requesting end to send data; When receiving complete data specified by a sending command sent by the acceleration card of the requesting end, determining the sending command as a completed command specifically comprises: Receive the data packet sent by the accelerator card at the request end; Determine whether the latest data packet sent by the accelerator card of the requesting end is the last data packet of the complete data specified by the sending command to which it belongs; If yes, the sending command is determined as a completed command; Otherwise, the step of receiving the data packet sent by the acceleration card of the requesting end is executed; If the task fails, the CPU is informed of the failure information and it is determined whether the currently determined completed command can be successfully written into the CQ within a preset time. The task management method further includes: If not, an alarm message is sent to the CPU; The acceleration card is a field programmable gate array FPGA; The acceleration card at the requesting end sends data to the acceleration card at the responding end through remote direct data access (RDMA) technology.

2. A task management device, characterized in that: Applied to accelerator cards, including: A determination module, configured to determine a sending command as a completed command when receiving complete data specified by a sending command sent by an acceleration card at a requesting end; A first judgment module is used to judge whether the currently determined completed command can be successfully written into the completed command queue CQ of the CPU of the device where the device is located. If successful, the feedback module is triggered; if failed, the second judgment module and the stop module are triggered; The feedback module is used to send a confirmation signal to the acceleration card at the requesting end so that it can send the next data specified by the sending command; The second judgment module is used to inform the CPU of the failure information and judge whether the currently determined completed command can be successfully written into the CQ within a preset time, and if so, trigger the feedback module; A stop module is used to stop feeding back confirmation signals to the accelerator card at the requesting end; The first judgment module is specifically used for: Determine whether the completed command queue CQ of the CPU of the device where the device is located has storage space to accommodate the currently determined completed command; If yes, write the currently determined completed command into the CQ of the CPU of the device where the device is located; If not, it is determined that the currently determined completed command cannot be successfully written into the CQ of the CPU of the device where the device is located; The confirmation signal is used to trigger the acceleration card at the requesting end to send data; When receiving complete data specified by a sending command sent by the acceleration card of the requesting end, determining the sending command as a completed command specifically comprises: Receive the data packet sent by the accelerator card at the request end; Determine whether the latest data packet sent by the accelerator card of the requesting end is the last data packet of the complete data specified by the sending command to which it belongs; If yes, the sending command is determined as a completed command; Otherwise, the step of receiving the data packet sent by the acceleration card of the requesting end is executed; The task management device is also used to: If not, an alarm message is sent to the CPU; The acceleration card is a field programmable gate array FPGA; The acceleration card at the requesting end sends data to the acceleration card at the responding end through remote direct data access (RDMA) technology.

3. A task management device, characterized in that: include: Memory for storing computer programs; A processor is used to implement the steps of the task management method as claimed in claim 1 when executing the computer program.

4. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the task management method according to claim 1 are implemented.

Citation Information

Patent Citations

  • FPGA-based communication method and device, host and heterogeneous acceleration system

    CN109558250A

  • Transmission method and device based on remote direct data access

    CN111400212A

  • Data access control method, embedded storage system and embedded device

    CN112256601A

  • SSD access method and device based on FPGA, storage system and storage medium

    CN112732176A

  • Method for processing NVMe completion queue (CQ) blocking and storage device

    CN112765052A