Resource processing method and device, computer equipment and storage medium

By hijacking library file hijacking task execution instructions, replacing interfaces and obtaining resource pool information, fine-grained management of GPU resources is realized, the problems of resource utilization and performance losses in the existing technology are solved, and the utilization and management of GPU resources are improved efficiency.

CN119179567APending Publication Date: 2024-12-24INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202411182698.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-27
Publication Date
2024-12-24

AI Technical Summary

Technical Problem

The existing GPU resource management methods have limitations in resource utilization and elastic expansion, especially inability to meet the needs of fine-grained video memory management, and the performance loss during the virtualization process is large, affecting task execution efficiency.

Method used

By hijacking the library file hijacking task execution instructions, replace the application call interface with a preset function, replace the host process field with the resource pool process field, obtain the video memory information and computing power information of the resource pool, and based on the preset resource allocation rules Perform fine-grained video memory and computing resource allocation.

Benefits of technology

It realizes fine-grained isolation of GPU resources, improves resource utilization, reduces hardware costs, and improves the flexible scheduling and management efficiency of GPU resources without modifying the deep learning framework code.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119179567A_ABST
    Figure CN119179567A_ABST
Patent Text Reader

Abstract

The invention relates to a resource processing method and device, computer equipment and a storage medium. The method comprises the steps of obtaining a task execution instruction operated by an application program in a resource pool, wherein the task execution instruction carries application program calling interface information corresponding to a task; hijacking the task execution instruction through the hijacking library file, replacing application program calling interface information corresponding to the task with a preset function, and replacing a host machine process field with a resource pool process field through the preset function to generate a target task execution instruction; in response to the received target task execution instruction, the scheduling center of the host machine obtains video memory information of the resource pool and computing power information of the resource pool according to the target task execution instruction; and carrying out resource allocation on the resource pool based on a preset resource allocation rule, the video memory information of the resource pool and the computing power information of the resource pool. By adopting the method, efficient resource processing can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] With the rapid development of technologies such as artificial intelligence and deep learning, the demand for computing resources is growing. GPUs have become key hardware to support the development of these technologies due to their powerful parallel processing capabilities. However, traditional GPU resource management methods have many limitations, especially in terms of resource utilization and elastic expansion. In practical applications, the computing power of a single GPU is often not fully utilized. At the same time, the demand for video memory is also diverse, and the demand for video memory varies greatly among different tasks. In order to more efficiently utilize GPU resources and meet the personalized needs of different tasks for computing power and video memory, GPU pooling technology came into being.

[0003] The core of GPU pooling technology is to integrate multiple physical GPU resources into a virtual resource pool, and implement dynamic resource allocation and management through software-defined methods. The emergence of this technology enables multiple tasks to share the same set of GPU resources, dynamically adjust the allocation of computing power and video memory according to actual needs, thereby significantly improving GPU utilization and reducing overall hardware costs.

[0004] Although GPU pooling technology has made some progress, existing solutions still have some limitations. For example, some technologies can only achieve coarse-grained allocation of computing power and cannot meet the needs of fine-grained management of video memory; or during the virtualization process, performance loss is large, affecting the execution efficiency of tasks. Summary of the invention

[0005] Based on this, it is necessary to provide a resource processing method, device, computer equipment and storage medium that can quickly locate the target node position and achieve efficient data processing in response to the above technical problems.

[0006] In order to solve the above technical problems, in a first aspect, a resource processing method is provided, the method comprising:

[0007] Obtaining the task execution instruction of the application running in the resource pool, the task execution instruction carries the application calling interface information corresponding to the task;

[0008] Hijack the task execution instruction by hijacking the library file, replace the application call interface information corresponding to the task with a preset function, and replace the host process field with the resource pool process field through the preset function to generate the target task execution instruction;

[0009] In response to receiving the target task execution instruction, the scheduling center of the host machine obtains the video memory information and the computing power information of the resource pool according to the target task execution instruction;

[0010] Allocate resources to the resource pool based on preset resource allocation rules, the memory information of the resource pool, and the computing power information of the resource pool.

[0011] In one embodiment, the method further comprises:

[0012] Get the total amount of video memory in the resource pool;

[0013] Traverse each device in the resource pool and obtain the total amount of video memory used by each device in the resource pool;

[0014] Calculate the remaining video memory capacity of the resource pool based on the total video memory of the resource pool and the total video memory used by each device in the resource pool;

[0015] Determine whether the resource pool meets the allocation conditions based on the remaining video memory capacity of the resource pool;

[0016] If the conditions are met, video memory is allocated to the resource pool based on the preset resource allocation rule and the video memory information of the resource pool.

[0017] In one embodiment, allocating resources for a resource pool based on a preset resource allocation rule, video memory information of the resource pool, and computing power information of the resource pool includes:

[0018] Get the video memory resources required for task execution;

[0019] Allocate video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool;

[0020] Obtaining the task execution result, evaluating the video memory allocation result according to the task execution result, and obtaining the video memory resource allocation evaluation result;

[0021] Adjust the preset resource allocation rules according to the video memory resource allocation evaluation result.

[0022] In one embodiment, allocating resources for the resource pool based on the preset resource allocation rule, the video memory information of the resource pool, and the computing power information of the resource pool further includes:

[0023] Get the computing power information of each device in the resource pool;

[0024] Obtain the computing power requirements for task execution, and allocate computing power resources based on the computing power information of each device in the resource pool and the computing power execution requirements of the task;

[0025] Obtain the task execution results, evaluate the computing power resource allocation results based on the task execution results, and obtain the computing power resource allocation evaluation results;

[0026] Adjust the preset resource allocation rules according to the computing power resource allocation evaluation results.

[0027] In one embodiment, obtaining the task execution computing power requirement, and allocating computing power resources according to the task computing power execution requirement based on the computing power information of each device in the resource pool includes:

