Locality optimization in a compiler for wireless applications

Abstract

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.

This is a preview of subscription content, access via your institution.

References

  1. 1.

    Allen R, Kennedy K (2001) Optimizing compilers for modern architectures. Morgan Kaufmann, San Mateo

    Google Scholar 

  2. 2.

    Banerjee U (1988) Data dependencies. Kluwer, Dordrecht

    Google Scholar 

  3. 3.

    Bastoul C, Cohen A, Girbal A, Sharma S, Temam O (2003) Putting polyhedral loop transformations to work. In: International workshop on languages and compilers for parallel computers. Lecture notes in computer science, vol 2958. Springer, Berlin, pp 209–225

    Google Scholar 

  4. 4.

    Bik AJC (2005) The software vectorization book. Intel, Reading

    Google Scholar 

  5. 5.

    Cierniak M, Li W (1995) Unifying data and control transformations for distributed shared memory machines. In: PLDI, pp 205–217

  6. 6.

    Cohen A, Sigler M, Girbal S, Temam O (2005) Facilitating the search for compositions of program transformations. In: International conference on supercomputing, pp 151–160

  7. 7.

    Cooklev T (2004) Wireless communication standards: a study of IEEE 802.11, 802.15 and 802.16. IEEE Std. Assoc.

  8. 8.

    IMEC (2006) Imec software defined radio concept compliant with 3gpp-lte. Design and reuse. http://www.us.design-reuse.com/news/news13680.html

  9. 9.

    Kandemir MT (2001) A compiler technique for improving whole-program locality. In: Proceedings of international conference on principles of programming language (POPL)

  10. 10.

    Kandemir MT (2001) Data relation vectors: a new abstraction for data optimizations. IEEE Trans Comput 50(8):798–810

    Google Scholar 

  11. 11.

    Kandemir MT, Ramanujan J, Chowdhury A (1999) Improving cache locality by a combination of loop and data transformation. IEEE Trans Comput 48(2)

  12. 12.

    Absar JM, Li M, Raghavan P, Lambrechts A, Jayapala M, Catthoor F (2007) Multiple loop nest optimization: the quest for a scalable and near-optimal solution. ACM Trans Des Autom Embed Syst (under review)

  13. 13.

    Absar JM (2007) Locality optimization in a compiler for embedded systems. PhD thesis, K.U. Leuven, July 2007

  14. 14.

    Li W, Pingali K (1993) Access normalization: loop restructuring for numa computers. ACM Trans Comput Syst 11(4):353–375

    Article  Google Scholar 

  15. 15.

    McKinley KS, Carr S, Tseng C-W (1996) Improving data locality with loop transformations. ACM Trans Program Lang Syst 18(4):424–453

    Article  Google Scholar 

  16. 16.

    O’Boyle MFP, Knijnenburg PMW (1997) Non-singular data transformations: definition, validity and applications. In: International conference on supercomputing, pp 309–316

  17. 17.

    Poor V, Wang X (2004) Wireless communications system: advanced techniques for signal reception. Prentice Hall, New York

  18. 18.

    Pugh W, Wonnacott D (1998) Constraint-based array dependence analysis. ACM Trans Program Lang Syst 20(3):635–678

    Article  Google Scholar 

  19. 19.

    Wolf ME, Lam MS (1991) A data locality optimizing algorithm. In: PLDI ’91, pp 30–44

  20. 20.

    Wu C, Lian R, Zhang J, Ju R, Chan S, Liu L (2005) An overview of the open research compiler. In: Lecture notes in computer science, vol 3602. Springer, Berlin, pp 17–31

    Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Francky Catthoor.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Absar, J., Raghavan, P., Lambrechts, A. et al. Locality optimization in a compiler for wireless applications. Des Autom Embed Syst 13, 53–72 (2009). https://doi.org/10.1007/s10617-008-9019-x

Download citation

Keywords

  • Locality optimization
  • Multiple loop nests
  • Wireless systems