skip to main content
research-article

FPGA-based hardware acceleration for Boolean satisfiability

Published:07 April 2009Publication History
Skip Abstract Section

Abstract

We present an FPGA-based hardware solution to the Boolean satisfiability (SAT) problem, with the main goals of scalability and speedup. In our approach the traversal of the implication graph as well as conflict clause generation are performed in hardware, in parallel. The experimental results and their analysis, along with the performance models are discussed. We show that an order of magnitude improvement in runtime can be obtained over MiniSAT (the best-in-class software based approach) by using a Virtex-4 (XC4VFX140) FPGA device. The resulting system can handle instances with as many as 10K variables and 280K clauses.

References

  1. Abramovici, M., de Sousa, J., and Saab, D. 1999. A massively-parallel easily-scalable satisfiability solver using reconfigurable hardware. In Design Automation Conference. 684--690. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Cook, S. 1971. The complexity of theorem-proving procedures. In Proceedings of the 3rd ACM Symposium Theory of Computing. 151--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Goldberg, E. and Novikov, Y. 2002. BerkMin: A fast and robust SAT solver. In Proceedings of the Design, Automation and Test in Europe (DATE) Conference. 142--149. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Gu, J., Purdom, P., Franco, J., and Wah, B. 1997. Algorithms for the satisfiability (SAT) problem: A survey. In Discrete Math. and Theoretical Computer Science, DIMACS, Rutgers, NJ, 19--151.Google ScholarGoogle Scholar
  5. Gulati, K., Waghmode, M., Khatri, S., and Shi, W. 2008. Efficient, scalable hardware engine for Boolean satisfiability and unsatisfiable core extraction. IET Comput. Digit. Teclin. 2, 3, 214--229.Google ScholarGoogle ScholarCross RefCross Ref
  6. Mencer, O. and Platzner, M. 1999. Dynamic circuit generation for Boolean satisfiability in an object-oriented design environment. In Proceedings of the 32nd Annual Haubiiau International Conference on System Sciences. 3044--3052. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Moskewicz, M., Madigan, C., Zhao, Y., Zhang, L., and Malik, S. 2001. Chaff: Engineering an efficient SAT solver. In Proceedings of the Design Automation Conference. 530--535. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Pagarani, T., Kocan, F., Saab, D., and Abraham, J. 2000. Parallel and scalable architecture for solving Satisfiability on reconfigurable FPGA. In Proceedings of the Custom Integrated Circuit Conference. 147--150.Google ScholarGoogle Scholar
  9. Platzner, M. and Micheli, G. D. 1998. Acceleration of satisfiability algorithms by reconfigurable hardware. In Field-Programmable Logic and Applications, Springer-Verlag, 69--78. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Redekopp, M. and Dandalis, A. 2000. A parallel pipelined SAT solver for FPGAs. In Proceedings of the Field Programmable Logic. Springer-Verlag, 462--468. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Safar, M., El-Kharashi, M., and Salem, A. 2006. FPGA-based SAT solver. In Proceedings of the Canadian Conference on Electrical and Computer Engineering. 1901--1904.Google ScholarGoogle Scholar
  12. Safar, M., Shalan, M., El-Kharashi, M. W., and Salem, A. 2007. Interactive presentation: A shift register based clause evaluator for reconfigurable SAT solver. In Proceedings of the Conference and Exhibition on Design, Automation and Testing Europe (DATE). 153--158. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Silva, M. and Sakallah, J. 1996. GRASP-a new search algorithm for satisfiability. In Proceedings of the International Conference on Computer-Aided Design (ICCAD). 220--227. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Skliarova, I. and Ferrari, A. 2004a. Reconfigurable hardware SAT solvers: A survey of systems. IEEE Trans. Comput. 53, 11, 1449--1461. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Skliarova, I. and Ferrari, A. B. 2004b. A software/reconfigurable hardware SAT solver. IEEE Trans. VLSI Syst. 12, 4, 408--419. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Suyama, T., Yokoo, M., Sawada, H., and Nagoya, A. 2001. Solving satisfiability problems using reconfigurable computing. IEEE Trans. VLSI Syst. 9, 1 (Feb), 109--116. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Zhao, Y., Malik, S., Wang, A., Moskewicz, M., and Madigan, C. 2001. Matching architecture to application via configurable processors: A case study with Boolean Satisfiability problem. In Proceedings of the International Conference on Computer Design (ICCD). 447--452. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Zhong, P., Martonosi, M., Ashar, P., and Malik, S. 1998. Accelerating Boolean Satisfiability with configurable hardware. In FPGAs for Custom Computing Machines, 186--195. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. FPGA-based hardware acceleration for Boolean satisfiability

    Recommendations

    Reviews

    Javier Castillo

    The Boolean satisfiability (SAT) problem is the most important nondeterministic polynomial time (NP) complete problem, since it is key to defining all of the other NP-complete problems. Since other NP-complete problems can be converted to SAT problems in a polynomial amount of time, a SAT solver-such as the one presented in this work-is able to solve not only the SAT problem, but any other NP-complete problem, such as the vertex cover problem, which is fundamental for optimization tasks. For this reason, this work is very relevant. The main contribution of the paper is a scalable SAT solver that is able to solve problems with up to 10K variables and 280K clauses. The system is implemented on a Virtex 2 Pro board-which is a bit old-and shows a 17 times speedup compared to a software approach. The paper also estimates the system's performance when running on a newer Virtex 4 field-programmable gate array (FPGA), but this test was not run on a real system. After presenting related work on SAT solvers, Gulati et al. introduce their system architecture. The paper is an adaptation of the previous work of one of the authors, where the same system was implemented on an application-specific integrated circuit (ASIC). In this FPGA version, the FPGA PowerPC processor is connected to the SAT engine; the PowerPC reads the problem instances from the board's double-data-rate synchronous dynamic random access memory (DDR SDRAM) and sends them to the engine, which collects and combines the results. Due to the length of the SAT problem solved, the authors divide it into smaller subproblems called bins; this is done by an external computer, using a heuristic algorithm. This is one of the major drawbacks of the work, because it renders the system unsuitable for embedded solutions. The transfer of data from the DDR to the SAT engine is not described, and this might be the bottleneck of the system; it might be possible to introduce a direct memory access (DMA) interface that speeds up the system. The authors do not provide information about the software running on the PowerPC processor; Does it run a standalone application or Linux__?__ Also, they do not describe the communication link between the host and the FPGA board; Is it RS232 or Ethernet__?__ To sum up, the architecture description is not complete; it should be extended in future papers. Section 4 presents the SAT engine algorithm. The system is able to solve the SAT problem by using a custom division into bins. The algorithm was used in a previous work and modified to fit the FPGA. The SAT engine tries to satisfy each bin, using stored global assignments. In brief, the algorithm begins by trying to satisfy the first bin; the resultant assignation goes to the next bin and tries to satisfy it. The algorithm continues until it finishes or finds an unsatisfiable bin. When a bin cannot be satisfied, it backtracks and tries another assignation to the variables. The partition into bins is done by using a bandwidth minimization algorithm that is presented in chapter 5. The experimental results show a 17 times speedup, compared to the MiniSAT algorithm running on a Pentium 4 machine, but these results are obtained using a set of formulas that extrapolate the performance from a Virtex 2 to a Virtex 4 FPGA. This performance model is not accurate, since one cannot compare the internal structure of the two FPGAs. It is clear that in a Virtex 4 board, the algorithm will run faster but the estimated performance may be incorrect for some cases. It shouldn't be too difficult to port the system to a Virtex 4 board and run the algorithm. Devoting 30 percent of the paper to justify the projection doesn't seem necessary; those pages could have been used to describe in detail the internal architecture of the system. Online Computing Reviews Service

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Design Automation of Electronic Systems
      ACM Transactions on Design Automation of Electronic Systems  Volume 14, Issue 2
      March 2009
      384 pages
      ISSN:1084-4309
      EISSN:1557-7309
      DOI:10.1145/1497561
      Issue’s Table of Contents

      Copyright © 2009 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 7 April 2009
      • Accepted: 1 November 2008
      • Revised: 1 June 2008
      • Received: 1 September 2007
      Published in todaes Volume 14, Issue 2

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader