An adaptive image processor resource allocation and task scheduling method and system

By adopting an adaptive image processor resource allocation and task scheduling method, the problems of resource waste and performance degradation in existing systems are solved, achieving efficient resource utilization and task scheduling to adapt to changing task requirements.

CN117407176BActive Publication Date: 2026-07-21CHENGDU UNION BIG DATA TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHENGDU UNION BIG DATA TECH CO LTD
Filing Date
2023-12-04
Publication Date
2026-07-21

Smart Images

  • Figure CN117407176B_ABST
    Figure CN117407176B_ABST
Patent Text Reader

Abstract

The application provides a self-adaptive image processor resource allocation and task scheduling method and system, relates to the GPU resource management and scheduling field, and the method flow is as follows: a series of resource specifications are created according to GPU resources and task types, and corresponding task queues are created according to the series of resource specifications; task queue scheduling is adaptively carried out according to task requests and queue states, in the process of task queue scheduling, queue borrowing is carried out according to the resource specifications of the task queues, and the borrowed task queues are subjected to queue merging or queue splitting.The application creates resource specifications suitable for various task demands according to the current resource conditions and task demands, can better adapt to variable task demands, and effectively prevents resource waste; and the specifications and quantity of the task queues are dynamically adjusted according to the current tasks and resource conditions, so that the mechanism can effectively solve the resource occupation problem of the tasks and ensure the efficient operation of the system.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of GPU resource management and scheduling, and more specifically, to an adaptive image processor resource allocation and task scheduling method and system. Background Technology

[0002] In modern computing environments, graphics processing units (GPUs) have become one of the most important computing resources, especially in fields such as deep learning, graphics rendering, and data analysis. GPUs offer significant advantages in handling large numbers of parallel tasks due to their strong parallel processing capabilities and high computing speed.

[0003] However, GPU resource usage is not unlimited, especially in multi-tenant and multi-tasking environments, where resource management and scheduling become particularly critical. How to effectively manage these resources to ensure optimal performance and efficient resource utilization is a major challenge in the computing field. Especially in cloud computing and data center environments, resource demands frequently change; therefore, a resource management and scheduling mechanism capable of dynamically adjusting based on task requirements and system status is needed.

[0004] Existing resource management and scheduling systems, while providing some basic resource scheduling functions, are usually based on static resource quotas and cannot be dynamically adjusted according to task requirements and system status. This may lead to resource waste or system performance degradation. Summary of the Invention

[0005] This invention provides an adaptive image processor resource allocation and task scheduling method and system that can solve the problems of resource waste and system performance degradation.

[0006] In a first aspect, embodiments of the present invention provide an adaptive image processor resource allocation and task scheduling method, the method flow of which is as follows:

[0007] A series of resource specifications are created based on GPU resources and task types, and corresponding task queues are created based on the series of resource specifications.

[0008] The task queue is adaptively scheduled based on the task request and queue status. During the task queue scheduling process, queues are borrowed according to the resource specifications of the task queues, and the borrowed task queues are merged or split.

[0009] In the above embodiments, resource specifications adapted to various task requirements are flexibly created based on the current resource situation and task needs. This is in stark contrast to the existing static resource allocation method, which can better adapt to changing task requirements and effectively prevent resource waste. Furthermore, the specifications and quantity of the task queue are dynamically adjusted according to the current task and resource situation. This mechanism can effectively solve the problem of task crowding out resources and ensure the efficient operation of the system.

[0010] As some optional implementations of this application, before adaptively scheduling the task queue according to the task request and queue status, it is necessary to bind the GPU resources to the corresponding task queue and record the binding information.

[0011] In the above embodiments, the actual resources are bound to the currently created task queue, which facilitates subsequent task scheduling, queue borrowing, and queue return.

[0012] As some optional implementations of this application, after borrowing a queue according to the resource specifications of the task queue, the queue needs to be returned.

[0013] In the above embodiments, when a task queue of a certain type becomes busy, a return request is triggered to wait for or evict tasks from non-idle queues until there are enough idle queues. Then, queue merging is performed. This strategy can ensure that resource allocation can be flexibly adjusted to maintain efficient resource utilization when facing various changes in task requirements.

[0014] As some optional implementations of this application, it is necessary to monitor the status of the task queue during the task queue scheduling process.

