Task processing method and device, electronic equipment and storage medium

By setting up an accelerator and an accelerator caller in the cluster, coordinating the allocation of DPU resources, the problems of insufficient computing power and low task parallel efficiency in the existing technology are solved, and efficient DPU computing resource management and task parallel processing are achieved.

CN119718621APending Publication Date: 2025-03-28YUSUR TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411583387.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-07
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The existing CPU solution cannot provide sufficient computing power to support the current big data business scale, and when multi-core acceleration cards handle multiple independent computing tasks, the interface provided by the DPU runtime does not support the negotiation processing of resource allocation and execution strategies, resulting in the reduction of parallel task execution efficiency.

Method used

Set up the acceleration card manager in the main node of the cluster, and set up the acceleration card caller in each computing node. Access the acceleration card manager through the acceleration card caller to obtain the free resource information of the acceleration card, and coordinate the allocation of DPU resources between different computing tasks.

Benefits of technology

It realizes pooling management of DPU computing resources in a cluster environment, improves the parallel processing efficiency of different computing tasks, and reduces the operating load during the acceleration card operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119718621A_ABST
    Figure CN119718621A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a task processing method and device, electronic equipment and a storage medium, and the method comprises the steps: responding to a task request of a first application program of a first computing node in all computing nodes, and carrying out the task processing of the first application program through an accelerator card caller of the first computing node; acquiring idle resources of the accelerator card of the first computing node from the accelerator card manager of the main node, and sending task data of the task request to the accelerator card of the first computing node when the accelerator card runs under the condition that the idle resources of the accelerator card can meet the execution requirement of the task request, and calling the acceleration card of the first computing node to execute task request processing. Therefore, the acceleration card caller in each computing node directly accesses the acceleration card manager in the main node to obtain the DPU idle computing resources, pooling management of the DPU computing resources in a cluster environment can be realized, and the task parallel execution efficiency of the acceleration card is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of big data processing technology, and in particular to a task processing method, device, electronic device and storage medium. Background Art

[0002] With the rapid development of Internet technology, a large amount of data is being generated, and with it comes the question of how to safely and effectively store, retrieve, and manage a large amount of data. Using big data technologies such as databases can efficiently and clearly store and manage data.

[0003] With the development of technology, the performance of disk reading and writing and network bandwidth has been continuously improved. The performance bottleneck in the field of big data processing has shifted to computing power. The existing CPU solutions cannot provide sufficient computing power to support the current scale of big data business. Therefore, providing solutions and technical architectures with stronger computing power is an urgent problem to be solved.

[0004] The DPU accelerator card is a low-power, low-cost dedicated processing unit that can be used to improve the processing efficiency of the CPU, release CPU computing power, and provide basic data services for the CPU.

[0005] At present, single-core accelerator cards (i.e., DPU accelerator cards contain only one accelerator core) used to process big data have a high throughput, but the task parallelism of single-core accelerator cards is still relatively small compared to the number of concurrent task requests that can be generated by the main computing device. Based on this, the industry has developed multi-core accelerator cards containing multiple accelerator cores to increase the number of parallel execution of tasks.

[0006] In actual applications, computing devices mainly call multi-core accelerator cards to execute various computing tasks in computing devices through local interactions provided by DPU runtime. When accessing different computing resources of the same accelerator card, cross-process and cross-node data synchronization is required to coordinate the allocation of DPU resources between different computing tasks. However, since the interface provided by DPU runtime is generally used to monopolize DPU resources, it does not solve the negotiation of DPU resource allocation and execution strategy between multiple independent computing tasks, which reduces the efficiency of parallel execution of tasks of multi-core accelerator cards. Summary of the invention

[0007] In view of this, an embodiment of the present application provides a task processing solution, which can reduce the operating load of the accelerator card during operation and improve the parallel execution efficiency of the tasks of the accelerator card.

[0008] According to a first aspect of an embodiment of the present application, a task processing method is provided, which is applied to a cluster including a master node and multiple computing nodes, wherein the master node includes an accelerator card manager, and each computing node is respectively connected to an accelerator card and respectively includes at least one application program, an accelerator card caller, and an accelerator card runtime, wherein the method includes:

[0009] In response to a task request of a first application of a first computing node among each computing node, the idle resources of the accelerator card of the first computing node are obtained from the accelerator card manager through the accelerator card caller of the first computing node, and when the idle resources of the accelerator card can meet the execution requirements of the task request, the task data of the task request is sent to the accelerator card runtime of the first computing node; when the accelerator card is runtime, the accelerator card of the first computing node is called to process the task data of the task request, and the processing result data of the task request is returned to the first application via the accelerator card caller.

[0010] According to a second aspect of an embodiment of the present application, a task processing device is provided, which is applied to a cluster including a master node and multiple computing nodes, wherein the master node includes an accelerator card manager, and each computing node is respectively connected to an accelerator card and respectively includes at least one application program, an accelerator card caller, and an accelerator card runtime. The device includes:

[0011] a resource query module, configured to respond to a task request of a first application program of a first computing node among the computing nodes, obtain idle resources of the accelerator card of the first computing node from the accelerator card manager through the accelerator card caller of the first computing node, and send task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can meet the execution requirements of the task request;

[0012] The task execution module, when running through the acceleration card, calls the acceleration card of the first computing node to process the task data of the task request, and returns the processing result data of the task request to the first application via the acceleration card caller.

[0013] According to a third aspect of an embodiment of the present application, an electronic device is provided, comprising: a memory and a processor, wherein a computer program is stored in the memory, and when the computer program is executed by the processor, the task processing method described in the first aspect is implemented.

[0014] According to a fourth aspect of an embodiment of the present application, a computer storage medium is provided, wherein the computer storage medium stores a computer program code. When the computer program code is executed by a processor, the processor executes the task processing method described in the first aspect.

[0015] To sum up, the task processing solution provided by various aspects of the present application is to set an accelerator card manager in the master node of the cluster and an accelerator card caller in each computing node, so that each computing node can access the accelerator card manager through the accelerator card caller to obtain the idle resource information of the accelerator card, thereby coordinating the allocation of DPU resources between different computing tasks, and realizing pooled management of DPU computing resources in a cluster environment, thereby improving the parallel processing efficiency of different computing tasks. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the embodiments of the present application. For ordinary technicians in this field, other drawings can also be obtained based on these drawings.

[0017] Figure 1 It is a schematic diagram of the structure of a heterogeneous computing system in the related art.

[0018] FIG. 2A to FIG. 2B A schematic diagram of the system architecture of a heterogeneous computing system equipped with a multi-core accelerator card.

[0019] Figure 2C It is a schematic diagram of the structural relationship of calling the multi-core acceleration card 220 to execute tasks in the related art.

[0020] FIG. 3A to FIG. 3B It is a schematic diagram of a system architecture suitable for implementing the task processing method or device of each embodiment of the present disclosure.

[0021] Figure 4 This is a processing flow chart of a task processing method according to an exemplary embodiment of the present application.

[0022] Figure 5 This is a processing flow chart of a task processing method according to another exemplary embodiment of the present application.

[0023] Figure 6 to Figure 7 The following is a timing diagram describing various interaction scenarios between the accelerator card caller and the accelerator card manager.

[0024] Figure 8 It is a structural block diagram of a task processing device according to an exemplary embodiment of the present application.

[0025] Fig. 9 It is a structural block diagram of an electronic device according to an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0026] In order to enable those skilled in the art to better understand the technical solutions in the embodiments of the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. All other embodiments obtained by ordinary technicians in this field based on the embodiments in the embodiments of the present application should fall within the scope of protection of the embodiments of the present application.

[0027] The DPU accelerator card (referred to as the accelerator card in the following description) is a low-power, low-cost dedicated processing unit that can be used to improve the processing efficiency of the CPU, release the CPU computing power, and provide basic data services for the CPU.

[0028] Figure 1 The heterogeneous computing system 100 is shown to be composed of a host computing device 110 and an accelerator card 120. The accelerator card 120 is plugged into the host computing device 110 via a PCIe interface (not shown) so that data can be transmitted between the accelerator card 120 and the host computing device 110 via the PCIe interface.

[0029] The main computing device 110 is used to execute tasks. When a part of the task requires data operation, the task data related to the data operation can be transmitted to the accelerator card 120, which performs the data operation and returns the obtained operation result to the main computing device 110, thereby reducing the computing power occupied by the main computing device 110 to perform data operation. At the same time, since the accelerator card 120 has a structure in which the acceleration core 122 and the storage area 124 are separated, the execution efficiency of the data operation can be improved through the cooperation of the acceleration core 122 and the storage area 124.

[0030] Specifically, the acceleration core 122 is a processing unit in the acceleration card 120 for performing data computing tasks. The storage area 124, such as a DDR memory, is a dedicated area in the acceleration card 120 for storing data related to data computing tasks. The acceleration core 122 can read task data from the storage area 124 to perform data computing, write output data to a specified location in the storage area 124, and then return the output data on the storage area 124 to the host computing device 110 through the PCIe interface.

[0031] Since the accelerator card 120 does not need to call the processor 112 (CPU) and memory 114 in the main computing device 110 during the execution of data computing tasks, it can avoid repeatedly occupying the transmission channel between the main computing device 110 and the accelerator card 120, thereby reducing transmission overhead. Furthermore, due to the separation design mechanism between the acceleration core 122 and the storage area 124 in the accelerator card 120, when the accelerator card 120 performs data computing tasks, the accelerator core 122 and the storage area 124 cooperate with each other to achieve higher data computing processing efficiency.

[0032] In big data processing, the main computing device 110 can use multi-core multi-threading to perform pre-processing of each task to be processed (e.g., operator task) in parallel. When performing heterogeneous computing, multiple groups of commands are usually submitted in parallel through asynchronous calls to control the accelerator card 120 to form a pipeline operation of input data transmission, acceleration core execution, and output data transmission.

[0033] For accelerator cards equipped with multiple acceleration cores, different acceleration cores have different data processing efficiencies, and the use of heterogeneous resources, especially the use of the accelerator card storage area (DDR), has different spaces and access frequencies. Therefore, how to use and manage heterogeneous computing resources in a global manner is a technical problem that multi-accelerator core accelerator cards need to solve when improving the parallel processing efficiency of tasks.

[0034] In order to solve the above technical problems, a heterogeneous computing system using multi-core accelerator cards in a “heterogeneous kernel function” manner is proposed. Figure 2A As shown, the heterogeneous computing system 200 includes a main computing device 210 and a multi-core accelerator card 220 (or DPU accelerator card). The main computing device 210 is the main device that executes each operator task, and the multi-core accelerator card 220 is an auxiliary device plugged into the main computing device 210, which can be used to improve the processing speed of the main computing device 210 in a certain aspect. In the embodiment of the present disclosure, the multi-core accelerator card 220 can be used to improve the processing speed of each task to be processed in the main computing device 210.

[0035] In various embodiments of the present application, the tasks to be processed may include but are not limited to operator tasks. The operator in the operator task refers to a symbol, function or method used to perform a specific operation, which can be used for various computing tasks, such as mathematical operations, logical judgments, bit operations, string processing, etc. The present application refers to operators that perform big data processing through accelerator cards (heterogeneous systems).

[0036] The main computing device 210 can be a client or a server. In some embodiments, the main computing device 210 can be embodied as a desktop computer, a laptop computer, a mobile phone, a PDA, a dedicated terminal, or a cluster composed of several terminals. In other embodiments, the main computing device 210 can also be a part divided out of a terminal, such as a virtual machine. The multi-core accelerator card 220 can be embodied as an auxiliary device (such as a card plugged into a card slot), or it can be embodied as another independent device connected to the main computing device 210 through an interface.

[0037] In some embodiments, the main computing device 210 and the multi-core acceleration card 220 can be communicatively connected via a PCIe interface, and the multi-core acceleration card 220 can be inserted into the main computing device 210 via a PCIe slot to facilitate data transmission between the main computing device 210 and the multi-core acceleration card 220 via PCIe.

[0038] In various embodiments of the present disclosure, each application 216A to 216C in the host computing device 210 may perform a big data analysis task (see Figure 2C ), when part of the data analysis task involves a large number of operator tasks, the data information related to the operator tasks can be transmitted to the multi-core acceleration card 220, which performs the processing of each operator task and returns the processing results of the operator tasks to the main computing device 210, thereby reducing the computing power occupied by the main computing device 210 in executing the operator tasks.

