Reducing Interpolant Circuit Size by Ad-Hoc Logic Synthesis and - - PowerPoint PPT Presentation

reducing interpolant circuit size by ad hoc logic
SMART_READER_LITE
LIVE PREVIEW

Reducing Interpolant Circuit Size by Ad-Hoc Logic Synthesis and - - PowerPoint PPT Presentation

Reducing Interpolant Circuit Size by Ad-Hoc Logic Synthesis and SAT-Based Weakening Gianpiero Cabodi Paolo Camurati Paolo Pasini Marco Palena Danilo Vendraminetto Politecnico di Torino Torino, Italy 1 Outline l Motivations &


slide-1
SLIDE 1

1

Reducing Interpolant Circuit Size by Ad-Hoc Logic Synthesis and SAT-Based Weakening

Gianpiero Cabodi Paolo Camurati Paolo Pasini Marco Palena Danilo Vendraminetto Politecnico di Torino Torino, Italy

slide-2
SLIDE 2

2

Outline

l Motivations & background

l Craig interpolation in MC => Size bottleneck (>105 gates) l Highly redundant circuits, missing ad hoc reduction

l Contribution

l Ad HOC (fast) logic synthesis (based on known

techniques)

l SAT-based Weakening (and strenthening) with high

compaction potential (strength/time for size)

l Experimental results & Conclusions

slide-3
SLIDE 3

3

Motivations & related works

l Interpolation (ITP) still a major engine in UMC

portfolio [McMillan CAV’03]

l Other ITP usages

l Formula/constraint synthesis in predicate abstr.

l Scalability problem

l ITPs are large and highly redundant

l Previous efforts [Marques-Silva CHARME’05, D’Silva et al.

VMCAI’08, Cabodi et al. FMSD’15, Rollini et al LPAR’13 (PeRIPLO)]

l Proof reduction l Interpolant compaction

slide-4
SLIDE 4

Rk,bwd F

Background: Craig Interpolant for IMG in Unbounded MC

From T T T T To T To+ Unrollk

4

slide-5
SLIDE 5

Interpolant: set view

5

A(x,y) B(y,z)

slide-6
SLIDE 6

Interpolant: set view

6

A(x,y) B(y,z)

I(y)

slide-7
SLIDE 7

7

Craig Interpolant from refutation proof

A B CNF clauses

UNSAT problem (A∧B = 0)

slide-8
SLIDE 8

8

Craig Interpolant from refutation proof

A B

Resolution graph

Null clause

slide-9
SLIDE 9

9

Craig Interpolant from refutation proof

A B

Resolution graph

Null clause

Unsatisfiable core resolution (A ∨ p) (¬p ∨ B) (A ∨ B)

slide-10
SLIDE 10

10

Craig Interpolant from refutation proof

A B

Resolution graph

Null clause

AND-OR circuit

1 I(Y) = Interpolant (A(X,Y),B(Y,Z))

slide-11
SLIDE 11

11

Craig Interpolant from refutation proof

A B

Resolution graph

Null clause

AND-OR circuit

1 I(Y) = Interpolant (A(X,Y),B(Y,Z)) A gate for each resolution node

slide-12
SLIDE 12

12

Redundancy / Compaction

|Interpolant| = O(|proof|) highly redundant => compaction

l Reduce proof

l Recycle-pivots, local transformations, proof restructure

l Combinational logic synthesis

l BDD/SAT-sweeping l Rewriting l Refactoring

l Ad hoc logic synthesis

l Logic synthesis using proof graph l ITE-based decompose & compact

slide-13
SLIDE 13

Contributions

l AD-hoc logic synthesis (rewrite/refactor)

l Implemented/tuned for interpolants l Interpolant strength unchanged l Trade-off speed for optimality

l Compaction by strenghtening/weakening

l Gate Level Abstraction l Proof (core) based l Expensive (SAT needed) l Trade-off strength for size

13

slide-14
SLIDE 14

Circuit graph decomposition

14

y1 yN I 1

slide-15
SLIDE 15

Circuit graph decomposition

15

1

slide-16
SLIDE 16

Circuit graph decomposition

16

1 Macrogates

slide-17
SLIDE 17

Circuit graph decomposition

17

1 Macrogates

slide-18
SLIDE 18

Circuit graph decomposition

18

1 Cluster

slide-19
SLIDE 19

Circuit graph decomposition

19

1 Cut

slide-20
SLIDE 20

Circuit graph decomposition

20

1 Dominators

slide-21
SLIDE 21

d dominates n

Circuit graph decomposition

21

1

d n

slide-22
SLIDE 22

Rewrite: direct ODC removal

22

a

f

y1 yN

slide-23
SLIDE 23

Rewrite: direct ODC removal

23

1 a

g

F(Y,a) = a∧g(Y,a) = a∧g(Y,1)

f

y1 yN

slide-24
SLIDE 24

Rewrite: direct ODC removal

24

a

f

