Alternative Hardware Platforms.- Hardware Platforms.- GPU Architecture and the CUDA Programming Model.- Control Dominated Category.- Accelerating Boolean Satisfiability on a Custom IC.- Accelerating Boolean Satisfiability on an FPGA.- Accelerating Boolean Satisfiability on a Graphics Processing Unit.- Control Plus Data Parallel Applications.- Accelerating statistical static Timing Analysis Using Graphics Processors.- Accelerating Fault Simulation Using Graphics Processors.- Fault Table Generation Using Graphics Processors.- Accelerating Circuit Simulation Using Graphics Processors.- Automated Generation of GPU Code.- Automated Approach for Graphics Processor Based Software Acceleration.- Conclusions.
Single-threaded software applications have ceased to see signi?cant gains in p- formance on a general-purpose CPU, even with further scaling in very large scale integration (VLSI) technology. This is a signi?cant problem for electronic design automation (EDA) applications, since the design complexity of VLSI integrated circuits (ICs) is continuously growing. In this research monograph, we evaluate custom ICs, ?eld-programmable gate arrays (FPGAs), and graphics processors as platforms for accelerating EDA algorithms, instead of the general-purpose sing- threaded CPU. We study applications which are used in key time-consuming steps of the VLSI design ?ow. Further, these applications also have different degrees of inherent parallelism in them. We study both control-dominated EDA applications and control plus data parallel EDA applications. We accelerate these applications on these different hardware platforms. We also present an automated approach for accelerating certain uniprocessor applications on a graphics processor. This monograph compares custom ICs, FPGAs, and graphics processing units (GPUs) as potential platforms to accelerate EDA algorithms. It also provides details of the programming model used for interfacing with the GPUs.
Provides guidelines on whether to use GPUs or FPGAs when accelerating a given EDA algorithm, with validation by a concrete example implemented on both platforms
Demonstrates the acceleration of several popular EDA algorithms on GPUs, with speedups from 30X to 800X
Presents techniques in a way that the reader can use example algorithms presented to determine how best to accelerate their specific EDA algorithm
Discusses an automatic approach to generate GPU code, given regular uniprocessor code