M07 Evolutionary computing for EDA
Electronic Design Automation (EDA) methods that use an evolutionary algorithm (EA) as the core optimizer have become more and more popular, especially in the context of new optimization challenges connected with energy-efficient machine learning implemented in embedded systems. The goal of this tutorial is to acquaint the DATE community with the state-of-the-art genetic and evolutionary algorithms, evolutionary circuit design and approximation methods, and demonstrate on several case studies how conventional designs can be improved by means of the evolutionary approach. The tutorial should also lead to better understanding of advantages and disadvantages of the EA-based techniques, principles of the multi-objective optimization (in comparison to the single-objective optimization) and a fair evaluation practice of search-based algorithms. In the first part of the tutorial, we will briefly introduce the principles of evolutionary computing, terminology, the multi-objective optimization driven by the Pareto optimality concept, and fundamental branches of EAs – genetic algorithms (GA) and genetic programming (GP). We will emphasize that a correct statistical evaluation of results is mandatory when stochastic algorithms such as EAs are employed. In the second part, Cartesian Genetic Programming (CGP) will be introduced as a method providing high quality designs of common and approximate digital circuits at different levels of abstraction. Case studies will be focused on evolutionary design of variability-aware cells, approximate arithmetic circuits, image operators, hash functions and neural networks.
This tutorial is primarily devoted to researchers, CAD engineers and students who would like to learn the principles of evolutionary algorithms and how they can be used to design, optimize or approximate circuit designs. Also those who are interested in particular applications such as variability-tolerant design, low-power circuit design, circuit approximation or neural network accelerator optimization will find this tutorial as a useful source of information. After taking the tutorial, the participants should be able to formulate a particular EDA problem as a problem for an EA, i.e. to encode a candidate solution, devise suitable search operators and develop a fitness function.
M07-1 Evolutionary algorithms
Principles and terminology of EAs. Genetic algorithm vs genetic programming. Single-objective vs multi-objective optimization. Statistical evaluation of search heuristics.
M07-2 Cartesian genetic programming for circuit design
Cartesian genetic programming. Evolutionary circuit design and approximation. Fast circuit evaluation utilizing formal verification methods
Case studies I, M07-3, , Mon, 9 Mar 2020 16:00 - Mon, 9 Mar 2020 17:00
Evolutionary approaches to the design of variability-aware cells, SRAM and analogue circuits.
Case studies II, M07-4, , Mon, 9 Mar 2020 17:00 - Mon, 9 Mar 2020 18:00
Evolutionary design of approximate arithmetic circuits, image operators, hash functions, neural networks.