Methods and systems to vectorize scalar computer program loops having loop-carried dependences
AssigneeIntel Corporation
InventorsJayashankar Bharadwaj, Nalini Vasudevan, Albert Hartono, Sara S Baghsorkhi
Life of this patent
Estimating the term…
Loading patent…
AssigneeIntel Corporation
InventorsJayashankar Bharadwaj, Nalini Vasudevan, Albert Hartono, Sara S Baghsorkhi
Estimating the term…
Methods and systems to convert a scalar computer program loop having loop-carried dependences into a vector computer program loop are disclosed. One such method includes, at runtime, identifying, by executing an instruction with one or more processors, a first loop iteration that cannot be executed in parallel with a second loop iteration due to a set of conflicting scalar loop operations. The first loop iteration is executed after the second loop iteration. The method also includes sectioning, by executing an instruction with one or more processors, a vector loop into vector partitions including a first vector partition. The first vector partition executes consecutive loop iterations in parallel and the consecutive loop iterations start at the second loop iteration and end before the first loop iteration.
A method to convert a scalar computer program loop having loop-carried dependences to a vector computer program loop, the method comprising:
The method defined in claim 50, the method further including compensating for a memory flow dependence between a first operation and a second operation by placing a set of program instructions associated with the first operation and the second operation into the vector partitioning loop.
A system to convert a scalar computer program loop having loop-carried dependences into a vector computer program loop, the system comprising:
A tangible machine readable storage medium comprising machine readable instructions which, when executed, cause the machine to at least:
Dependencies are inferred from the claim text.