hardware software codesign
play

Hardware-Software Codesign 4. System Partitioning Lothar Thiele - PowerPoint PPT Presentation

Hardware-Software Codesign 4. System Partitioning Lothar Thiele Swiss Federal Computer Engineering 4 - 1 Institute of Technology and Networks Laboratory System Design specification system synthesis estimation SW-compilation instruction


  1. Hardware-Software Codesign 4. System Partitioning Lothar Thiele Swiss Federal Computer Engineering 4 - 1 Institute of Technology and Networks Laboratory

  2. System Design specification system synthesis estimation SW-compilation instruction set HW-synthesis intellectual intellectual prop. code prop. block machine code net lists Swiss Federal Computer Engineering 4 - 2 Institute of Technology and Networks Laboratory

  3. Mapping Mapping transforms behavior into structure and execution: allocation : select components partitioning binding : assign functions to components mapping scheduling : determine execution order … finally, synthesis results into implementation Swiss Federal Computer Engineering 4 - 3 Institute of Technology and Networks Laboratory

  4. Levels of Abstractions Mapping can be done at low level: register transfer level (RTL) or netlist level  e.g., split a digital circuit and map it to several devices (FPGAs, ASICs)  system parameters (e.g., area, delay) relatively easy to determine p0 p3 p1 p2 at high level: system level CPU0 CPU2 CPU1 CPU3  comparison of design alternatives for optimality (design space exploration) bus … OR ?  system parameters are unknown and difficult to determine p0 p3 p1 p2  to be estimated via analysis, simulation, (rapid) prototyping CPU0 CPU2 CPU1 CPU3 Swiss Federal Computer Engineering bus 4 - 4 Institute of Technology and Networks Laboratory

  5. Model-Based Synthesis – Example optimal C: N:1 mapping p0 p3 p1 p2 optimal L: 1:1 mapping CPU0 CPU1 CPU2 CPU3 bus considered performance  cost C: cost of allocated components, e.g., sum  latency L: due to scheduling (resource sharing) conflicting design goals and constraints  feasible schedule L ≤ Lmax  feasible allocation C ≤ Cmax Swiss Federal Computer Engineering 4 - 5 Institute of Technology and Networks Laboratory

  6. Example – Alternatives p0 p3 p1 p2 CPU0 p0 p1 p2 p3 latency CPU0 CPU2 CPU1 CPU3 L MAX bus optimal C: N:1 mapping optimal L: 1:1 mapping CPU0 p0 p0 p3 p1 p2 p1 CPU1 CPU2 p2 CPU0 CPU2 CPU1 CPU3 CPU3 p3 bus latency L MAX Swiss Federal Computer Engineering 4 - 6 Institute of Technology and Networks Laboratory

  7. Cost Functions Quantitatively measure performance of a design point  system cost C[$]  latency L[sec]  power consumption P[W]  … Estimation is required to find C,L,P values, for each design point  example: linear cost (preference) function with penalty f(C,L,P)= k 1 ·h C (C,C max )+ k 2 ·h L (L,L max )+ k 3 ·h P (P,P max )  h C , h L , h P … denote how strong C, L, P violate design constraints C max , L max , P max  k 1 , k 2 , k 3 … weighting and normalization Swiss Federal Computer Engineering 4 - 7 Institute of Technology and Networks Laboratory

  8. The Formal Partitioning Problem assign n objects O={o 1 ,...,o n } to m blocks (also called partitions) P={p 1 ,...,p m } , such that  p 1  p 2  ...  p m =O (all objects are assigned –mapped)  p i  p j ={ }  i,j:i  j (an object is not assigned or “mapped” twice)  and costs c(P) are minimized note: in system synthesis (simple model) objects O p0 p3 p1 p2 objects = process network graph nodes partitions p blocks = architecture graph nodes cost = measured/estimated with blocks m dedicated cost functions (e.g., latency, CPU0 CPU1 power, hardware cost) bus Swiss Federal Computer Engineering 4 - 8 Institute of Technology and Networks Laboratory

  9. Partitioning Methods Exact methods  enumeration  integer linear programs (ILP) (  see next slides) Heuristic methods  constructive methods • random mapping • hierarchical clustering  iterative methods • Kernighan-Lin algorithm • simulated annealing • evolutionary algorithms Swiss Federal Computer Engineering 4 - 9 Institute of Technology and Networks Laboratory

  10. Integer Programming Model Ingredients:  objective function (cost) involving linear expressions of integer variables from a set X  constraints     objective C a x with a R , x N ( 1 ) i i i i  x X i      j J : b x c with b , c R ( 2 ) constraints i , j i j i , j j  x X i Integer programming (IP) problem: minimize objective function (1) subject to constraints (2) note: if all x i are constrained to be either 0 or 1 , the IP problem is said to be a 0/1 integer programming problem Swiss Federal Computer Engineering 4 - 10 Institute of Technology and Networks Laboratory

  11. Small Example of 0/1 IP    C 5 x 6 x 4 x minimize: 1 2 3    x x x 2 subject to: 1 2 3  x , x , x { 0 , 1 } 1 2 3 C optimal (minimal) Swiss Federal Computer Engineering 4 - 11 Institute of Technology and Networks Laboratory

  12. Integer Linear Program for Partitioning Binary variables x i,k  x i,k = 1: object o i in block p k  x i,k = 0: object o i not in block p k Cost c i,k , if object o i is in block p k Integer linear program:        x 0 , 1 1 i n , 1 k m i , k m    x 1 1 i n  i , k  k 1 m n      minimize x c 1 k m , 1 i n   i , k i , k   k 1 i 1 Swiss Federal Computer Engineering 4 - 12 Institute of Technology and Networks Laboratory

  13. Example – Partitioning t0 t3 t1 t2 task t0 t1 t2 t3 PE PE0 1 1 0 0 PE1 0 0 1 1 PE0 PE1 bus e.g., optimized for a load balanced system load balancing: exe. t0 t1 t2 t3 time load PE0 = 5+15 PE0 5 15 10 30 load PE1 = 10+10 PE1 10 20 10 10 Swiss Federal Computer Engineering 4 - 13 Institute of Technology and Networks Laboratory

  14. Variations in ILP Additional constraints:  e.g., maximum h k objects in block k n    x h 1 k m  i , k k  i 1 Maximizing the cost function:  can be done by setting C’= -C in a minimization problem Swiss Federal Computer Engineering 4 - 14 Institute of Technology and Networks Laboratory

  15. ILP for synthesis Solving the synthesis problem with ILP is very popular:  If not solving to optimality, runtimes are acceptable and a solution with guaranteed quality can be determined.  Scheduling can be integrated.  Various additional constraints can be added.  However, finding the right equations to model the constraints is an art. Swiss Federal Computer Engineering 4 - 15 Institute of Technology and Networks Laboratory

  16. Remarks on Integer Programming Integer programming is NP-complete  In practice, runtimes can increase exponentially with the size of the problem.  But problems of some thousands of variables can still be solved with commercial solvers (depending on the size/structure of the problem) or approximation algorithms (heuristics).  IP models can be a good starting point for designing heuristic optimization methods. Swiss Federal Computer Engineering 4 - 16 Institute of Technology and Networks Laboratory

  17. Partitioning Methods exact methods  enumeration  integer linear programs (ILP) heuristic methods  constructive methods (  see next slides) • random mapping • hierarchical clustering  iterative methods • Kernighan-Lin algorithm • simulated annealing • evolutionary algorithms Swiss Federal Computer Engineering 4 - 17 Institute of Technology and Networks Laboratory

  18. Constructive Methods Examples  random mapping • each object is assigned to a block randomly  hierarchical clustering • stepwise grouping of (e.g., two) objects • and evaluate closeness function (how desirable it is to group objects) Constructive methods are often used to generate a starting partition for iterative methods Swiss Federal Computer Engineering 4 - 18 Institute of Technology and Networks Laboratory

  19. Hierarchical Clustering Example (1) v 5 = v 1  v 3 v 1 v 5 20 10 10 8 10 7 v 2 v 2 v 3 4 4 6 v 4 v 4 closeness function: arithmetic mean of weights Swiss Federal Computer Engineering 4 - 19 Institute of Technology and Networks Laboratory

  20. Hierarchical Clustering Example (2) v 6 = v 2  v 5 v 5 v 6 10 7 5.5 v 2 4 v 4 v 4 Swiss Federal Computer Engineering 4 - 20 Institute of Technology and Networks Laboratory

  21. Hierarchical Clustering Example (3) v 6 v 7 = v 6  v 4 v 7 5.5 v 4 Swiss Federal Computer Engineering 4 - 21 Institute of Technology and Networks Laboratory

  22. Hierarchical Clustering – Summary cut lines step 3: v 7 {v 7 } v 7 = v 6  v 4 (partitions) {v 4 ,v 6 } v 6 step 2: v 6 = v 2  v 5 {v 2 ,v 4 ,v 5 } step 1: v 5 v 5 = v 1  v 3 {v 1 ,v 2 ,v 3 ,v 4 } v 1 v 2 v 3 v 4 step 0: Swiss Federal Computer Engineering 4 - 22 Institute of Technology and Networks Laboratory

  23. Partitioning Methods exact methods  enumeration  integer linear programs (ILP) heuristic methods  constructive methods • random mapping • hierarchical clustering  iterative methods (  see next slides) • Kernighan-Lin algorithm • simulated annealing • evolutionary algorithms Swiss Federal Computer Engineering 4 - 23 Institute of Technology and Networks Laboratory

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend