Loop recreation for thread-level speculation

  • Authors:
  • Lin Gao; Lian Li; Jingling Xue; Tin-Fook Ngai

  • Affiliations:
  • University of New South Wales, Australia;University of New South Wales, Australia;University of New South Wales, Australia;Microprocessor Technology Lab, Intel, Australia

  • Venue:
  • ICPADS '07 Proceedings of the 13th International Conference on Parallel and Distributed Systems - Volume 01
  • Year:
  • 2007

Quantified Score

Hi-index 0.01

Visualization

Abstract

For some sequential loops, existing techniques that form speculative threads only at their loop boundaries do not adequately expose the speculative parallelism inherent in them. This is because some inter-iteration dependences, which translate into inter-thread dependences at run time, are too costly to synchronize or speculate. This paper presents a novel compiler technique, called loop recreation, to transform a loop into a prologue, a kernel loop — formed with instructions from two adjacent iterations, and an epilogue so that the inter-iteration dependences in the kernel are less costly to enforce at run time than those in the original loop. We prove the concept by giving an algorithm for finding an optimal loop recreation with respect to a simple misspeculation cost model and by demonstrating performance advantages of loop recreation over two recent techniques for speculative multi-core systems running four irregular applications with indirect array accesses.