Schedule-independent storage mapping for loops

  • Authors:
  • Michelle Mills Strout;Larry Carter;Jeanne Ferrante;Beth Simon

  • Affiliations:
  • CSE Department UC, San Diego, 9500 Gilman Drive, La Jolla, CA;CSE Department UC, San Diego, 9500 Gilman Drive, La Jolla, CA;CSE Department UC, San Diego, 9500 Gilman Drive, La Jolla, CA;CSE Department UC, San Diego, 9500 Gilman Drive, La Jolla, CA

  • Venue:
  • Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
  • Year:
  • 1998

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper studies the relationship between storage requirements and performance. Storage-related dependences inhibit optimizations for locality and parallelism. Techniques such as renaming and array expansion can eliminate all storage-related dependences, but do so at the expense of increased storage. This paper introduces the universal occupancy vector (UOV) for loops with a regular stencil of dependences. The UOV provides a schedule-independent storage reuse pattern that introduces no further dependences (other than those implied by true flow dependences). OV-mapped code requires less storage than full array expansion and only slightly more storage than schedule-dependent minimal storage.We show that determine if a vector is a UOV is NPcomplete. However, an easily constructed but possibly nonminimal UOV can be used. We also present a branch and bound algorithm which finds the minimal UOV, while still maintaining a legal UOV at all times.Our experimental results show that the use of OV-mapped storage, coupled with tiling for locality, achieves better performance than tiling after array expansion, and accommodates larger problem sizes than untilable, storage-optimized code. F'urthermore, storage mapping based on the UOV introduces negligible runtime overhead.