This post was co-authored with Srinivas Kodiyalam from NVIDIA.
Boards and packages are getting extremely complex and large; what used to be considered large with millions of objects is now close to 100s of millions of objects. Traditional rendering on CPUs of such large and complex designs is not scalable for today’s demand. In fact, two years ago, we observed a performance degradation in the rendering functionality for certain big designs. With the increasing complexity of designs, the render time increases and the geometry calculations require about 80% of rendering time.
With 100s of millions of objects to be rendered and manipulated in Cadence® Allegro® PCB Editor and Allegro® Package Designer Plus, it is important to consider the following:
The rendering implemented in Release 17.4-2019 QIR 3 or Hotfix 019 is based on NVIDIA's NV_path_rendering OpenGL extension for rendering PCB shapes, such as ground planes, that can be concave, often with holes and curved edges.
Our Phase 1 efforts target Allegro PCB layout and packaging tools with the following changes:
The following is a sample of the performance improvements obtained from phase 1 efforts:
Here are some rendering image quality improvements from the new GPU engine implementation compared to the old graphics:
The supported GPU architectures include NVIDIA Pascal, Volta, Turing (including RTX and T4), and Ampere GPUs. Some of the GPU skews detected are as follows:
For technical and implementation details, please refer to:
NVIDIA GTC 2021 Conference presentation by Patrick Bernard and Anton Kryukov, “Accelerating PCB Layout Editor Using Modern GPU Architecture for Complex Designs”, Session ID: S31124.