Never miss a story from Analog/Custom Design. Subscribe for in-depth analysis and articles.
The landscape of computational hardware has undergone a profound transformation over the past few decades. From the humble beginnings of room-sized mainframes to the micro-sized processors of today, each leap forward has brought about innovations that redefined the boundaries of what's possible. Among these transformative technologies, the Graphics Processing Unit (GPU) stands out not just for its original purpose of rendering graphics but also for its potential in other computational domains.
Spectre circuit simulator is one of the tools that require a lot of computations, from a huge size of matrix solving to advanced, sophisticated model evaluations and applying all of these in multiple iterations till the simulator converges to a solution for the circuit at every time point. The heavy lifting of these computations was transformed from single core to multiple cores on the same machine to distributing these computations across multiple machines. Now, it is time to harness the computational power of the GPU for such a job.
Spectre X GPU integrates the huge parallel computation capabilities of GPU with the complex operations of CPU and gets a balanced performance between both computational horses. Not all simulation tasks require parallel computations, and the transfer of the data between the CPU and the GPU can be a bottleneck in the overall latency of the simulator. That’s why a delicate separation of tasks between CPU and GPU is a must to attain the best performance. Learning from our experience in distributed simulation, Spectre X GPU is a new engine that is added to the arsenal of engines we have in the Spectre family to reach new records in simulation performance.
The figure given above shows the circuit performance gain when adding a single GPU to the Spectre engine. The CPU simulation is based on 16 multithreaded simulations for these test cases; 16 threads give a competitive performance for the circuit simulation. Still, by adding a single GPU, you can see that the performance of the simulation was increased by 8X in some cases. In most of these simulations, 8 or 4 threads with a single GPU are enough to get this performance gain.
The new Spectre engine shows the best performance when it deals with large postlayout cases with high accuracy requirements. These types of designs need a huge number of computations that makes Spectre X GPU show its strength. We still expect a speed-up with other types of circuits, but the more consistent performance gain would be with the previous types of designs. The following table shows the performance gain when using Spectre X GPU for the same circuit with different accuracy settings, and it is clear that the more conservative the accuracy requirement, the more gain you can get from the new engine.
Spectre X mode
Performance Gain with Spectre X GPU
Use Spectre X GPU by adding +gpu to your existing simulation command line. Everything else is still compatible with other Spectre engines, so you don’t need to change anything else. Spectre will detect the GPU devices on the machine and will operate on the least loaded GPU in case the machine has multiple GPUs. This use model allows the user to focus on the design itself rather than on tuning the simulator.
Spectre X supports multiple GPU use as well. To enable multiple GPUs, use the option +gpu=# and set the number of GPU you want to use. The use of multiple GPUs is required for cases that need more GPU memory than a single GPU can provide. In addition, very large designs can benefit from more parallel computation that can be obtained by using multiple GPUs.
Spectre X GPU supports job distribution systems, such as LSF. It can detect how many GPUs are assigned by the job management system and uses them automatically. All you need is to use the Spectre command-line argument +gpu and set the GPU resource requirement in the job management system.
Spectre X GPU is the new engine in the Spectre family that allows users to simulate new designs that were either not possible to be simulated or took a lot of time in the past. This new feature opens the door to new capabilities and more advanced design simulations in future.
You may also contact your Cadence support AE for guidance.
For more information on Cadence products and services, visit www.cadence.com.
Spectre Tech Tips is a blog series aimed at exploring the capabilities and potential of Spectre circuit simulator. In addition to providing insight into the useful features and enhancements in Spectre, this series broadcasts the voice of different bloggers and experts, who share their knowledge and experience on all things related to Spectre. Enter your email address in the Subscriptions box and select subscribeUto receive notifications about our latest blog posts.