P4-DPLL: accelerating SAT solving using switching ASICs

People have been leveraging the capabilities of programmable switches, which are programmable in the data plane and process packets at the line rate, to improve the performance of distributed systems. However, few have explored whether programmable switches can speed up problem-solving. In this paper, we take a first step to explore the feasibility and benefits of this line of research. Specifically, we select the SAT problem, one of the most fundamental problems in computer science, as a case study. Our intuition is that by exploiting the parallel lookup capability of programmable switches, we can substantially speed up the process of checking whether an assignment is a solution to a SAT problem. In particular, we base on the classical DPLL algorithm and design P4-DPLL, which consists of (1) match action tables using TCAM to quickly check assignment satisfiability and find unit variables, and (2) a stack data structure using register and SRAM to efficiently make variable search decisions in the data plane. We implement a prototype of P4-DPLL and evaluate its performance extensively. Results show that P4-DPLL improves the solving time by 101x speedup on 90% quantile of all test cases, compared with a CPU-based DPLL implementation.

[1]  Vladimir Braverman,et al.  Programmable packet scheduling with a single queue , 2021, SIGCOMM.

[2]  Panos Kalnis,et al.  Scaling Distributed Machine Learning with In-Network Aggregation , 2019, NSDI.

[3]  Xin Jin,et al.  Pegasus: Tolerating Skewed Workloads in Distributed Storage with In-Network Coherence Directories , 2020, OSDI.

[4]  Zhenming Liu,et al.  RackSched: A Microsecond-Scale Scheduler for Rack-Scale Computers (Technical Report) , 2020, OSDI.

[5]  Vladimir Braverman,et al.  NetLock: Fast, Centralized Lock Management Using Programmable Switches , 2020, SIGCOMM.

[6]  Yuko Hara-Azumi,et al.  FPGA-Based Hardware/Software Co-Design of a Bio-Inspired SAT Solver , 2020, IEEE Access.

[7]  Vladimir Braverman,et al.  QPipe: quantiles sketch fully in the data plane , 2019, CoNEXT.

[8]  Minlan Yu,et al.  HPCC: high precision congestion control , 2019, SIGCOMM.

[9]  Xin Jin,et al.  Harmonia: Near-Linear Scalability for Replicated Storage with In-Network Conflict Detection , 2019, Proc. VLDB Endow..

[10]  Xiaozhou Li,et al.  DistCache: Provable Load Balancing for Large-Scale Storage Systems with Distributed Caching , 2019, FAST.

[11]  Gergely Pongrácz,et al.  MP-HULA: Multipath Transport Aware Load Balancing Using Programmable Data Planes , 2018, NetCompute@SIGCOMM.

[12]  Walter Willinger,et al.  Sonata: query-driven streaming network telemetry , 2018, SIGCOMM.

[13]  Xiaozhou Li,et al.  NetChain: Scale-Free Sub-RTT Coordination , 2018, NSDI.

[14]  Lakhdar Sais,et al.  Handbook of Parallel Constraint Reasoning , 2018, Springer International Publishing.

[15]  Nate Foster,et al.  NetCache: Balancing Key-Value Stores with Fast In-Network Caching , 2017, SOSP.

[16]  Bo Han,et al.  Network-Assisted Raft Consensus Algorithm , 2017, SIGCOMM Posters and Demos.

[17]  Jacob Nelson,et al.  IncBricks: Toward In-Network Computation with an In-Network Cache , 2017, ASPLOS.

[18]  Xiaozhou Li,et al.  Be Fast, Cheap and in Control with SwitchKV , 2016, NSDI.

[19]  Jennifer Rexford,et al.  HULA: Scalable Load Balancing Using Programmable Data Planes , 2016, SOSR.

[20]  Alberto Griggio,et al.  The MathSAT5 SMT Solver , 2013, TACAS.

[21]  Tsutomu Maruyama,et al.  An Approach for Solving Large SAT Problems on FPGA , 2010, TRETS.

[22]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[23]  Peixin Zhong,et al.  FPGA-based SAT solver architecture with near-zero synthesis and layout overhead , 2000 .

[24]  Joao Marques-Silva,et al.  GRASP-A new search algorithm for satisfiability , 1996, Proceedings of International Conference on Computer Aided Design.

[25]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[26]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.