Locality optimization in a compiler for wireless applications

A strong need exists now for compilers of embedded systems to find effective ways of optimizing series of loop-nests. This is especially so for applications wherein the majority of the memory references occurs in the form of multi-dimensional arrays, indexed primarily with linear functions of iterators and parameterized constants. One major reason is the emergence of the new wireless standards, e.g. 802.11n, WiMAX, Bluetooth, HIPERMAN, 3GPP-LTE and WiBro, where the codes are predominantly of the type described above. These standards provide high bitrate and mobility but are also extremely power and performance hungry. For an even wider commercial applicability of these standards it is important to heavily optimize their energy consumption, so as to increase the mobile battery life time. We propose a novel solution to the multiple loop-nest optimization problem by using the concept of propagating constraints, and by splitting the problem into an access and layout locality-optimization phase, instead of adhering to the traditional split of temporal and spatial locality optimization. Experiments show that our technique leads to 47.5% reduction in external memory accesses over state-of-the-art.

[1]  Allen,et al.  Optimizing Compilers for Modern Architectures , 2004 .

[2]  Ruiqi Lian,et al.  An Overview of the Open Research Compiler , 2004, LCPC.

[3]  Monica S. Lam,et al.  A data locality optimizing algorithm , 1991, PLDI '91.

[4]  William Pugh,et al.  Constraint-based array dependence analysis , 1998, TOPL.

[5]  Albert Cohen,et al.  Putting Polyhedral Loop Transformations to Work , 2003, LCPC.

[6]  Mahmut T. Kandemir,et al.  Data Relation Vectors: A New Abstraction for Data Optimizations , 2001, IEEE Trans. Computers.

[7]  Chau-Wen Tseng,et al.  Improving data locality with loop transformations , 1996, TOPL.

[8]  David Parello,et al.  Facilitating the search for compositions of program transformations , 2005, ICS '05.

[9]  Keshav Pingali,et al.  Access normalization: loop restructuring for NUMA computers , 1993, TOCS.

[10]  Wei Li,et al.  Unifying data and control transformations for distributed shared-memory machines , 1995, PLDI '95.

[11]  Michael F. P. O'Boyle,et al.  Non-singular data transformations: definition, validity and applications , 1997, ICS '97.

[12]  Mahmut T. Kandemir A compiler technique for improving whole-program locality , 2001, POPL '01.

[13]  Mahmut T. Kandemir,et al.  Improving Cache Locality by a Combination of Loop and Data Transformation , 1999, IEEE Trans. Computers.

[14]  Todor Cooklev Wireless Communication Standards: A Study of IEEE 802.11, 802.15, and 802.16 , 2004 .

[15]  Ching-Wen Tang,et al.  Parallel-coupled stacked SIRs bandpass filters with open-loop resonators for suppression of spurious responses , 2005 .

[16]  Ken Kennedy,et al.  Optimizing Compilers for Modern Architectures: A Dependence-based Approach , 2001 .