I see a lot of questions on what desktop or laptop to purchase for use with SOLIDWORKS. While we may specify a minimum requirement for SOLIDWORKS, often times it’s not straightforward to suggest a specific configuration. This is because SOLIDWORKS can be used in so many different ways and users may use one functionality more than another or one product of SOLIDWORKS more than the other.
Instead of suggesting a hardware configuration for each functionality or product, this post aims to explain each hardware component so that the reader can be make a better judgement when purchasing a machine. This post is focused for consumers. Enterprise users usually have CAD admins or IT decide their hardware since they know how they establishment intends to use SOLIDWORKS.
When purchasing a graphics card, one usually looks at its Graphics Processing Unit, video memory and its output interfaces (HDMI vs DisplayPort). A GPU is capable of performing a huge number of tasks in parallel and for that reason, today’s GPUs are not only for graphics rendering but also for general purpose computing (GPGPU).
Performance on GPUs largely depends on how much power it can use. For example integrated GPUS and AMD’s APUs are made for mobility and portability. The power for these integrated solutions come from the motherboard. The manufacturers of these integrated solutions also need to take into account for cooling solutions and hence cannot have a huge number of GPU cores like a discrete GPU (whose power comes from a dedicated PSU (Power Supply Unit) or from PCI-e bus. In the case of high-end discrete GPUs, you’ll see all high end GPUs gather power from the PSUs. Low end or mid end GPUs may gather power from their PCI-e bus.
A GPU can house thousands of GPU cores. These cores are not the same as CPU cores. CPUs have large number of instruction sets managing every input output of the computer that GPUs cannot do. An individual CPU core might be faster (based on CPU clock speed) and more intelligent than a GPU core but the sheer number GPU cores makes it a fantastic device for massive amount of parallelism that beats down one or more CPUs.
As an example, lets say you have a 1080p monitor and have maximized your SOLIDWORKS window. That’s approximately 1920 x 1080 pixels (or 2, 073, 600 pixels). You can imagine that each visible pixel on the screen is parallel processed at the same time by each individual GPU core. Likewise when you have large assemblies that have millions of vertices, each vertex is processed by each GPUcore in parallel.
In order for the GPU to work on data, like vertices, color, matrices etc etc the data must be resident on the GPU video memory. So we have transform your assembly\part\drawing from disk to system CPU memory and then “upload” or “transfer” the data to the GPU video memory that can be made visible to the GPU for massive parallel processing.
I hope this illustrates the key components to look for when purchasing a GPU.
- Power Supply
- GPU cores
- Video memory
- Display interfaces
The reason why I put power supply on the first place is incase one wants to upgrade. I usually make sure I have enough power supply for me to switch graphics cards later. You may dis-regard this if you intend to use your graphics card for several years without the need for switching.
I think the most important factor in performance is the number of GPU cores since massive parallelism is what GPUs are good for. In general, CAD models are very heavy on the number of vertices and have no limits (unlike in video games, where there is a budget for number of vertices). It is very important to keep your eye out on the “image quality” setting in SOLIDWORKS.
Now if you have really large assembly with hundreds of thousands of components and you intend to open many of such assemblies simultaneously in SOLIDWORKS, you need to have a large enough GPU video memory as well. What happens if you have insufficient GPU memory and still push SOLIDWORKS to keep on loading models? Well your graphics card driver will then start moving data back and forth between your system CPU memory and your GPU memory as a fall back. And when that happens there is a lot of memory thrashing which will bring performance to its knees. There are also chances for TDRs (Timeout Detection & Recovery) which might crash the GPU driver.
If you’re in film production, then you may be working with large frame sizes and you definitely want to look out for graphics card with large memory sizes.
And finally, let’s not forget about your display interfaces…HDMI vs Display port. This is a big topic by itself but it doesn’t really matter in the context of SOLIDWORKS. Let me know in the comments if you want to know more!
So what are our options here? Whats in the market?
Well we have nVidia, AMD and intel in this space. AMD and intel also specialize in integrated graphics solutions, in case you work only on small datasets and you need mobility. In the last two years 2019 and 2020 you have AMD APUs (CPU + GPU on the same die) such as a the Ryzen 5 3400 series, Ryzen 3 and 5 Pro series. On intel’s side, you have the ice-lake series of chipsets released in 2019 and the very soon to be released tiger-lake series of chipset.
nVidia and AMD also have solutions for discrete GPU which allows to use more power and hence maximum performance. The last two generations of graphics cards from nVidia is codenamed Pascal and the RTX series of cards. Mid range cards include Quadro P4000, P4200 or RTX5000. High-end cards include Quadro P6000 or RTX6000. The GPU cores on the nVidia graphics cards are called CUDA cores.
NB: Please check nVidia site for the official technical specification for any updates available made via graphics driver. Below is information as it was at the time of writing this article.
48GB GDDR6 w/ECC
On the AMD side, you have Polaris, VEGA and NAVI based cards that were released in 2019 and 2020. The Radeon PRO WX7100 and Radeon PRO WX9100 are excellent choices. This year we have Navi based cards (RDNA architecture) W5700 and W5500. The GPU cores from AMD are called stream processors.
NB: Please check AMD site for the official technical specification for any updates available made via graphics driver. Below is information as it was at the time of writing this article.
Radeon Pro WX5100
Radeon Pro WX7100
Radeon Pro WX9100
The big question you may have is are AMD stream processors and nVidia’s CUDA cores equivalent? The answer is No. Both vendors use very different technologies and you cannot compare across the vendors but you can gauge performance of graphics cards within the same vendor. In order to gauge performance across vendors, you’d need to perform benchmark with real world datasets.
The questions to ask yourself here are:
- How big of a model are you modelling?
- Are you doing more simulation work?
- Are you doing more photo-realistic renderings?
- How many models do you intend to open and work?
- Do you predominantly work with PDM and manage datasets?
And these answers differ based on your role. I would think that a sales person would need to open a large assembly with realview turned ON to impress his customer. A designer might work a lot 2D sketches. A modeler might work with incremental small models and adding more details. A marketer might want to print huge sheets of photo-realistic rendering.
I would very much appreciate any feedback on this post. If you'd like to see more posts on related topics like CPU or RAM, please let me know as I'd know there is an audience for such topics.