[0039] The main computing device 210 may include a processor (CPU) 212 and a memory 214. The processor 212 is a core component for executing tasks of the main computing device 210. The memory 214 is a component for storing data information of tasks of the main computing device 210, as well as intermediate results and final results generated by the main computing device 210 executing tasks. Among them, data information related to operator tasks is also stored in the memory 214. When executing an operator task, the processor 212 can call out data information related to the operator task from the memory 214 and send it to the multi-core accelerator card 220.

[0040] The multi-core accelerator card 220 includes a plurality of acceleration cores 222A, 222B, 222C and a storage area 224. Each acceleration core 222A, 222B, 222C is a processing unit in the multi-core accelerator card 120 for executing different types of tasks. For example, the acceleration core 222A is responsible for executing mathematical operation tasks, the acceleration core 222B is responsible for executing logical judgment tasks, and the acceleration core 222C is responsible for executing string processing tasks. Since the acceleration cores 222A, 222B, and 222C are designed to specifically execute operator tasks, the processing efficiency of operator tasks can be improved.

[0041] The storage area 224, for example, a DDR memory, is a special area in the multi-core accelerator card 220 for storing data related to operator tasks. In various embodiments of the present application, the storage area 224 can be divided into a plurality of resource pools 224A, 224B, and 224C corresponding to each acceleration core 222A, 222B, and 222C. The capacity of each resource pool 224A, 224B, and 224C can be the same or different, and can be dynamically adjusted and allocated according to actual processing requirements.

[0042] like Figure 2B As shown, the main computing device 210 may include multiple heterogeneous kernel functions (or referred to as heterogeneous kernel functions), each of which includes a resource pool (DDR resource) and an acceleration core in the multi-core acceleration card 220. For example, kernel function A includes the resource pool 224A and the acceleration core 222A in the multi-core acceleration card 220, and kernel function B includes the resource pool 224B and the acceleration core 222B in the multi-core acceleration card 220.

[0043] In this embodiment, each kernel function can be regarded as the minimum resource allocation and execution unit executed by the multi-core acceleration card 220. The capacity of the resource pool allocated for each kernel function can be determined by referring to the actual throughput of the acceleration core and the read and write rate of the resource pool (DDR resource read and write rate). By constructing the kernel function, the multi-core acceleration card 220 can be logically regarded as a collection of multiple different kernel functions, wherein the computing power resources required for each kernel function are allocated in advance to avoid mutual dependence and mutual influence of each kernel function during the execution of the calculation.

[0044] refer to Figure 2C When the big data analysis tasks performed by the applications 216A, 216B, and 216C are independent of each other and do not interfere with each other, when the applications 216A, 216B, and 216C generate a large number of operator tasks at the same time, the applications 216A, 216B, and 216C will respectively access the accelerator card runtime (DPU-Runtime) 218 ​​to control the multi-core accelerator card 220 to perform corresponding operator task processing.

[0045] However, the interface provided by the accelerator card runtime 218 is generally used to monopolize the computing resources of the accelerator card, and does not solve the negotiation processing of DPU resource allocation and execution strategy between multiple independent computing tasks. When a large number of applications in the main computing device 210 simultaneously initiate task execution requests to the accelerator card runtime 218, the running load of the accelerator card runtime 218 will increase significantly, resulting in a significant reduction in the task execution efficiency of the accelerator card. Especially in a cluster environment containing a large number of computing nodes, the above technical problems will be particularly prominent.

[0046] In view of this, the present disclosure proposes a task processing solution that can use accelerator card computing resources on a large scale in a cluster environment for a heterogeneous computing system that allocates and uses heterogeneous computing resources based on the "heterogeneous kernel function" method, so as to realize pooled management of accelerator card computing resources in a cluster environment and improve the parallel task execution efficiency of multi-core accelerator cards.

[0047] In order to enable readers to more clearly understand the specific implementation of the technical solution of the present disclosure, the application scenario of the technical solution of the present disclosure is briefly described below.

[0048] The task processing method or device of each embodiment of the present disclosure can be applied to Figure 3A The cluster 300 shown includes a master node 320 and multiple computing nodes (eg, a first computing node 310a, a second computing node 310b, a third computing node 310c, etc.).

[0049] In some embodiments, the master node and each computing node may be configured as follows: Figure 1 The host computing device 110 discussed herein may be FIG. 2A to FIG. 2B The master computing device 210 discussed is configured. In this embodiment, the master node and each computing node can have the same hardware configuration without any special restrictions. Therefore, any master computing device in the cluster can be determined as the master node, and other master computing devices in the cluster except the master node can be determined as computing nodes. It is only necessary to ensure that each computing node can access the data of the master node.

[0050] In some embodiments, the master node 320 includes an accelerator card manager (DPU_Manager) 322. That is, a master node 320 agreed upon in a cluster 300 is provided with a unique accelerator card manager 322 for uniformly coordinating and collecting the available status of computing resources of all accelerator cards 318a, 318b, 318c.

[0051] In some embodiments, each computing node is connected to an accelerator card. Figure 3A In the example shown, the first computing node 310a is connected to the acceleration card 318a, the second computing node 310b is connected to the acceleration card 318b, the third computing node 310c is connected to the acceleration card 318c, and so on.

[0052] Each computing node also includes at least one application program (APP), an accelerator card caller, and an accelerator card runtime (DPU-Runtime). Figure 3B The first computing node 310a may include a first application 312a, a second application 312b, an accelerator card caller 314, and an accelerator card runtime 316.

[0053] In this embodiment, each computing node can be plugged with one or more acceleration cards, and at least one acceleration card runtime can be set corresponding to each acceleration card. Therefore, at least one acceleration card runtime should be configured in each computing node.

[0054] In some embodiments, the accelerator card caller 314 may include an application-side calling unit (DPU_Client) and a service-side calling unit (DPU_Server).

[0055] For example, reference Figure 3B , a corresponding number of application-side calling units can be configured according to the number of applications in the computing node. For example, an application-side calling unit 3142a can be configured for the first application 312a in the computing node 310a, and an application-side calling unit 3142b can be configured for the second application 312b, that is, there can be a one-to-one corresponding setting relationship between the application and the application-side calling unit. A corresponding number of service-side calling units can be configured according to the number of acceleration cards plugged into the computing node. For example, a service-side calling unit 3144 can be configured for the acceleration card 318 plugged into the computing node 310a, that is, there can be a one-to-one corresponding setting relationship between the acceleration card and the service-side calling unit.

[0056] In actual applications, the corresponding setting relationship between the application and the application-side calling unit and between the accelerator card and the service-side calling unit can also be adjusted through the software control solution. For example, the setting relationship between the application and the application-side calling unit can be one-to-many, and the setting relationship between the accelerator card and the service-side calling unit can also be one-to-many.

[0057] exist Figure 3A and Figure 3B In the exemplary configuration shown, the service-side calling unit 3144 can cooperate with the accelerator card manager 322 to complete the collection and monitoring of the usage status of the accelerator card 318a, and the accelerator card manager 322 provides the cluster 300 with unified operation and maintenance of the accelerator card resources of each computing node.

[0058] Each application-side calling unit 3142a, 3142b can register and unregister in the accelerator card manager 322 of the master node 320 through the service-side calling unit 3144. The accelerator card manager 322 can detect whether the business process of each application-side calling unit 3142a, 3142b is abnormal based on heartbeat monitoring and other methods, and when it is detected that the business process of any application-side calling unit (for example, the application-side calling unit 3142a) is abnormal (for example, when the communication between the application-side calling unit 3142a and the accelerator card manager 322 is interrupted), the accelerator card manager 322 can notify the service-side calling unit 3144 to release the computing power resources corresponding to the application-side calling unit 3142a in the accelerator card 318a according to the agreement.

[0059] In some embodiments, the master node 320 further includes an accelerator card tool (DPU_Tool) 324, which can submit operation commands to the accelerator card manager 322 through the accelerator card tool 324, or control the service-side calling unit of each computing node to complete general operations on the accelerator card. For example, the service-side calling unit 3144 of the first computing node 310a is controlled to complete general operations on the accelerator card 318a, including but not limited to: status query, reset, deactivate, enable, configure acceleration core, etc. on the accelerator card 318a.

[0060] exist Figure 3B In the configuration shown, the service-side calling unit 3144 can complete the specific control of the accelerator card 318a through the accelerator card runtime 316. For the present disclosure, limited by the working characteristics of the accelerator card runtime 316, the service-side calling unit 3144 can cooperate with the accelerator card runtime 316 to complete the allocation, initialization, occupation, and release operations of the computing resources of the accelerator card 318a corresponding to each computing task.

[0061] Based on the application background discussed in the above embodiments, the present disclosure provides a task processing solution that can significantly improve the task parallel execution efficiency of the accelerator card.

[0062] Task processing method

[0063] Figure 4 The processing flow of the task processing method 400 of the exemplary embodiment of the present disclosure is shown, which mainly includes the following steps:

[0064] Step 402, in response to a task request of a first application program of a first computing node among the computing nodes, obtain the idle resources of the accelerator card of the first computing node from the accelerator card manager through the accelerator card caller of the first computing node, and send task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can satisfy the task request.

[0065] In some embodiments, in response to a task request of a first application 312a of any first computing node 310a among the computing nodes, the idle resources of the accelerator card 318a of the first computing node 310a can be obtained from the accelerator card manager 322 through the application-side calling unit 3142a, and when it is determined that the idle resources of the accelerator card 318a can meet the task request of the first application 312a, the calling unit 3142a sends a calling request of the accelerator card 318a to the service-side calling unit 3144, and in response to the calling request of the accelerator card 318a, the service-side calling unit 3144 sends task data of the task request to the accelerator card runtime 316, and the accelerator card runtime 316 calls the accelerator card 318a to process the task data of the task request.

[0066] In some embodiments, in response to multiple applications (for example, a first application 312a and a second application 312b) initiating multiple task requests simultaneously, each task request of each application can be executed in parallel through each application-side calling unit 3142a and 3142b corresponding to each application.

[0067] Step 404: when the accelerator card is running, the accelerator card of the first computing node is called to process the task data of the task request, and the processing result data of the task request is returned to the first application via the accelerator card caller.

[0068] refer to Figure 3B , the accelerator card runtime 316 can call the accelerator card 318a to process the task data of the task request, and obtain the processing result data of the task data from the accelerator card 318. The accelerator card runtime 316 can send the processing result data to the service side calling unit 3144, and then return it to the first application 312a via the application side calling unit 3142a.

[0069] To sum up, the task processing method of this embodiment sets an accelerator card manager in the master node of the cluster and sets an accelerator card caller in each computing node, so that each computing node can access the accelerator card manager through the accelerator card caller to obtain the idle resource information of the accelerator card, so as to coordinate the allocation and processing of accelerator card resources between different computing tasks. It can realize the pooled management of accelerator card computing resources in a cluster environment and improve the parallel processing efficiency of the accelerator card for different computing tasks.

[0070] Figure 5 This is a processing flow of a task processing method 500 according to another embodiment of the present disclosure.

[0071] In this embodiment, the first computing node 310a may refer to FIG. 2A to FIG. 2BThe main computing device 210 discussed is configured, and the accelerator card 318a connected to the first computing node 310a can refer to FIG. 2A to FIG. 2B The multi-core accelerator card 220 discussed is configured. The first computing node 310 includes multiple kernel functions (for example, kernel function A, kernel function B), and different kernel functions can be used to perform different types of operator tasks, including but not limited to: mathematical operation tasks, logical judgment tasks, bit operation tasks, string processing tasks, etc.

[0072] The accelerator card 318a is a multi-core accelerator card 220 including multiple acceleration cores 222A, 222B and multiple resource pools 224A, 224B, wherein the kernel function A includes the resource pool 224A and the acceleration core 222A in the multi-core accelerator card 220, and the kernel function B includes the resource pool 224B and the acceleration core 222B in the multi-core accelerator card 220.

[0073] like Figure 5 As shown, this embodiment mainly includes the following steps:

[0074] Step 502 : In response to a task request of a first application program of a first computing node among the computing nodes, an application-side calling unit determines a target kernel function corresponding to the task request from among the kernel functions according to a task category of the task request.

[0075] Exemplarily, in response to a task request initiated by a first application 312a of a first computing node 310a, an application-side calling unit 3142a corresponding to the first application 312a can determine a target kernel function (e.g., kernel function A) corresponding to the task request from among various kernel functions based on the task category of the task request.

[0076] Step 504: Send a resource query request of the target kernel function to the accelerator card manager through the application-side calling unit to obtain the number of available queues of the target kernel function.

[0077] Exemplarily, the application-side calling unit 3142a of the first application 312a may send a resource query request of the kernel function A to the accelerator card manager 322 to obtain the current number of available queues of the kernel function A.

[0078] In some embodiments, the update information of various monitoring indicators (including the number of available queues) of each core function in the accelerator card 318a (multi-core accelerator card) can be sent to the accelerator card manager 322 through the service-side calling unit 3144 in the first computing node 310a.

[0079] Exemplarily, the monitoring indicators of the target kernel function (kernel function A) are shown in Table 1 below:

[0080]

[0081] (Table 1)

[0082] "int32_vaddr" in "Kernel function queue name" and "Kernel function queue type" indicates that the multi-core accelerator card is configured with an acceleration core that supports addition operations of int32 type values, which can complete the addition operation of two columns of values.

[0083] "s1" in "Kernel Function Queue Name" is the unique identification information of each kernel function, which is used to identify which acceleration core of which computing node in the cluster the kernel function corresponds to. This unique identification information can be used to determine the acceleration card and configuration parameters configured for the acceleration core.

[0084] "Single call data length" is used to identify the maximum amount of data for a single task that the kernel function can support. When the data length of a single task to be executed in the task request exceeds the single call data length, the task to be executed in the task request can be split into multiple subtasks based on this indicator.

[0085] "Queue length" is used to indicate that the kernel function's processing queue can support up to 128 kernel function call requests (that is, the kernel function's task queue can support up to 128 submissions of tasks to be executed), "queue usage" is used to indicate that 123 kernel function call requests have been generated, and "submitted queue" indicates that 6 kernel function call requests are currently being processed.

[0086] Among them, according to the two monitoring indicators of "queue length 128" and "queue usage 123", the current number of available queues of kernel function A should be 5.

[0087] Generally, if the "Submitted Queue" is not empty, it means that the acceleration core is activated. The utilization rate of the kernel function queue can be used to reflect the utilization rate of the DPU resources, thereby evaluating whether the allocation of DPU resources is appropriate.

[0088] In some embodiments, the service-side calling unit 3144 of the first computing node 310a may define the kernel function's "queue length", "single call data length", the main device memory (refer to the memory 214 shown in FIG. 2 )4 allocated to each queue, the acceleration card memory (refer to the storage area 224 shown in FIG. 2 ) and other resources according to different application scenarios, so as to simplify the physical resource status of the acceleration card, such as direct monitoring of hardware resources such as onboard memory usage and PCIE transmission bandwidth.

[0089] Step 506 , determining whether the number of available queues of the target kernel function is not less than the number of pending tasks requested by the task, if so, proceeding to step 508 , if not, returning to step 504 .

[0090] In this embodiment, if the number of available queues of the target kernel function is not less than the number of tasks to be executed in the task request, it means that the target kernel function can currently meet the execution requirements of the task request, and step 508 is executed.

[0091] Step 508: Send a call request for the target kernel function to the service side calling unit through the application side calling unit.

[0092] Exemplarily, the application-side calling unit 3142a of the first application 312a may send a calling request of kernel function A to the service-side calling unit 3144 to negotiate the number of available queues of kernel function A according to the number of tasks to be processed in the task request.

[0093] In some embodiments, when the number of available queues of kernel function A negotiated between the application-side calling unit 3142a and the service-side calling unit 3144 is insufficient, the application-side calling unit 3142a may enter a queuing state to wait for kernel function A to release sufficient resources, and then send a call request for kernel function A to the service-side calling unit 3144 again.

[0094] In some embodiments, each application-side calling unit 3142a, 3142b may initiate parallel kernel function calling requests to the service-side calling unit 3144 through multi-threading.

[0095] Step 510: Send task data of the task request to the accelerator card runtime of the first computing node through the service-side calling unit according to the calling request of the target kernel function.

[0096] Exemplarily, the service-side calling unit 3144 may send task data of the requested task to the accelerator card runtime 316 in response to the calling request of the target kernel function.

[0097] Step 512: When the accelerator card is running, the accelerator card of the first computing node is called to process the task data of the task request, and the processing result data of the task request is returned to the first application via the accelerator card caller.

[0098] Exemplarily, the accelerator card runtime 316 can call the accelerator card 318a to process the task data of the task request, and obtain the processing result data of the task data from the accelerator card 318. The accelerator card runtime 316 can send the processing result data to the service side calling unit 3144, and then return it to the first application 312a via the application side calling unit 3142a.

[0099] In some embodiments, after the first application 312a obtains the processing result data of the task request, the application-side calling unit 3142a may actively notify the service-side calling unit 3144 to release the kernel function resources in the target kernel function allocated to the task request of the first application 312a, that is, in step 508, the number of available kernel function queues is negotiated and determined between the application-side calling unit 3142a and the service-side calling unit 3144.

[0100] In some embodiments, the accelerator card manager 322 can send a resource release instruction of the application side calling unit 3142a to the service side calling unit 3144 of the first computing node 310a in response to the detection result of the communication abnormality between the application side calling unit 3142a of the first computing node 310a and the accelerator card manager 322, and the accelerator card resources of all task requests allocated to the application side calling unit 3142a in the accelerator card 318a can be released by the service side calling unit 3144 in response to the resource release instruction of the accelerator card manager 322.

[0101] The following will be combined Figure 6 to Figure 7 The timing diagram shown exemplarily describes various interaction scenarios between the accelerator card caller and the accelerator card manager in various embodiments of the present disclosure.

[0102] Figure 6 Steps 6.1.1 to 6.1.3 show the interaction scenario between system initialization and DPU node registration and configuration, which mainly include:

[0103] Step 6.1.1, initialize the service process of the accelerator card manager (DPU-Manager), register the computing node through the service side calling unit (DPU_Server), and listen to the network service port of the computing node.

[0104] Step 6.1.2: Perform computing resource configuration handshake based on the server-side calling unit (DPU-Server) status and local configuration.

[0105] Step 6.1.3: Send a DPU resource configuration request to the accelerator card manager (DPU-Manager) through the accelerator card tool (DPU_Tool).