[0015] In the above embodiments, by continuously monitoring the status of queues of various specifications and the overall resource utilization, and dynamically adjusting queue allocation and resource specifications based on the monitoring results, the system performance and response speed can be optimized. This real-time monitoring and dynamic adjustment mechanism can ensure that optimal performance and response speed are maintained at any time.

[0016] As some optional embodiments of this application, in order to distinguish the working states of different task queues, the states of the task queues include idle, working, and busy.

[0017] As some optional implementations of this application, the process of adaptively scheduling the task queue based on the task request and the queue status is as follows:

[0018] Continuously receive task requests, which include task type and resource specification requirements;

[0019] Match the task queue based on the resource specifications and queue status of the task request;

[0020] If a task queue match is successful, a task queue of the corresponding resource specification is obtained; if a task queue match fails, a task queue of another resource specification is borrowed, and the borrowed task queue is merged or split.

[0021] As some optional implementations of this application, if a task queue matching fails, a task queue of other resource specifications is borrowed, and the process of merging or splitting the borrowed task queue is as follows:

[0022] If all task queues for the current resource specification are busy, then use task queues for other resource specifications.

[0023] If the resource size of the borrowed task queue is larger than the resource size of the current task queue, then the borrowed task queue will be split.

[0024] If the resource size of the borrowed task queue is smaller than that of the current task queue, the borrowed task queue will be merged.

[0025] In a second aspect, the present invention provides an adaptive image processor resource allocation and task scheduling system, the system comprising:

[0026] A task queue creation unit, which creates a series of resource specifications based on GPU resources and task types, and creates corresponding task queues based on the series of resource specifications.

[0027] The task queue scheduling unit adaptively schedules task queues based on task requests and queue status. During the task queue scheduling process, it borrows queues according to the resource specifications of the task queues and merges or splits the borrowed task queues.

[0028] As some optional embodiments of this application, the system further includes a resource binding unit, which is used to bind GPU resources to corresponding task queues and record binding information.

[0029] In a third aspect, the present invention provides a computer device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the computer program, implements the aforementioned adaptive image processor resource allocation and task scheduling method.

[0030] In a fourth aspect, the present invention provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the adaptive image processor resource allocation and task scheduling method.

[0031] The beneficial effects of this invention are as follows:

[0032] (1) Based on the current resource situation and task requirements, the present invention can flexibly create resource specifications that adapt to various task requirements; this is in stark contrast to the existing static resource allocation method, which can better adapt to the changing task requirements and effectively prevent the waste of resources.

[0033] (2) The present invention dynamically adjusts the specifications and quantity of queues according to the current task and resource situation. When a queue of a certain specification is busy, a larger specification queue that is idle can be temporarily borrowed or permanently adjusted to a smaller specification queue. Conversely, when a larger specification queue is busy, a smaller specification queue that is idle can be merged into a larger specification queue. This mechanism can effectively solve the problem of task crowding out resources and ensure the efficient operation of the system.

[0034] (3) This invention proposes an optimized resource borrowing and returning strategy. When a queue of a certain type becomes busy, a return request will be triggered, waiting for or expelling tasks from non-idle queues until there are enough idle queues. Then, queue merging is performed. This strategy can ensure that the system can flexibly adjust resource allocation and maintain efficient resource utilization when facing various changes in task requirements.

[0035] (4) This invention continuously monitors the status of queues of various specifications and the overall resource utilization, and dynamically adjusts queue allocation and resource specifications based on the monitoring results to optimize system performance and response speed. This real-time monitoring and dynamic adjustment mechanism can ensure that optimal performance and response speed can be maintained at any time. Attached Figure Description

[0036] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0037] Figure 1 This is a schematic diagram of the computer device structure of the hardware operating environment described in the embodiments of the present invention;

[0038] Figure 2 This is a flowchart of the adaptive image processor resource allocation and task scheduling method described in an embodiment of the present invention;

[0039] Figure 3 This is a diagram illustrating the resource binding process between GPU resources and task queues as described in an embodiment of the present invention;

[0040] Figure 4 This is a structural block diagram of the adaptive image processor resource allocation and task scheduling system described in an embodiment of the present invention. Detailed Implementation

[0041] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.

[0042] In order to enable a mechanism for dynamically creating and allocating resource specifications based on task requirements and system status to optimize system performance and response speed, this application provides an adaptive image processor resource allocation and task scheduling method and system. Before introducing the specific technical solution of this application, the hardware operating environment involved in the embodiment of this application will be introduced first.

[0043] Please see Figure 1 , Figure 1 This is a schematic diagram of the computer device structure of the hardware operating environment involved in the embodiments of this application.

[0044] like Figure 1 As shown, the computer device may include: a processor, such as a central processing unit (CPU), a communication bus, a user interface, a network interface, and memory. The communication bus is used to enable communication between these components. The user interface may include a display screen and an input unit such as a keyboard; optionally, the user interface may also include a standard wired interface or a wireless interface. The network interface may optionally include a standard wired interface or a wireless interface (such as a Wi-Fi interface). The memory may be high-speed random access memory (RAM) or stable non-volatile memory (NVM), such as a disk drive; optionally, the memory may also be a storage device independent of the aforementioned processor.

[0045] Those skilled in the art will understand that Figure 1 The structure shown does not constitute a limitation on the computer device and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0046] like Figure 1 As shown, a memory, as a storage medium, may include an operating system, a data storage module, a network communication module, a user interface module, and an electronic program module.

[0047] exist Figure 1In the computer device shown, the network interface is mainly used for data communication with the network server; the user interface is mainly used for data interaction with the user; the processor and memory in the computer device of this application can be set in the computer device, and the computer device calls the image processor resource allocation and task scheduling system stored in the memory through the processor, and executes the image processor resource allocation and task scheduling method provided in the embodiment of this application.

[0048] Based on the hardware environment of the foregoing embodiments, embodiments of this application provide an adaptive image processor resource allocation and task scheduling method. Please refer to [link to relevant documentation]. Figure 2 , Figure 2 This is a flowchart of an image processor resource allocation and task scheduling method, the method including the following steps:

[0049] (1) Resource specifications and task queue creation.

[0050] This step involves creating a series of resource specifications based on the currently available GPU resources and task types. These resource specifications will be used for subsequent task allocation. Each resource specification clearly indicates the quantity and type of resources required, including but not limited to GPU, CPU, TPU, memory, disk, network card, etc.

[0051] Specifically, the resource specifications and task queue creation process are as follows:

[0052] (1.1) Generate a series of resource specifications based on GPU resources and task type. For example, for deep learning tasks, a resource specification of "1 CPU core, 4GB memory, 0.5 GPUs" may be created; for graphics rendering tasks, more GPU resources may be required, so a resource specification of "2 CPU cores, 8GB memory, 1 GPU" may be created.

[0053] (1.2) Allocate corresponding task queues according to the created resource specifications. Each task queue corresponds to a specific resource specification, and the larger-level task queue is an integer multiple of the current-level task queue, so as to facilitate the merging and splitting of task queues in the future. Specifically, the task queues include, but are not limited to, three types: small queues, medium queues, and large queues. Among them, the resource specifications of the large queue are integer multiples of the medium queues, and the resource specifications of the medium queues are integer multiples of the small queues.

[0054] (2) Resource binding.

[0055] This step involves binding the actual resources to the currently created task queue after the task queue has been created.

[0056] Specifically, the resource binding process is as follows:

[0057] (2.1) For each task queue, it is necessary to allocate corresponding resources according to its corresponding resource specifications and bind the resources.

[0058] (2.2) After resource binding, it is also necessary to record resource binding information, including the resource specifications of each task queue, the number of bound resources, etc. This information will be used for subsequent task scheduling, queue borrowing and queue return.

[0059] Specifically, the embodiments of the present invention can be applied to any scenario requiring task scheduling of hardware resources such as GPU, CPU, and memory, including but not limited to containerized scenarios. Please refer to [link / reference]. Figure 3 , Figure 3 This diagram illustrates the resource binding process between GPU resources and task queues. To illustrate the principle, only GPU resources are listed, omitting CPU and memory resources. The diagram shows Node1 with 6 GPUs, allocated to one medium queue (3 GPUs) and three small queues (1 GPU each); Node2 has 3 GPUs, allocated to one medium queue. Generally, task queues do not span nodes to avoid unnecessary input / output loss and the complexity of distributed programming. Specifically, resource specifications and task queues are matched: tasks running in the medium queue always use medium specifications, and tasks running in the small queue always use small specifications. Here, the medium specification and medium queue are chosen with 3 GPUs because the entire system has 9 GPUs, resulting in less fragmentation than choosing 2 GPUs for the medium specification. Clearly, this system can bind up to 3 medium queues, or 1 large queue (6 GPUs) and 1 medium queue. There is no inherent advantage or disadvantage to the specific allocation and binding; it is mainly determined by the actual business requirements, as long as the resource allocation of the larger-level task queue is an integer multiple of the current-level task queue.

