200 likes | 492 Views
GENIE. Eric Jackowski. 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
E N D
GENIE Eric Jackowski
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 • 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 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 • Ξ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 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 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 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 • μ2 uses a directed evolution transformation to reduce the bounding rectangle for a random net • Randomly select a 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
Ξ1 Ξ3 Population Population Population Φ4 μ2 Parenty Parentx Ψ2 σ2 Offspring GENIE Algorithm .25p Iterations<10000 .75p i < p * KΨ i < k
GENIE vs TW • Total Wirelength • GENIE 1.2x better on large circuits • TW .8 better on smaller circuits • Number of Iterations • GENIE orders of magnitude less • Overall Time • TW 2x faster on large circuits • GENIE 2x faster on small circuits
Discussion • Challenges • “Sliding”, μ2, Ξ3 • Lessons Learned • Need mutation otherwise converge to quickly • The order in which you “slide” is very important
Appendix GENIE ALGORITHM
Appendix • GENIE1: 25% Ξ1 75% Ξ3Φ4ψ2σ2μ2 • GENIE2: 25% Ξ1 75% Ξ3 Φ4 ψ2 σ3 μ2 • GENIE1*: 25% Ξ1 75% Ξ3 Φ4 ψ2 σ2 μ2* • GENIE2*:25% Ξ1 75% Ξ3 Φ4 ψ2 σ2 μ2*
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; • ENDFOR • Return highest scoring configuration in population;