METHOD TO DYNAMICALLY DISTRIBUTE A MULTI-DIMENSIONAL WORK SET ACROSS A MULTI-CORE SYSTEM
First Claim
1. In a data processing system, a method for efficient dispatch/completion of an N Dimensional (ND) Range command, said method comprising:
- a compiler generating one or more commands from received program instructions, wherein said one or more commands are utilized by a runtime scheduler to schedule work for execution on one or more processing units within the data processing system;
ND Range work scheduling (WS) logic associated with the compiler determining when a command generated by the compiler will be implemented over an ND Range of operands that are arranged in an N dimensional configuration, where N is greater than one;
when N is greater than one, automatically decomposing the ND Range of operands into a one (1) dimension work element comprising P sequentially ordered work items that each represent, within the one dimensional work element, one of the ND Range of operands;
placing the single dimension work element within one or more entries of a command queue of the data processing system, wherein each of the one or more entries holds a 1D array of work items in an ordered sequence; and
enabling sequential dispatch of the 1D array of work items from the command queue to the one or more processing units, wherein the 1D array of work items are dispatched for execution in the ordered sequence.
1 Assignment
0 Petitions
Accused Products
Abstract
A method provides efficient dispatch/completion of an N Dimensional (ND) Range command in a data processing system (DPS). The method comprises: a compiler generating one or more commands from received program instructions; ND Range work processing (WP) logic determining when a command generated by the compiler will be implemented over an ND configuration of operands, where N is greater than one (1); automatically decomposing the ND configuration of operands into a one (1) dimension (1D) work element comprising P sequentially ordered work items that each represent one of the operands; placing the 1D work element within a command queue of the DPS; enabling sequential dispatching of 1D work items in ordered sequence from to one or more processing units; and generating an ND Range output by mapping the 1D work output result to an ND position corresponding to an original location of the operand represented by the 1D work item.
-
Citations
25 Claims
-
1. In a data processing system, a method for efficient dispatch/completion of an N Dimensional (ND) Range command, said method comprising:
-
a compiler generating one or more commands from received program instructions, wherein said one or more commands are utilized by a runtime scheduler to schedule work for execution on one or more processing units within the data processing system; ND Range work scheduling (WS) logic associated with the compiler determining when a command generated by the compiler will be implemented over an ND Range of operands that are arranged in an N dimensional configuration, where N is greater than one; when N is greater than one, automatically decomposing the ND Range of operands into a one (1) dimension work element comprising P sequentially ordered work items that each represent, within the one dimensional work element, one of the ND Range of operands; placing the single dimension work element within one or more entries of a command queue of the data processing system, wherein each of the one or more entries holds a 1D array of work items in an ordered sequence; and enabling sequential dispatch of the 1D array of work items from the command queue to the one or more processing units, wherein the 1D array of work items are dispatched for execution in the ordered sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A data processing system, comprising:
-
one or more processing units; a memory coupled to the one or more processing units; a compiler generating one or more kernels/commands from received program instructions, wherein said one or more kernels/commands are utilized by a runtime scheduler to schedule work for execution on one or more processing units within the data processing system; ND Range work scheduling (WS) logic associated with the compiler performing the functions of; determining when a command generated by the compiler will be implemented over an ND Range of operands that are arranged in an N dimensional configuration, where N is greater than one; when N is greater than one, automatically decomposing the ND Range of operands into a one dimension work element comprising P sequentially ordered work items that each represent, within the one dimensional work element, one of the ND Range of operands; and a scheduler performing the functions of; placing the single dimension work element within one or more entries of a command queue of the data processing system, wherein each of the one or more entries holds a 1D array of work items in an ordered sequence; and enabling sequential dispatch of the 1D array of work items from the command queue to the one or more processing units, wherein the 1D array of work items are dispatched for execution in the ordered sequence. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An article of manufacture embodied as a computer program product comprising:
-
a computer readable storage medium; and program code on the computer readable storage medium that is executed by a first processing unit of a data processing system to provide the method functions comprising; triggering a compiler to generate one or more kernels/commands from received program instructions, wherein said one or more kernels/commands are utilized by a runtime scheduler to schedule work for execution on one or more processing units within the data processing system; ND Range work scheduling (WS) logic associated with the compiler determining when a kernel/command generated by the compiler will be implemented over an ND Range of operands that are arranged in an N dimensional configuration, where N is greater than one; when N is greater than one, automatically decomposing the ND Range of operands into a one dimension work element comprising P sequentially ordered work items that each represent, within the one dimensional work element, one of the ND Range of operands; placing the single dimension work element within one or more entries of a command queue of the data processing system, wherein each of the one or more entries holds a 1D array of work items in an ordered sequence; and enabling sequential dispatch of the 1D array of work items from the command queue to the one or more processing units, wherein the 1D array of work items are dispatched for execution in the ordered sequence. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification