Setting a CAD Speed Record9 Feb, 2012 By: Bill Fane
Do you really need a better graphics card? Bill Fane test-drives SolidWorks performance before and after an NVIDIA Quadro upgrade.
When I set out to evaluate whether upgrading to the NVIDIA Quadro 2000 professional graphics card would significantly improve SolidWorks performance, I knew that I was also addressing a larger question: As an engineering and design software user, do you really need a professional graphics card? Or is it something like a motorcycle that goes 200 mph — an appealing but expensive luxury item, packed with more power than you need on a daily basis? The answer lies in the numbers (both performance and cost), but before we delve into all that, let's review a bit of history.
In the early days, PCs only generated text, not graphics. This was adequate for spreadsheets and memos, but didn't work all that well for CAD. Accordingly, a number of manufacturers developed graphics cards. In their earlier manifestations, these cards served as an interface between the software and the monitor. The software did all the graphics calculations using the computer's CPU.
Ah, yes, the good old days, when you would click on the name of a 7-MB, 2D drawing file — then go for lunch while it opened!
Over the years, however, several things happened. One was that CAD programs developed more and more 3D capabilities. In addition, operating systems and the application programs themselves began to consume more computer resources for background monitoring and other such tasks, and had to display ever-increasing numbers of icons, ribbon menus, and so on. CPU speeds also increased, but as you may have noticed, recently they leveled off at around 3 GHz.
The graphics card developers and CAD software companies have worked out a solution: Current engineering cards are actually a computer within a computer. They contain their own GPU (graphics processing unit) and RAM and support OpenGL and/or DirectX. The CAD program defines the basic 3D model and hands it off to the graphics card. The GPU then does the calculations to determine what should appear on screen as you pan, zoom, and rotate the model. GPU processing can include shading, rendering, and ray-tracing operations, thus leaving the main CPU free to handle other tasks.
The better cards contain multiple GPUs, which can work in parallel on the same problem. At the top of the heap, it becomes viable to do high-quality 3ds Max or Maya animation renderings on your desktop.
Need for Speed
Now let's look at how upgrading to the NVIDIA Quadro 2000 affects the performance of SolidWorks. NVIDIA considers the Quadro 2000 a mid-range card, suitable for most CAD uses including large, but not huge, 3D assembly models. It holds 1 GB of RAM and 192 (!) CUDA parallel-processing cores.
NVIDA's Quadro 2000 is a mid-range workstation GPU for engineers, designers, and animators.
Supplied to me by NVIDIA, the Quadro 2000 replaced a Quadro FX 1700, which was a few years old but still no slouch in the 3D speed department. Before removing it, I performed a speed test so I could compare numbers with the new card.
How do we quantify speed? For vehicles, that's easy. A friend of mine, Tom Mellor, owns a "slightly modified" 1969 Triumph Trident 750cc motorcycle. He wanted to know how fast it would go, so he took it to the Bonneville Salt Flats during the famous Speed Week. His best speed through the time traps was 191 mph. Not bad! Tom is currently helping me to rebuild the engine in my '37 Rolls-Royce. I wonder how fast it will go when we're done…
Unlike the process for computer technology, determining the speed of a vehicle is pretty straightforward, if not death-defying.
When measuring the speed of computers and graphics cards, the process isn't quite as straightforward. First, you must determine what exactly you mean by "speed." Then you'll need some sort of script program to measure performance, given that it is almost impossible for a human to perform the task repeatedly with sufficient consistency to analyze 3D speed. (You also need to get your hands on all the new software and/or hardware that you need to conduct your tests — but that is outside the scope of this article.)
Fortunately, the industry has addressed the challenges for us through an organization called Standard Performance Evaluation Corporation (SPEC). To quote from the introductory paragraph of the SPEC web page:
"The Standard Performance Evaluation Corporation (SPEC) is a non-profit corporation formed to establish, maintain and endorse a standardized set of relevant benchmarks that can be applied to the newest generation of high-performance computers. SPEC develops benchmark suites and also reviews and publishes submitted results from our member organizations and other benchmark licensees."
SPEC has produced a series of benchmarks that evaluate factors such as CPU performance, ability to work as a network server or e-mail server, and so on. I downloaded SPECviewperf 11, one of the tests used by Cadalyst Labs for hardware reviews.
SPECviewperf emulates a variety of graphics-intensive software packages and their typical files. It churns away for a while, then produces a speed value for each application. First, I ran the test on my current setup, and noted the SolidWorks numbers in particular.
No, in the computer world a driver has nothing to do with golf. In this case, it is software that lets your application talk to the graphics card. After installing the new Quadro 2000 card, I downloaded the latest driver from the NVIDIA web site and installed it.
I then ran the SPEC test again. Hey, presto, my SolidWorks performance was at least double what it had been!
A bit of fiddling and exploring revealed that the NVIDIA driver can be extensively configured to suit different applications. To make things easier, the NVIDIA Control Panel includes a drop-down menu of more than 300 applications and version numbers of applications. I picked SolidWorks, ran the SPEC test again, and gained another 20% or so.
Next, I wanted to see what would happen to my SolidWorks performance if the driver settings specified the wrong software, so I ran the test again using the Inventor settings. I lost about 5%. Interesting. For the final test, I ran SPEC again using a non-CAD application setting and lost another 10%.
Lots of model cars, all moving in random directions simultaneously. Now there's a test for your graphics card!
The bottom line is that keeping your graphics card driver up-to-date and using the correct settings for each 3D application can make a noticeable improvement in performance. This doesn't mean that you must change settings when you switch to a different application; other apps will still run on the "wrong" setting, they just may not run at the best possible speed. Most of the time you can leave things set up for the application that you use the most. If you do want to change settings to accommodate a particularly demanding task on another application, it's a simple, fast process.
Up Close and Personal
I had always thought that my NVIDIA Quadro FX 1700 was a pleasantly fast graphics card — until I installed the new NVIDIA Quadro 2000. With the new card, things don't just happen quickly, they happen right now! This is particularly noticeable when working on a large, complex assembly. Note that in this context, size is based on the number and complexity of components, not their dimensions. A dumpster bin is smaller than a watch movement, for example.
When I moved up the scale to higher levels of display realism, I really noticed the difference. A simple shaded mode has always worked reasonably well, but with the new card there was no discernable lag when orbiting a large model or when dragging a sub-assembly into position, even when using the highest level of shadows and reflections. I can work as fast as I can think.
I had similar impressions when working with Inventor. SPECviewperf11 doesn't include Inventor, so I did a bit of manual testing on a fairly large assembly consisting of several thousand instances of more than 800 different parts. Real-time ray tracing was almost four times faster on the Quadro 2000.
So as it turns out, the answer to "Do you really need a professional graphics card for design and engineering?" is "definitely." There is a warning that accompanies this conclusion, however: Not all 3D graphics cards are equal. The fastest engineering card doesn't always work that well for games, and the fastest gaming cards are often real slugs when running 3D engineering applications.
Now comes the crunchy bit, when it's time to take hat in hand and ask management for an upgrade to the graphics card specifications for your department. The good news is that you won't need a very big hat, because the NVIDIA Quadro 2000 only costs about $400. This is a great value, considering the gains in productivity a better card will afford your highly paid staff — and it's a bargain compared with the 800 x 600 16-color graphics card that supported my first AutoCAD station in 1985 at a cost of about $1,000.