Task execution method, device, facility, and medium
By profiling GPU devices to determine optimal child thread counts based on representative equipment types, the method addresses inefficiencies in task execution across diverse GPU-equipped devices, improving performance and reducing costs.
Patent Information
- Application Number
- JP2024535833
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-12-15
- Filing Date
- 2022-12-07
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2042-12-07
AI Technical Summary
Existing technologies face challenges in determining the optimal number of GPU child threads for various devices equipped with GPUs, leading to inefficient task execution, particularly in OpenCL scenarios, due to the vast number of device types and model variations, necessitating a costly and impractical approach to find appropriate thread counts for each type.
A method involving profiling to determine a mapping relationship between equipment types and suitable GPU child threads based on a representative device within each type, allowing devices to execute tasks using the optimal thread count for their equipment type, thereby improving efficiency.
This approach enhances task execution efficiency by reducing execution time, achieving performance gains of 10% to 70% compared to using default thread counts, and is cost-effective and feasible for a wide range of devices.
Smart Images

Figure 0007807146000001 
Figure 0007807146000002 
Figure 0007807146000003
Abstract
Description
[Technical Field]
[0001] This application is based on and claims priority from a Chinese application having application number 202111539442.X and filing date December 15, 2021, the entire disclosure of which is incorporated herein by reference.
[0002] The present disclosure relates to the field of computer technology, and more particularly to a task execution method, device, equipment, and medium. [Background technology]
[0003] Various devices, such as mobile devices and desktop devices, are equipped with a Graphics Processing Unit (GPU). In some scenarios, the number of GPU child threads is a required parameter for performing a specific task, such as image rendering. The number of GPU child threads, also known as local work size, specifically refers to the number of corresponding child threads in the same warp. Summary of the Invention
[0004] An embodiment of the present disclosure provides a task execution method applied to target equipment equipped with a GPU, the method including: obtaining a profile in response to receiving an execution command for a designated task, the designated task being a task executed based on a GPU; the profile including a mapping relationship between an equipment type and a suitable number of GPU child threads, the suitable number of GPU child threads being the number of GPU child threads adopted when a representative equipment of the equipment type takes the shortest time to execute the designated task based on its GPU; determining a target equipment type to which the target equipment belongs based on the profile; and executing the designated task by adopting the suitable number of GPU child threads corresponding to the target equipment type.
[0005] In some embodiments, the profile records equipment identifiers of multiple types of equipment corresponding to each equipment type, and the step of determining the target equipment type to which the target equipment belongs based on the profile includes searching for an equipment type in the profile that corresponds to the equipment identifier of the target equipment, and setting the searched equipment type as the target equipment type to which the target equipment belongs.
[0006] In some embodiments, the profile records a classification method for the equipment type, and the classification method includes classification according to GPU manufacturer name or classification according to GPU model number, and the step of determining the target equipment type to which the target equipment belongs based on the profile includes determining the target equipment type to which the target equipment belongs based on the classification method for the equipment type recorded in the profile and GPU information of the target equipment.
[0007] In some embodiments, the GPU information includes a GPU manufacturer name or a GPU model number.
[0008] In some embodiments, all equipment corresponding to each equipment type has a certain GPU commonality, and the GPU commonality corresponding to different equipment types is different.
[0009] In some embodiments, the profile is generated by obtaining GPU information for multiple types of equipment, all of which are equipment equipped with GPUs; dividing the multiple types of equipment into multiple equipment types based on the GPU information, with each equipment type corresponding to multiple types of equipment; selecting, for each equipment type, one type of representative equipment from all equipment corresponding to that equipment type; obtaining a suitable number of GPU child threads corresponding to the representative equipment of that equipment type; and setting the suitable number of GPU child threads as the suitable number of GPU child threads corresponding to that equipment type; and generating a profile based on a mapping relationship between each type of equipment type and the suitable number of GPU child threads.
[0010] In some embodiments, the step of obtaining a suitable number of GPU child threads corresponding to representative equipment of the equipment type includes obtaining a plurality of candidate numbers of GPU child threads; for each of the candidate numbers of GPU child threads, setting the candidate number of GPU child threads as a parameter of a predetermined OpenCL program, obtaining the time required for the representative equipment of the equipment type to execute the specified task using the predetermined OpenCL program; and setting the corresponding candidate number of GPU child threads with the shortest required time as the suitable number of GPU child threads corresponding to the representative equipment of the equipment type.
[0011] In some embodiments, the GPU information includes a GPU manufacturer name, and the step of classifying the multiple types of equipment into multiple equipment types based on the GPU information includes classifying the multiple types of equipment into multiple manufacturer types based on a GPU manufacturer name of each type of equipment, and all equipment corresponding to each manufacturer type has the same manufacturer name.
[0012] In some embodiments, the GPU information includes a GPU model number, and the step of classifying the multiple types of equipment into multiple equipment types based on the GPU information includes classifying the multiple types of equipment into multiple GPU model number types based on the GPU model number of each type of equipment, and all equipment corresponding to each GPU model number type has the same GPU model number.
[0013] In some embodiments, the step of selecting one type of representative equipment from all equipment corresponding to the equipment type includes obtaining index data for each equipment corresponding to the equipment type based on predetermined metrics, where the metrics include market coverage and / or equipment performance, and selecting one type of representative equipment from all equipment corresponding to the equipment type based on the index data for each equipment.
[0014] In some embodiments, selecting one type of representative equipment from all equipment corresponding to the equipment type based on the index data of each equipment includes selecting the most typical equipment of all equipment in the equipment type as the representative equipment by comparing the index data of each equipment.
[0015] In some embodiments, the step of selecting one type of representative equipment from all equipment corresponding to the equipment type based on the index data of each equipment includes determining an intermediate value of the index data of all equipment corresponding to the equipment type based on the index data of each equipment, selecting equipment from all equipment corresponding to the equipment type whose index data is closest to the intermediate value, and setting the selected equipment as the representative equipment of the equipment type.
[0016] An embodiment of the present disclosure provides a task execution device applied to a target equipment having a GPU installed, the device including: a file acquisition module for acquiring a profile in response to receiving an execution command for a designated task, the designated task being a task executed based on a GPU, the profile including a mapping relationship between an equipment type and a suitable number of GPU child threads, the suitable number of GPU child threads being the number of GPU child threads adopted when a representative equipment of the equipment type takes the shortest time to execute the designated task based on its GPU; a type determination module for determining a target equipment type to which the target equipment belongs based on the profile; and a task execution module for executing the designated task by adopting the suitable number of GPU child threads corresponding to the target equipment type.
[0017] An embodiment of the present disclosure further provides an electronic device including a processor and a memory for storing instructions executable by the processor, the processor being configured to read the executable instructions from the memory and execute the instructions to realize a task execution method according to an embodiment of the present disclosure.
[0018] An embodiment of the present disclosure further provides a computer-readable storage medium having stored thereon a computer program for executing a task execution method according to an embodiment of the present disclosure.
[0019] An embodiment of the present disclosure further provides a computer program comprising instructions that, when executed by a processor, cause the processor to perform a task execution method according to an embodiment of the present disclosure.
[0020] It should be understood that the content described in this section is not intended to identify key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily apparent from the following specification. [Brief explanation of the drawings]
[0021] The drawings herein, which are incorporated in and constitute a part of this specification, illustrate preferred embodiments of the present disclosure and, together with the specification, serve to explain the principles of the present disclosure.
[0022] In order to more clearly describe the technical solutions in the embodiments of the present disclosure or the prior art, the following briefly introduces drawings that need to be used in the description of the embodiments or the prior art, and it is obvious that a person skilled in the art can obtain other drawings based on these drawings without any creative efforts.
[0023] [Figure 1] 1 is a schematic diagram illustrating the flow of a task execution method according to an embodiment of the present disclosure. [Figure 2] FIG. 1 is a schematic diagram illustrating a flow of a method for generating a profile according to an embodiment of the present disclosure. [Figure 3] FIG. 1 is a schematic diagram illustrating a flow of a method for generating a profile according to an embodiment of the present disclosure. [Figure 4] FIG. 1 is a schematic diagram illustrating the configuration of a task execution device according to an embodiment of the present disclosure. [Figure 5] 1 is a schematic diagram of the configuration of an electronic device according to an embodiment of the present disclosure; DETAILED DESCRIPTION OF THE INVENTION
[0024] In order to make the above objects, features and advantages of the present disclosure more clearly understandable, the following further describes the aspects of the present disclosure. It should be noted that, unless contradictory, the embodiments and features in the embodiments of the present disclosure can be combined with each other.
[0025] In the following description, many specific details are set forth in order to fully understand the present disclosure; however, the present disclosure may be embodied in other forms different from those described herein. Obviously, the embodiments in the specification are only some of the embodiments of the present disclosure, but not all of the embodiments.
[0026] The inventors of the present disclosure have discovered through research that the number of GPU sub-threads affects task execution efficiency, for example, the time required to complete a task. Furthermore, there are a great number of types of devices equipped with GPUs on the market, with thousands of mobile phones being an example. In related art, it is costly and difficult to determine the appropriate number of GPU sub-threads for each type of device. Therefore, simply adopting a uniform default number of GPU sub-threads for each device to execute a task results in poor task execution efficiency.
[0027] Specifically, the inventors of the present disclosure have discovered through research that the number of GPU child threads (i.e., local work size) affects the effectiveness of a GPU in executing a specified task, such as image rendering. The number of GPU child threads is also a core parameter of OpenCL (Open Computing Language). GPUs are specialized for executing highly threaded parallel processing tasks. On the other hand, OpenCL is a general-purpose parallel computing language that widely supports various types of devices equipped with GPUs, such as mobile terminal devices and desktop terminal devices. In other words, OpenCL can widely support different types of GPUs, and the number of GPU child threads has a relatively large impact on OpenCL performance, for example, a performance impact of 10% to 70%. This performance impact is mainly manifested in the impact on task execution efficiency. Specifically, this task execution efficiency mainly affects the task execution time. For example, an inappropriate number of GPU child threads directly increases the time required to execute a specified task using OpenCL. Therefore, it may be necessary to find an appropriate number of GPU child threads for each type of device. However, there are many types of devices equipped with GPUs on the market, and there are hundreds of thousands of model numbers for mobile phones alone, so it would require a huge amount of effort and be unrealistic to determine the optimal number of GPU sub-threads for each type of device.The method adopted in related technologies simply adopts a default number of GPU sub-threads that is unified across many devices to execute tasks, and improvements in task execution efficiency are desired.
[0028] Therefore, the embodiments of the present disclosure provide a task execution method, device, equipment, and medium, which will be described in detail below for ease of understanding.
[0029] Furthermore, the shortcomings of the related art are also the result of the Applicant's practice and diligent investigation, and therefore, the process of discovering the shortcomings and the solutions proposed below in the examples of this application should both be considered as the Applicant's contributions to this application.
[0030] FIG. 1 is a schematic diagram illustrating the flow of a task execution method according to an embodiment of the present disclosure. The method is applied to a target device in which a GPU is installed. For example, the target device may be a mobile terminal such as a mobile phone, a computer, etc. As shown in FIG. 1, the method mainly includes the following steps S102 to S106.
[0031] In step S102, a profile is acquired in response to receiving an execution command for a designated task. The designated task is a task executed based on a GPU. The profile includes a mapping relationship between equipment types and a suitable number of GPU child threads, and the suitable number of GPU child threads is the number of GPU child threads that is adopted when one type of representative equipment in the equipment type takes the shortest time to execute the designated task based on its GPU. Here, the equipment type is the type to which the equipment belongs.
[0032] The designated task may be, for example, an image rendering task. In one specific example, considering the high versatility of OpenCL to GPUs, the designated task may be a task executed using an OpenCL program. The embodiments of the present disclosure are not limited to specific designated tasks. For example, any task executed based on OpenCL may be considered a designated task. An instruction to execute the designated task may be directly initiated by a user, or may be automatically initiated when necessary by a system / platform associated with the designated task.
[0033] In some embodiments, the target device may acquire the profile in a specified manner. When downloading the profile in a specified manner, the profile may be automatically downloaded when a specified task is performed based on user settings, or the user may be prompted to download the profile themselves, or the user may directly import the profile into the target device and store the profile in a specified location. Based on the above description, when the target device receives a command to perform a specified task, it may directly read the profile from the specified location. In some other embodiments, the target device downloads the profile in the specified manner described above after receiving a command to perform a specified task.
[0034] The profile may be generated in advance and primarily includes a mapping relationship (also referred to as a correspondence relationship) between equipment types and the preferred number of GPU child threads. Specifically, the profile includes multiple equipment types, each corresponding to a preferred number of GPU child threads. In embodiments of the present disclosure, multiple types of equipment equipped with GPUs can be classified into multiple equipment types, each corresponding to multiple types of equipment, with all equipment corresponding to each equipment type having a specific GPU commonality, and the GPU commonality corresponding to different equipment types differs. In some embodiments, the profile includes the mapping relationship between equipment types and the preferred number of GPU child threads, as well as equipment identifiers for all equipment in each equipment type. In other embodiments, the profile includes the mapping relationship between equipment types and the preferred number of GPU child threads, as well as an equipment type classification scheme. For example, the profile may be classified according to GPU manufacturers to obtain multiple equipment types, each corresponding to a GPU manufacturer name, or the profile may be classified according to GPU model numbers to obtain multiple equipment types, each corresponding to a GPU model number.
[0035] In the above profile, the preferred number of GPU child threads corresponding to each equipment type is the number of GPU child threads adopted when one type of representative equipment in that equipment type takes the shortest time to execute a specified task using its GPU (i.e., the GPU of the representative equipment), and the preferred number of GPU child threads corresponding to the representative equipment is the preferred number of GPU child threads corresponding to the equipment type, i.e., the preferred number of GPU child threads corresponding to all equipment in that equipment type. Considering the large number of types of equipment currently equipped with GPUs and the enormous cost required to determine the appropriate number of GPU child threads corresponding to each type of equipment, the profile according to an embodiment of the present disclosure classifies multiple types of equipment into multiple types, selects one representative equipment for each type, and only determines the preferred number of GPU child threads corresponding to the representative equipment, and the preferred number of GPU child threads corresponding to the representative equipment is the preferred number of GPU child threads corresponding to the equipment type, which is more convenient, executable, and can be implemented at low cost.
[0036] In some embodiments, the representative equipment corresponding to an equipment type may be the most typical equipment among all equipment in that equipment type. For example, a mid-level equipment in each equipment type may be used as the representative equipment. In practical applications, the representative equipment corresponding to each equipment type may be manually designated, or equipment information for all equipment in each equipment type may be acquired and compared to automatically select equipment that meets a predetermined rule. The selected equipment is the representative equipment. The predetermined rule may be set according to needs. For example, among all equipment in the equipment type, the equipment whose GPU performance parameter is intermediate may be used as the representative equipment. In some embodiments, the representative equipment may be made to execute a predetermined OpenCL program to traverse multiple types of GPU child thread counts (e.g., all possible enumerable thread counts) to find the GPU child thread count with the shortest required time, and the found thread count may be used as the preferred GPU child thread count for the representative equipment.
[0037] In step S104, the target equipment type to which the target equipment belongs is determined based on the profile.
[0038] In some embodiments, the profile records equipment identifiers for multiple types of equipment corresponding to each equipment type. In this case, the profile may be searched for an equipment type corresponding to the equipment identifier of the target equipment, and the searched equipment type may be set as the target equipment type to which the target equipment belongs. For example, the profile may record three equipment types (type A, type B, and type C), and record equipment identifiers a1, a2, a3 to a85 belonging to type A, equipment identifiers b1, b2, b3 to b70 belonging to type B, and equipment identifiers c1, c2, c3 to c121 belonging to type C. If the equipment identifier of the target equipment is b35, the corresponding equipment type is type B.
[0039] In some other embodiments, the profile records a classification method for equipment types. The classification method includes classification according to GPU manufacturer name or classification according to GPU model number. In this case, the target equipment type to which the target equipment belongs may be determined based on the classification method for equipment types recorded in the profile and the GPU information of the target equipment. For example, the profile records three equipment types classified according to GPU manufacturer name, where Type A corresponds to Manufacturer A, Type B corresponds to Manufacturer B, and Type C corresponds to Manufacturer C. On the other hand, if the GPU information of the target equipment indicates that the manufacturer of the target equipment is A, the equipment type corresponding to the target equipment is Type A.
[0040] All of the above are illustrative and should not be considered limiting.
[0041] In step S106, a suitable number of GPU child threads corresponding to the target equipment type is adopted to execute the designated task.
[0042] As can be seen, since devices of the same device type usually have certain commonalities, the time required for the target device to execute a task by adopting the appropriate number of GPU child threads corresponding to the representative device of the device type is usually short. Compared with adopting the default number of GPU child threads, this method is easy to implement and can effectively improve the task execution efficiency.
[0043] A task execution method according to some embodiments of the present disclosure has been provided. In this method, a target equipment equipped with a GPU acquires a profile in response to receiving an execution command for a designated task. The profile includes a mapping relationship between equipment types and a preferred number of GPU child threads. The preferred number of GPU child threads is the number of GPU child threads that is adopted when a representative equipment of the equipment type takes the shortest time to execute the designated task using its GPU. Then, a target equipment type to which the target equipment belongs is determined based on the profile, and the designated task is executed using the preferred number of GPU child threads corresponding to the target equipment type. According to the above method, when executing the designated task, a profile is acquired that records the mapping relationship between equipment types and the preferred number of GPU child threads, and the designated task can be executed using the preferred number of GPU child threads corresponding to the target equipment type to which the target equipment belongs. The preferred number of GPU child threads corresponding to the target equipment type is the number of GPU child threads that is adopted when a representative equipment of the equipment type takes the shortest time to execute the designated task. Since equipment of the same equipment type usually has certain commonalities, the time required for the target equipment to execute a task by adopting a suitable number of GPU child threads corresponding to the representative equipment of that equipment type is also usually short. Compared with adopting the default number of GPU child threads, the above method is easy to implement and can effectively improve task execution efficiency. Based on the above description, an embodiment of the present disclosure further provides a profile generation method. Figure 2 is a schematic diagram showing the flow of the profile generation method according to an embodiment of the present disclosure. The method includes the following steps S202 to S208.
[0044] In step S202, GPU information is acquired for multiple types of equipment, all of which are equipped with GPUs.
[0045] In practical applications, the number of types of equipment may be set according to needs and is not limited herein. For example, based on mainstream equipment such as mobile phones and computers currently on the market, GPU information corresponding to various equipment model numbers of such mainstream equipment circulating on the market within a specified period (e.g., the last five years) may be obtained, or GPU information for all known various equipment currently on the network or market may be obtained. In some embodiments, the GPU information includes the GPU manufacturer name or GPU model number. Examples of GPU manufacturer names include Qualcomm, Mali, and PowerVR, and examples of GPU model numbers include Mali G77, Mali G76, and Adreno510.
[0046] In step S204, the multiple types of equipment are classified into multiple equipment types based on the GPU information, and each equipment type corresponds to multiple types of equipment.
[0047] Because GPU information is associated with each piece of equipment, the equipment can be classified into multiple types based on the GPU information. Each type is associated with multiple types of equipment, and all of the equipment associated with each type shares certain GPU commonalities, with the commonalities corresponding to different types varying. For example, in some embodiments, there are multiple types of equipment, and each type of equipment is equipped with a GPU. However, the number of GPU manufacturers currently available is so small that it can be counted on one's fingers, and the GPUs used in most equipment are all manufactured by the same manufacturer. Therefore, multiple types of equipment can be classified into multiple types based on the GPU manufacturer. Furthermore, for example, the number of existing GPU model numbers is far fewer than the number of equipment types, and the GPU model numbers used in some equipment are the same. Therefore, multiple types of equipment can be classified into multiple types based on the GPU model number.
[0048] In step S206, for each equipment type, one type of representative equipment is selected from all equipment corresponding to that equipment type, and the suitable number of GPU child threads corresponding to the representative equipment of that equipment type is obtained. The suitable number of GPU child threads is set as the suitable number of GPU child threads corresponding to that equipment type. In other words, the suitable number of GPU child threads corresponding to the representative equipment of that equipment type is set as the suitable number of GPU child threads for all equipment corresponding to that equipment type. Here, the suitable number of GPU child threads is the number of GPU child threads adopted when the time required for the GPU of the representative equipment to execute the specified task is shortest. Because task execution effectiveness is mainly reflected in the task time required, an embodiment of the present disclosure can determine whether the number of GPU child threads is suitable based on the time required to execute the specified task. In some embodiments, all possible numbers of GPU child threads may be enumerated, and the representative equipment may employ each of the possible numbers of GPU child threads to execute the designated task, determining the required time for each number of GPU child threads, and determining the number of GPU child threads with the shortest required time as the preferred number of GPU child threads for the representative equipment, which may in fact be called the optimal number of GPU child threads for the representative equipment.
[0049] The above steps are classified based on the GPU information of each device. All corresponding devices in each category actually have certain GPU commonalities, such as categories classified according to GPU manufacturers or GPU model numbers. The GPUs of all devices in the same category actually do not differ significantly, and are mostly the result of minor GPU characteristic upgrades and improvements, with most characteristics remaining consistent. Therefore, the preferred number of GPU subthreads for a representative device in each category is, to some extent, also the preferred number of GPU subthreads for other devices in the same category. Although not necessarily optimal, compared to a unified default number of GPU subthreads, it is closer to the device's own GPU characteristics, resulting in better task execution efficiency and typically requiring less time than a unified default number of GPU subthreads.
[0050] In step S208, a profile is generated based on the mapping relationship between each type of equipment and the appropriate number of GPU child threads. Specifically, the mapping relationship (correspondence) between each type of equipment and the appropriate number of GPU child threads may be recorded in a single file, and the file may be used as the profile.
[0051] In practical applications, the profile may be distributed via a network or other means. When a device employs a GPU to perform a specific task requiring a number of GPU child threads, the device may obtain the profile, for example, via network download or data import, and then query the profile for the appropriate number of GPU child threads for the device. In some embodiments, the profile may be a single large file that records the appropriate number of GPU child threads for each type and the corresponding device identifier (device model number), with the appropriate number of GPU child threads for all devices of the same type being the same. In other embodiments, the profile may include multiple sub-files, each of which records the appropriate number of GPU child threads for a type and the device identifier for that type. After obtaining the profile, the target device can directly search the profile for the appropriate number of GPU child threads for that type based on its own identifier. Because multiple types of existing devices can all obtain their appropriate number of GPU child threads from the profile, the profile is compatible with multiple devices, and each device can achieve automatic model adaptation by reading the profile.
[0052] The profile generation method according to the embodiment of the present disclosure classifies devices into types according to GPU information, and the devices corresponding to each type typically have certain GPU commonalities. Therefore, the number of GPU sub-threads adopted when the representative device requires the shortest time to execute a specified task (the preferred number of GPU sub-threads for the representative device) can be used as the preferred number of GPU sub-threads for other devices in the same type. That is, the preferred number of GPU sub-threads for each type of device can be obtained. Compared to related art, which uniformly adopts a default number of GPU sub-threads, the method according to the embodiment of the present disclosure can easily and quickly obtain the preferred number of GPU sub-threads for each type of device and record it in the profile, thereby contributing to improved task execution efficiency for each subsequent device. Furthermore, since the embodiment of the present disclosure obtains the preferred number of GPU sub-threads for the representative device for each type, it is more feasible and less costly than a method of individually obtaining the preferred number of GPU sub-threads for a large number of devices.
[0053] The embodiment of the present disclosure has shown an embodiment in which multiple types of equipment are classified into multiple equipment types based on GPU information. The equipment types may be manufacturer types or GPU model number types, and may be realized specifically with reference to (1) and (2) below.
[0054] (1) If the GPU information is the GPU manufacturer name, multiple types of equipment are categorized into multiple manufacturer types based on the GPU manufacturer name of each type of equipment, and all equipment corresponding to each manufacturer type has the same manufacturer name. For example, taking the Android (registered trademark) mobile terminal as an example, it can be mainly categorized into three major manufacturers: Qualcomm, Mali, and PowerVR. As can be seen, since there are only a few existing GPU manufacturers, multiple types of equipment can be roughly categorized into multiple manufacturer types. For example, all equipment using GPUs manufactured by Qualcomm belongs to the Qualcomm type, and all equipment using GPUs manufactured by Mali belongs to the Mali type.
[0055] That is, in some embodiments, the GPU information includes a GPU manufacturer name, and the step of classifying the multiple types of equipment into multiple equipment types based on the GPU information includes classifying the multiple types of equipment into multiple manufacturer types based on the GPU manufacturer name of each type of equipment, and all equipment corresponding to each manufacturer type has the same manufacturer name.
[0056] (2) When the GPU information is a GPU model number, multiple types of equipment are divided into multiple GPU model number types based on the GPU model number of each type of equipment, and all equipment corresponding to each GPU model number type has the same GPU model number. As can be seen, there are many existing equipment, and most of the equipment uses the same GPU model number, so it is possible to further divide multiple types of equipment into multiple GPU model number types.
[0057] That is, in some embodiments, the GPU information includes a GPU model number, and the step of classifying the multiple types of equipment into multiple equipment types based on the GPU information includes classifying the multiple types of equipment into multiple GPU model number types based on the GPU model number of each type of equipment, and all equipment corresponding to each GPU model number type has the same GPU model number.
[0058] As can be seen, the above (1) is a coarse-grained classification method. For example, there are mainly three or four mainstream manufacturers, so the number of classification types is so small that it can be counted on one's fingers. The above (2) is a fine-grained classification method. For example, there are approximately 50 mainstream GPU model numbers, so the number of classification types is relatively large, but it is still far smaller than the number of devices that can be counted in the thousands. In actual applications, the above (1) or (2) can be flexibly selected according to needs. For example, if the time required for a GPU to perform a specified task is not highly required, the above (1) can be simply adopted. If the task completion time is highly required, the above (2) can be adopted for classification. The above explanation is merely illustrative and should not be considered limiting. In actual applications, it is also possible to further classify based on GPU information, for example, according to the series type of the same GPU manufacturer, such as the Mali5 series type and the Mali6 series type.
[0059] After dividing the equipment into multiple equipment types, one type of representative equipment may be selected for each equipment type from all the equipment corresponding to that equipment type. For example, this may be achieved by referring to the following steps 1 and 2.
[0060] In step 1, index data for each piece of equipment corresponding to the equipment type is obtained based on predetermined metrics, where the metrics include market coverage and / or equipment performance. Market coverage, also known as market share, can be obtained using a network statistical method. In some embodiments, equipment performance can be reflected by the time it takes for the equipment to perform a task. For example, the shorter the time required to perform the same task, the better the equipment performance. In practical applications, each piece of equipment is publicly available in the market, and equipment performance is also a public parameter, so the performance of each piece of equipment can be easily and directly obtained using a network method.
[0061] In step 2, one type of representative equipment is selected from all the equipment corresponding to the equipment type based on the index data of each equipment.
[0062] By comparing the index data of each piece of equipment, the most typical piece of equipment can be found and designated as the representative equipment. That is, the most typical piece of equipment among all pieces of equipment in that equipment type can be designated as the representative equipment. In some implementations, the mid-level equipment in each type can be designated as the representative equipment. In this case, based on the index data of each piece of equipment, the median value of the index data of all pieces of equipment corresponding to that type can be determined. Then, from all pieces of equipment corresponding to that type, the equipment whose index data is closest to the median value can be selected and designated as the representative equipment for that type. The equipment whose index data is the median value (or closest to the median value) is the mid-level equipment. As can be understood, the mid-level equipment in each type usually has the general characteristics of that type, and in that type, both low-level and high-level equipment have GPU performance that is close to that of the mid-level equipment to some extent. Therefore, the mid-level equipment can be selected to objectively represent all pieces of equipment in that type, and the preferred number of GPU child threads for the mid-level equipment can be designated as the preferred number of GPU child threads for other pieces of equipment in the same type.
[0063] Furthermore, the embodiment of the present disclosure provides a specific embodiment for obtaining a suitable number of GPU child threads corresponding to the representative equipment of the equipment type, which includes the following steps a to c.
[0064] In step a, a plurality of candidate GPU child thread numbers are obtained. In some embodiments, the plurality of candidate GPU child thread numbers may be determined based on an enumeration method, i.e., all possible GPU child thread numbers may be enumerated.
[0065] In step b, for each candidate number of GPU child threads, the number of candidate GPU child threads is used as a parameter of a predetermined OpenCL program, and the time required for a representative device of that device type to execute a specified task using the predetermined OpenCL program is obtained. OpenCL widely supports GPUs, so the specified task can be executed using the predetermined OpenCL program. The number of GPU child threads is a parameter required by the OpenCL program, specifically, an OpenCL kernel function parameter, and directly affects the performance (required time) of the OpenCL program to execute the task. Therefore, all devices in the embodiments of the present disclosure can execute the specified task using the predetermined OpenCL program. In practical applications, the time required to execute the specified task can be determined using a predetermined timing method, such as the clGetEventProfilingInfo function.
[0066] In step c, the number of candidate GPU child threads corresponding to the shortest required time is determined as the number of GPU child threads suitable for the representative equipment of the equipment type.
[0067] The candidate number of GPU child threads corresponding to the shortest required time is actually the optimal number of GPU child threads corresponding to the representative device. That is, it has the best task execution effect compared to other candidate numbers of GPU child threads. In addition, in actual applications, the number of GPU child threads is an OpenCL kernel function parameter. Since there can be multiple types of kernel functions, a suitable number of GPU child threads corresponding to each type of kernel function can be determined individually. That is, the above steps a to c are performed for each type of kernel function, and the finally obtained suitable number of GPU child threads for the representative device includes suitable numbers of GPU child threads corresponding to each of the multiple kernel functions.
[0068] Based on the above description, the embodiment of the present disclosure further provides a profile generation method. Figure 3 is a schematic diagram showing the flow of the profile generation method according to the embodiment of the present disclosure. The method mainly includes the following steps S302 to S310.
[0069] In step S302, GPU information for multiple types of equipment is acquired. All of the equipment is equipped with a GPU. If the GPU information is the GPU manufacturer name, step S304 is executed. If the GPU information is the GPU model number, step S306 is executed.
[0070] In step S304, the multiple types of equipment are classified into multiple manufacturer types based on the GPU manufacturer name of each type of equipment.
[0071] In step S306, the multiple types of equipment are classified into multiple GPU model number types based on the GPU model number of each type of equipment.
[0072] In step S308, for each type, one type of representative equipment is selected from all equipment corresponding to that type, the suitable number of GPU child threads corresponding to the representative equipment of that type is obtained, and the suitable number of GPU child threads is set as the suitable number of GPU child threads for all equipment corresponding to that type.
[0073] In step S310, the mapping relationship between each type of equipment and the preferred number of GPU child threads is stored in a profile. In this way, the profile can be directly provided to the target equipment that executes the specified task later, and the GPU of the target equipment can execute the specified task according to the corresponding preferred number of GPU child threads recorded in the profile.
[0074] In practical applications, either step S304 or step S306 may be selected and executed, or both may be executed. Two profiles may be generated for different types: one is a coarse-grained profile classified according to GPU manufacturer, and the other is a fine-grained profile classified according to GPU model number. The device may then determine which profile to use for the appropriate number of GPU sub-threads based on the time required to execute a task. For example, if time is not a high priority, the device may use the appropriate number of GPU sub-threads in the coarse-grained profile; if time is a high priority, the device may use the appropriate number of GPU sub-threads in the fine-grained profile.
[0075] The above steps in FIG. 3 proposed by the embodiments of the present disclosure and their beneficial effects may be realized with reference to the related content above, so they will not be further described here.
[0076] In practical applications, the GPU may be a chip in a graphics card, and in some embodiments, the GPU model number may be directly equivalent to the graphics card model number. Therefore, in the above-described scheme according to the embodiments of the present disclosure, the GPU model number may be the graphics card model number, such as Adreno graphics card, Mali graphics card, powerVR graphics card, AMD graphics card, Intel graphics card, AMD graphics card, Nvidia graphics card, etc. OpenCL can widely support different types of GPUs, and it can also be said that OpenCL widely supports different types of graphics cards.
[0077] As described above, in the task execution method according to the embodiment of the present disclosure, when a target equipment equipped with a GPU executes a specified task, the target equipment acquires a profile recording a mapping relationship between equipment type and a suitable number of GPU child threads, and can execute the specified task by adopting a suitable number of GPU child threads corresponding to the target equipment type to which the target equipment belongs. The suitable number of GPU child threads corresponding to the target equipment type is the number of GPU child threads adopted when the representative equipment of that equipment type requires the shortest time to execute the specified task. Since equipment of the same equipment type typically has certain commonalities, the time required for the target equipment to execute the task by adopting the suitable number of GPU child threads corresponding to the representative equipment of that equipment type is also typically short. Therefore, compared to adopting a default number of GPU child threads, the above method is easily implemented and can effectively improve task execution efficiency.
[0078] The above method is well suited to OpenCL-related scenarios (which require the use of GPU child threads), and can effectively improve the performance of OpenCL-based tasks. Studies have shown that it can achieve a performance gain of 10% to 70%.
[0079] Corresponding to the task execution method according to an embodiment of the present disclosure, an embodiment of the present disclosure provides a task execution device, which is applied to a target device in which a GPU is installed. Referring to the configuration diagram of the task execution device shown in Figure 4, the task execution device includes a file acquisition module 402, a classification determination module 404, and a task execution module 406.
[0080] The file acquisition module 402 is for acquiring a profile in response to receiving an execution command for a specified task, the specified task being a task executed based on a GPU, the profile including a mapping relationship between an equipment type and a suitable number of GPU child threads, the suitable number of GPU child threads being the number of GPU child threads adopted when one type of representative equipment in the equipment type takes the shortest time to execute the specified task based on its GPU.
[0081] The type determination module 404 is for determining the target equipment type to which the target equipment belongs based on the profile.
[0082] The task execution module 406 is for employing a suitable number of GPU child threads corresponding to the target equipment type to execute the designated task.
[0083] When executing a specified task, the above-described device according to an embodiment of the present disclosure acquires a profile recording a mapping relationship between equipment types and a preferred number of GPU child threads, and can execute the specified task by adopting a preferred number of GPU child threads corresponding to the target equipment type to which the target equipment belongs. The preferred number of GPU child threads corresponding to the target equipment type is the number of GPU child threads adopted when the representative equipment of that equipment type requires the shortest time to execute the specified task. Since equipment of the same equipment type usually has certain commonalities, the time required for the target equipment to execute the task by adopting the preferred number of GPU child threads corresponding to the representative equipment of that equipment type is also usually short. Compared to adopting a default number of GPU child threads, the above method is easy to implement and can effectively improve task execution efficiency.
[0084] In some embodiments, the profile records equipment identifiers of multiple types of equipment corresponding to each of the equipment types, and the type determination module specifically searches the profile for an equipment type corresponding to the equipment identifier of the target equipment, and determines the retrieved equipment type as the target equipment type to which the target equipment belongs.
[0085] In some embodiments, the profile records a classification method for the equipment type, and the classification method includes classification according to the GPU manufacturer name or classification according to the GPU model number, and the classification determination module is specifically for determining the target equipment type to which the target equipment belongs based on the classification method for the equipment type recorded in the profile and the GPU information of the target equipment.
[0086] In some embodiments, the GPU information includes a GPU manufacturer name or a GPU model number.
[0087] In some embodiments, all equipment corresponding to each equipment type has a certain GPU commonality, and the GPU commonality corresponding to different equipment types is different.
[0088] In some embodiments, the device further includes a file generation module used for obtaining GPU information for multiple types of equipment, each of which is equipped with a GPU; classifying the multiple types of equipment into multiple equipment types based on the GPU information, with each equipment type corresponding to multiple types of equipment; selecting, for each equipment type, one type of representative equipment from all equipment corresponding to that equipment type, obtaining a suitable number of GPU child threads corresponding to the representative equipment of that equipment type, and setting the suitable number of GPU child threads as the suitable number of GPU child threads corresponding to that equipment type; and generating a profile based on a mapping relationship between each type of equipment type and the suitable number of GPU child threads.
[0089] In some embodiments, the file generation module specifically acquires a plurality of candidate GPU child thread counts, and for each candidate GPU child thread count, acquires the time required for a representative equipment of the equipment type to execute the specified task using the predetermined OpenCL program while setting the candidate GPU child thread count as a parameter of the predetermined OpenCL program, and sets the candidate GPU child thread count corresponding to the shortest required time as the preferred number of GPU child threads for the representative equipment of the equipment type. In some embodiments, the GPU information includes a GPU manufacturer name. The file generation module categorizes the plurality of types of equipment into a plurality of manufacturer types based on the GPU manufacturer name of each type of equipment, and all equipment corresponding to each manufacturer type has the same manufacturer name.
[0090] In some embodiments, the GPU information includes a GPU model number, and the file generation module is configured to classify the multiple types of equipment into multiple GPU model types based on the GPU model number of each type of equipment, and all corresponding equipment of each GPU model type has the same GPU model number.
[0091] In some embodiments, the GPU information includes a GPU manufacturer name or a GPU model number, and the file generation module is specifically used for, if the GPU information is a GPU manufacturer name, classifying the multiple types of equipment into multiple manufacturer types based on the GPU manufacturer name of each type of equipment, where all equipment corresponding to each manufacturer type has the same manufacturer name; and, if the GPU information is a GPU model number, classifying the multiple types of equipment into multiple GPU model number types based on the GPU model number of each type of equipment, where all equipment corresponding to each GPU model number type has the same GPU model number.
[0092] In some embodiments, the file generation module is specifically used to obtain index data for each piece of equipment corresponding to the equipment type based on predetermined metrics, where the metrics include market coverage and / or equipment performance, and to select one type of representative equipment from all pieces of equipment corresponding to the equipment type based on the index data for each piece of equipment.
[0093] In some embodiments, the file generation module is configured to collate index data for each piece of equipment to select the most representative piece of equipment among all pieces of equipment of the equipment type as the representative piece of equipment.
[0094] In some embodiments, the file generation module is specifically used to determine the median value of the index data of all equipment corresponding to the equipment type based on the index data of each equipment, select equipment whose index data is closest to the median value from all equipment corresponding to the equipment type, and designate the selected equipment as representative equipment for the equipment type.
[0095] The task execution device according to the embodiments of the present disclosure can execute the task execution method according to any embodiment of the present disclosure, and has beneficial effects with the functional modules corresponding to the execution of the method.
[0096] To enable those skilled in the art to clearly understand, for convenience and brevity of explanation, the specific operating processes of the above-described device embodiments can be referred to the corresponding processes in the corresponding method embodiments, and will not be further described here.
[0097] An embodiment of the present disclosure further provides an electronic device including: a memory for storing processor-executable instructions; and a processor for reading the executable instructions from the memory and executing the instructions to realize the task execution method.
[0098] 5 is a schematic diagram of an electronic device according to an embodiment of the present disclosure. As shown in FIG. 5, the electronic device 500 includes one or more processors 501 and a memory 502.
[0099] The processor 501 may be a central processing unit (CPU) or other form of processing unit having data processing and / or instruction execution capabilities, and may control other components in the electronic equipment 500 to perform desired functions.
[0100] The memory 502 may include one or more computer program products, which may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, random access memory (RAM) and / or cache memory. The non-volatile memory may include, for example, read-only memory (ROM), a hard disk, flash memory, etc. One or more computer program instructions may be stored on the computer-readable storage medium, and the processor 501 may execute the program instructions to implement the methods for performing tasks and / or other desired functions of the embodiments of the present disclosure described above. The computer-readable storage medium may also store various contents, such as an input signal, a signal component, and a noise component.
[0101] In one example, electronic equipment 500 may further include input devices 503 and output devices 504, these components being interconnected by a bus system and / or other form of connection (not shown).
[0102] The input device 503 may further include, for example, a keyboard, a mouse, and the like.
[0103] The output device 504 can output various information to the outside, including determined distance information, direction information, etc. The output device 504 may include, for example, a display, a speaker, a printer, a communication network, and remote output facilities connected thereto.
[0104] Of course, for the sake of simplicity, Fig. 5 only shows some of the components related to the present disclosure in the electronic device 500, and omits components such as buses, input / output interfaces, etc. However, the electronic device 500 may further include any other appropriate components according to specific application situations.
[0105] In addition to the methods and apparatus described above, embodiments of the present disclosure may also be computer program products that include computer program instructions that, when executed by a processor, cause the processor to perform a task execution method according to embodiments of the present disclosure.
[0106] The computer program product may include program code written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, and the like, as well as general procedural programming languages such as "C" or similar programming languages, for carrying out operations of embodiments of the present disclosure. The program code may execute entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server.
[0107] Additionally, an embodiment of the present disclosure may be a computer-readable storage medium (e.g., a non-transitory computer-readable storage medium) having stored thereon computer program instructions that, when executed by a processor, cause the processor to perform a task execution method according to an embodiment of the present disclosure.
[0108] The computer-readable storage medium may employ any combination of one or more computer-readable media. The computer-readable medium may be a readable signal medium or a readable storage medium. The computer-readable storage medium may include, for example, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (non-exhaustive list) of computer-readable storage media include an electrical connection having one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0109] An embodiment of the present disclosure further provides a computer program product including a computer program or instructions that, when executed by a processor, implements the task execution method in an embodiment of the present disclosure.
[0110] An embodiment of the present disclosure further provides a computer program comprising instructions that, when executed by a processor, cause the processor to perform a task execution method in an embodiment of the present disclosure.
[0111] It should be noted that, in this specification, relational terms such as "first" and "second" are used solely to distinguish one entity or operation from another, and do not require or imply the existence of any actual relationship or sequence between those entities or operations. Furthermore, the terms "comprise," "include," or any other variant thereof indicate a non-exclusive inclusion, such that a process, method, article, or apparatus that includes a series of elements includes not only those elements but also other elements not expressly specified or elements inherent in such process, method, article, or apparatus. Absent further limitations, an element defined by "comprises a ..." does not exclude the inclusion of other identical elements in a process, method, article, or apparatus that includes said element.
[0112] The above are merely specific embodiments of the present disclosure, and are used to enable those skilled in the art to understand or realize the present disclosure. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present disclosure. Therefore, the present disclosure is not intended to be limited to these embodiments herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A task execution method applied to a target device in which a graphics processing unit (GPU) is arranged, comprising: acquiring a profile in response to receiving an execution command for a designated task, the designated task being a task executed based on a GPU, the profile including a mapping relationship between an equipment type and a suitable number of GPU child threads, the suitable number of GPU child threads being the number of GPU child threads adopted when one type of representative equipment in the equipment type takes the shortest time to execute the designated task based on its GPU; determining a target equipment type to which the target equipment belongs based on the profile; employing a suitable number of GPU child threads corresponding to the target equipment type to execute the designated task; The profile records equipment identifiers of a plurality of types of equipment corresponding to each of the equipment types, The step of determining a target equipment type to which the target equipment belongs based on the profile includes: A task execution method including searching the profile for an equipment type corresponding to an equipment identifier of the target equipment, and setting the retrieved equipment type as the target equipment type to which the target equipment belongs.
2. A task execution method applied to a target device in which a graphics processing unit (GPU) is arranged, comprising: acquiring a profile in response to receiving an execution command for a designated task, the designated task being a task executed based on a GPU, the profile including a mapping relationship between an equipment type and a suitable number of GPU child threads, the suitable number of GPU child threads being the number of GPU child threads adopted when one type of representative equipment in the equipment type takes the shortest time to execute the designated task based on its GPU; determining a target equipment type to which the target equipment belongs based on the profile; employing a suitable number of GPU child threads corresponding to the target equipment type to execute the designated task; A classification method for the equipment type is recorded in the profile, and the classification method includes classification according to a GPU manufacturer name or a GPU model number, The step of determining a target equipment type to which the target equipment belongs based on the profile includes: A task execution method including determining a target equipment type to which the target equipment belongs based on the classification method of the equipment type recorded in the profile and GPU information of the target equipment.
3. The task execution method according to claim 2 , wherein the GPU information includes a GPU manufacturer name or a GPU model number.
4. The task execution method according to claim 1 or 2, wherein all equipment corresponding to each equipment type has a specific GPU commonality, and the GPU commonality corresponding to different equipment types is different.
5. The profile may include: Acquiring GPU information for a plurality of types of equipment, all of which are equipment in which a GPU is installed; The plurality of types of equipment are classified into a plurality of equipment types based on the GPU information, and each equipment type corresponds to a plurality of types of equipment; selecting one type of representative equipment from all equipment corresponding to the equipment type for each equipment type, obtaining a suitable number of GPU child threads corresponding to the representative equipment of the equipment type, and setting the suitable number of GPU child threads as the suitable number of GPU child threads corresponding to the equipment type; generating a profile based on a mapping relationship between each type of equipment and a suitable number of GPU child threads; The task execution method according to claim 1 or 2, wherein the task execution method is generated by:
6. The step of acquiring a suitable number of GPU child threads corresponding to the representative equipment of the equipment type includes: Obtaining a number of candidate GPU child threads; For each number of candidate GPU child threads, the number of candidate GPU child threads is set as a parameter of a predetermined open computing language OpenCL program, and a time required for a representative equipment of the equipment type to execute the specified task using the predetermined OpenCL program is acquired; The task execution method according to claim 5 , further comprising: determining the number of corresponding candidate GPU child threads having the shortest required time as the suitable number of GPU child threads corresponding to the representative equipment of the equipment type.
7. The GPU information includes a GPU manufacturer name, 6. The task execution method according to claim 5, wherein the step of classifying the plurality of types of equipment into a plurality of equipment types based on the GPU information includes classifying the plurality of types of equipment into a plurality of manufacturer types based on a GPU manufacturer name of each type of equipment, and all equipment corresponding to each manufacturer type has the same manufacturer name.
8. The GPU information includes a GPU model number, 6. The task execution method according to claim 5, wherein the step of classifying the plurality of types of equipment into a plurality of equipment types based on the GPU information includes classifying the plurality of types of equipment into a plurality of GPU model number types based on a GPU model number of each type of equipment, and all of the equipment corresponding to each GPU model number type has the same GPU model number.
9. The step of selecting one type of representative equipment from all the equipment corresponding to the equipment type includes: Acquiring index data for each facility corresponding to the facility type based on predetermined metrics, wherein the metrics include market coverage and / or facility performance; The task execution method according to claim 5, further comprising: selecting one type of representative equipment from all the equipment corresponding to the equipment type based on the index data of each equipment.
10. 10. The task execution method of claim 9, wherein selecting one type of representative equipment from all equipment corresponding to the equipment type based on the index data of each piece of equipment includes selecting the most typical equipment of all equipment in the equipment type as the representative equipment by comparing the index data of each piece of equipment.
11. The step of selecting one type of representative equipment from all the equipment corresponding to the equipment type based on the index data of each equipment includes: determining an intermediate value of the index data of all the equipment corresponding to the equipment type based on the index data of each equipment; 10. The task execution method according to claim 9, further comprising: selecting, from all equipment corresponding to the equipment type, equipment whose index data is closest to the median value, and designating the selected equipment as representative equipment of the equipment type.
12. A task execution device applied to a target device in which a GPU is arranged, a file acquisition module for acquiring a profile in response to receiving an execution command for a designated task, the designated task being a task executed based on a GPU, the profile including a mapping relationship between an equipment type and a suitable number of GPU child threads, the suitable number of GPU child threads being the number of GPU child threads adopted when one type of representative equipment in the equipment type takes the shortest time to execute the designated task based on its GPU; a type determination module for determining a target equipment type to which the target equipment belongs based on the profile; a task execution module for executing the designated task by employing a suitable number of GPU child threads corresponding to the target equipment type; The profile records equipment identifiers of multiple types of equipment corresponding to each of the equipment types, and the type determination module searches the profile for an equipment type corresponding to the equipment identifier of the target equipment, and determines the retrieved equipment type as the target equipment type to which the target equipment belongs; a classification method for the equipment type recorded in the profile, the classification method including classification according to a GPU manufacturer name or classification according to a GPU model number, and the classification determination module for determining a target equipment type to which the target equipment belongs based on the classification method for the equipment type recorded in the profile and GPU information of the target equipment.
13. a processor; a memory for storing instructions executable by the processor; The processor is configured to read the executable instructions from the memory and execute the instructions to implement the task execution method of claim 1 or 2.
14. A computer-readable storage medium storing a computer program for executing the task execution method according to claim 1 or 2.
15. A computer program comprising instructions which, when executed by a processor, cause the processor to perform the task execution method according to claim 1 or 2.
Citation Information
Patent Citations
Data processing system, host processor and user terminal device thereof, and computer program and data processing method therefor
JP2009259195A
Information processing system, information processing method and information processor
JP2012003618A
Image processor, image processing method, and program
JP2016131579A
Resource management apparatus, resource management system, resource management method, and program
JP2021052365A
Feedback-driven tuning for efficient parallel execution
US20140019984A1