[0028] Traverse each device to determine whether the computing power of each device meets the task computing power execution requirements;

[0029] The device that meets the task instance execution requirements is used as the target device;

[0030] Calculate the remaining load value of each target device based on a preset calculation formula;

[0031] Determine the priority corresponding to each target device according to the remaining load value of each target device;

[0032] Allocate computing resources according to the priority of each target device;

[0033] The preset calculation formula is as follows:

[0034]

[0035] Where W represents the remaining load value of the target device, W i represents the load of the i-th execution task, i represents the i-th execution task, S i represents the workload of the i-th task, T i represents the total duration of the i-th task execution, T0 represents the execution duration of the i-th task execution, C represents the CPU utilization of the target device, and M represents the memory utilization of the target device.

[0036] In one embodiment, allocating video memory resources according to video memory resources required for task execution and remaining video memory capacity in a resource pool includes:

[0037] Get an instance of the memory manager;

[0038] Get the current memory value according to the memory manager instance;

[0039] According to the current memory value, determine whether the memory is used;

[0040] If the memory has not been used, the target function is called directly to allocate the memory;

[0041] If the memory has been used, get the current task memory requirement value;

[0042] Compare the current memory value with the required value in the current task;

[0043] When the current memory value is greater than or equal to the required value in the current task, the target function is called to allocate memory;

[0044] When the current memory value is less than the current task memory requirement value, an alarm instruction is generated to feedback insufficient memory.

[0045] In one embodiment, the method further comprises:

[0046] Monitor the client's transmission control protocol through the monitoring thread to obtain the required parameters corresponding to the execution task;

[0047] Parse the required parameters corresponding to the execution task and obtain the target control symbol;

[0048] Find the target function according to the target control symbol;

[0049] Calling the target application calling interface of the target function according to the required parameters corresponding to the execution task;

[0050] The return result of the target application program interface is encapsulated and sent to the client.

[0051] In order to solve the above technical problem, in a second aspect, a resource processing device is provided, the device comprising:

[0052] The replacement module is used to obtain the task execution instruction of the application running in the resource pool, and the task execution instruction carries the application call interface information corresponding to the task; hijack the task execution instruction by hijacking the library file, replace the application call interface information corresponding to the task with a preset function, and replace the host process field with the resource pool process field through the preset function to generate the target task execution instruction;

[0053] The allocation module is used to respond to the reception of the target task execution instruction at the scheduling center of the host machine, obtain the video memory information of the resource pool and the computing power information of the resource pool according to the target task execution instruction; and allocate resources to the resource pool based on the preset resource allocation rules, the video memory information of the resource pool and the computing power information of the resource pool.

[0054] In order to solve the above technical problem, in the third aspect, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the following steps are implemented: when the processor executes the computer program, the steps of the method described in the above first aspect are implemented.

[0055] In order to solve the above technical problem, in a fourth aspect, the present application provides a computer-readable storage medium on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method described in the first aspect are implemented.

[0056] Different from the prior art, the present application relates to a resource processing method, device, computer equipment and storage medium. The method includes: obtaining a task execution instruction, the task execution instruction carries the application call interface corresponding to the task; hijacking the task execution instruction by hijacking the library file, replacing the application call interface corresponding to the task with a preset function, replacing the host process field with the resource pool process field through the preset function to generate a target task execution instruction in response to the dispatch center receiving the target task execution instruction, obtaining the video memory information of the resource pool and the computing power information of the resource pool according to the target task execution instruction; allocating resources for the resource pool based on the preset resource allocation rules, the video memory information of the resource pool and the computing power information of the resource pool. In this way, by replacing the preset function by hijacking the file library to replace the host process field with the resource pool process field, the link relationship between the host process field and the resource pool process field is realized, and the video memory information of the resource pool and the computing power information of the resource pool can be quickly obtained, thereby realizing efficient resource processing. BRIEF DESCRIPTION OF THE DRAWINGS

[0057] Figure 1 A schematic diagram of the structure of a resource processing system in one embodiment;

[0058] Figure 2 A schematic diagram of a resource processing method in one embodiment;

[0059] Figure 3 is a flowchart of a resource processing method in another embodiment;

[0060] Figure 4 A schematic diagram of a flow chart of a resource processing method in another embodiment;

[0061] Figure 5 is a structural block diagram of a resource processing device in one embodiment;

[0062] Figure 6 FIG. 4 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0063] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.

[0064] In one embodiment, see Figure 1, the method is applied to a resource processing system. The resource processing system includes a client, a scheduling host (scheduling center) and a GPU pool (resource pool). The client is responsible for compressing the API (application programming interface) called in the user's training framework and rendering application and sending it to the scheduling center. The scheduling center is responsible for scheduling, information forwarding and receiving, and decompressing API (application programming interface) requests. The resource pool is responsible for executing API requests and compressing and transmitting the results back to the scheduling center according to the requirements of the scheduling host, under the prescribed computing power and video memory restrictions. Among them, the GPU pool (GPUPool) refers to the centralized management of multiple physical GPUs (graphics processing units) in a computer cluster so that they can be allocated to different users or applications on demand. This resource pooling approach can improve resource utilization, increase flexibility, and allow more efficient resource allocation and management. In the present invention, the GPU pool is only responsible for performing computing tasks according to the tokens and APIs distributed by the scheduling host and the client; after the calculation is completed, the calculation results are returned to the client through the scheduling main sentence.

[0065] When a user starts a deep learning task in a resource pool, the task can be run using a training framework. The training framework issues various instructions to execute the training process. However, these instructions are intercepted by a hijacking file library before being sent to the bottom layer of the system. This hijacking file library can observe and modify the instructions issued by the training framework. The hijacking file library comes with a function called a forwarding module (communicator). The main function of this function is to receive instructions issued from the training framework, and then parse the information in it, and specifically extract various information related to the task, such as the type of task, the data to be processed, etc. The hijacking file library parses the information in the instructions and sends this information to the task scheduling component of the host (shown as host_proc_ctled, the full name is host_processing_controlled host process control component). This component assumes the function of the task scheduler and will forward the corresponding computing requirements to the appropriate hardware resources based on the received information, that is, send these computing requirements to the GPU hardware on the physical host. Specifically, the forwarding module (communicator) in the task scheduling component is used to forward instructions with the POD for resource scheduling.

[0066] See also Figure 2 In one embodiment, the present application provides a resource processing method, the method comprising the following steps:

[0067] Step 101: Obtain a task execution instruction for an application running in a resource pool. The task execution instruction carries application call interface information corresponding to the task.

[0068] Step 102, hijacking the task execution instruction by hijacking the library file, replacing the application call interface information corresponding to the task with a preset function, and replacing the host process field with the resource pool process field through the preset function to generate a target task execution instruction.

[0069] When users start deep learning tasks or rendering programs in the resource pool, these programs will issue various instructions to perform calculations. However, before these instructions are sent to the bottom layer of the system, they will be intercepted by a special hijacking library file (libCUDA_nvml_partition.so). This library file can observe and modify the instructions issued by the framework. Each application will not directly initiate a call to the GPU in the resource pool, but will be hijacked by the hijacking file library in each resource pool, and then forwarded to the scheduling center after replacement. Because there will be a PID (process control symbol) inside the resource pool, this PID is the identification number of the process, because the resource pool runs on the host machine, that is, HOST, so the process of the resource pool must have a corresponding relationship with the process of the host machine, that is, a PID on the resource pool must correspond to a PID on the host machine.

[0070] In this application, the relevant API (application call interface) provided by NVIDIA (resource pool toolkit) is replaced with a preset function by setting a hijacked library file and hijacking the dynamic library loading function (dlsym). The specific preset function can be a CUDA function, which replaces the host process field with the resource pool process field to generate a target task execution instruction to execute the target task instruction, thereby realizing client video memory control, client process display, and client computing power control.

[0071] Since the nvidia-smi command is invalid in the resource pool, the main reason is that the process PID returned by nvidia-smi is the host PID, and the host (HOST) is a host cluster shared in the resource pool. The PID of the resource pool cannot be matched. This is because for security reasons, the PID on the physical machine cannot be directly called. Security segmentation is required to make the PID in the resource pool inconsistent with the PID on the host. That is, although the PID in the resource pool and the PID on the host are essentially the same PID, the PID in the resource pool and the PID on the host are different in form.

[0072] Nv stipulates that when searching for video memory in the resource pool through commands or APIs, only the video memory of the PID in the resource pool can be found. However, there is more than one resource pool under a user name, so a one-to-one correspondence needs to be found on the host machine, and all the used video memory is added up and returned to the hijacking file library. Therefore, the nvidia-smi command in the resource pool is invalid.

[0073] The nvidia-smi command cannot run normally in the resource pool and must be adapted, such as the client running something similar inside the resource pool process. By setting libCUDA_nvml_partition.so (hijacking library file) to hijack the output of nvidia-smi and replace the host pid with the pid in the resource pool, a one-to-one correspondence is established. On the host, you can check how much video memory a PID in the resource pool uses and return it to the user.

[0074] The present invention realizes the method of controlling GPU video memory of deep learning tasks by hijacking CUDA functions, which well realizes the characteristics of fine-grained isolation of GPU resources, not only improving the utilization rate of GPU resources, but also providing a basis for flexible scheduling of GPU resources. There is no need to modify and compile the code of deep learning frameworks such as Tensorflow and Pytorch, nor is there any need to modify and compile the application developed by users based on various deep learning frameworks. The isolation of video memory is achieved without the user's basic perception.

[0075] In a specific implementation, the task execution instruction is hijacked by hijacking the library file, the application call interface corresponding to the task is replaced with a preset function, and the host process field is replaced with the resource pool process field through the preset function to generate the specific code of the target task execution instruction as follows:

[0076]

[0077]

[0078] Step 103, in response to receiving the target task execution instruction, the scheduling center of the host machine obtains the video memory information and the computing power information of the resource pool according to the target task execution instruction.

[0079] The hijacking library file in this application also includes the function of the communicator (forwarding module). The main function of this function is to receive instructions issued from the training framework and then parse the information therein. In particular, it will extract various information related to the task, such as the type of task, the data to be processed, etc. Once the hijacking library file parses the information in the instruction, it will compress the information and send it to a component called host_processing_controlled, which is located in the scheduling center.

[0080] When the dispatch center receives the target task execution instruction, it obtains the video memory information and computing power information of the resource pool according to the target task execution instruction.

[0081] Specifically, the total video memory quota and remaining video memory of the client can be obtained by calling CUDA related functions, and finally it is determined whether the remaining video memory meets the requirements and returns success or failure information. Among them, CUDA (Compute Unified Device Architecture) is a set of parallel computing platforms and programming models provided by NVIDIA, which allows developers to use C language to write programs for NVIDIA's GPU to achieve high-performance computing. CUDA provides a rich API function library for various computing operations on GPUs, including memory management, mathematical operations, parallel computing, etc. In addition to explicitly calling CUDA functions, client video memory control also includes declaring the size of CUDA context, etc. Since the video memory size of CUDA context, etc. cannot be obtained, the implementation obtains the video memory of each device (GPU) corresponding to the process in the resource pool by calling the nvml function. The video memory is managed by the nvidia driver and is very accurate; at the same time, based on the information of each GPU process in the shared memory, the video memory size used by all GPU processes in the resource pool is obtained, and the maximum video memory allocation and the video memory size to be allocated of each GPU are combined to accurately control the video memory.

[0082] Step 104, allocating resources to the resource pool based on preset resource allocation rules, video memory information of the resource pool, and computing power information of the resource pool.

[0083] Specifically, before allocating resources to the resource pool based on preset resource allocation rules, the video memory information of the resource pool, and the computing power information of the resource pool, the method includes: obtaining the total amount of video memory in the resource pool; traversing each device in the resource pool to obtain the total amount of video memory used by each device in the resource pool; calculating the remaining video memory capacity of the resource pool based on the total amount of video memory in the resource pool and the total amount of video memory used by each device in the resource pool; judging whether the resource pool meets the allocation conditions based on the remaining video memory capacity of the resource pool; if so, allocating video memory to the resource pool based on the preset resource allocation rules and the video memory information of the resource pool.

[0084] Specifically, before allocating video memory resources, it is necessary to further determine whether the remaining video memory capacity of the resources meets the allocation conditions, and specifically whether each GPU in the resource pool meets the allocation conditions. Only when each GPU meets the allocation conditions, resources are allocated to each GPU based on the preset resource allocation rules and the video memory information of the resource pool.

[0085] In one embodiment, judging whether the resource pool meets the allocation conditions based on the remaining video memory capacity of the resource pool includes: obtaining an instance of a memory manager; obtaining the current memory value according to the instance of the memory manager; judging whether the memory is in use according to the current memory value; if the memory has not been used, directly calling the target function to allocate the memory; if the memory has been used, obtaining the current task memory requirement value; comparing the current memory value with the requirement value within the current task; when the current memory value is greater than or equal to the requirement value within the current task, calling the target function to allocate the memory; when the current memory value is less than the requirement value within the current task, generating an alarm instruction to feedback insufficient memory.

[0086] In a specific implementation, the specific implementation code for judging whether the resource pool meets the allocation condition based on the remaining video memory capacity of the resource pool may be as follows:

[0087]

[0088]

[0089]

[0090] In one embodiment, allocating resources for a resource pool based on preset resource allocation rules, video memory information of the resource pool, and computing power information of the resource pool includes: obtaining video memory resources required for task execution; allocating video memory resources based on the video memory resources required for task execution and the remaining video memory capacity of the resource pool; obtaining task execution results, evaluating the video memory allocation results based on the task execution results, and obtaining video memory resource allocation evaluation results; and adjusting preset resource allocation rules based on the video memory resource allocation evaluation results.

[0091] In one embodiment, allocating resources for the resource pool based on preset resource allocation rules, the video memory information of the resource pool, and the computing power information of the resource pool also includes obtaining the computing power information of each device in the resource pool; obtaining the task execution computing power requirements, and allocating computing power resources according to the computing power information of each device in the resource pool and the task computing power execution requirements; obtaining the task execution results, evaluating the allocation results of the computing power resources according to the task execution results, and obtaining a computing power resource allocation evaluation result; adjusting the preset resource allocation rules according to the computing power resource allocation evaluation result.

[0092] In order to more accurately realize the allocation of video memory resources and computing power resources in this application, it also includes obtaining the task execution results, evaluating the video memory allocation results and the computing power allocation results according to the task execution results, obtaining the corresponding video memory resource allocation evaluation results and the computing power resource allocation evaluation results, and adjusting the preset resource allocation rules based on the memory resource allocation evaluation results and the computing power resource allocation evaluation results. Among them, the evaluation results can be determined by more evaluation indicators, and the evaluation indicators may include task completion time, resource utilization, delay, etc., and these data are compared with the standard data one by one to determine whether the difference between the actual task completion time, resource utilization, delay, etc. and the standard data is within the preset range. If it is within the preset range, it means that the evaluation indicator is qualified. In this way, the optimization strategy is adjusted dynamically, so that resource allocation according to the resource allocation rules is more accurate and reasonable.

[0093] In order to improve the scheduling efficiency of computing resources and increase the utilization rate of GPUs, this application can prioritize the allocation of tasks to the best GPU. It will also optimize and adjust the resource scheduling rules generated above. The task execution status is used to reflect whether the resource allocation result is reasonable or optimal, which can improve the accuracy and rationality of resource allocation.

[0094] In one embodiment, the process identifier of each device in the resource pool can be obtained, and the process identifier of each device in the resource pool can be queried according to the process identifier relationship table; based on the process identifier, the video memory usage of each device in the resource pool is obtained; the video memory usage of all processes in each device is added up to obtain the total video memory usage of the resource pool; the total video memory usage and the video memory quota of the resource pool are used to determine the remaining video memory available in the resource pool, and video memory is allocated to tasks based on the remaining video memory.

[0095] By obtaining the process identifiers of all processes, the video memory usage of each process can be obtained. By adding up the video memory usage of all processes, the accurate video memory usage of the resource pool can be obtained. In the process of obtaining the video memory usage, there is no need for users to log in to the host to view it, which can avoid granting users host permissions and avoid security risks. The process identifier relationship table can effectively manage multi-card and multi-task scenarios. In this way, video memory allocation can be achieved effectively and orderly.

[0096] In a specific implementation, the task execution computing power requirement is obtained, and the computing power resources are allocated according to the task computing power execution requirement based on the computing power information of each device in the resource pool, including: traversing each device to determine whether the computing power of each device meets the task computing power execution requirement; taking the device that meets the task instance execution requirement as the target device; calculating the remaining load value of each target device based on a preset calculation formula; determining the priority corresponding to each target device according to the remaining load value of each target device; and allocating computing power resources according to the priority of each target device.

[0097] The preset calculation formula is as follows:

[0098]

[0099] Where W represents the remaining load value of the target device, W i represents the load of the i-th execution task, i represents the i-th execution task, S i represents the workload of the i-th task, T i represents the total duration of the i-th task execution, T0 represents the execution duration of the i-th task execution, C represents the CPU utilization of the target device, and M represents the memory utilization of the target device.

[0100] After obtaining the remaining load value of the target device, the target devices can be sorted according to the remaining load value of the target device, and the sorting of each target device is used as the priority of each target device. The computing power resources can be allocated preferentially to the target device with a higher priority.

[0101] The scheduling center in this application includes the host_processing_controlled host process control component, which includes the scheduler module and the communicator module. The communicator module is used to obtain the TCP link from the client; when a request is received from the client, the correct CUDA instance is found according to the PID / TID; finally, the corresponding parameters are used to make actual local CUDA API calls to the CUDA instance (this step occurs in the resource pool), and then the CUDA API return results are packaged into a Response and returned to the client. The functions of the scheduler module are relatively complex. The two main functions of the scheduler module are video memory scheduling and computing power scheduling.

[0102] In a specific implementation, the code of the video memory scheduling module of the scheduler is as follows:

[0103]

[0104]

[0105] In one embodiment, the method also includes: monitoring the transmission control protocol of the client through a monitoring thread to obtain the requirement parameters corresponding to the execution task; parsing the requirement parameters corresponding to the execution task to obtain the target control symbol; searching for the target function according to the target control symbol; calling the target application calling interface of the target function according to the requirement parameters corresponding to the execution task; and packaging the return result of the target application interface and sending it to the client.

[0106] See also Figure 4 , the principle of the scheduler's computing power scheduling module is as follows:

[0107] ① Kernel burst: A kernel burst refers to a set of consecutive kernel events that are started together without being interrupted by synchronization events. This concept allows the scheduler to capture and measure runtime behavior in user space through event-driven monitoring techniques without introducing synchronization points between the GPU and the CPU.

[0108] ②Token-based scheduling: The scheduler implements a token-based scheduling framework, where a token represents a time slice, and the token's quota is the length of the time slice. Only API hijacks with a valid token can pass the client's kernel launch call to the GPU driver for execution. When the token's quota expires, its hijacking library must request a new token from the scheduler for future kernel execution.

[0109] ③ Dynamic quota strategy: The scheduler uses the kernel burst statistics collected from the client to gradually adjust the client's token quota through a smoothing function to adapt to its estimated burst time. This strategy enables the scheduler to dynamically adjust resource allocation based on the client's actual workload pattern without the need to understand the application in advance.

[0110] ④Token revocation: In order to further adjust the token quota according to the client's runtime behavior, the scheduler allows the client to revoke its token when it finds that the remaining quota time is insufficient to execute the next kernel. This mechanism helps reduce the overuse and idleness of resources.

[0111] In this application, by remotely forwarding the CUDA API, personal computers without AI accelerator cards and GPUs can also perform deep learning training and rendering; through the token distribution mechanism, computing power is divided in time. The time division of computing power improves computing efficiency and shortens the time waiting for free computing resources. The distributed design of setting up clients, scheduling hosts, and GPU pools improves deployment flexibility and correspondingly reduces the probability of downtime.

[0112] It should be understood that although Figure 2-Figure 4 The steps in the flowchart are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figure 2-Figure 4At least part of the steps may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily executed at the same time, but can be executed at different times. The execution order of these sub-steps or stages is not necessarily sequential, but can be executed in turn or alternately with other steps or at least part of the sub-steps or stages of other steps.

[0113] In one embodiment, Figure 5 As shown, a resource processing device is provided, including: a replacement module 20 and an allocation module 21, wherein:

[0114] The replacement module 20 is used to obtain the task execution instruction of the application running in the resource pool, and the task execution instruction carries the application call interface information corresponding to the task; hijack the task execution instruction by hijacking the library file, replace the application call interface information corresponding to the task with a preset function, and replace the host process field with the resource pool process field through the preset function to generate a target task execution instruction;

[0115] The allocation module 21 is used to respond to the reception of the target task execution instruction at the scheduling center of the host machine, obtain the video memory information of the resource pool and the computing power information of the resource pool according to the target task execution instruction; and allocate resources to the resource pool based on the preset resource allocation rules, the video memory information of the resource pool and the computing power information of the resource pool.

[0116] In one embodiment, another implementation of the resource processing method that can be implemented by the above device includes the following specific steps:

[0117] The method also includes:

[0118] Get the total amount of video memory in the resource pool;

[0119] Traverse each device in the resource pool and obtain the total amount of video memory used by each device in the resource pool;

[0120] Calculate the remaining video memory capacity of the resource pool based on the total video memory of the resource pool and the total video memory used by each device in the resource pool;

[0121] Determine whether the resource pool meets the allocation conditions based on the remaining video memory capacity of the resource pool;

[0122] If the conditions are met, video memory is allocated to the resource pool based on the preset resource allocation rule and the video memory information of the resource pool.

[0123] In one embodiment, another implementation of the resource processing method that can be implemented by the above device includes the following specific steps:

[0124] Allocating resources for a resource pool based on preset resource allocation rules, memory information of the resource pool, and computing power information of the resource pool includes:

[0125] Get the video memory resources required for task execution;

[0126] Allocate video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool;

[0127] Obtaining the task execution result, evaluating the video memory allocation result according to the task execution result, and obtaining the video memory resource allocation evaluation result;

[0128] Adjust the preset resource allocation rules according to the video memory resource allocation evaluation result.

[0129] In one embodiment, another implementation of the resource processing method that can be implemented by the above device includes the following specific steps:

[0130] Allocating resources for the resource pool based on the preset resource allocation rules, the video memory information of the resource pool, and the computing power information of the resource pool also includes:

[0131] Get the computing power information of each device in the resource pool;

[0132] Obtain the computing power requirements for task execution, and allocate computing power resources based on the computing power information of each device in the resource pool and the computing power execution requirements of the task;

[0133] Obtain the task execution results, evaluate the computing power resource allocation results based on the task execution results, and obtain the computing power resource allocation evaluation results;

[0134] Adjust the preset resource allocation rules according to the computing power resource allocation evaluation results.

[0135] In one embodiment, another implementation of the resource processing method that can be implemented by the above device includes the following specific steps:

[0136] Obtain the task execution computing power requirements, and allocate computing power resources based on the computing power information of each device in the resource pool according to the task computing power execution requirements, including:

[0137] Traverse each device to determine whether the computing power of each device meets the task computing power execution requirements;

[0138] The device that meets the task instance execution requirements is used as the target device;

[0139] Calculate the remaining load value of each target device based on a preset calculation formula;

[0140] Determine the priority corresponding to each target device according to the remaining load value of each target device;

[0141] Allocate computing resources according to the priority of each target device;

[0142] The preset calculation formula is as follows:

[0143]

[0144] Where W represents the remaining load value of the target device, W i represents the load of the i-th execution task, i represents the i-th execution task, S i represents the workload of the i-th task, T i represents the total duration of the i-th task execution, T0 represents the execution duration of the i-th task execution, C represents the CPU utilization of the target device, and M represents the memory utilization of the target device.

[0145] In one embodiment, another implementation of the resource processing method that can be implemented by the above device includes the following specific steps:

[0146] The allocation of video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool includes:

[0147] Get an instance of the memory manager;

[0148] Get the current memory value according to the memory manager instance;

[0149] According to the current memory value, determine whether the memory is used;

[0150] If the memory has not been used, the target function is called directly to allocate the memory;

[0151] If the memory has been used, get the current task memory requirement value;

[0152] Compare the current memory value with the required value in the current task;

[0153] When the current memory value is greater than or equal to the required value in the current task, the target function is called to allocate memory;

[0154] When the current memory value is less than the current task memory requirement value, an alarm instruction is generated to feedback insufficient memory.

[0155] In one embodiment, another implementation of the resource processing method that can be implemented by the above device includes the following specific steps:

[0156] The method also includes:

[0157] Monitor the client's transmission control protocol through the monitoring thread to obtain the required parameters corresponding to the execution task;

[0158] Parse the required parameters corresponding to the execution task and obtain the target control symbol;

[0159] Find the target function according to the target control symbol;

[0160] Calling the target application calling interface of the target function according to the required parameters corresponding to the execution task;

[0161] The return result of the target application program interface is encapsulated and sent to the client.

[0162] For the specific definition of the resource processing device, please refer to the definition of the resource processing method above, which will not be repeated here. Each module in the above resource processing device can be implemented in whole or in part by software, hardware and a combination thereof. The above modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.

[0163] In one embodiment, the present application also provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium, and the computer program includes program instructions. When the program instructions are executed by a computer, the computer can execute the resource processing methods provided by the above methods.

[0164] In one embodiment, a computer device is provided. The computer device may be a server, and its internal structure diagram may be as follows: Figure 6 As shown. The computer device includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store data applied by the resource processing method. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a resource processing method is implemented.

[0165] Those skilled in the art will understand that Figure 6 The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine certain components, or have a different arrangement of components.

[0166] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program:

[0167] Step 101: Obtain a task execution instruction for an application running in a resource pool. The task execution instruction carries application call interface information corresponding to the task.

[0168] Step 102, hijacking the task execution instruction by hijacking the library file, replacing the application call interface information corresponding to the task with a preset function, and replacing the host process field with the resource pool process field through the preset function to generate a target task execution instruction.

[0169] Step 103, in response to receiving the target task execution instruction, the scheduling center of the host machine obtains the video memory information and the computing power information of the resource pool according to the target task execution instruction.

[0170] Step 104, allocating resources to the resource pool based on preset resource allocation rules, video memory information of the resource pool, and computing power information of the resource pool.

[0171] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0172] The method also includes:

[0173] Get the total amount of video memory in the resource pool;

[0174] Traverse each device in the resource pool and obtain the total amount of video memory used by each device in the resource pool;

[0175] Calculate the remaining video memory capacity of the resource pool based on the total video memory of the resource pool and the total video memory used by each device in the resource pool;

[0176] Determine whether the resource pool meets the allocation conditions based on the remaining video memory capacity of the resource pool;

[0177] If the conditions are met, video memory is allocated to the resource pool based on the preset resource allocation rule and the video memory information of the resource pool.

[0178] In one embodiment, when the processor executes the computer program, the processor further implements the following steps:

[0179] Allocating resources for a resource pool based on preset resource allocation rules, memory information of the resource pool, and computing power information of the resource pool includes:

[0180] Get the video memory resources required for task execution;

[0181] Allocate video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool;

[0182] Obtaining the task execution result, evaluating the video memory allocation result according to the task execution result, and obtaining the video memory resource allocation evaluation result;

[0183] Adjust the preset resource allocation rules according to the video memory resource allocation evaluation result.

[0184] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0185] Allocating resources for the resource pool based on the preset resource allocation rules, the video memory information of the resource pool, and the computing power information of the resource pool also includes:

[0186] Get the computing power information of each device in the resource pool;

[0187] Obtain the computing power requirements for task execution, and allocate computing power resources based on the computing power information of each device in the resource pool and the computing power execution requirements of the task;

[0188] Obtain the task execution results, evaluate the computing power resource allocation results based on the task execution results, and obtain the computing power resource allocation evaluation results;

[0189] Adjust the preset resource allocation rules according to the computing power resource allocation evaluation results.

