Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: January 31, 2011 Scheduling Variants and Approaches.

Slides:



Advertisements
Similar presentations
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 19: November 21, 2005 Scheduling Introduction.
Advertisements

EDA (CS286.5b) Day 10 Scheduling (Intro Branch-and-Bound)
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 12: February 23, 2011 Routing 2 (Pathfinder)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 11, 2015 Scheduling Introduction.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 14: March 3, 2004 Scheduling Heuristics and Approximation.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: March 4, 2008 Placement (Intro, Constructive)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 17: April 2, 2008 Scheduling Introduction.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 21: April 2, 2007 Time Multiplexing.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 21: April 15, 2009 Routing 1.
EDA (CS286.5b) Day 11 Scheduling (List, Force, Approximation) N.B. no class Thursday (FPGA) …
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 7, 2008 Scheduling Variants and Approaches.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
EDA (CS286.5b) Day 3 Clustering (LUT Map and Delay) N.B. no lecture Thursday.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 16: March 23, 2009 Covering.
EDA (CS286.5b) Day 14 Routing (Pathfind, netflow).
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 12: March 2, 2009 Sequential Optimization (FSM Encoding)
CS294-6 Reconfigurable Computing Day 15 October 13, 1998 LUT Mapping.
EDA (CS286.5b) Day 19 Covering and Retiming. “Final” Like Assignment #1 –longer –more breadth –focus since assignment #2 –…but ideas are cummulative –open.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 7: February 9, 2009 Scheduling Variants and Approaches.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 26, 2015 Covering Work preclass exercise.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 12: February 13, 2002 Scheduling Heuristics and Approximation.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 2: January 21, 2015 Heterogeneous Multicontext Computing Array Work Preclass.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 9: February 16, 2015 Scheduling Variants and Approaches.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 7: February 9, 2015 Scheduled Operator Sharing.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 24: April 18, 2011 Covering and Retiming.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 10: February 18, 2015 Architecture Synthesis (Provisioning, Allocation)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 8, 2015 Sequential Optimization (FSM Encoding)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 23: April 20, 2015 Static Timing Analysis and Multi-Level Speedup.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 3: January 16, 2013 Scheduled Operator Sharing.
CALTECH CS137 Spring DeHon 1 CS137: Electronic Design Automation Day 5: April 12, 2004 Covering and Retiming.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 26, 2004 Sequential Optimization (FSM Encoding)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 6: January 30, 2013 Partitioning (Intro, KLFM)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 17: March 11, 2002 Sequential Optimization (FSM Encoding)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 13: March 1, 2003 Scheduling Introduction.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 20: April 4, 2011 Static Timing Analysis and Multi-Level Speedup.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 15: March 13, 2013 High Level Synthesis II Dataflow Graph Sharing.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2015 Clustering (LUT Mapping, Delay)
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 11: February 25, 2015 Placement (Intro, Constructive)
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 11: February 11, 2002 Scheduling Introduction.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 25: April 17, 2013 Covering and Retiming.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 20: November 23, 2005 Scheduling Variants and Approaches.
CS137: Electronic Design Automation
CS137: Electronic Design Automation
CS137: Electronic Design Automation
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
CS137: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE534: Computer Organization
ESE534: Computer Organization
ESE534: Computer Organization
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
ESE535: Electronic Design Automation
CS137: Electronic Design Automation
CS137: Electronic Design Automation
Presentation transcript:

Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: January 31, 2011 Scheduling Variants and Approaches

Previously Resources aren’t free Share to reduce costs Schedule operations on resources –Fixed resources Greedy approximation algorithm List Scheduling for resource- constrained scheduling Penn ESE535 Spring DeHon 2 Behavioral (C, MATLAB, …) RTL Gate Netlist Layout Masks Arch. Select Schedule FSM assign Two-level, Multilevel opt. Covering Retiming Placement Routing

Today Time-Constrained Scheduling –Force Directed Few words on project architecture Resource-Constrained –Branch-and-Bound Penn ESE535 Spring DeHon 3 Behavioral (C, MATLAB, …) RTL Gate Netlist Layout Masks Arch. Select Schedule FSM assign Two-level, Multilevel opt. Covering Retiming Placement Routing

Penn ESE535 Spring DeHon 4 Force Directed

Penn ESE535 Spring DeHon 5 Force-Directed Problem: how exploit schedule freedom (slack) to minimize instantaneous resources –Directly solve time-constrained scheduling (previously only solved indirectly) –Minimize resources with timing target

Penn ESE535 Spring DeHon 6 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 –Between latest schedule predecessor and earliest schedule successor That is: Scheduling node will limit freedom of nodes in path

