Genetic Placement: Genie Algorithm Way Sern Shong ECE556 Final Project Fall 2004

Similar documents
CAD Algorithms. Placement and Floorplanning

Introduction. A very important step in physical design cycle. It is the process of arranging a set of modules on the layout surface.

Estimation of Wirelength

Topological Machining Fixture Layout Synthesis Using Genetic Algorithms

Report on the Implementation of GASP Using Meta-Genetic Parameter Optimization

Genetic Algorithm for Circuit Partitioning

GENETIC ALGORITHM BASED FPGA PLACEMENT ON GPU SUNDAR SRINIVASAN SENTHILKUMAR T. R.

Term Paper for EE 680 Computer Aided Design of Digital Systems I Timber Wolf Algorithm for Placement. Imran M. Rizvi John Antony K.

Genetic Algorithm for FPGA Placement

Problem Formulation. Specialized algorithms are required for clock (and power nets) due to strict specifications for routing such nets.

Advanced Search Genetic algorithm

L14 - Placement and Routing

A Multithreaded Genetic Algorithm for Floorplanning

Encoding Techniques in Genetic Algorithms

Multi-Objective Optimization Using Genetic Algorithms

Introduction to Design Optimization: Search Methods

Evolutionary origins of modularity

PARALLEL GENETIC ALGORITHMS IMPLEMENTED ON TRANSPUTERS

CHAPTER 1 at a glance

CAD Algorithms. Circuit Partitioning

Genetic Programming: A study on Computer Language

A GENETIC ALGORITHM APPROACH TO OPTIMAL TOPOLOGICAL DESIGN OF ALL TERMINAL NETWORKS

Constraint-Driven Floorplanning based on Genetic Algorithm

Chapter 14 Global Search Algorithms

CHAPTER 6 ORTHOGONAL PARTICLE SWARM OPTIMIZATION

AN ACCELERATOR FOR FPGA PLACEMENT

On Improving Recursive Bipartitioning-Based Placement

Using Genetic Algorithms to optimize ACS-TSP

Local Search (Greedy Descent): Maintain an assignment of a value to each variable. Repeat:

Heuristic Optimisation

Place and Route for FPGAs

Evolutionary form design: the application of genetic algorithmic techniques to computer-aided product design

Genetic beam search for gate matrix layout

Introduction to Genetic Algorithms. Based on Chapter 10 of Marsland Chapter 9 of Mitchell

CS:4420 Artificial Intelligence

AN EMPIRICAL STUDY OF THE STOCHASTIC EVOLUTION ALGORITHM FOR THE VLSI CELL PLACEMENT PROBLEM. Natrajan Thamizhmani

Animation of VLSI CAD Algorithms A Case Study

International Journal of Digital Application & Contemporary research Website: (Volume 1, Issue 7, February 2013)

Hybrid Genetic Algorithms for Constrained Placement Problems

CHAPTER 1 INTRODUCTION

Evolutionary Algorithms. CS Evolutionary Algorithms 1

EVOLVING LEGO. Exploring the impact of alternative encodings on the performance of evolutionary algorithms. 1. Introduction

Automated Extraction of Physical Hierarchies for Performance Improvement on Programmable Logic Devices

ARTIFICIAL INTELLIGENCE (CSCU9YE ) LECTURE 5: EVOLUTIONARY ALGORITHMS

Optimization of Test Scheduling and Test Access for ITC-02 SOC Benchmark Circuits

A Genetic Algorithm for Multiprocessor Task Scheduling

Basic Idea. The routing problem is typically solved using a twostep

Two Efficient Algorithms for VLSI Floorplanning. Chris Holmes Peter Sassone

Beyond Classical Search: Local Search. CMPSCI 383 September 23, 2011

Design Space Exploration Using Parameterized Cores

ECE 5745 Complex Digital ASIC Design Topic 13: Physical Design Automation Algorithms

5. Computational Geometry, Benchmarks and Algorithms for Rectangular and Irregular Packing. 6. Meta-heuristic Algorithms and Rectangular Packing

IMPROVEMENT OF THE QUALITY OF VLSI CIRCUIT PARTITIONING PROBLEM USING GENETIC ALGORITHM

Reducing Graphic Conflict In Scale Reduced Maps Using A Genetic Algorithm

What is GOSET? GOSET stands for Genetic Optimization System Engineering Tool

A Hybrid Genetic Algorithm for a Variant of Two-Dimensional Packing Problem

Suppose you have a problem You don t know how to solve it What can you do? Can you use a computer to somehow find a solution for you?

Parallel Implementation of VLSI Gate Placement in CUDA

Introduction to Design Optimization: Search Methods

Aero-engine PID parameters Optimization based on Adaptive Genetic Algorithm. Yinling Wang, Huacong Li

Machine Evolution. Machine Evolution. Let s look at. Machine Evolution. Machine Evolution. Machine Evolution. Machine Evolution

A Simple Placement and Routing Algorithm for a Two-Dimensional Computational Origami Architecture

Introduction to Evolutionary Computation