[0190] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0191] Obtain the task execution computing power requirements, and allocate computing power resources based on the computing power information of each device in the resource pool according to the task computing power execution requirements, including:

[0192] Traverse each device to determine whether the computing power of each device meets the task computing power execution requirements;

[0193] The device that meets the task instance execution requirements is used as the target device;

[0194] Calculate the remaining load value of each target device based on a preset calculation formula;

[0195] Determine the priority corresponding to each target device according to the remaining load value of each target device;

[0196] Allocate computing resources according to the priority of each target device;

[0197] The preset calculation formula is as follows:

[0198]

[0199] Where W represents the remaining load value of the target device, W i represents the load of the i-th execution task, i represents the i-th execution task, S i represents the workload of the i-th task, T irepresents the total duration of the i-th task execution, T0 represents the execution duration of the i-th task execution, C represents the CPU utilization of the target device, and M represents the memory utilization of the target device.

[0200] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0201] The allocation of video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool includes:

[0202] Get an instance of the memory manager;

[0203] Get the current memory value according to the memory manager instance;

[0204] According to the current memory value, determine whether the memory is used;

[0205] If the memory has not been used, the target function is called directly to allocate the memory;

[0206] If the memory has been used, get the current task memory requirement value;

[0207] Compare the current memory value with the required value in the current task;

[0208] When the current memory value is greater than or equal to the required value in the current task, the target function is called to allocate memory;

[0209] When the current memory value is less than the current task memory requirement value, an alarm instruction is generated to feedback insufficient memory.

[0210] In one embodiment, when the processor executes the computer program, the following steps are also implemented:

[0211] The method also includes:

[0212] Monitor the client's transmission control protocol through the monitoring thread to obtain the required parameters corresponding to the execution task;

[0213] Parse the required parameters corresponding to the execution task and obtain the target control symbol;

[0214] Find the target function according to the target control symbol;

[0215] Calling the target application calling interface of the target function according to the required parameters corresponding to the execution task;

[0216] The return result of the target application program interface is encapsulated and sent to the client.

[0217] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented:

[0218] Step 101: Obtain a task execution instruction for an application running in a resource pool. The task execution instruction carries application call interface information corresponding to the task.

[0219] Step 102, hijacking the task execution instruction by hijacking the library file, replacing the application call interface information corresponding to the task with a preset function, and replacing the host process field with the resource pool process field through the preset function to generate a target task execution instruction.

[0220] Step 103, in response to receiving the target task execution instruction, the scheduling center of the host machine obtains the video memory information and the computing power information of the resource pool according to the target task execution instruction.

[0221] Step 104, allocating resources to the resource pool based on preset resource allocation rules, video memory information of the resource pool, and computing power information of the resource pool.

[0222] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0223] The method also includes:

[0224] Get the total amount of video memory in the resource pool;

[0225] Traverse each device in the resource pool and obtain the total amount of video memory used by each device in the resource pool;

[0226] Calculate the remaining video memory capacity of the resource pool based on the total video memory of the resource pool and the total video memory used by each device in the resource pool;

[0227] Determine whether the resource pool meets the allocation conditions based on the remaining video memory capacity of the resource pool;

[0228] If the conditions are met, video memory is allocated to the resource pool based on the preset resource allocation rule and the video memory information of the resource pool.

[0229] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0230] Allocating resources for a resource pool based on preset resource allocation rules, memory information of the resource pool, and computing power information of the resource pool includes:

[0231] Get the video memory resources required for task execution;

[0232] Allocate video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool;

[0233] Obtaining the task execution result, evaluating the video memory allocation result according to the task execution result, and obtaining the video memory resource allocation evaluation result;

[0234] Adjust the preset resource allocation rules according to the video memory resource allocation evaluation result.

[0235] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0236] Allocating resources for the resource pool based on the preset resource allocation rules, the video memory information of the resource pool, and the computing power information of the resource pool also includes:

[0237] Get the computing power information of each device in the resource pool;

[0238] Obtain the computing power requirements for task execution, and allocate computing power resources based on the computing power information of each device in the resource pool and the computing power execution requirements of the task;

[0239] Obtain the task execution results, evaluate the computing power resource allocation results based on the task execution results, and obtain the computing power resource allocation evaluation results;

[0240] Adjust the preset resource allocation rules according to the computing power resource allocation evaluation results.

[0241] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0242] Obtain the task execution computing power requirements, and allocate computing power resources based on the computing power information of each device in the resource pool according to the task computing power execution requirements, including:

[0243] Traverse each device to determine whether the computing power of each device meets the task computing power execution requirements;

[0244] The device that meets the task instance execution requirements is used as the target device;

[0245] Calculate the remaining load value of each target device based on a preset calculation formula;

[0246] Determine the priority corresponding to each target device according to the remaining load value of each target device;

[0247] Allocate computing resources according to the priority of each target device;

[0248] The preset calculation formula is as follows:

[0249]

[0250] Where W represents the remaining load value of the target device, W i represents the load of the i-th execution task, i represents the i-th execution task, S i represents the workload of the i-th task, T irepresents the total duration of the i-th task execution, T0 represents the execution duration of the i-th task execution, C represents the CPU utilization of the target device, and M represents the memory utilization of the target device.

[0251] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0252] The allocation of video memory resources according to the video memory resources required for task execution and the remaining video memory capacity in the resource pool includes:

[0253] Get an instance of the memory manager;

[0254] Get the current memory value according to the memory manager instance;

[0255] According to the current memory value, determine whether the memory is used;

[0256] If the memory has not been used, the target function is called directly to allocate the memory;

[0257] If the memory has been used, get the current task memory requirement value;

[0258] Compare the current memory value with the required value in the current task;

[0259] When the current memory value is greater than or equal to the required value in the current task, the target function is called to allocate memory;

