Sciweavers

CGO
2008
IEEE

Latency-tolerant software pipelining in a production compiler

14 years 6 months ago
Latency-tolerant software pipelining in a production compiler
In this paper we investigate the benefit of scheduling non-critical loads for a higher latency during software pipelining. "Noncritical" denotes those loads that have sufficient slack in the cyclic data dependence graph so that increasing the scheduling distance to their first use can only increase the number of stages of the software pipeline, but should not increase the lengths of the individual stages, the initiation interval (II). The associated cost is in many cases negligible, but the memory stall reduction due to improved latency coverage and load clustering in the schedule can be considerable. We first analyze benefit and cost in theory and then present how we have implemented latency-tolerant pipelining experimentally in the Intel Itanium R product compiler. A key component of the technique is the preselection of likely long-latency loads that is integrated into prefetching heuristics in the high-level optimizer. Only when applied selectively based on these pre...
Sebastian Winkel, Rakesh Krishnaiyer, Robyn Sampso
Added 29 May 2010
Updated 29 May 2010
Type Conference
Year 2008
Where CGO
Authors Sebastian Winkel, Rakesh Krishnaiyer, Robyn Sampson
Comments (0)