Thesis defense rev12

Views:
 
Category: Education
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide1: 

Complexity Analysis of a Massively Parallel Boolean Satisfiability Implication Circuit Ph.D. Defense By Mark J. Boyd Chair Tracy Larrabee Reader Andrea Di Blas Reader Richard Hughey

Significant and Novel Research: 

Significant and Novel Research Analyzed O(mn) parallelism for SAT Showed unroutability of FPGA approach Demonstrated floorplanned solution

Overview: 

Overview Synopsis of the research Boolean satisfiability (SAT) Previous FPGA parallel approaches Zhong (Princeton) instance-specific Unroutable with claimed resources My floorplanned approach ELVIS single chip PRISCILA multi-chip Conclusion

Overview - Research: 

Overview - Research Research interests Boolean satisfiability Fundamental open problem with currently exponential runtime FPGAs Parallel applications Rapid prototyping Dynamic rerouting I implemented a regular floorplan methodology ELVIS Single chip design Easily and quickly loaded PRISCILA Multi-chip design explicitly showing external routing scalability

Overview - Motivations: 

Overview - Motivations FPGA approach has long compile times Field Programmable Custom Computing Machines Conference We showed routing problem unscalable We presented a regular generalized layout Need to evaluate wide clauses in parallel GRASP and zchaff software Clause addition helps scalable speedup – GOOD! Wide clauses take time to evaluate – BAD!

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) k=3, maximum clause width n=4, number of variables m=5, number of clauses

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) k=3, maximum clause width n=4, number of variables m=5, number of clauses

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) k=3, maximum clause width n=4, number of variables (A,B,C,D) m=5, number of clauses

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) k=3, maximum clause width n=4, number of variables m=5, number of clauses

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) k=3, maximum clause width n=4, number of variables m=5, number of clauses L=13, number of literals

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+B+C)(A+B)(B+C)(A+B+C)(A+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+B+C)(F+B)(B+C)(A+B+C)(A+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+B+C)(F+B)(B+C)(F+B+C)(A+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+B+C)(F+B)(B+C)(F+B+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+C)(F+B)(B+C)(F+B+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+C)(F+T)(B+C)(F+B+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+C)(F+T)(T+C)(F+B+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+C)(F+T)(T+C)(F+F+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+F)(F+T)(T+C)(F+F+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+F)(F+T)(T+T)(F+F+C)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+F)(F+T)(T+T)(F+F+T)(F+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+F)(F+T)(T+T)(F+F+T)(F+F+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) T (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) T T (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) T T T (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) T T T T (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) T T T T T (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) T T T T T = TRUE (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) But wouldn’t it be nice if all of these operations happened simultaneously? (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) But wouldn’t it be nice if all of these operations happened simultaneously? T T T T T = TRUE (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment We’ll get there soon…

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) [B=1] is a partial truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (A+B+C)(A+F)(B+C)(A+B+C)(A+C+D) [B=1] is a partial truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (A+B+C)(A+F)(B+C)(A+B+C)(A+C+D) [B=1] implies [A=0] because A must now be assigned 0 to make the clause true

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (A+B+C)(T+F)(B+C)(A+B+C)(A+C+D) [B=1] implies [A=0]

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (F+B+C)(T+F)(F+C)(A+B+C)(A+C+D) [B=1] implies [A=0]

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (F+B+C)(T+F)(F+C)(A+B+C)(A+C+D) [B=1] implies [A=0,C=0]

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) What is a transitive implication? (F+B+C)(T+F)(F+T)(A+B+C)(A+C+D) [B=1] implies [A=0,C=0], called transitive implications

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s restart and try more variables… (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) [A=1,C=1] is a partial truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s restart and try more variables… (A+B+C)(F+B)(B+F)(F+B+F)(A+C+D) [A=1,C=1] is a partial truth assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s restart and try more variables… (A+B+C)(F+B)(B+F)(F+B+F)(A+C+D) [A=1,C=1] implies [B=0,B=1]

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s restart and try more variables (A+B+C)(F+B)(B+F)(F+B+F)(A+C+D) [A=1,C=1] implies [B=0,B=1] ? But that’s a contradiction, right?

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s restart and try more variables… (A+B+C)(F+B)(B+F)(F+B+F)(A+C+D) [A=1,C=1] implies [B=0,B=1] Because it results in a contradiction, [A=1,C=1] cannot be a part of any satisfying assignment

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s restart and try more variables… (A+B+C)(F+B)(B+F)(F+B+F)(A+C+D)(A+C) [A=1,C=1] implies [B=0,B=1] Because [A=1,C=1] cannot be a part of any satisfying assignment we can add a clause forbidding it. DeMorgan (A*C) = (A+C)

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) But wouldn’t it be nice if all of these operations happened simultaneously? (A+B+C)(F+B)(B+F)(F+B+F)(A+C+D)(A+C) [A=1,C=1] implies [B=0,B=1] We’ll get there…

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s try a really big problem (A+B+C+D+G)(A+B+C+E+H)(A+B+D+E+I) (A+C+D+E+J)(B+C+D+E+K)(G+H+I+J+K) [A=0,B=0,C=0,D=0,E=0] implies

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s try a really big problem (F+F+F+F+G)(F+F+F+F+H)(F+F+F+F+I) (F+F+F+F+J)(F+F+F+F+K)(G+H+I+J+K) [A=0,B=0,C=0,D=0,E=0] implies [G=1,H=1,I=1,J=1,K=1]

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s try a really big problem (F+F+F+F+G)(F+F+F+F+H)(F+F+F+F+I) (F+F+F+F+J)(F+F+F+F+K)(G+H+I+J+K) [A=0,B=0,C=0,D=0,E=0] implies [G=1,H=1,I=1,J=1,K=1] Boolean satisfiability (SAT)

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s try a really big problem (F+F+F+F+G)(F+F+F+F+H)(F+F+F+F+I) (F+F+F+F+J)(F+F+F+F+K)(F+F+F+F+F) [A=0,B=0,C=0,D=0,E=0] implies [G=1,H=1,I=1,J=1,K=1], which creates a falsified clause

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) Let’s try a really big problem (F+F+F+F+G)(F+F+F+F+H)(F+F+F+F+I) (F+F+F+F+J)(F+F+F+F+K)(F+F+F+F+F) [A=0,B=0,C=0,D=0,E=0] cannot be a part of any satisfying truth assignment, add (A+B+C+D+E)

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) 25 operations in parallel? (A+B+C+D+G)(A+B+C+E+H)(A+B+D+E+I) (A+C+D+E+J)(B+C+D+E+K)(G+H+I+J+K) [A=0,B=0,C=0,D=0,E=0]

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) 25 operations in parallel? (F+F+F+F+G)(F+F+F+F+H)(F+F+F+F+I) (F+F+F+F+J)(F+F+F+F+K)(G+H+I+J+K) [A=0,B=0,C=0,D=0,E=0] implies [G=1,H=1,I=1,J=1,K=1] Wouldn’t THAT be something…

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) 25 operations in parallel? (F+F+F+F+G)(F+F+F+F+H)(F+F+F+F+I) (F+F+F+F+J)(F+F+F+F+K)(G+H+I+J+K) [A=0,B=0,C=0,D=0,E=0] implies [G=1,H=1,I=1,J=1,K=1] For k=O(n)=O(m), O(mn) parallelism

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) For any m, randomly pick m/2 variables for each clause Append a new unique variable to each clause Add one clause with the negations of all the appended variables A partial assignment of true to the first m variables implies all of the appended variables true Contradicts the final clause

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) 25 operations in parallel? (A+B+C+D+G)(A+B+C+E+H)(A+B+D+E+I) (A+C+D+E+J)(B+C+D+E+K)(G+H+I+J+K) A problem which supports O(mn) speedup by parallel literal evaluation

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) For SOME k-SAT formulas, evaluating all literals and clause implications in a single operation provides O(mn) parallelism over serial literal operations.