Introduction to Genetic Algorithms

Final Project Report: Learning optimal parameters of Graph-Based Image Segmentation

The k-means Algorithm and Genetic Algorithm

Sparse Matrices Reordering using Evolutionary Algorithms: A Seeded Approach

Chapter 9: Genetic Algorithms

Optimizing the Sailing Route for Fixed Groundfish Survey Stations

Introduction VLSI PHYSICAL DESIGN AUTOMATION

Optimizing Flow Shop Sequencing Through Simulation Optimization Using Evolutionary Methods

Solving Traveling Salesman Problem Using Parallel Genetic. Algorithm and Simulated Annealing

The study of comparisons of three crossover operators in genetic algorithm for solving single machine scheduling problem. Quan OuYang, Hongyun XU a*

Automata Construct with Genetic Algorithm

HEURISTIC OPTIMIZATION USING COMPUTER SIMULATION: A STUDY OF STAFFING LEVELS IN A PHARMACEUTICAL MANUFACTURING LABORATORY

1 Lab 5: Particle Swarm Optimization

JHPCSN: Volume 4, Number 1, 2012, pp. 1-7

Mutations for Permutations

A Genetic Algorithm for VLSI Floorplanning

Administrative. Local Search!

Algorithm Design (4) Metaheuristics

Similarity Templates or Schemata. CS 571 Evolutionary Computation

Local Search (Ch )

Hardware Neuronale Netzwerke - Lernen durch künstliche Evolution (?)

Today. CS 188: Artificial Intelligence Fall Example: Boolean Satisfiability. Reminder: CSPs. Example: 3-SAT. CSPs: Queries.

Comparative Analysis of Genetic Algorithm Implementations

Job Shop Scheduling Problem (JSSP) Genetic Algorithms Critical Block and DG distance Neighbourhood Search

1 Lab + Hwk 5: Particle Swarm Optimization

a) wire i with width (Wi) b) lij C coupled lij wire j with width (Wj) (x,y) (u,v) (u,v) (x,y) upper wiring (u,v) (x,y) (u,v) (x,y) lower wiring dij

CHAPTER 5 ENERGY MANAGEMENT USING FUZZY GENETIC APPROACH IN WSN

COE 561 Digital System Design & Synthesis Introduction

Dr.-Ing. Johannes Will CAD-FEM GmbH/DYNARDO GmbH dynamic software & engineering GmbH

/97 $ IEEE

HYBRID GENETIC ALGORITHM WITH GREAT DELUGE TO SOLVE CONSTRAINED OPTIMIZATION PROBLEMS

A Steady-State Genetic Algorithm for Traveling Salesman Problem with Pickup and Delivery

Genetic Algorithms Variations and Implementation Issues

AI Programming CS S-08 Local Search / Genetic Algorithms

Escaping Local Optima: Genetic Algorithm

N-Queens problem. Administrative. Local Search

Research Incubator: Combinatorial Optimization. Dr. Lixin Tao December 9, 2003

Transcription:

Genetic Placement: Genie Algorithm Way Sern Shong ECE556 Final Project Fall 2004 Introduction Overview One of the principle problems in VLSI chip design is the layout problem. The layout problem is complex and therefore divided into different areas: chip planning, partitioning, placement, and routing. We are given a set of modules, and a set of signals. The objective is to assign each module to a slot, and achieving the minimum wire length possible between modules that are connected by each net. Being an important CAD issue, the placement problem has received a lot of attention and there are various different approaches to the problem, such as partitioning, quadratic assignment, force-directed, resistive network, and simulated annealing. Genetic Algorithms Genetic algorithms operate on strings of data in which each string represents a solution, in a way that resembles the workings of natural evolution. By defining a population, these algorithms maintain a number of solutions which it will operate upon in the future. Eventually, solutions with a high cost would be replaced by solutions with lower cost. The technique to generate new solutions is to choose parents from the population that would then pass their genes (attributes/elements) to its offspring. This process is called the crossover. After the crossover, a new population must be generated using the old population and the new offspring. This selection process is to select the genes that survive for the next generation. Another process with happens after this is known as the mutation process. Mutation processes happen to produce new genetic variation, so that diversity is maintained. Once some numbers of offspring have been generated through crossover and mutation, the combined population of parents and offspring are evaluated. The algorithm continues iteratively usually until no improvements are detected for a long time. In the long run, the better (lower cost) solutions tend to stay in the population and the worse (higher cost) solutions tend to die off.

