There’s an interesting use case for GPU computing written up over at EE Times this week. Uri Tal, founder of Rocketick, an Israeli company that provides GPU-accelerated software for electronic design automation (EDA), authored the article and went into some detail about why GPUs are such great computational engines for doing chip simulations.
First, though, he described why EDA applications are not so great when running on CPUs. Most of it centers around the lack of data locality these applications exhibit. CPUs rely heavily on large caches to avoid the considerable latency costs of accessing main memory. But since EDA data sets are too large to fit into cache and the application’s access pattern is somewhat random, memory bandwidth becomes a bottleneck. And since chip designs are getting larger and more complex, a cache-based architecture probably won’t be able to catch up.
Not so for GPUs, which are built with data parallelism in mind and are hooked to graphics memory (GDDR5) that provide higher bandwidth than CPU grade memory. Writes Tal:
GPU’s are perfectly suited for data-parallel algorithms with huge datasets. In the most recently developed GPUs there are more than a thousand processing cores, organized in SIMD groups. All that is required is that you launch several million short-lived independent threads that need not communicate with each other. The memory latency can be perfectly hidden by switching between “waiting” threads to “ready” threads very efficiently. Instead of optimizing for the latency of the single thread, optimization is for throughput – the number of threads that can be processed in specific time duration.
But getting the EDA to take advantage GPUs is not a slam dunk. It rests on being able to parallelize the application such than dependencies between all the threads are minimized. Tal said they had to redesign both the EDA software structure and the underlying algorithms to make that happen.
According to him, the redesign paid off, resulting in chip simulations that ran 10 to 30 times faster. Better yet, the Rocketick software can run on multiple GPUs and will automatically deliver more performance as newer, bigger, and quicker GPUs are rolled out.
Although not mentioned in Tal’s writeup, it’s worth mentioning that NVIDIA uses GPU-accelerated tools to design and verify its own hardware. Back in 2010, at least, NVIDIA was using Agilent software as part of their chip design workflow, employing a small in-house GPU cluster. At the time, the GPU maker was evaluating Rocketick’s offering and the early results looked “promising.”