SAT Solving with GPU Accelerated Inprocessing

Since 2013, the leading SAT solvers in the SAT competition all use inprocessing, which unlike preprocessing, interleaves search with simplifications. However, applying inprocessing frequently can still be a bottle neck, i.e., for hard or large formulas. In this work, we introduce the first attempt to parallelize inprocessing on GPU architectures. As memory is a scarce resource in GPUs, we present new space-efficient data structures and devise a data-parallel garbage collector. It runs in parallel on the GPU to reduce memory consumption and improves memory access locality. Our new parallel variable elimination algorithm is twice as fast as previous work. In experiments our new solver ParaFROST solves many benchmarks faster on the GPU than its sequential counterparts.

[1]  Yuanlin Zhang,et al.  Accelerating Boolean Satisfiability (SAT) solving by common subclause elimination , 2018, Artificial Intelligence Review.

[2]  Niklas Sörensson,et al.  An Extensible SAT-solver , 2003, SAT.

[3]  Hidehiko Masuhara,et al.  Massively parallel GPU memory compaction , 2019, ISMM.

[4]  Preprocessing in SAT Solving , 2021 .

[5]  Dragan Bosnacki,et al.  GPUexplore 2.0: Unleashing GPU Explicit-State Model Checking , 2016, FM.

[6]  Armin Biere,et al.  Symbolic Model Checking without BDDs , 1999, TACAS.

[7]  Armin Biere,et al.  Simulating Circuit-Level Simplifications on CNF , 2011, Journal of Automated Reasoning.

[8]  Joao Marques-Silva,et al.  Combinational equivalence checking using satisfiability and recursive learning , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[9]  Ulf Assarsson,et al.  Efficient stream compaction on wide SIMD many-core architectures , 2009, High Performance Graphics.

[10]  Mohammed Moness,et al.  An Efficient Implementation of Ant Colony Optimization on GPU for the Satisfiability Problem , 2015, 2015 23rd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[11]  Norbert Manthey,et al.  Parallel Variable Elimination on CNF Formulas , 2013, KI.

[12]  Fabio Somenzi,et al.  An Incremental Algorithm to Check Satisfiability for Bounded Model Checking , 2005, Electron. Notes Theor. Comput. Sci..

[13]  Dhiraj K. Pradhan,et al.  NiVER: Non Increasing Variable Elimination Resolution for Preprocessing SAT instances , 2004, SAT.

[14]  Robert K. Brayton,et al.  Combinational test generation using satisfiability , 1996, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[15]  Aziza I. Hussein,et al.  An Efficient SAT-Based Test Generation Algorithm with GPU Accelerator , 2018, J. Electron. Test..

[16]  Anton Wijs,et al.  Parallel SAT Simplification on GPU Architectures , 2019, TACAS.

[17]  Rupesh Nasre,et al.  FastCollect: Offloading Generational Garbage Collection to integrated GPUs , 2016, 2016 International Conference on Compliers, Architectures, and Sythesis of Embedded Systems (CASES).

[18]  Mohammed Moness,et al.  A Real-Time Heterogeneous Emulator of a High-Fidelity Utility-Scale Variable-Speed Variable-Pitch Wind Turbine , 2018, IEEE Transactions on Industrial Informatics.

[19]  Armin Biere,et al.  Inprocessing Rules , 2012, IJCAR.

[20]  Armin Biere,et al.  CADICAL at the SAT Race 2019 , 2019 .

[21]  Willem P. A. Ligtenberg,et al.  Efficient reconstruction of biological networks via transitive reduction on general purpose graphics processors , 2012, BMC Bioinformatics.

[22]  Armin Biere P{re,i}cosat@sc'09 Picosat 193 , 2009 .

[23]  Jan Friso Groote,et al.  Term Rewriting on GPUs , 2020, FSEN.

[24]  Anton Wijs,et al.  Multiple Decision Making in Conflict-Driven Clause Learning , 2020, 2020 IEEE 32nd International Conference on Tools with Artificial Intelligence (ICTAI).

[25]  Fabio Somenzi,et al.  Alembic: An Efficient Algorithm for CNF Preprocessing , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[26]  Gilles Audemard,et al.  Predicting Learnt Clauses Quality in Modern SAT Solvers , 2009, IJCAI.

[27]  Chad E. Brown Reducing Higher-Order Theorem Proving to a Sequence of SAT Problems , 2013, Journal of Automated Reasoning.

[28]  Lakhdar Sais,et al.  Recovering and Exploiting Structural Knowledge from CNF Formulas , 2002, CP.

[29]  Mate Soos,et al.  CrystalBall: Gazing in the Black Box of SAT Solving , 2019, SAT.

[30]  Armin Biere Lingeling, Plingeling, PicoSAT and PrecoSAT at SAT Race 2010 , 2010 .

[31]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.

[32]  Aaron R. Bradley,et al.  SAT-Based Model Checking without Unrolling , 2011, VMCAI.

[33]  John Kubiatowicz,et al.  GPUs as an opportunity for offloading garbage collection , 2012, ISMM '12.

[34]  Anton Wijs GPU Accelerated Strong and Branching Bisimilarity Checking , 2015, TACAS.

[35]  Alessandro Dal Palù,et al.  CUD@SAT: SAT solving on GPUs , 2015, J. Exp. Theor. Artif. Intell..

[36]  Armin Biere,et al.  Clause Elimination Procedures for CNF Formulas , 2010, LPAR.

[37]  Anton Wijs,et al.  SIGmA: GPU Accelerated Simplification of SAT Formulas , 2019, IFM.

[38]  Oliver Kullmann,et al.  On a Generalization of Extended Resolution , 1999, Discret. Appl. Math..

[39]  Armin Biere,et al.  Effective Preprocessing in SAT Through Variable and Clause Elimination , 2005, SAT.

[40]  Dragan Bosnacki,et al.  GPU-PRISM: An Extension of PRISM for General Purpose Graphics Processing Units , 2010, 2010 Ninth International Workshop on Parallel and Distributed Methods in Verification, and Second International Workshop on High Performance Computational Systems Biology.