GENIE Eric Jackowski GENIE Genetic Algorithm for Placement

  • Slides: 16
Download presentation
GENIE Eric Jackowski

GENIE Eric Jackowski

GENIE • Genetic Algorithm for Placement – “Genetic Placement, ” Cohoon and Paris –

GENIE • Genetic Algorithm for Placement – “Genetic Placement, ” Cohoon and Paris – “VLSI Placement Techniques, ” Shahookar and Mazumder • Uses Directed-Evolution Methodology – Obtains optimal solutions faster • Avoids Premature Homogeneity – Uses randomness in the functions • Evaluates Several Functions – Population, Choice, Crossover, Selector, Mutation

Genie Data Structures • Net – Name, # of Connections, Array of Cells •

Genie Data Structures • Net – Name, # of Connections, Array of Cells • Cell – Name, # of Ports, Array of Nets • Layout – # of Rows, # of Columns, Array of Cells

Scoring Function σ • hi = # of nets whose bounding rectangle crosses a

Scoring Function σ • hi = # of nets whose bounding rectangle crosses a horizontal channel • vi = # of nets whose bounding rectangle crosses a vertical channel − • h = average h, − v = average v • Sh and Sv= one standard deviation of vertical and horizontal usage • Score =

Population Constructor Ξ • Ξ 1 place random cells at random locations • Ξ

Population Constructor Ξ • Ξ 1 place random cells at random locations • Ξ 2 and Ξ 3 choose the same order cells are assigned. – Randomly select a net – Place all unplaced cells on net – Select an unselected net from the last cell placed – Randomly select a cell on that net • Ξ 2 places in boustrophedon fashion • Ξ 3 places in row major fashion Ξ 2 Ξ 3

Crossover Function ψ • Ψ 1 randomly select cell from parent and place in

Crossover Function ψ • Ψ 1 randomly select cell from parent and place in child. – “Slide” neighboring cells to new locations • Ψ 2 randomly select a k x k square from parent and copy it into the child. – For the cells in the child block that are not in the parent block, move them to the cell locations of the cells in the parent block that are not in the child block.

Crossover Choice Function Φ • Φ 1 chooses random string and best scoring string

Crossover Choice Function Φ • Φ 1 chooses random string and best scoring string for crossover • Φ 2 randomly chooses both strings for crossover • Φ 3 and Φ 4 choose random string with probability based on the score • Φ 3 : Φ 4 :

Selector Function ρ • ρ1 chooses the best scoring string from the Population and

Selector Function ρ • ρ1 chooses the best scoring string from the Population and the Offspring • ρ2 randomly choose P strings from the Population and Offspring • ρ3 randomly chooses string αj from the population and offspring with probability

Mutation Function μ • μ 1 randomly chooses two cells and interchanges them •

Mutation Function μ • μ 1 randomly chooses two cells and interchanges them • μ 2 uses a directed evolution transformation to reduce the bounding rectangle for a random net – Randomly select a Cell, es, on that net – Find farthest Cell, et, from the selected cell – Place the et next to the es and slide surrounding cells – Find the next farthest cell from es – Place the second farthest cell next to es • μ 2* swaps the position of two cells if they are already adjacent

GENIE Algorithm Iterations<10000 Ξ 1. 25 p Population Ξ 3. 75 p Φ 4

GENIE Algorithm Iterations<10000 Ξ 1. 25 p Population Ξ 3. 75 p Φ 4 Parenty Parentx i < p * KΨ Ψ 2 Offspring σ2 i<k Population μ 2 Population

GENIE vs TW • Total Wirelength – GENIE 1. 2 x better on large

GENIE vs TW • Total Wirelength – GENIE 1. 2 x better on large circuits – TW. 8 better on smaller circuits • Number of Iterations – GENIE orders of magnitude less • Overall Time – TW 2 x faster on large circuits – GENIE 2 x faster on small circuits

Discussion • Challenges – “Sliding”, μ 2, Ξ 3 • Lessons Learned – Need

Discussion • Challenges – “Sliding”, μ 2, Ξ 3 • Lessons Learned – Need mutation otherwise converge to quickly – The order in which you “slide” is very important

Questions

Questions

Appendix GENIE ALGORITHM

Appendix GENIE ALGORITHM

Appendix • GENIE 1: 25% Ξ 1 75% Ξ 3 Φ 4 ψ2 σ2

Appendix • GENIE 1: 25% Ξ 1 75% Ξ 3 Φ 4 ψ2 σ2 μ 2 • GENIE 2: 25% Ξ 1 75% Ξ 3 Φ 4 ψ2 σ3 μ 2 • GENIE 1*: 25% Ξ 1 75% Ξ 3 Φ 4 ψ2 σ2 μ 2* • GENIE 2*: 25% Ξ 1 75% Ξ 3 Φ 4 ψ2 σ2 μ 2*

Appendix • • • • Initialize; Np population size; No Np * Pψ; /*

Appendix • • • • Initialize; Np population size; No Np * Pψ; /* where Pψ is the desired ratio of the number of offspring to the population size */ Construct_population(Np); FOR i 1 To Np score(population[i]); ENDFOR; FOR i + 1 TO Number_ of_ Generations FOR j To No (x, y) Choose _Parents; offspring[ j] generate _Offspring( x, y); Score(offspring[ j]); ENDFOR; population Select(population, offspring, NP); FORj i To Np With probability Pμ Mutate(population[j] ); ENDFOR • Return highest scoring configuration in population;