Genie Specification Genie is one of the earliest placement algorithms based on the genetic approach, for the assignment of modules to locations on chip. The algorithm implements a directed-evolution methodology to formulate its solutions from the solution space. Firstly, the scoring function must be determined in order to evaluate which solutions are better than the others. The scoring function used in this program was to calculate the total estimated wirelength using the semiperimeter method. The distance for a single net is calculated by taking the area that is enveloped by modules connected to that net. Such a function encourages short interconnections with even horizontal and vertical channel capacities. The initial population is constructed by using a combination of two methods. Cohoon and Paris found that the best results are achieved by generating an initial population using 25% random placements and 75% using a method that places modules in a row-major fashion. There are several versions of the crossover method which were stated in the research paper. Only the method that produced the best results was recreated in this project. It involves choosing a passing and target parent. The offspring is then made by first copying the target parent s assignment of modules into the offspring. Then an area in the passing parent is selected to be copied over into the offspring. Before doing this, the offspring must first move the cells that occupy that area into different locations. This process is shown below: The mutation function randomly selects a solution from the population and acts to introduce a new combination into the solution space. A net in the solution is randomly selected and the cells which are furthest away from each other but attached to the net are brought closer. This process reduces the wirelength of that respective net.

Data Structure The input file contains list of nets and modules, with the maximum row width in the top line. The input information is stored in an array of net and cell structures. Each net structure stores its weight, number of cells connected, and connected cell ids. Each cell structure stores its position, number of ports, port positions, and nets connected. Each solution (population element) consists of an array of pointers to cells structures. Pseudocode The Genie algorithm repetitively runs the crossover, selection, and mutation operations in a main while loop. The main operation of the program is as follows: 1. Parse input file and create net and cell structs 2. P <- determine initial population 3. For 25% of population Select passing and target parents Perform crossover to generate offspring 4. Apply selector to old population and offspring to create new population 5. Apply mutation to a number of solutions in new population 6. Repeat from step 3 until no improvement in score for 10000 iterations Compilation/Execution The g++ compiler was used to compile all source codes and generate the executable file. The entire project was done in a Unix environment using Sun-Blade 2000 machines. The code is in the ANSI-C++ programming language. Compiled code size is dependant on the capabilities of optimizing compilers and is also highly platform-dependant. The specific command used to compile was: g++ geniefinal.c o genie which creates an executable file named genie. The program is then run with these parameters: genie <inputfile> <outputfile>

Structure and Organization The entire program consists of one file for simplicity and convenience. All the main data (net and cell) structures are declared first and the important functions next, such as the cost, crossover, mutation, and selection functions. The main function follows shortly which include the main while loop which repetitively calls the important functions. Comments are included in detail for every function that is implemented and throughout the entire program. In the main function, the variables are initialized in the beginning and any memory used is deleted from the heap at the end. Discussion Results The results of the genie algorithm were compared against those of a previous implementation of the TimberWolf placement algorithm. This implementation of TimberWolf is a variation of the TimberWolf 3.2 algorithm. The genie algorithm was constrained as the TimberWolf algorithm in terms of its inputs. The modules were all fixed-width and height with no space in between modules. The entire code consists of slightly over 800 lines. The code size is as follows: Sourcecode(genieFinal.C) = 24148 bytes Binary (genie*) = 34088 bytes Performance On average, the Genie algorithm outperforms the TimberWolf algorithm by about 63%. In general, the Genie algorithm acts upon past solutions, which enables it to more rapidly converge to a better solution in the early stages. TimberWolf was not as efficient as it only selects one solution at a time, but shows better performance in later stages. Cost TimberWolf Genie 10-cell input file 1 721 468 (input_10_1.txt) 10-cell input file 2 873 479 (input_10_2.txt) 50-cell input file 3 64879 39863 (input_50_1.txt) 50-cell input file 4 (input_50_2.txt) 67209 42394

Run Time TimberWolf (s) Genie (s) 10-cell input file 1 0.220 0.354 (input_10_1.txt) 10-cell input file 2 0.240 0.398 (input_10_2.txt) 50-cell input file 3 0.476 2.03 (input_50_1.txt) 50-cell input file 4 (input_50_2.txt) 0.508 2.31 TimberWolf performs a lot faster than the Genie algorithm. This is due to the genie algorithm acting upon a set of solutions compared to the TimberWolf algorithm generating only one solution every iteration. Improvements An effective method to improve performance of the genie algorithm is to ensure that diversity is maintained through varying the solutions at every point in execution. This allows for the solution space to explore more solutions with less time. Achieving a greater diversity can be done using the following improvements: 1) Initial populations should be generated using a combination of techniques. For example, cells that are connected to the same net should be placed as near as possible to each other. Having a good initial population would lead to needing less time to converge upon good solutions and exploring more options within those genes. 2) Wise choices of parents should be made for crossover using probabilistic choice functions. Such examples would include selecting parents which have a lower than average cost. Doing this would lead to better offspring solutions. 3) Selecting the next generation population can also be done using such probabilistic choice functions. Higher scoring solutions should be chosen not all the time as it might lead to an early convergence and local optima. Smartly applying the mutation process to certain solutions would generate more diversity and create better solutions.

References COHOON, J. P., AND PARIS, W. D. 1986. Genetic placement. In Proceedings of the IEEE International Conference on Computer-Aided Design. DUNLOP, A. E., AND KERNIGHAN, B. W. 1985. A procedure for placement of standard cell VLSI circuits. IEEE Trans. Computer-Aided Design CAD-4. Appendix Example crossover:

Example mutation process: