Predicated looping on multi-processors for single program multiple data (spmd) programs
AssigneeInfineon Technologies AG
InventorPrakash Balasubramanian
Life of this patent
Estimating the term…
Abstract
Single Program, Multiple Data (SPMD) parallel processing of SPMD instructions can be generated among processors assigned to a task in a plurality of threads. The SPMD parallel processing can be increased in speed by performing predicated looping with the SPMD instructions in an activated SPMD mode of operation over a non-SPMD mode. Execution of overhead instructions is removed from the SPMD instructions associated with a thread in order to only execute the loop body of a loop associated with a data element of a data set in an enhanced Zero Loop Overhead (ZOL) device.
Claims20
An apparatus employed in a parallel processing device comprising:
- one or more processing devices, coupled to a memory that includes instructions to execute operations, configured to:
- perform single program multiple data (SPMD) parallel processing among the one or more processing devices that are assigned to a plurality of threads for performing a SPMD task;
- and
- generate, via a Zero Overhead Loop (ZOL) device of the one or more processing devices, a predicated looping of the SPMD task by generating a check that determines whether a data element of a data set is associated with a thread of the plurality of threads to enable an execution of an instruction of a loop by the thread, wherein the check comprises an affinity determination of whether the thread and the data element are associated with a loop iteration based on one or more predetermined criteria.
A system for parallel processing comprising:
- a decode/control component configured to process application data for parallel processing;
- and
- a Zero Overhead Loop (ZOL) device, coupled to the decode/control component, configured to optimize execution of an instruction of a loop by a business logic of a thread associated with a data element of a data set by removing execution of overhead instructions from the thread based on a check to the thread, wherein the check determines whether the data element comprises an affinity to the thread.
A method for single program multiple data (SPMD) parallel processing with a Zero Overhead Loop (ZOL) device comprising:
- performing the SPMD parallel processing among one or more processing units that are assigned to different threads;
- increasing a speedup of the SPMD parallel processing in an SPMD mode of operation that enables a predicated looping in response to an activation signal;
- eliminating execution of an overhead instruction in software to be processed from a first thread of a first processor component to enable the first thread to execute a loop body of a loop with a first data element of a data set;
- and
- skipping the loop body for a next loop iteration based on an check indicating a negative association of a loop iteration with a second thread of a second processor component.
Dependencies are inferred from the claim text.