Abstract
An optimizing compiler can play an important role in enhancing data locality in array-intensive applications with regular data access patterns. This paper presents a compiler-based data space oriented tiling approach (DST). In this strategy, the data space (i.e., the array index space) is logically divided into chunks (called data tiles) and each data tile is processed in turn. In processing a data tile, our approach traverses the entire iteration space of all nests in the code and executes all iterations (potentially coming from different nests) that access the data tile being processed. In doing so, it also takes data dependences into account. Since a data space is common across all nests that access it, DST can potentially achieve better results than traditional tiling by exploiting inter-nest data locality. This paper also shows how data space oriented tiling can be used for improving the performance of softwaremanaged scratch pad memories.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
S. Coleman and K. McKinley. Tile size selection using cache organization and data layout. In Proc. the ACM SIGPLAN Conference on Programming Language Design and Implementation, June 1995.
F. Irigoin and R. Triolet. Super-node partitioning. In Proc. the 15th Annual ACM Symposium on Principles of Programming Languages, pages 319–329, January 1988.
M. Kandemir, J. Ramanujam, M. Irwin, N. Vijaykrishnan, I. Kadayif, and A. Parikh. Dynamic management of scratch-pad memory space. In Proc. the 38th Design Automation Conference, Las Vegas, NV, June 2001.
I. Kodukula, N. Ahmed, and K. Pingali. Data-centric multi-level blocking. In Proc. the SIGPLAN Conference on Programming Language Design and Implementation, June 1997.
W. Li. Compiling for NUMA Parallel Machines. Ph.D. Dissertation, Computer Science Department, Cornell University, Ithaca, NY, 1993.
M. O’Boyle and P. Knijnenburg. Non-singular data transformations: Definition, validity, applications. In Proc. the 6th Workshop on Compilers for Parallel Computers, pages 287–297, 1996.
P. R. Panda, N. D. Dutt, and A. Nicolau. Efficient utilization of scratch-padmemory in embedded processor applications. In Proc. the European Design and Test Conference (ED&TC’97), Paris, March 1997.
L. Wang, W. Tembe, and S. Pande. Optimizing on-chip memory usage through loop restructuring for embedded processors. In Proc. the 9th International Conference on Compiler Construction, March 30–31 2000, pp. 141–156, Berlin, Germany.
M. Wolfe. High Performance Compilers for Parallel Computing, Addison-Wesley Publishing Company, 1996.
J. Xue and C.-H. Huang. Reuse-driven tiling for data locality. In Languages and Compilers for Parallel Computing, Z. Li et al., Eds., Lecture Notes in Computer Science, Volume 1366, Springer-Verlag, 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kandemir, M. (2002). Data Space Oriented Tiling. In: Le Métayer, D. (eds) Programming Languages and Systems. ESOP 2002. Lecture Notes in Computer Science, vol 2305. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45927-8_13
Download citation
DOI: https://doi.org/10.1007/3-540-45927-8_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43363-7
Online ISBN: 978-3-540-45927-9
eBook Packages: Springer Book Archive