[0260] When the current memory value is less than the current task memory requirement value, an alarm instruction is generated to feedback insufficient memory.

[0261] In one embodiment, when the computer program is executed by a processor, the following steps are also implemented:

[0262] The method also includes:

[0263] Monitor the client's transmission control protocol through the monitoring thread to obtain the required parameters corresponding to the execution task;

[0264] Parse the required parameters corresponding to the execution task and obtain the target control symbol;

[0265] Find the target function according to the target control symbol;

[0266] Calling the target application calling interface of the target function according to the required parameters corresponding to the execution task;

[0267] The return result of the target application program interface is encapsulated and sent to the client.

[0268] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).

[0269] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0270] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.

Claims

1. A resource processing method, characterized in that: include: Obtaining a task execution instruction for an application running in the resource pool, wherein the task execution instruction carries application call interface information corresponding to the task; Hijacking the task execution instruction by hijacking the library file, replacing the application call interface information corresponding to the task with a preset function, and replacing the host machine process field with the resource pool process field through the preset function to generate a target task execution instruction; In response to receiving the target task execution instruction, the scheduling center of the host machine obtains the video memory information and the computing power information of the resource pool according to the target task execution instruction; Resources are allocated to the resource pool based on preset resource allocation rules, the video memory information of the resource pool, and the computing power information of the resource pool.

2. The method according to claim 1, characterized in that The method further comprises: Get the total amount of video memory in the resource pool; Traverse each device in the resource pool and obtain the total amount of video memory used by each device in the resource pool; Calculate the remaining video memory capacity of the resource pool according to the total video memory of the resource pool and the total video memory used by each device in the resource pool; Determining whether the resource pool meets the allocation condition based on the remaining video memory capacity of the resource pool; If the conditions are met, video memory is allocated to the resource pool based on a preset resource allocation rule and the video memory information of the resource pool.

3. The method according to claim 2, characterized in that The allocating resources to the resource pool based on the preset resource allocation rule, the video memory information of the resource pool, and the computing power information of the resource pool includes: Get the video memory resources required for task execution; Allocating video memory resources according to the video memory resources required for the task execution and the remaining video memory capacity of the resource pool; Obtaining a task execution result, and evaluating a video memory allocation result according to the task execution result to obtain a video memory resource allocation evaluation result; The preset resource allocation rule is adjusted according to the video memory resource allocation evaluation result.

4. The method according to claim 1, characterized in that The allocating resources to the resource pool based on the preset resource allocation rule, the video memory information of the resource pool, and the computing power information of the resource pool also includes: Get the computing power information of each device in the resource pool; Obtaining the computing power requirements for task execution, and allocating computing power resources according to the computing power information of each device in the resource pool and the computing power execution requirements of the task; Obtaining the task execution result, and evaluating the computing power resource allocation result according to the task execution result to obtain the computing power resource allocation evaluation result; The preset resource allocation rule is adjusted according to the computing power resource allocation evaluation result.

5. The method according to claim 4, characterized in that The obtaining of the task execution computing power requirement and allocating computing power resources according to the task computing power execution requirement according to the computing power information of each device in the resource pool comprises: Traverse each device to determine whether the computing power of each device meets the task computing power execution requirements; Taking the device that meets the task example execution requirement as the target device; Calculate the remaining load value of each target device based on a preset calculation formula; Determine the priority corresponding to each target device according to the remaining load value of each target device; Allocating computing resources according to the priority of each target device; The preset calculation formula is as follows: Where W represents the remaining load value of the target device, W i represents the load of the i-th execution task, i represents the i-th execution task, S i represents the workload of the i-th task, T i represents the total duration of the i-th task execution, T0 represents the execution duration of the i-th task execution, C represents the CPU utilization of the target device, and M represents the memory utilization of the target device.

6. The method according to claim 3, characterized in that: The allocating the video memory resources according to the video memory resources required for the task execution and the remaining video memory capacity of the resource pool includes: Get an instance of the memory manager; Obtaining a current memory value according to the instance of the memory manager; According to the current memory value, determining whether the memory is used; If the memory has not been used, directly call the target function to allocate the memory; If the memory has been used, obtaining the memory requirement value of the current task; Comparing the current memory value with the required value in the current task; When the current memory value is greater than or equal to the required value in the current task, the target function is called to allocate memory; When the current memory value is less than the current task memory requirement value, an alarm instruction is generated to feedback insufficient memory.

7. The method according to claim 1, characterized in that The method further comprises: Monitor the client's transmission control protocol through the monitoring thread to obtain the required parameters corresponding to the execution task; Analyze the required parameters corresponding to the execution task and obtain the target control symbol; Finding a target function according to the target control symbol; Calling the target application calling interface of the target function according to the requirement parameters corresponding to the execution task; The return result of the target application program interface is packaged and sent to the client.

8. A resource processing device, characterized in that: The device comprises: A replacement module is used to obtain a task execution instruction for an application running in a resource pool, wherein the task execution instruction carries application call interface information corresponding to the task; hijack the task execution instruction by hijacking a library file, replace the application call interface information corresponding to the task with a preset function, and replace the host process field with the resource pool process field through the preset function to generate a target task execution instruction; An allocation module is used to respond to receiving a target task execution instruction at the scheduling center of the host machine, obtain the video memory information of the resource pool and the computing power information of the resource pool according to the target task execution instruction; and allocate resources to the resource pool based on preset resource allocation rules, the video memory information of the resource pool and the computing power information of the resource pool.

9. A computer device comprising a memory, a processor and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Cited By

  • Parallel simulation method and device based on GPU resources

    CN120045330A

  • A parallel simulation method and device based on GPU resources

    CN120045330B

  • Task execution method, system and device, storage medium and program product

    CN120295798A