Optimization of dynamic data structures in multimedia embedded systems using evolutionary computation

Embedded consumer devices are increasing their capabilities and can now implement new multimedia applications reserved only for powerful desktops a few years ago. These applications share complex and intensive dynamic memory use. Thus, dynamic memory optimizations are a requirement when porting these applications. Within these optimizations, the refinement of the Dynamically (de)allocated Data Type (or DDT) implementations is one of the most important and difficult parts for an efficient mapping onto low-power embedded devices. In this paper, we describe a new automatic optimization approach for the DDTs of object-oriented multimedia applications. It is based on an analytical pre-characterization of the possible elementary DDT blocks, and a multi-objective genetic algorithm to explore the design space and to select the best implementation according to different optimization criteria (i.e., memory accesses, memory footprint and energy consumption). Our results in real-life multimedia applications show that the best implementations of DDTs can be obtained in an automated way in few hours, while typically designers would require days to find a suitable implementation, achieving important savings in exploration time with respect to other state-of-the-art heuristics-based optimization methods for this task.

[1]  Hugo De Man,et al.  Transforming set data types to power optimal data structures , 1995, ISLPED '95.

[2]  Michael J. Vilot,et al.  Standard template library , 1996 .

[3]  Wayne H. Wolf,et al.  Multiprocessor Systems-on-Chips , 2004, ISVLSI.

[4]  Gary B. Lamont,et al.  Evolutionary Algorithms for Solving Multi-Objective Problems , 2002, Genetic Algorithms and Evolutionary Computation.

[5]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[6]  Chantal Ykman-Couvreur,et al.  Automated dynamic memory data type implementation exploration and optimization , 2003, IEEE Computer Society Annual Symposium on VLSI, 2003. Proceedings..

[7]  Daniel P. Siewiorek,et al.  Benchmarking An Interdisciplinary Concurrent Design Methodology for Electronic/Mechanical Systems , 1995, 32nd Design Automation Conference.

[8]  Andrzej Ameljańczyk,et al.  Multicriteria Optimization in Engineering Design , 1994 .

[9]  Zbigniew Michalewicz,et al.  Genetic Algorithms + Data Structures = Evolution Programs , 1996, Springer Berlin Heidelberg.

[10]  Luca Benini,et al.  System-level power optimization: techniques and tools , 1999, Proceedings. 1999 International Symposium on Low Power Electronics and Design (Cat. No.99TH8477).

[11]  Erik Brockmeyer,et al.  Data Access and Storage Management for Embedded Programmable Processors , 2002, Springer US.

[12]  Francky Catthoor,et al.  Template-Based Semi-Automatic Profiling of Multimedia Applications , 2006, 2006 IEEE International Conference on Multimedia and Expo.

[13]  Michael de la Maza,et al.  Book review: Genetic Algorithms + Data Structures = Evolution Programs by Zbigniew Michalewicz (Springer-Verlag, 1992) , 1993 .

[14]  Christopher R. Houck,et al.  A Genetic Algorithm for Function Optimization: A Matlab Implementation , 2001 .

[15]  James L. Antonakos,et al.  Practical data structures using C/C++ , 1998 .

[16]  Francky Catthoor,et al.  Memory-access-aware data structure transformations for embedded software with dynamic data accesses , 2004, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[17]  Dorothea Heiss-Czedik,et al.  An Introduction to Genetic Algorithms. , 1997, Artificial Life.

[18]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[19]  Derick Wood,et al.  Data structures, algorithms, and performance , 1992 .

[20]  Andrzej Osyczka,et al.  7 – Multicriteria optimization for engineering design , 1985 .

[21]  Gary B. Lamont,et al.  Evolutionary Algorithms for Solving Multi-Objective Problems (Genetic and Evolutionary Computation) , 2006 .