[0060] (3) Task scheduling.

[0061] This step involves receiving and scheduling tasks by continuously listening after resource binding is completed.

[0062] Specifically, the task scheduling process is as follows:

[0063] (3.1) Receive task requests from users through continuous listening; each task request contains information such as the task type and resource specifications.

[0064] (3.2) Select a suitable task queue based on the task's resource requirements and queue status, i.e., check the status of all current task queues. Specifically, the status of a task queue includes, but is not limited to: idle, working, and busy; if the number of tasks on a task queue exceeds the busy threshold, i.e., the task queue is in a busy state, then it is determined that there is no suitable task queue.

[0065] (3.3) If there is no suitable task queue for task scheduling, try to borrow a task queue of other sizes or request the return of the borrowed task queue.

[0066] In this embodiment of the invention, if the current task queue is busy and there is a larger, free queue, then an attempt is made to use the larger queue for splitting; if the current queue is busy and there is a smaller, free queue, then an attempt is made to use the smaller queue for merging.

[0067] For example, for a medium-sized queue, if there are tasks in a working or busy state, they need to wait for the tasks on it; when all queues are busy, its resources are released, and the new resources are split and bound to three smaller queues; for three smaller queues, if there are tasks in a working or busy state, they need to wait for the tasks on them; when all smaller queues are busy, their resources are released, and the new resources are merged and bound to a medium-sized queue. Please refer to [link / reference]. Figure 3 .

[0068] (3.4) Assign tasks to the selected task queue; that is, whether an existing task queue is selected or a queue is borrowed or returned, the task will be assigned to the selected task queue for execution.

[0069] (4) Queue borrowing.

[0070] This step occurs during task scheduling. If the current task queue cannot meet the task requirements, a queue borrowing attempt will be made.

[0071] Specifically, the queue borrowing process is as follows:

[0072] (4.1) Check the available task queues and the current task requirements. If the current task queues cannot meet the task requirements, try to borrow a queue.

[0073] (4.2) If the current queue is busy and there is a larger queue available, try to borrow the larger queue and split the queue to provide more resources for the task.

[0074] (4.3) If the current queue is busy and there is a smaller queue available, try to borrow the smaller queue and merge the queues to provide more resources for the task.

[0075] Specifically, the idle status of smaller queues is checked. If the number of idle queues meets the threshold for borrowing smaller queues, then several smaller queues with the fewest tasks will be selected for merging.

[0076] (4.4) Adjust resource binding and update queue status; that is, after completing queue borrowing, splitting or merging, adjust resource binding according to the new queue configuration and update the status of each queue.

[0077] (5) Queue return.

[0078] If subsequent task requirements change or the original task queue becomes idle after borrowing other queues, the queues need to be returned.

[0079] Specifically, the queue return process is as follows:

[0080] (5.1) Check the current resource requirements and the status of each task queue. If the current task requirements decrease or a task queue becomes idle, start considering returning the previously borrowed task queue.

[0081] (5.2) If the current queue is busy and there is a smaller queue available, try to return the borrowed smaller queue and merge the queues to provide more resources for the task.

[0082] Specifically, the current task queue is checked for busy status. If the number of busy tasks meets the threshold for returning smaller queues, a return request is triggered. Tasks in non-idle smaller queues are waited for or evicted until there are enough idle smaller queues, and then queue merging is performed.

[0083] (5.3) If the current queue is busy and there is a larger queue available, try to return the borrowed larger queue and split it according to the resource requirements of the task.

[0084] Specifically, check the current busy status of the queue. If the busy quantity meets the threshold for returning a large queue, a return request will be triggered, waiting for or evicting non-idle large queues until there are enough idle large queues, and then queue splitting will be performed.

[0085] (5.4) Adjust resource binding and update queue status; that is, after returning, splitting or merging queues, adjust resource binding according to the new queue configuration and update the status of each task queue.

[0086] (6) Status monitoring.

[0087] This step involves continuous status monitoring throughout the entire process to ensure system performance and stability.

[0088] Specifically, the status monitoring process is as follows:

[0089] (6.1) Monitor the status of each queue in real time, including three states: idle, working, and busy. Through these states, we can understand the current resource utilization and whether it is necessary to borrow or return a queue.

[0090] (6.2) Monitor the overall resource utilization. In addition to monitoring the status of each task queue, it also monitors the overall resource utilization, including the utilization rate of various resources such as CPU, memory, and GPU.

[0091] In summary, the embodiments of this invention can flexibly create resource specifications adapted to various task requirements based on current resource availability and task needs. This contrasts sharply with existing static resource allocation methods, better adapting to changing task demands and effectively preventing resource waste. Simultaneously, the specifications and quantity of queues are dynamically adjusted based on current task and resource conditions. When a queue of a certain specification is busy, idle larger-specification queues can be temporarily borrowed or permanently adjusted to smaller-specification queues. Conversely, when larger-specification queues are busy, idle smaller-specification queues can be merged into larger-specification queues. This mechanism effectively solves the problem of task congestion on resources, ensuring efficient system operation. Furthermore, when a task queue of a certain specification becomes busy, a return request is triggered, waiting for or evicting tasks from non-idle queues until there are enough idle queues, at which point queue merging is performed. This strategy ensures flexible resource allocation adjustments in the face of various changing task demands, maintaining efficient resource utilization. Finally, by continuously monitoring the status of queues of various specifications and the overall resource utilization, and dynamically adjusting queue allocation and resource specifications based on the monitoring results to optimize system performance and response speed, this real-time monitoring and dynamic adjustment mechanism can ensure that optimal performance and response speed are maintained at all times.

[0092] The innovations mentioned above are solutions to problems existing in current technologies. They not only effectively solve these problems but also further improve system performance and response speed, meeting users' needs for efficient and flexible resource management and task scheduling.

[0093] Furthermore, in one embodiment, based on the same inventive concept as the foregoing embodiments, this embodiment of the invention provides an adaptive image processor resource allocation and task scheduling system. This system corresponds one-to-one with the method described in Embodiment 1. Please refer to [link / reference]. Figure 4 , Figure 4 This is a block diagram of an image processor resource allocation and task scheduling system, the system comprising:

[0094] A task queue creation unit, which creates a series of resource specifications based on GPU resources and task types, and creates corresponding task queues based on the series of resource specifications.

[0095] A resource binding unit is used to bind GPU resources to corresponding task queues and record binding information.

[0096] The task queue scheduling unit adaptively schedules task queues based on task requests and queue status. During the task queue scheduling process, it borrows queues according to the resource specifications of the task queues and merges or splits the borrowed task queues.

[0097] A status monitoring unit is used to monitor the status of the task queue during the task queue scheduling process.

[0098] It should be noted that each unit in the adaptive image processor resource allocation and task scheduling system in this embodiment corresponds one-to-one with each step in the adaptive image processor resource allocation and task scheduling method in the aforementioned embodiment. Therefore, the specific implementation method and the technical effects achieved in this embodiment can be referred to the implementation method of the aforementioned adaptive image processor resource allocation and task scheduling method, and will not be repeated here.

[0099] Furthermore, in one embodiment, this application also provides a computer device, the computer device including a processor, a memory, and a computer program stored in the memory, the computer program being executed by the processor to implement the methods in the foregoing embodiments.

[0100] In addition, in one embodiment, this application also provides a computer storage medium storing a computer program that is executed by a processor to implement the methods described in the foregoing embodiments.

[0101] In some embodiments, the computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, flash memory, magnetic surface memory, optical disk, or CD-ROM; or it may be a device including one or any combination of the above-mentioned memories. The computer may be a variety of computing devices, including smart terminals and servers.

[0102] In some embodiments, executable instructions may take the form of a program, software, software module, script, or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

[0103] As an example, executable instructions may, but do not necessarily, correspond to files in a file system. They may be stored as part of a file that holds other programs or data, for example, in one or more scripts in a Hyper Text Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple collaborating files (e.g., a file that stores one or more modules, subroutines, or code sections).

[0104] As an example, executable instructions can be deployed to execute on a single computing device, or on multiple computing devices located in one location, or on multiple computing devices distributed across multiple locations and interconnected via a communication network.

[0105] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or system that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or system. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or system that includes that element.

[0106] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0107] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as read-only memory / random access memory, magnetic disk, optical disk) and includes several instructions to cause a multimedia terminal device (which may be a mobile phone, computer, television receiver, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0108] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. An adaptive image processor resource allocation and task scheduling method, characterized in that: A series of resource specifications are created based on GPU resources and task types, and corresponding task queues are created based on these resource specifications. The task queues include three types: small queues, medium queues, and large queues. The resource specifications of the large queue are integer multiples of those of the medium queue, and the resource specifications of the medium queue are integer multiples of those of the small queue. The task queue is adaptively scheduled based on the task request and queue status. During the task queue scheduling process, the queue is borrowed according to the resource specifications of the task queue, and the borrowed task queues are merged or split. The process of adaptively scheduling the task queue based on the task request and queue status is as follows: Continuously receive task requests, which include task type and resource specification requirements; Match the task queue based on the resource specifications and queue status of the task request; If a task queue match is found, the task queue with the corresponding resource specification is retrieved. If a task queue fails to match, a task queue of other resource specifications is borrowed, and the borrowed task queue is merged or split. If a task queue fails to match, a task queue of other resource specifications is borrowed, and the process of merging or splitting the borrowed task queue is as follows: If all task queues for the current resource specification are busy, then use task queues for other resource specifications. If the resource size of the borrowed task queue is larger than the resource size of the current task queue, then the borrowed task queue will be split. If the resource size of the borrowed task queue is smaller than that of the current task queue, the borrowed task queue will be merged.

2. The adaptive image processor resource allocation and task scheduling method according to claim 1, characterized in that, Before adaptively scheduling task queues based on task requests and queue status, GPU resources need to be bound to the corresponding task queues and the binding information needs to be recorded.

3. The adaptive image processor resource allocation and task scheduling method according to claim 1, characterized in that, After borrowing a queue according to its resource specifications, the queue needs to be returned.

4. The adaptive image processor resource allocation and task scheduling method according to claim 1, characterized in that, During the task queue scheduling process, it is necessary to monitor the status of the task queue.

5. An adaptive image processor resource allocation and task scheduling method according to claim 1 or 4, characterized in that, The status of the task queue includes idle, working, and busy.

6. An adaptive image processor resource allocation and task scheduling system, characterized in that, The system includes: The task queue creation unit creates a series of resource specifications based on GPU resources and task types, and creates corresponding task queues based on the series of resource specifications. The task queues include three types: small queues, medium queues, and large queues. The resource specifications of the large queues are integer multiples of those of the medium queues, and the resource specifications of the medium queues are integer multiples of those of the small queues. The task queue scheduling unit adaptively schedules task queues based on task requests and queue status. During the task queue scheduling process, it borrows queues according to the resource specifications of the task queues and merges or splits the borrowed task queues. The process of adaptively scheduling the task queue based on the task request and queue status is as follows: Continuously receive task requests, which include task type and resource specification requirements; Match the task queue based on the resource specifications and queue status of the task request; If a task queue match is found, the task queue with the corresponding resource specification is retrieved. If a task queue fails to match, a task queue of other resource specifications is borrowed, and the borrowed task queue is merged or split. The process of borrowing a task queue of other resource specifications if a task queue match fails, and then merging or splitting the borrowed task queue, is as follows: If all task queues for the current resource specification are busy, then use task queues for other resource specifications. If the resource size of the borrowed task queue is larger than the resource size of the current task queue, then the borrowed task queue will be split. If the resource size of the borrowed task queue is smaller than that of the current task queue, the borrowed task queue will be merged.

7. An adaptive image processor resource allocation and task scheduling system according to claim 6, characterized in that, The system also includes a resource binding unit, which is used to bind GPU resources to the corresponding task queues and record the binding information.

8. An adaptive image processor resource allocation and task scheduling system according to claim 6, characterized in that, The system also includes a status monitoring unit, which is used to monitor the status of the task queue during the task queue scheduling process.

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 a computer program, it implements the adaptive image processor resource allocation and task scheduling method according to any one of claims 1-5.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the adaptive image processor resource allocation and task scheduling method according to any one of claims 1-5.