Tao On Twitter





    Sunday, November 23, 2008

    Desktop Supercomputers : The CUDA-enabled EDA (Near) Future

    In my first ever post, Need for Speed (way back in Oct'2007), I proposed that specialized EDA platforms could be built using Nvidia's CUDA technology. Since then, Nvidia's CUDA technology has a steadily increasing list of EDA adopters.

    • February 2008: Gauda uses Nvidia's CUDA platform (and distributed processing) to accelerate OPC by 200x.
    • April 2008: Nascentric announced the availability of a GPU-accelerated spice simulator (OmegaSim GX) using none other than Nvidia's CUDA technology.
    • August 2008: Agilent announced the use of CUDA technology for the acceleration of signal integrity simulations in their ADS (Advanced Design System) Transient Convolution Simulator.
    Is this a flash in the pan or is CUDA-enabled EDA here to stay? Why use CUDA?
    • C-Based SDK allows for easy porting of code to the CUDA platform
    • Ecosystem of tools and applications built on the CUDA platform. Nvidia's doing its part by hosting CUDA-based code design contests. Right now, you can read and download academic papers on the utilization of the CUDA platform for statistical timing analysis and graph algorithms.
    • Cost-effective computation is perhaps the biggest thing going for the CUDA platform. Where else can you get a 100x improvement in runtime for a mere $600?
    Despite these advantages, there are some missing pieces that would hold CUDA back from really taking the EDA world by storm. My wishlist for CUDA is the following:
    • Backward compatibility is key to a low-risk path to adoption. Without it, who's going to risk porting their code base to CUDA hoping that their customers will move to CUDA-enabled platforms? With backward compatibility comes a great hook: "Use our tools on your current platform but you can get a 100x improvement in runtime just by buying a PCI card". Right now, that's not the case. Nascentric, for example, offers OmegaSim and OmegaSim-GX as two separate tools. Wouldn't it be great if the same code could run on both platforms but one runs a whole lot faster because of CUDA?
    • Native support for distributed processing could bump performance up even higher. Graphics processors are built to solve "embarrassingly" parallel problems. It's not really much of a leap to distribute the workload amongst multiple graphics processors. The CUDA pitch (do more with less money) becomes that much sweeter.

    Tags : ,

    3 comments:

    1. Anonymous10:36 PM

      Hi Aditya,
      Colin Warwick from Agilent EEsof EDA here. Our support for CUDA is compatible. ADS uses the GPU if available, and uses the CPU if not. See my article at http://signal-integrity-tips.com/2008/gpu-enabled-computers-speed-up-signal-integrity-simulations/
      Thanks for remarking about Agilent ADS!
      -- Colin

      ReplyDelete
    2. Hello Colin.

      I did not realize that ADS was designed to run on the CPU if there is no CUDA-enabled GPU present. That feature makes life much simpler for your customers. Here's hoping the IC design industry follows your lead...

      ReplyDelete
    3. I hope Xilinx jumps onto this as well. On an average, we spend 3-4 hours for complex designs to just go through Place & Route in the lab using ISE.

      ReplyDelete