This paper presents an abstraction called data relation vectors to improve the data access characteristics and memory layouts in a given regular computation. The key idea is to define a relation between the data elements accessed by close-by iterations and use this relation to guide to a number of optimizations for array-based computations. The specific optimizations studied in this paper include enhancing group-spatial and self-spatial reuses, improving intra-tile and inter-tile reuses, and reducing unnecessary communication on message-passing architectures. In addition, this abstraction work well with other known abstractions such as data reuse vectors. The data relation vector abstraction has been implemented in the SUIF compilation framework and has been tested using a set of twelve benchmarks from image processing and scientific computation domains. Preliminary results on a super-scalar processor show that it is successful in reducing compilation time and out-performs two previously proposed techniques, one that uses only loop transformations and one that uses both loop and data transformations. Our experiments also show that the proposed abstraction helps one to select good data tile shapes which can subsequently be used to determine iteration space tiles.
|Original language||English (US)|
|Number of pages||10|
|Journal||Parallel Architectures and Compilation Techniques - Conference Proceedings, PACT|
|State||Published - 2000|
All Science Journal Classification (ASJC) codes
- Computer Science(all)