1 / 80

CS137: Electronic Design Automation

Learn about different scheduling approaches such as Force-Directed, SAT/ILP, and Branch-and-Bound in the context of electronic design automation. Understand the challenges of minimizing resource usage and exploiting schedule freedom.

pstephanie
Download Presentation

CS137: Electronic Design Automation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS137:Electronic Design Automation Day 20: November 23, 2005 Scheduling Variants and Approaches

  2. Today • Scheduling • Force-Directed • SAT/ILP • Branch-and-Bound

  3. Last Time • Resources aren’t free • Share to reduce costs • Schedule operations on resources • Greedy approximation algorithm

  4. Force-Directed • Problem: how exploit schedule freedom (slack) to minimize instantaneous resources • Directly solve time constrained • Trying to minimize resources

  5. Force-Directed • Given a node, can schedule anywhere between ASAP and ALAP schedule time • Between latest schedule predecessor and ALAP • Between ASAP and already scheduled successors • N.b.: Scheduling node will limit freedom of nodes in path

  6. Single Resource Challenge A1 A3 A5 A7 A8 A9 A10 A11 A12 A13 A2 A4 A6 B2 B3 B10 B1 B11 B4 B5 B6 B7 B8 B9

  7. Force-Directed • If everything where scheduled, except for the target node, we would: • examine resource usage in all timeslots allowed by precedence • place in timeslot which has least increase maximum resources

  8. Force-Directed • Problem: don’t know resource utilization during scheduling • Strategy: estimate resource utilization

  9. Force-Directed Estimate • Assume a node is uniformly distributed within slack region • between earliest and latest possible schedule time • Use this estimate to identify most used timeslots

  10. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  11. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  12. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  13. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  14. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 2 3/9 8 8 2 1/9 8 8 8

  15. Force-Directed • Scheduling a node will shift distribution • all of scheduled node’s cost goes into one timeslot • predecessor/successors may have freedom limited so shift their contributions • Want to shift distribution to minimize maximum resource utilization (estimate)

  16. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 Repeat 8 8 8 8 8 8 8 8 8 8

  17. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 Repeat 8 8 8 8 8 2 3/9 8 8 2 1/9 8 8 8

  18. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  19. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 3 4/9 8 8 8 8 8

  20. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  21. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 3 2/9 8 8 8 8 8

  22. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 2 3/9 8 8 2 1/9 8 8 8

  23. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 2 3/9 8 8 8 8 8

  24. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 2 3/9 8 8 8 8 8

  25. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  26. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 3 8 8 8 8

  27. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  28. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 2 13/18 8 8 8 8

  29. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  30. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 3 2/9 8 8 8 8 8

  31. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 2 13/18 8 8 8 8

  32. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 2 13/18 8 8 8 8

  33. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  34. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 2 13/18 8 8 8 8

  35. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  36. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 2 13/18 8 8 8 8

  37. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 2 13/18 8 8 8 8

  38. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  39. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 8

  40. Single Resource Challenge 2 2 2 2 2 2 2 2 2 2 2 2 2 8 8 8 8 8 8 8 Many steps… 8 8 8 8

  41. Force-Directed Algorithm • ASAP/ALAP schedule to determine range of times for each node • Compute estimated resource usage • Pick most constrained node (in largest time slot…) • Evaluate effects of placing in feasible time slots (compute forces) • Place in minimum cost slot and update estimates • Repeat until done

  42. Time • Evaluate force of putting in timeslot O(NT) • Potentially perturbing slack on net prefix/postfix for this node  N • Each node potentially in T slots • Evaluate all timeslots can put in O(NT2) • N nodes to place • O(N2T2) • Loose bound--don’t get both T slots and N perturbations

  43. SAT/ILP(Integer-Linear Programming)

  44. Two Constraint Challenge • Processing elements have limited memory • Instruction memory (data memory) • Tasks have different requirements for compute and instruction memory • i.e. Run length not correlated to code length

  45. Task • Task: schedule tasks onto PEs obeying both memory and compute capacity limits Example and ILP solution From Plishker et al. NSCD2004

  46. Task • Task: schedule tasks onto PEs obeying both memory and compute capacities •  two capacity partitioning problem • …actually, didn’t say anything about communication… •  two capacity bin packing problem • Task: i <Ci,Ii>

  47. SAT Packing • Ai,j – task i assigned to resource j Constraints • Coverage constraints • Uniqueness constraints • Cardinality constraints • PE compute • PE memory

  48. Allow Code Sharing • Two tasks of same type can share code • Instead of memory capacity • Vector of memory usage • Compute PE Imem vector • As OR of task vectors assigned to it • Compute mem space as sum of non-zero vector entries

  49. Allow Code Sharing • Two tasks of same type can share code • Task has vector of memory uage • Task i needs set of instructions k: Ti,k • Compute PE Imem vector • OR (all i): PE.Imemj,k+=Ai,j * Ti,k • PE Mem space • PE.Total_Imemj= (PE.Imemj,k*Instrs(k))

  50. Symmetries • As with partitioning, many symmetries • Speedup with symmetry breaking • Tasks in same class are equivalent • PEs indistinguishable • Total ordering on tasks and PEs • Add constraints to force tasks to be assigned to PEs by ordering • Plishker claims “significant runtime speedup” • Using GALENA [DAC 2003] psuedo-Boolean SAT solver

More Related