Purpose of parallelism for speedup of SAT: 

Purpose of parallelism for speedup of SAT Calculating transitive implications, Boolean Constraint Propagation (BCP) Commonly 90 to 99% of the total runtime Excellent heuristics of GRASP or zchaff software speed up solution Addition of wide 'conflict' clauses avoids repetitive search Avoids evaluating unneeded clauses BUT…software heuristics still slow for some densely connected unsatisfiable problems Hole, hgen benchmarks of about 260 variables

Parallel FPGA approaches: 

Parallel FPGA approaches Zhong (Princeton) instance-specific mapping of a formula to an FPGA State machine generates partial assignments to send to IMP circuit IMP circuit calculates implications and sends back results

Parallel FPGA approaches: 

Parallel FPGA approaches Zhong (Princeton) instance-specific mapping of a formula to an FPGA Each clause is made into a gate for each variable But this is a bipartite graph 2-Level Planarization problem: NP-hard for areaandlt;O(n ) 2

What is an FPGA?: 

What is an FPGA? An array of logic and memory Logic cells (4x4 memory) A mesh of routing Crossbar switchboxes (4x4) supporting flexible interconnect

Parallel FPGA – P&R: 

Parallel FPGA – Pandamp;R Zhong (Princeton) instance-specific mapping requires Pandamp;R Each clause is made into a gate for each variable But this is a bipartite graph 2-Level Planarization problem: NP-hard for areaandlt;O(n ) 2

Parallel FPGA – P&R: 

Parallel FPGA – Pandamp;R 1 2 3 4 5 6

Zhong gate blowup for big k: 

Zhong gate blowup for big k Zhong (Princeton) instance-specific mapping of a formula to an FPGA Wide clause made into gates = BIG Example: Clause from hole10 Even gates grow as O(k m) (1+2+3+4+5+6+7+8+9+10) 2

General Floorplan of ELVIS: 

General Floorplan of ELVIS

Shift Register Bus Mask: 

Shift Register Bus Mask Eliminate routing problem by Routing all variables to all clauses using a bus Masking unused variable signals using a shift register

Shift Register Bus Mask: 

Shift Register Bus Mask Only allows the lines through that are selected by the shift register 0 0 1 1 1 0 0 1 1 0 0 0

Oneact “one active” encoder: 

Oneact 'one active' encoder A multi-bit unary input, two-bit result An adder that overflows at 2

Shift Register Bus Mask: 

Shift Register Bus Mask

Example of CEC: 

Example of CEC

Example of CEC, [A=1, C=1]: 

Example of CEC, [A=1, C=1] 1 1 1 1 1 0 0 0 0 0 0 0

Example of VEC, [A=1, C=1]: 

Example of VEC, [A=1, C=1] 1 1 1 0 0 1 0 0

Example of VEC, [A=1, C=1]: 

Example of VEC, [A=1, C=1] 1 1 1 0 0 1 0 0 1 0 0 1

The other two variables…: 

The other two variables… 1

Floorplan of CECs and VECs: 

Floorplan of CECs and VECs VECs CECs

Partition of CECs and VECs: 

Partition of CECs and VECs VECs CECs

Board Layout of PRISCILA: 

Board Layout of PRISCILA

Overview of PRISCILA: 

Overview of PRISCILA 14 FPGA boards Regular wiring with 40 wire ribbon cables 12 boards for a 3x4 rectangular array 1 board is the FSM 1 board to collect data on performance 3.1 MHz theoretical maximum 1.6 MHz tested

Cycle Speedup of PRISCILA: 

Cycle Speedup of PRISCILA Dubois Pretolani

Analysis : 

Analysis Cycles for A-SAT are really complex operations (load, load, decrement,store), so not comparable Assumed memory latency increases with size of problem. Not necessarily true for cached, pipelined serial processor Used a big (32 var, 48 clause) PRISCILLA for all problems. Latency not scaled.

The Hughey Amendment : 

The Hughey Amendment Cycles for A-SAT are really complex operations (load, load, decrement,store), so not comparable Doesn’t matter, just want scalable speedup Assumed memory latency increases with size of problem. Not necessarily true for cached, pipelined serial processor Assume perfect pipe/cache, constant access times Used a big (32 var, 48 clause) PRISCILLA for all problems. Latency not scaled. Penalize larger problems by a factor of m (delay)

Speedup of PRISCILA: 

Speedup of PRISCILA

Rebuttal to Hughey Amendment : 

Rebuttal to Hughey Amendment Scalable speedup (between log and linear) VS a serial processor of O(1) memory latency! Because serial processor is O(mn) operations Results aren’t a proof in themselves (too small) but are consistent with previous work

How can ELVIS/PRISCILA improve… : 

How can ELVIS/PRISCILA improve… Two major improvements Use the carry logic in FPGAs for wide functions Cycle speeds improved by 100x (250 MHz) Resource usage much more efficient Design a parallel FSM to drive the implication logic faster Transitive implications only 90-99% of the total time Speedups over 10-100 not generally possible except for hardest benchmarks

What can ELVIS/PRISCILLA do…: 

What can ELVIS/PRISCILLA do… Coprocessor for industrial problems zchaff extraction of small cores within 2-20% of size of the minimal unsatisfiable core. PRISCILLA detects unsatisfiable formulas 10-100 times faster (limited by state machine) Place and route, logic minimization, verification and testing of circuits and software, airline scheduling

RECAP and Acknowledgments: 

RECAP and Acknowledgments Parallel calculation of SAT transitive implications O(mn) over software Instance-specific approaches unscalable Negative result Scalable floorplanned approach (ELVIS) Useful for small unsatisfiable cores Any clause width Multi-chip (PRISCILLA) More speedup from larger problems Acknowledgements: Kevin Klenk for help with initial state machine design. Doanna Weissgerber for help with the software loading interface. NSF funding under CCR-9971172. Xilinx for devices and ISE software.

Slide87: 


Slide88: 


“P” Parallel Pipelines: 

'P' Parallel Pipelines

Pipelined approach: 

Pipelined approach Zhong time-sliced variables through a pipeline

EXTRAS: 

EXTRAS

The Experiment: Results: 

The Experiment: Results Average times in seconds to complete all tasks for each of the 21 alignments Experimental group 1.5 times faster

Protein Structure: 

Protein Structure Hierarchical Structure Goal understand function of protein from primary structure Sequence of protein relatively easy to obtain

Floorplan of the Approach: 

Floorplan of the Approach

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B)(~A+~B+~C)(~B+C)(~A+B+~D) (~C+D)(B+C+D)(A+~C+~D)(~B+D) k=3, maximum clause width n=4, number of variables m=8, number of clauses

Boolean satisfiability (SAT): 

Boolean satisfiability (SAT) A k-SAT formula is a Boolean expression in conjunctive normal form (CNF) (A+B+C)(A+B)(B+C)(A+B+C)(A+C+D) [A=1, B=0, C=0, D=1] is an easily verified satisfying truth assignment T T T T T = TRUE (T+F+F)(F+T)(T+T)(F+F+T)(F+F+T)

Protein Structure: 

Protein Structure

Floorplan of the Approach: 

Floorplan of the Approach

A Critically Unsatisfiable Formula: 

A Critically Unsatisfiable Formula

Parallel FPGA approaches: 

Parallel FPGA approaches

Floorplan of the Approach: 

Floorplan of the Approach

Layers ofVisPad: 

Layers of VisPad Independent of RDAG-128H Dependent on RDAG-128H knowledge

authorStream Live Help