Scaling Up Hardware Accelerator Verification using A-QED with Functional Decomposition

Hardware accelerators (HAs) are essential building blocks for fast and energy-efficient computing systems. Accelerator Quick Error Detection (A-QED) is a recent formal technique which uses Bounded Model Checking for pre-silicon verification of HAs. A-QED checks an HA for self-consistency, i.e., whether identical inputs within a sequence of operations always produce the same output. Under modest assumptions, A-QED is both sound and complete. However, as is well-known, large design sizes significantly limit the scalability of formal verification, including A-QED. We overcome this scalability challenge through a new decomposition technique for A-QED, called A-QED with Decomposition $(A-Q E D^{2})$. A-QED 2 systematically decomposes an HA into smaller, functional sub-modules, called sub-accelerators, which are then verified independently using A-QED. We prove completeness of $A-QED^{2} $; in particular, if the full HA under verification contains a bug, then $A-QED^{2}$ ensures detection of that bug during A-QED verification of the corresponding subaccelerators. Results on over 100 (buggy) versions of a wide variety of HAs with millions of logic gates demonstrate the effectiveness and practicality of $A-QED^{2}$.

[1]  Florian Lonsing,et al.  Unlocking the Power of Formal Hardware Verification with CoSA and Symbolic QED: Invited Paper , 2019, 2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[2]  David Lin,et al.  Logic Bug Detection and Localization Using Symbolic Quick Error Detection , 2017, ArXiv.

[3]  Armin Biere,et al.  Bounded Model Checking Using Satisfiability Solving , 2001, Formal Methods Syst. Des..

[4]  Dominik Stoffel,et al.  Symbolic quick error detection using symbolic initial state for pre-silicon verification , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[5]  S. Malik,et al.  Instruction-Level Abstraction (ILA): A Uniform Specification for System-on-Chip (SoC) Verification , 2018, ArXiv.

[6]  Yuan Zhou,et al.  Rosetta: A Realistic High-Level Synthesis Benchmark Suite for Software Programmable FPGAs , 2018, FPGA.

[7]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[8]  Kenneth L. McMillan,et al.  Automated assumption generation for compositional verification , 2007, Formal Methods Syst. Des..

[9]  Rolf Drechsler,et al.  Estimating Functional Coverage in Bounded Model Checking , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[10]  William J. Dally,et al.  Domain-specific hardware accelerators , 2020, Commun. ACM.

[11]  Orna Grumberg,et al.  "Have I written enough Properties?" - A Method of Comparison between Specification and Implementation , 1999, CHARME.

[12]  Brucek Khailany,et al.  Verifying High-Level Latency-Insensitive Designs with Formal Model Checking , 2021, ArXiv.

[13]  Rolf Drechsler,et al.  Advanced verification by automatic property generation , 2009, IET Comput. Digit. Tech..

[14]  Dominik Stoffel,et al.  Gap-free Processor Verification by S2QED and Property Generation , 2020, 2020 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[15]  Corina S. Pasareanu,et al.  Learning Assumptions for Compositional Verification , 2003, TACAS.

[16]  Dominik Stoffel,et al.  Processor Hardware Security Vulnerabilities and their Detection by Unique Program Execution Checking , 2018, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[17]  Daniel Kroening,et al.  CBMC - C Bounded Model Checker - (Competition Contribution) , 2014, TACAS.

[18]  Harry D. Foster Trends in functional verification: A 2014 industry study , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[19]  Gilles Barthe,et al.  Verifying Constant-Time Implementations , 2016, USENIX Security Symposium.

[20]  Rolf Drechsler,et al.  Automatic property generation for the formal verification of bus bridges , 2011, 14th IEEE International Symposium on Design and Diagnostics of Electronic Circuits and Systems.

[21]  Jason Cong,et al.  Accelerator-rich architectures: Opportunities and progresses , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[22]  Ulrich Kühne,et al.  Automated formal verification of processors based on architectural models , 2010, Formal Methods in Computer Aided Design.

[23]  Yun Liang,et al.  COMBA: A comprehensive model-based analysis framework for high level synthesis of real applications , 2017, 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[24]  Gu-Yeon Wei,et al.  A 16nm 25mm2 SoC with a 54.5x Flexibility-Efficiency Range from Dual-Core Arm Cortex-A53 to eFPGA and Cache-Coherent Accelerators , 2019, 2019 Symposium on VLSI Circuits.

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

[26]  Gilles Barthe,et al.  Relational Verification Using Product Programs , 2011, FM.

[27]  Alexander M. Rush,et al.  9.8 A 25mm2 SoC for IoT Devices with 18ms Noise-Robust Speech-to-Text Latency via Bayesian Speech Denoising and Attention-Based Sequence-to-Sequence DNN Speech Recognition in 16nm FinFET , 2021, 2021 IEEE International Solid- State Circuits Conference (ISSCC).

