Parallel runtime execution on multiple processors
First Claim
1. A computer implemented method comprising:
- selecting, during runtime of an application running in a first processing unit, in response to a first API (Application Programming Interface) request having a requirement from the application, a second data processing unit according to the requirement;
loading, during the runtime, in response to a second API request from the application one or more executables for the selected second processing unit to perform a data processing task of the application; and
causing, during the runtime, in response to a third API request from the application, execution of one of the one or more executables for the second processing unit,wherein the one or more executables include description data for the one of the one or more executables,wherein the selecting is based on the description data,wherein the one of the one or more executables is associated with a latest version among the one or more executables for the second processing unit based on the description data,wherein the one of the one or more executables includes description data indicating the latest version for the second processing unit, andwherein the one of the one or more executables is backward compatible with the second processing unit.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and an apparatus that schedule a plurality of executables in a schedule queue for execution in one or more physical compute devices such as CPUs or GPUs concurrently are described. One or more executables are compiled online from a source having an existing executable for a type of physical compute devices different from the one or more physical compute devices. Dependency relations among elements corresponding to scheduled executables are determined to select an executable to be executed by a plurality of threads concurrently in more than one of the physical compute devices. A thread initialized for executing an executable in a GPU of the physical compute devices are initialized for execution in another CPU of the physical compute devices if the GPU is busy with graphics processing threads. Sources and existing executables for an API function are stored in an API library to execute a plurality of executables in a plurality of physical compute devices, including the existing executables and online compiled executables from the sources.
45 Citations
46 Claims
-
1. A computer implemented method comprising:
-
selecting, during runtime of an application running in a first processing unit, in response to a first API (Application Programming Interface) request having a requirement from the application, a second data processing unit according to the requirement; loading, during the runtime, in response to a second API request from the application one or more executables for the selected second processing unit to perform a data processing task of the application; and causing, during the runtime, in response to a third API request from the application, execution of one of the one or more executables for the second processing unit, wherein the one or more executables include description data for the one of the one or more executables, wherein the selecting is based on the description data, wherein the one of the one or more executables is associated with a latest version among the one or more executables for the second processing unit based on the description data, wherein the one of the one or more executables includes description data indicating the latest version for the second processing unit, and wherein the one of the one or more executables is backward compatible with the second processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer implemented method comprising:
-
generating, during runtime of an application running in a first processing unit, a first API (Application Programming Interface) request having requirement from the application to select a second data processing unit; generating, during the runtime, a second API request from the application running in the first processing unit to load one or more executables for the selected second data processing unit to perform a data processing task of the application; and generating, during the runtime, a third API request from the application to execute an executable selected from the one or more executables for execution in the second processing unit, wherein the one or more executables include description data for selected executable, wherein the second data processing unit is selected is based on the description data, wherein the selected executable is associated with a latest version among the one or more executables for the second processing unit based on the description data, wherein the selected executable includes description data indicating the latest version for the second processing unit, and wherein the selected executable is backward compatible with the second processing unit. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A machine readable non-transitory storage medium containing executable instructions which cause a data processing system to perform a method comprising:
-
selecting, during runtime of an application running in a first processing unit, in response to a first API (Application Programming Interface) request having requirement from the application, a second data processing unit according to the requirement; loading, during the runtime, in response to a second API request from an application running in the first processing unit, one or more executables for the selected second processing unit to perform a data processing task of the application; and causing, during the runtime, in response to a third API request from the application, execution of one of the one or more executables for the second processing unit, wherein the one or more executables include description data for the one of the one or more executables, wherein the selecting is based on the description data, wherein the one of the one or more executables is associated with a latest version among the one or more executables for the second processing unit based on the description data, wherein the one of the one or more executables includes description data indicating the latest version for the second processing unit, and wherein the one of the one or more executables is backward compatible with the second processing unit. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A machine readable non-transitory storage medium containing executable instructions which cause a data processing system to perform a method comprising:
-
generating, during runtime of an application running in a first processing unit, a first API (Application Programming Interface) request having a requirement from the application to select a second data processing unit; generating, during the runtime, a second API request from the application running in the first processing unit to load one or more executables for the selected second processing unit to perform a data processing task of the application; and generating, during the runtime, a third API request from the application to execute an executable selected from the one or more executables for execution in the second processing unit, wherein the one or more executables include description data for selected executable, wherein the second data processing unit is selected is based on the description data, wherein the selected executable is associated with a latest version among the one or more executables for the second processing unit based on the description data, wherein the selected executable includes description data indicating the latest version for the second processing unit, and wherein the selected executable is backward compatible with the second processing unit. - View Dependent Claims (40, 41, 42, 43, 44)
-
-
45. An apparatus comprising:
-
means for selecting, during runtime of an application running in a first processing unit, in response to a first API (Application Programming Interface) request having a requirement from the application, a second data processing unit according to the requirement; means for loading, during the runtime, in response to a second API request from the application running in the first processing unit, one or more executables for the selected second data processing unit to perform a data processing task of the application; and means for causing, during the runtime, in response to a third API request from the application, execution of one of the one or more executables for the second processing unit, wherein the one or more executables include description data for the one of the one or more executables, wherein the selecting is based on the description data, wherein the one of the one or more executables is associated with a latest version among the one or more executables for the second processing unit based on the description data, wherein the one of the one or more executables includes description data indicating the latest version for the second processing unit, and wherein the one of the one or more executables is backward compatible with the second processing unit.
-
-
46. An apparatus comprising:
-
means for generating, during runtime of an application running in a first processing unit, a first API (Application Programming Interface) request having a requirement from the application to select a second data processing; means for generating, during the runtime, a second API request from the application running in the first processing unit to load one or more executables for the selected second data processing unit to perform a data processing task of the application; and means for generating, during the runtime, a third API request from the application to execute an executable from the one or more executables for execution in the second processing unit, wherein the one or more executables include description data for selected executable, wherein the second data processing unit is selected is based on the description data, wherein the selected executable is associated with a latest version among the one or more executables for the second processing unit based on the description data, wherein the selected executable includes description data indicating the latest version for the second processing unit, and wherein the selected executable is backward compatible with the second processing unit.
-
Specification