Value-Profile Guided Stride Prefetching for Irregular Code

  • Authors:
  • Youfeng Wu;Mauricio J. Serrano;Rakesh Krishnaiyer;Wei Li;Jesse Fang

  • Affiliations:
  • -;-;-;-;-

  • Venue:
  • CC '02 Proceedings of the 11th International Conference on Compiler Construction
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Memory operations in irregular code are difficult to prefetch, as the future address of a memory location is hard to anticipate by a compiler. However, recent studies as well as our experience indicate that many irregular programs contain loads with near-constant strides. This paper presents a novel compiler technique to profile and prefetch for those loads. The profile captures not only the dominant stride values for each profiled load, but also the differences between the successive strides of the load. The profile information helps the compiler to classify load instructions into strongly or weakly strided and single-strided or phased multi-strided. The prefetching decisions guided by the load classifications are highly selective and beneficial. We obtain significant performance improvement for the CPU2000 integer programs running on Itanium驴 machines. For example, we achieve a 1.55x speedup for "181.mcf", 1.15x for "254.gap", 1.08x for "197.parser" and smaller gains in other benchmarks. We also show that the performance gain is stable across profile data sets and that the profiling overhead is low. These benefits make the new technique suitable for a production compiler.