[0106] Step 6.1.4: The accelerator card manager (DPU-Manager) responds to the DPU resource configuration request and initiates a configuration request to the service side calling unit (DPU_Server).

[0107] Step 6.1.5, the service-side calling unit (DPU_Server) initializes the "heterogeneous kernel function queue" through the accelerator card runtime (DPU-Runtime). During this process, the accelerator card resources can be allocated according to the configuration.

[0108] Step 6.1.6, the accelerator card responds to the control of the accelerator card runtime (DPU-Runtime) and creates kernel function configuration resources.

[0109] At this point, the system is ready to respond to kernel function call requests from the application-side calling unit (DPU-Client).

[0110] Figure 6 Steps 6.2.1 to 6.2.3 show the interactive scenario of DPU status update and query, which mainly includes:

[0111] Step 6.2.1: After the service process of the service-side calling unit (DPU-Server) is started, a handshake is performed with the accelerator card manager (DPU-Manager) according to the configuration.

[0112] Step 6.2.2: Initialize and update the heterogeneous kernel function queue by refreshing the local state of the service-side calling unit (DPU-Server) or responding to the DPU configuration request of the accelerator card tool (DPU_Tool).

[0113] Step 6.2.3: Through the heartbeat mechanism, the service-side calling unit (DPU-Server) periodically sends the update status of the heterogeneous kernel function queue to the accelerator card manager (DPU-Manager).

[0114] When the service process of the application-side calling unit (DPU-Client) is started, it can shake hands with the accelerator card manager (DPU-Manager) to obtain the DPU resource configuration information and the update status of the heterogeneous kernel function queue.

[0115] When the service process of the application-side calling unit (DPU-Client) ends or an exception occurs, the accelerator card manager (DPU-Manager) notifies the service-side calling unit (DPU-Server) to release the relevant resources of the application-side calling unit (DPU-Client).

[0116] Figure 6 Steps 6.3.1 to 6.3.4 show the interactive scenario of kernel function calling and execution, which mainly includes:

[0117] Step 6.3.1, the application side calling unit (DPU-Client) establishes a connection with the service side calling unit (DPU-Server), and negotiates with the service side calling unit (DPU-Server) on the callable kernel function resources according to the number of tasks to be executed in the task request.

[0118] Step 6.3.2, the service-side calling unit (DPU-Server) calls the accelerator card to execute the task data requested by the task through the accelerator card runtime (DPU_Runtime) based on the call negotiation result of the kernel function resource.

[0119] Step 6.3.3, the service-side calling unit (DPU-Server) returns the processing result data of the task request obtained from the accelerator card to the application-side calling unit (DPU_Client).

[0120] Step 6.3.4, the application side calls the unit (DPU_Client) and actively notifies the service side calling unit (DPU-Server) to release the negotiated kernel function resources.

[0121] Figure 7 Steps 7.1 to 7.4 show the remote call improvement of the accelerated core execution sub-process implemented by the technical architecture of the present disclosure (which can also be regarded as Figure 6 The further implementation scheme of steps 6.3.1 to 6.3.4 of the embodiment of the present invention mainly includes:

[0122] Step 7.1: After the application-side calling unit (DPU-Client) is started, the shared memory area is initialized according to the configuration.

[0123] Step 7.2: After the connection, the application-side calling unit (DPU-Client) and the service-side calling unit (DPU-Server) shake hands and negotiate the name, location, capacity and other information of the shared memory.

[0124] Step 7.3: The application program (APP) calls the heterogeneous kernel function interface provided by the application-side calling unit (DPU-Client) to perform heterogeneous computing tasks, including:

[0125] Step 7.3.1, write the task data into the agreed area of ​​the shared memory;

[0126] Step 7.3.2: Initiate a remote kernel function call;

[0127] Step 7.3.2.1, the service side calling unit (DPU-Server) executes the heterogeneous kernel function call, sends the task data of the task request to the accelerator card to call the acceleration core in the accelerator card to perform the task operation, and returns the processing result data to the service side calling unit (DPU-Server).

[0128] Step 7.3.3: The service-side calling unit (DPU-Server) writes the processing result data into the agreed area of ​​the shared memory, and the remote kernel function call is completed.

[0129] Step 7.4: The application-side calling unit (DPU-Client) obtains the processing result data from the agreed area of ​​the shared memory.

[0130] This solution improves the sub-process of the acceleration core executing tasks through the interaction between the application-side calling unit (DPU-Client) and the service-side calling unit (DPU-Server), which can simplify the working mode of the business process using the acceleration core in the big data processing scenario. Through this interactive improvement, the coordination problem of the same DPU resource in the cluster environment during parallel processing is solved, and the performance and efficiency of the system are improved.

[0131] Furthermore, this solution is based on the "software-defined" feature of the DPU acceleration core, that is, coordinating the use and release of computing resources at the business layer, and pre-allocating the acceleration core computing resources through the "heterogeneous kernel function queue". It can efficiently allocate the acceleration core computing resources among multiple processes. And because the "heterogeneous kernel function queue" represented by the acceleration core is easy to quantify, a general big data platform can integrate different types of acceleration cores to meet diverse data processing needs. It is a DPU computing resource management solution with wide applicability.

[0132] To sum up, the task processing method of this embodiment, by setting an application-side calling unit (DPU_Client) and a service-side calling unit (DPU_Server) in the computing node and setting an accelerator card manager (DPU_Manager) in the master node, can expand the applicability of "heterogeneous kernel functions" in a big data cluster environment, realize the sharing of the accelerator card computing resource status based on the "heterogeneous kernel function queue" in the cluster environment, simplify the unified scheduling and management of the accelerator card computing resources by the big data processing platform, and improve the parallel execution efficiency of the accelerator card tasks.

[0133] In summary, the task processing method of this embodiment provides a general quantitative analysis solution for heterogeneous computing power resources. Specifically, this embodiment divides the task to be processed into multiple subtasks to be processed based on the storage capacity of each resource block in the target resource pool. Since each subtask to be processed after the division is executed by using the corresponding resource blocks in the multi-core acceleration card respectively, therefore, by analyzing the usage status of each resource block, the utilization rate of the storage resources (DDR resources) of the multi-core acceleration card can be quantitatively analyzed, and the computing power resource allocation of each acceleration core can be adjusted accordingly, and the execution efficiency of a single acceleration core in the multi-core acceleration card is optimized. It is particularly suitable for the computing power resource description of the multi-core acceleration card, which is conducive to improving the computing resource utilization rate in the big data processing scenario.

[0134] Figure 8The structure block diagram of the task processing device 800 of the exemplary embodiment of the present application is shown in FIG.

[0135] The resource query module 802 is used to respond to the task request of the first application program of the first computing node among the computing nodes, obtain the idle resources of the accelerator card of the first computing node from the accelerator card manager through the accelerator card caller of the first computing node, and send the task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can meet the execution requirements of the task request;

[0136] The task execution module 804 is used to call the acceleration card of the first computing node to process the task data of the task request when the acceleration card is running, and return the processing result data of the task request to the first application via the acceleration card caller.

[0137] In some embodiments, the accelerator card caller in each computing node includes an application-side calling unit and a service-side calling unit.

[0138] In some embodiments, the resource query module 802 is also used to: in response to a task request of the first application, obtain the idle resources of the accelerator card of the first computing node from the accelerator card manager through the application-side calling unit, and send the call request of the accelerator card to the service-side calling unit when it is determined that the idle resources of the accelerator card can meet the execution requirements of the task request; and send the task data of the task request to the accelerator card during operation through the service-side calling unit in response to the call request of the accelerator card.

[0139] In some embodiments, the first computing node is connected to a multi-core acceleration card including multiple acceleration cores and multiple resource pools, the first computing node includes multiple kernel functions, and each kernel function includes a resource pool and an acceleration core in the multi-core acceleration card.

[0140] In some embodiments, the resource query module 802 is also used to: respond to a task request of a first application program of the first computing node, determine the target kernel function corresponding to the task request from each kernel function through the application-side calling unit according to the task category of the task request, and send a resource query request for the target kernel function to the accelerator card manager to obtain the number of available queues of the target kernel function; send a call request for the target kernel function to the service-side calling unit through the application-side calling unit according to the number of available queues of the target kernel function and the number of tasks to be executed of the task request, if it is judged that the number of available queues is not less than the number of tasks to be executed; and send the task data of the task request to the accelerator card runtime of the first computing node through the service-side calling unit according to the call request of the target kernel function.

[0141] In some embodiments, the first computing node includes a plurality of application programs, and the accelerator card caller of the first computing node includes a plurality of application-side calling units corresponding to each application program.

[0142] In some embodiments, the resource query module 802 is further used to: in response to the multiple application programs initiating multiple task requests simultaneously, execute the task requests of the various application programs in parallel through the application-side calling units of the various application programs.

[0143] In some embodiments, the resource query module 802 is also used to: through the application side calling unit, based on the number of available queues of the target kernel function and the number of tasks to be executed of the task request, when it is judged that the number of available queues is less than the number of tasks to be executed, return to execute the step of sending a queue query request for the target kernel function to the accelerator card manager until the number of available queues of the target kernel function is not less than the number of tasks to be executed.

[0144] In some embodiments, the resource query module 802 is further used to: send update information of the number of available queues of each core function in the multi-core acceleration card to the acceleration card manager through the service-side calling unit.

[0145] In some embodiments, the resource query module 802 is also used to: through the accelerator card manager, in response to the detection result of the communication abnormality between the application side calling unit of the first computing node and the accelerator card manager, send a resource release instruction of the application side calling unit to the service side calling unit of the first computing node; through the service side calling unit, in response to the resource release instruction, release the accelerator card resources of all task requests allocated to the application side calling unit in the accelerator card.

[0146] An embodiment of the present application further provides a computer storage medium, wherein the computer storage medium stores computer program code. When the computer program code is executed by a processor, the processor executes the task processing method described in the above embodiments.

[0147] The exemplary embodiment of the present application provides an electronic device, comprising: at least one processor; and a memory connected to the at least one processor in communication. The memory stores a computer program that can be executed by the at least one processor, and when the computer program is executed by the at least one processor, the electronic device performs the task processing method according to each exemplary embodiment of the present application.

[0148] Please refer to Fig. 9 , a block diagram of an electronic device 900 that can be used as a server or client of the present application will now be described, which is an example of a hardware device that can be applied to various aspects of the present application. The electronic device is intended to represent various forms of digital electronic computer devices, such as laptop computers, desktop computers, workbenches, personal digital assistants, server terminals, blade server terminals, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or required herein.

[0149] like Fig. 9 As shown, the electronic device 900 includes a computing unit 901, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 902 or a computer program loaded from a storage unit 908 into a random access memory (RAM) 903. In the RAM 903, various programs and data required for the operation of the device 900 can also be stored. The computing unit 901, the ROM 902, and the RAM 903 are connected to each other via a bus 904. An input / output (I / O) interface 905 is also connected to the bus 904.

[0150] A plurality of components in the electronic device 900 are connected to the I / O interface 905, including: an input unit 906, an output unit 907, a storage unit 908, and a communication unit 909. The input unit 906 may be any type of device capable of inputting information to the electronic device 900, and the input unit 906 may receive input digital or character information, and generate key signal inputs related to user settings and / or function control of the electronic device. The output unit 907 may be any type of device capable of presenting information, and may include, but is not limited to, a display, a speaker, a video / audio output terminal, a vibrator, and / or a printer. The storage unit 908 may include, but is not limited to, a disk, an optical disk. The communication unit 909 allows the electronic device 900 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks, and may include, but is not limited to, a modem, a network card, an infrared communication device, a wireless communication transceiver, and / or a chipset, such as a Bluetooth™ device, a WiFi device, a WiMax device, a cellular communication device, and / or the like.

[0151] The computing unit 901 may be a variety of general and / or special processing components with processing and computing capabilities. Some examples of the computing unit 901 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processors (DSPs), and any appropriate processors, controllers, microcontrollers, etc. The computing unit 901 performs the various methods and processes described above. For example, in some embodiments, the task processing method as described above may be implemented as a computer software program, which is tangibly included in a machine-readable medium, such as a storage unit 908. In some embodiments, part or all of the computer program may be loaded and / or installed on the electronic device 900 via the ROM 902 and / or the communication unit 909. In some embodiments, the computing unit 901 may be configured to perform the above-described task processing method in any other appropriate manner (e.g., by means of firmware).

[0152] The program code for implementing the method of the present application can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer or other programmable data processing device, so that the program code, when executed by the processor or controller, enables the functions / operations specified in the flow chart and / or block diagram to be implemented. The program code can be executed entirely on the machine, partially on the machine, partially on the machine and partially on a remote machine as a stand-alone software package, or entirely on a remote machine or server.

[0153] In the context of the present application, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0154] As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus, and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.

[0155] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0156] The systems and techniques described herein may be implemented in a computing system that includes backend components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes frontend components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such backend components, middleware components, or frontend components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.

[0157] A computer system may include a client and a server. The client and the server are generally remote from each other and usually interact through a communication network. The client and the server relationship is generated by computer programs running on respective computers and having a client-server relationship with each other.

[0158] It should be pointed out that, according to the needs of implementation, the various components / steps described in the embodiments of the present application can be split into more components / steps, or two or more components / steps or partial operations of components / steps can be combined into new components / steps to achieve the purpose of the embodiments of the present application.

[0159] The above implementation methods are only used to illustrate the embodiments of the present application, and are not limitations on the embodiments of the present application. Ordinary technicians in the relevant technical field can make various changes and modifications without departing from the spirit and scope of the embodiments of the present application. Therefore, all equivalent technical solutions also belong to the scope of the embodiments of the present application. The scope of patent protection of the embodiments of the present application should be limited by the claims.

Claims

1. A task processing method, characterized in that: Applied to a cluster including a master node and multiple computing nodes, the master node includes an accelerator card manager, and each computing node is connected to an accelerator card and includes at least one application, an accelerator card caller, and an accelerator card runtime. The method includes: In response to a task request of a first application program of a first computing node among the computing nodes, the accelerator card caller of the first computing node obtains idle resources of the accelerator card of the first computing node from the accelerator card manager, and sends task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can meet the execution requirements of the task request; When the accelerator card is running, the accelerator card of the first computing node is called to process the task data of the task request, and the processing result data of the task request is returned to the first application via the accelerator card caller.

2. The method according to claim 1, characterized in that The accelerator card caller in each computing node includes an application-side calling unit and a service-side calling unit; The method of responding to a task request of a first application program of a first computing node among the computing nodes, obtaining idle resources of the accelerator card of the first computing node from the accelerator card manager through the accelerator card caller of the first computing node, and sending task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can meet the execution requirements of the task request includes: In response to the task request of the first application, obtaining the idle resources of the accelerator card of the first computing node from the accelerator card manager through the application-side calling unit, and sending the calling request of the accelerator card to the service-side calling unit when it is determined that the idle resources of the accelerator card can meet the execution requirements of the task request; The service-side calling unit sends the task data of the task request to the accelerator card during operation in response to the calling request of the accelerator card.

3. The method according to claim 2, wherein: The first computing node is connected to a multi-core acceleration card including a plurality of acceleration cores and a plurality of resource pools, the first computing node includes a plurality of kernel functions, and each kernel function includes a resource pool and an acceleration core in the multi-core acceleration card; The step of responding to a task request of a first application program of a first computing node among the computing nodes, obtaining idle resources of the accelerator card of the first computing node from the accelerator card manager through the accelerator card caller of the first computing node, and sending task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can meet the execution requirements of the task request includes: In response to a task request of a first application program of the first computing node, determining, by the application-side calling unit, a target kernel function corresponding to the task request from each kernel function according to a task category of the task request, and sending a resource query request of the target kernel function to the accelerator card manager to obtain the number of available queues of the target kernel function; By means of the application-side calling unit, according to the number of available queues of the target kernel function and the number of tasks to be executed of the task request, when it is determined that the number of available queues is not less than the number of tasks to be executed, sending a calling request of the target kernel function to the service-side calling unit; The service-side calling unit sends the task data of the task request to the accelerator card of the first computing node during runtime according to the calling request of the target kernel function.

4. The method according to claim 3, characterized in that The first computing node includes a plurality of application programs, and the accelerator card caller of the first computing node includes a plurality of application-side calling units corresponding to each application program; Wherein, the method comprises: In response to the multiple application programs initiating multiple task requests simultaneously, the task requests of the various application programs are executed in parallel through the application-side calling units of the various application programs.

5. The method according to claim 3, characterized in that: The method comprises: Through the application-side calling unit, based on the number of available queues of the target kernel function and the number of tasks to be executed of the task request, when it is determined that the number of available queues is less than the number of tasks to be executed, return to the step of sending a queue query request for the target kernel function to the accelerator card manager until the number of available queues of the target kernel function is not less than the number of tasks to be executed.

6. The method according to claim 3, characterized in that The method comprises: The update information of the number of available queues of each core function in the multi-core accelerator card is sent to the accelerator card manager through the service-side calling unit.

7. The method according to claim 2, wherein: The method further comprises: By means of the accelerator card manager, in response to a detection result of a communication anomaly between the application-side calling unit of the first computing node and the accelerator card manager, sending a resource release instruction of the application-side calling unit to the service-side calling unit of the first computing node; The service-side calling unit releases the accelerator card resources in the accelerator card for all task requests allocated to the application-side calling unit in response to the resource release instruction.

8. A task processing device, characterized in that: Applied to a cluster including a master node and multiple computing nodes, the master node includes an accelerator card manager, each computing node is connected to an accelerator card and includes at least one application, an accelerator card caller, and an accelerator card runtime, the device includes: a resource query module, configured to respond to a task request of a first application program of a first computing node among the computing nodes, obtain idle resources of the accelerator card of the first computing node from the accelerator card manager through the accelerator card caller of the first computing node, and send task data of the task request to the accelerator card runtime of the first computing node when the idle resources of the accelerator card can meet the execution requirements of the task request; The task execution module is used to call the acceleration card of the first computing node to process the task data of the task request when the acceleration card is running, and return the processing result data of the task request to the first application via the acceleration card caller.

9. An electronic device, characterized in that: include: A memory and a processor, wherein a computer program is stored in the memory, and when the computer program is executed by the processor, the task processing method as described in any one of claims 1 to 7 is implemented.

10. A computer storage medium, characterized in that: The computer storage medium stores computer program code, and when the computer program code is executed by the processor, the processor executes the task processing method as described in any one of claims 1 to 7.