y1 yN 1

slide-25
SLIDE 25

Algorithm

25

DirectOdcSimplify() forall clusters CL find node v ∈ cut(CL) with fanout(v) >1 in CL take u,t ∈ fanout(v) ∩ CL if (domG(t) dominates u) u <= constant // u is redundant

slide-26
SLIDE 26

Rewrite: transitive ODC

26

a

f

y1 yN a

slide-27
SLIDE 27

Rewrite: transitive ODC

27

1

f

y1 yN a

slide-28
SLIDE 28

Refactor: search sharable term

28

a b c d c

slide-29
SLIDE 29

Refactor: search sharable term

29

a b c d c

slide-30
SLIDE 30

Refactor: search sharable term

30

a c b d c

slide-31
SLIDE 31

Refactor: search sharable term

31

a b d c

slide-32
SLIDE 32

Algorithm

32

MacrogateRefactor() forall macrogates G forall nodes v ∈ cut(G) find AND(u,v) ∉ G such that u ∈ cut(G) refactor G using AND(u,v)

slide-33
SLIDE 33

33

Experimental results

l Implementation on PdTrav tool

l HWMCC ’07 to ‘15

l ITPs stored on files from MC runs l Picked 87 instances l experiments also on ITPs from PeRIPLO

(Sharygina’s group, Lugano)

slide-34
SLIDE 34
  • Benchmark set (87 ITPs)
  • Size range: 4·105 – 8,5 ·106 gates
  • Average size: 2 ·106 gates
  • Experimental set-up
  • Time limit: 900 seconds
  • Memory limit: 8 GB

Completed Benchmarks Average compaction rate Average execution time Balance 87 61.31 % 25.27 s ITP Simplify 68 83.06 % 421.06 s No Direct ODC 68 80.83 % 505.89 s No Refactoring 86 69.28 % 84.80 s No Transitive ODC 72 80.93 % 310.46 s ABC 31 94.96 % 568.98 s

Logic synthesis

slide-35
SLIDE 35

Cumulative size

slide-36
SLIDE 36

Cumulative time

slide-37
SLIDE 37

ITP weakening by SAT GLA

l GLA: Gate Level Abstraction

l used here to abstract combinational circuit

l SAT-based abstraction (PBA)

l SAT(I∧B) => UNSAT CORE => abstract

l Given cut var, monotonicity => existential

quantification by constant substitution

l NNF encoding

l monotone w.r.t. all circuit nodes except Pis.

37

slide-38
SLIDE 38

Interpolant weakening

38

I(y) B(y,z)

slide-39
SLIDE 39

Interpolant weakening

39

I(y) B(y,z) IW(y)

slide-40
SLIDE 40

Interpolant weakening

40

I(y) B(y,z)

1

slide-41
SLIDE 41

Interpolant weakening

41

I(y) B(y,z)

1

UNSAT => CORE

slide-42
SLIDE 42

Interpolant weakening

42

I(y) B(y,z)

1

N out of CORE

N

slide-43
SLIDE 43

Interpolant weakening

43

I(y) B(y,z)

1

ABSTRACT

N

slide-44
SLIDE 44

Interpolant weakening

44

I(y,N) B(y,z)

1

EXTRA VARIABLE

N

slide-45
SLIDE 45

Existential quantification

NNF encoding

NNF circuit monotone w.r.t. internal nodes Quantification by constant substitution ∃NI(Y,N) = I(Y,1)

  • 1. I(Y) => INNF(Y)
  • 2. SAT(INNF(Y) ∧ B(Y,Z))
  • 3. INNF => (uns. core, abstract, inject 1) => INNF,weak
  • 4. INNF,weak => Iweak

45

slide-46
SLIDE 46

Interpolant strengthening

46

¬I(y) A(x,y)

Strengthening by weakening complement of interpolant w.r.t. A

slide-47
SLIDE 47
  • Benchmark set (87 circuits)
  • Size range: 4·105 – 8,5 ·106 gates
  • Average size: 2 ·106 gates
  • Experimental set-up
  • Time limit: 3600 seconds
  • Memory limit: 8 GB

Completed Benchmarks Average compaction rate Average execution time A 72 82.24 % 902.33 s AB 63 97.99 % 1495.78 s ABAB 57 99.59 % 1649.79 s B 68 97.53 % 1324.51 s BA 67 98.03 % 1371.30 s BABA 60 99.56 % 1470.84 s

SAT-based weakening

slide-48
SLIDE 48

Cumulative size

slide-49
SLIDE 49

Cumulative time

slide-50
SLIDE 50

Conclusions

l Contributions:

l Adapting logic synthesis for fast/scalable ITP

compaction

l More expensive SAT-based compaction

(weakening/strengthening)

l Evaluation

l Fast synthesis always used l Expensive weakening/strengthening

l Avoid memory explosion (or time not critical) l Strength may impact on quality of result

50

slide-51
SLIDE 51

Thank you!

51