[28]  Wei Zhang,et al.  FlexCL: An analytical performance model for OpenCL workloads on flexible FPGAs , 2017, 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC).

[29]  Jinjun Xiong,et al.  SkyNet: a Hardware-Efficient Method for Object Detection and Tracking on Embedded Systems , 2020, MLSys.

[30]  Luca P. Carloni,et al.  An analysis of accelerator coupling in heterogeneous architectures , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[31]  Kedar S. Namjoshi,et al.  Compositional Reasoning , 2018, Handbook of Model Checking.

[32]  Pedro R. D'Argenio,et al.  Secure information flow by self-composition , 2004, Proceedings. 17th IEEE Computer Security Foundations Workshop, 2004..

[33]  Dawn Xiaodong Song,et al.  BLITZ: Compositional bounded model checking for real-world programs , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[34]  Yun Liang,et al.  Lin-Analyzer: A high-level performance analysis tool for FPGA-based accelerators , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[35]  Jason Cong,et al.  Rapid Cycle-Accurate Simulator for High-Level Synthesis , 2019, FPGA.

[36]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.

[37]  David L. Dill,et al.  Self-Consistency Checking , 1996, FMCAD.

[38]  Ramesh Karri,et al.  NIST Post-Quantum Cryptography- A Hardware Evaluation Study , 2019, IACR Cryptol. ePrint Arch..

[39]  Hiroyuki Tomiyama,et al.  CHStone: A benchmark program suite for practical C-based high-level synthesis , 2008, 2008 IEEE International Symposium on Circuits and Systems.

[40]  Luca P. Carloni,et al.  KAIROS: Incremental Verification in High-Level Synthesis through Latency-Insensitive Design , 2019, 2019 Formal Methods in Computer Aided Design (FMCAD).

[41]  Jason Cong,et al.  A-QED Verification of Hardware Accelerators , 2020, 2020 57th ACM/IEEE Design Automation Conference (DAC).

[42]  Boris Murmann,et al.  CHIMERA: A 0.92 TOPS, 2.2 TOPS/W Edge AI Accelerator with 2 MByte On-Chip Foundry Resistive RAM for Efficient Training and Inference , 2021, 2021 Symposium on VLSI Circuits.

[43]  David Lin,et al.  A structured approach to post-silicon validation and debug using symbolic quick error detection , 2015, 2015 IEEE International Test Conference (ITC).

[44]  Prabhat Mishra,et al.  Functional test generation using design and property decomposition techniques , 2009, TECS.

[45]  Doe Hyun Yoon,et al.  The Design Process for Google's Training Chips: TPUv2 and TPUv3 , 2021, IEEE Micro.

[46]  Jason Cong,et al.  Architecture support for accelerator-rich CMPs , 2012, DAC Design Automation Conference 2012.

[47]  Dominik Stoffel,et al.  Symbolic QED Pre-silicon Verification for Automotive Microcontroller Cores: Industrial Case Study , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[48]  Luca P. Carloni,et al.  Invited: The case for Embedded Scalable Platforms , 2016, 2016 53nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[49]  Sharad Malik,et al.  Lazy Self-composition for Security Verification , 2018, CAV.

[50]  Corina S. Pasareanu,et al.  Assume-guarantee verification of source code with design-level assumptions , 2004, Proceedings. 26th International Conference on Software Engineering.

[51]  Dominik Stoffel,et al.  A Formal Approach for Detecting Vulnerabilities to Transient Execution Attacks in Out-of-Order Processors , 2020, 2020 57th ACM/IEEE Design Automation Conference (DAC).

[52]  Orna Kupferman,et al.  Coverage metrics for temporal logic model checking* , 2006, Formal Methods Syst. Des..

[53]  Jason Cong,et al.  Bandwidth optimization through on-chip memory restructuring for HLS , 2017, 2017 54th ACM/EDAC/IEEE Design Automation Conference (DAC).

[54]  Ranjit Jhala,et al.  Microarchitecture Verification by Compositional Model Checking , 2001, CAV.

[55]  Mark D. Hill,et al.  Accelerator-level parallelism , 2019, Commun. ACM.

[56]  Adam Chlipala,et al.  Kami: a platform for high-level parametric hardware specification and its modular verification , 2017, Proc. ACM Program. Lang..

[57]  Deming Chen,et al.  Hybrid Quick Error Detection: Validation and Debug of SoCs Through High-Level Synthesis , 2019, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[58]  Robert M. Keller,et al.  A Fundamental Tehoerem of Asynchronous Parallel Computation , 1974, Sagamore Computer Conference.

[59]  Jason Cong,et al.  FLASH: Fast, Parallel, and Accurate Simulator for HLS , 2020, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.