A GPU can produce an enormous boost in performance for many scientific computing applications. Since we announced the availability of SNP & Variation Suite’s incorporation of GPUs to dramatically speed up copy number segmentation, we’ve received numerous inquiries on recommendations for what GPU to purchase. Unfortunately the technical terminology and choices can be a bit confusing. In this article I cut through the jargon and give helpful advice on what to consider when choosing a GPU for computational analysis.
Any computing device that supports the OpenCL 1.0 standard can in theory be used to accelerate SVS, but OpenCL is a very young technology that still has quirks on some hardware. The majority of our development and testing has been on NVidia devices and based on our experience, we highly recommend them. If you are buying a NVidia card, there are three main routes you can choose: consumer, professional, or high performance computing.
The consumer cards are those with the GeForce brand. They are very affordable, and we have found them to be as fast as the professional cards. The main downside is that consumer cards have lower build quality and will be more prone to failure or errors. Also, these cards are built for gaming rather than computing, so you should expect very little (if any) technical support from NVidia if you use these for analysis. They can be a good option if you are looking to “test the waters” of GPU computing, but only if you are comfortable configuring and troubleshooting the hardware on your own.
The professional cards are those in the Quadro series. These are expensive, but they are also put through strict quality testing. Quadro cards are built for both graphics and computing, so NVidia can assist with any hardware support issues you may have. Note that the “Quadro FX” and “Quadro NVS” lines are separate from the main “Quadro” line. The “FX” and “NVS” cards are designed for low cost/power and perform poorly for analysis.
NVidia’s high performance computing cards carry the Tesla brand name. These are built solely for computing, so many of these don’t even have a video output. You can expect excellent computing performance from any Tesla card, and they are very well supported. NVidia markets the Tesla cards as a Computing Cluster in a single card. I’d say this is a reasonable claim considering that a Tesla can segment CNV data 10-20 times as fast as a high-end server processor.
The main number that governs performance for GPUs is the number of computing cores. This can vary greatly from one GPU to the next. Many low-power laptop GPUs only have 8 cores, whereas some of AMD’s latest offerings have more than 1,000. For analysis, I’d stay away from anything with less than 100 cores (but of course more is always better). Memory (RAM) is also a concern, but we’ve found that for CNAM anything over 1 gigabyte produces diminishing returns. (Future functionality of SVS however may benefit from more memory – stay tuned.)
Here’s a quick breakdown of some NVidia products available as of April 2011:
|GeForce GTX550Ti||Consumer||192||1 GB – 2 GB||$150-$200|
|GeForce GTX560Ti||Consumer||384||1 GB – 2 GB||$250-$300|
|GeForce GTX580||Consumer||512||1.5 GB||$500|
|Quadro 2000||Professional||192||1 GB||$550|
|Quadro 4000||Professional||256||2 GB||$800|
|Quadro 5000||Professional||352||2.5 GB||$1,800|
|Quadro 6000||Professional||448||6 GB||$3,800|
|Tesla C2050||Computing||448||3 GB||$2,600|
|Tesla C2070||Computing||448||6 GB||$3,500|
I should also point out that cores in a GPU can’t be directly compared to cores in a CPU (or even a different brand of GPU). For example, a single 192 core NVidia GPU will not be as fast as 48 Intel Quad core CPUs (even though they have the same total number of cores). A single GPU core is slow on its own, but the sheer number of cores makes a GPU a far better value for certain highly parallel tasks such as copy number segmentation.
If you are upgrading an existing machine, there are a couple of things to keep in mind. First, the machine will need a PCI Express x16 slot to house the card. For the high end cards, make sure there’s plenty of room since they can be quite large. Secondly, make sure you can power the card. Most high-end GPUs draw too much power to be fed from the PCI-E slot alone, so they will need extra power fed directly from the computer’s power supply. Most servers and workstations have extra cables for this purpose, but some cheaper machines leave them out to cut costs. Check the specifications of the card you are thinking of buying against those of your current machine if you are unsure.
Once you have a machine with a GPU, be sure to update the drivers. GPU computing is a fast moving technology, so even drivers that are a few weeks out of date can cause problems. It’s usually best to download the drivers directly from the GPU manufacturer (NVidia, ATI) rather than rely on drivers from your PC’s manufacturer (Dell, HP, etc…). You should also be aware that most GPUs aren’t compatible with Windows Remote Desktop. If you rely heavily on Remote Desktop, you may need to switch to another remote access technology such as VNC.
Hopefully this guide makes purchasing a GPU easier. Choosing a GPU may seem daunting at first, but getting segmentation results back in hours instead of days is worth the extra cost and effort. …And that’s my 2 SNPs.
I have read this…and it wasn’t helpful enough to answer my question which is nowhere to be addressed. I want to know about the GPU specs and how do they affect parallel programming speed. I have Nvidia GeForce GT 740m and Nvidia GeForce GT 840m (for portability issues I need to design algos on Laptop and finally work on GTX 285). I haven’t started parallel programming but I know it is a must that I have to do…I don’t understand what specs affect the parallel processing speed and what to know when buying/selecting a GPU for parallel computing (specifically CUDA).
GFLOPs, Memory Bandwidth, Clock speed, Memory Clock speed, no. of shader units, no. of texture units, no. of output units, what to consider…how to tell which GPU is better than the other…Can you explain? or write a post discussing this…
No one on internet has answered this question clearly yet.
if you are going to buy a GPU then some few things you have to keep in mind. first, you have to decide that for what purpose you want to GPU according to that select the storage and then keep update yourself with the latest technology is running in the market. so you can go with Nvidia GeForce GTX 1080 Ti.