Algorithm Acceleration using GPUs, FPGAs and Custom ICs


Over the last few years, Graphics Processing Units (GPUs) have become increasingly flexible and powerful. GPUs are used to drive the display of desktop and laptop computers. Recent GPUs consist of a multitude (up to 240) of simple processors, which operate in lock-step. My group was the first to publish results on the use of GPUs to accelerate VLSI design algorithms. One of the first algorithms we accelerated on the GPU was circuit simulation. A circuit simulator (such as SPICE) is a software tool that is used to simulate the electrical behavior of a VLSI circuit before it is manufactured, in order to ensure that it meets speed and power budgets. Part of our work in this area was done with funding from Nascentric Inc., an Austin, Texas startup. Nascentric's fast circuit simulator was sped up by a further 2.5X as a result of our research. Our software was integrated into Nascentric's product line. Nascentric demonstrated this product at the Design Automation Conference in 2008.

In addition, we have accelerated fault simulation, Boolean Satisfiability, fault table generation as well as statistical static timing analysis (SSTA) on the GPU. We are currently working on an accelerated SAT solution approach on the GPU, as well as a automatic engine to generate GPU code from in-line C code. Other efforts include MIMO decoding on the GPU and radar signal processing on the GPU.

We have worked extensively on FPGA and custom-IC based algorithm accelerators as well. The algorithms we have targeted are SAT, sorting, comparison, signal processing for weather radar, WiMAX decoding, LDPC decoding, sphere decoding for MIMO, logarithm/antilogarithm computation and cryptokey generation.

Publications, patents and artefacts: