Data parallel computing on multiple processors
AssigneeApple Inc.
InventorsAaftab Munshi, Jeremy Sandmel
Life of this patent
Estimating the term…
Abstract
A method and an apparatus that allocate one or more physical compute devices such as Central Processing Units (CPUs) or Graphical Processing Units (GPUs) attached to a host processing unit running an application for executing one or more threads of the application are described. The allocation may be based on data representing a processing capability requirement from the application for executing an executable in the one or more threads. A compute device identifier may be associated with the allocated physical compute devices to schedule and execute the executable in the one or more threads concurrently in one or more of the allocated physical compute devices concurrently.
Claims18
A computer implemented method comprising:
- receiving, from a host application executing on a host processor and on a platform layer, a request that specifies one or more processing capabilities of a processor for use by a processing task that can be performed by the host application, wherein the specified one or more processing capabilities are processing requirements of the processor and are specified by the host application;
- and
- sending, from the platform layer to the host application, a plurality of compute identifiers that identifies at least one of a set of processors satisfying the one or more processing capabilities and at least one of the set of processors performs a plurality of tasks in parallel, wherein the host application selects one of the plurality of compute identifiers and uses the selected compute identifier to perform the processing task.
A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method comprising:
- receiving, from a host application executing on a data processing system and on a platform layer, a request that specifies one or more processing capabilities of a processor for use by a processing task that can be performed by the application, wherein the specified one or more processing capabilities are processing requirements of the processor and are specified by the application;
- and
- sending, from the platform layer to the application, a plurality of compute identifiers that identifies at least one of a set of processors satisfying the one or more processing capabilities, and at least one of the set of processors performs a plurality of tasks in parallel, wherein the application selects one of the plurality of compute identifiers and uses the selected compute identifier to perform the processing task.
Dependencies are inferred from the claim text.