Penn ESE535 Spring DeHon 7 Single Resource Challenge A7A8 B11 A9 B2 B3 B4 A1 A2 A3 A4 A5 A6 A10A11A13A12 B5 B1 B6 B7 B8 B9 B10

Penn ESE535 Spring DeHon 8 Force-Directed If everything where scheduled, except for the target node, what would we do?: –examine resource usage in all timeslots allowed by precedence –place in timeslot which has least increase maximum resources Least energy Where the forces are pulling it

Penn ESE535 Spring DeHon 9 Force-Directed Problem: don’t know resource utilization during scheduling Strategy: estimate resource utilization

Penn ESE535 Spring DeHon 10 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

Penn ESE535 Spring DeHon 11 Single Resource Challenge A7A8 B11 A9 B2 B3 B4 A1 A2 A3 A4 A5 A6 A10A11A13A12 B5 B1 B6 B7 B8 B9 B10 Schedule into 12 cycles

Penn ESE535 Spring DeHon 12 Slacks on all nodes Schedule into 12 cycles

Penn ESE535 Spring DeHon 13 Uniform Distribution of Slack

Penn ESE535 Spring DeHon 14 Most Constrained Node, Most Used Timeslot

Penn ESE535 Spring DeHon 15 Single Resource Challenge

Penn ESE535 Spring DeHon 16 Single Resource Challenge /9 2 1/9

Penn ESE535 Spring DeHon 17 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 Goal: shift distribution to minimize maximum resource utilization (estimate)

Penn ESE535 Spring DeHon 18 Single Resource Challenge Repeat

Penn ESE535 Spring DeHon 19 Single Resource Challenge /9 2 1/9 Repeat

Penn ESE535 Spring DeHon 20 Single Resource Challenge

Penn ESE535 Spring DeHon 21 Single Resource Challenge /9

Penn ESE535 Spring DeHon 22 Single Resource Challenge

Penn ESE535 Spring DeHon 23 Single Resource Challenge /9

Penn ESE535 Spring DeHon 24 Single Resource Challenge /9 2 1/9

Penn ESE535 Spring DeHon 25 Single Resource Challenge /9

Penn ESE535 Spring DeHon 26 Single Resource Challenge /9

Penn ESE535 Spring DeHon 27 Single Resource Challenge

Penn ESE535 Spring DeHon 28 Single Resource Challenge

Penn ESE535 Spring DeHon 29 Single Resource Challenge

Penn ESE535 Spring DeHon 30 Single Resource Challenge /18

Penn ESE535 Spring DeHon 31 Single Resource Challenge

Penn ESE535 Spring DeHon 32 Single Resource Challenge /9

Penn ESE535 Spring DeHon 33 Single Resource Challenge /18

Penn ESE535 Spring DeHon 34 Single Resource Challenge /18

Penn ESE535 Spring DeHon 35 Single Resource Challenge

Penn ESE535 Spring DeHon 36 Single Resource Challenge /18

Penn ESE535 Spring DeHon 37 Single Resource Challenge

Penn ESE535 Spring DeHon 38 Single Resource Challenge /18

Penn ESE535 Spring DeHon 39 Single Resource Challenge /18

Penn ESE535 Spring DeHon 40 Single Resource Challenge

Penn ESE535 Spring DeHon 41 Single Resource Challenge

Penn ESE535 Spring DeHon 42 Single Resource Challenge Many steps…

Penn ESE535 Spring DeHon 43 Single Resource Hard (5) A7A8 B11 A9 B2 B3 B4 A1 A2 A3 A4 A5 A6 A10A11A13A12 B5 B1 B6 B7 B8 B9 B10 ??? A1 B1 A2 B2 A3 A4 A5 B3 A6 B4 A7 B5 A8 B6 A9 B7 A10 B8 A11 B9 A12 B10 A13 B11

Penn ESE535 Spring DeHon 44 Force-Directed Algorithm 1.ASAP/ALAP schedule to determine range of times for each node 2.Compute estimated resource usage 3.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

Penn ESE535 Spring DeHon 45 Force-Directed Runtime Evaluate force of putting in timeslot O(N) –Potentially perturbing slack on net prefix/postfix for this node  N Each node potentially in T slots: ×T N nodes to place: ×N O(N 2 T) –Loose bound--don’t get both T slots and N perturbations

Project Architecture Penn ESE535 Spring DeHon 46

Penn ESE535 Spring DeHon 47 FPGA K-LUT (typical k=4) Compute block w/ optional output Flip-Flop ESE171, CIS371

Penn ESE535 Spring DeHon 48 VLIW + XX Address Instruction Memory

Merge Ideas Bit-level, LUT-based mesh VLIW, cycle-by- cycle control Penn ESE535 Spring DeHon 49 + XX Addr ess Instruction Memory

Time-Multiplexed LUT PE Penn ESE535 Spring DeHon 50

Tabula March 1, 2010 –Announced “new” architecture Bit-level, LUT-based VLIW with 8 instruction contexts Penn ESE535 Spring DeHon 51 [src:

Penn ESE535 Spring DeHon 52 Branch-and-Bound (for resource-constrained scheduling)

Penn ESE535 Spring DeHon 53 Brute-Force Scheduling (Exhaustive Search) Try all schedules Branching/Backtracking Search Start w/ nothing scheduled (ready queue) At each move (branch) pick: –available resource time slot –ready task (predecessors completed) –schedule task on resource Update ready queue

Penn ESE535 Spring DeHon 54 Example T1 T2 T3 T4 T5 T6 T1  time 1 T3  time 1 T2  time 1 idle  time 1 T3  time2 T4  time 2 idle  time 2 Target: 2 FUs

Penn ESE535 Spring DeHon 55 Branching Search Explores entire state space –finds optimum schedule Exponential work –O (N (resources*time-slots) ) Many schedules completely uninteresting

Penn ESE535 Spring DeHon 56 Reducing Work 1.Canonicalize “equivalent” schedule configurations 2.Identify “dominating” schedule configurations 3.Prune partial configurations which will lead to worse (or unacceptable results)

Penn ESE535 Spring DeHon 57 “Equivalent” Schedules If multiple resources of same type –assignment of task to particular resource at a particular timeslot is not distinguishing T1 T2 T3 T2 T1 T3 Keep track of resource usage by capacity at time-slot.

Penn ESE535 Spring DeHon 58 “Equivalent” Schedule Prefixes T1T3 T2T4 T1 T3 T2 T4 T1 T2 T3 T4 T5 T6

Penn ESE535 Spring DeHon 59 “Non-Equivalent” Schedule Prefixes T1 T2 T3 T2 T3 T1 T2 T3 T4 T5 T6

Penn ESE535 Spring DeHon 60 Pruning Prefixes Keep track of scheduled set Recognize when solving same sub- problem –Like dynamic programming finding same sub-problems –But no guarantee of small number of subproblems set is power-set so 2 N …but not all feasible, – so shape of graph may simplify

Penn ESE535 Spring DeHon 61 Dominant Schedules A strictly shorter schedule –scheduling the same or more tasks –will always be superior to the longer schedule T1 T2T1T2T5 T4 T5 T3 T2 T1 T5 T4

Penn ESE535 Spring DeHon 62 Pruning If can establish a particular schedule path will be worse than one we’ve already seen –we can discard it w/out further exploration In particular: –LB=current schedule time + lower_bound_estimate –if LB greater than known solution, prune

Penn ESE535 Spring DeHon 63 Pruning Techniques Establish Lower Bound on schedule time Critical Path (ASAP schedule) Resource Bound

Penn ESE535 Spring DeHon 64 Alpha-Beta Search Generalization –keep both upper and lower bound estimates on partial schedule Lower bounds from CP, RB Upper bounds with List Scheduling –expand most promising paths (least upper bound, least lower bound) –prune based on lower bounds exceeding known upper bound –(technique typically used in games/Chess)

Penn ESE535 Spring DeHon 65 Alpha-Beta Each scheduling decision will tighten –lower/upper bound estimates Can choose to expand –least current time (breadth first) –least lower bound remaining (depth first) –least lower bound estimate –least upper bound estimate Can control greediness –weighting lower/upper bound –selecting “most promising”

Penn ESE535 Spring DeHon 66 Note Aggressive pruning and ordering –can sometimes make polynomial time in practice –often cannot prove will be polynomial time –usually represents problem structure we still need to understand

Penn ESE535 Spring DeHon 67 Multiple Resources Works for multiple resource case Computing lower-bounds per resource –resource constrained Sometimes deal with resource coupling –e.g. must have 1 A and 1 B simultaneously or in fixed time slot relation e.g. bus and memory port

Penn ESE535 Spring DeHon 68 Summary Resource estimates and refinement Branch-and-bound search –“equivalent” states –dominators –estimates/pruning

Penn ESE535 Spring DeHon 69 Admin Assignment 1 was due at class start Reading –Wednesday online Assignment 2 out –Part A due next Monday –Part B following

Penn ESE535 Spring DeHon 70 Big Ideas: Estimate Resource Usage Use dominators to reduce work Techniques: –Force-Directed –Search Branch-and-Bound Alpha-Beta