HySpeed Computing looks at the technology behind GPU computing.
GPUs are rapidly gaining ground in the arena of high performance computing. Here, the parallel computing capabilities of GPUs (graphics processing units), which were previously employed exclusively for graphics rendering, are now being harnessed for general purpose computing. As a result, GPU computing is facilitating impressive speedups in computation time for a range of different applications.
So how can you utilize GPUs to accelerate your processing workflow? GPU computing is a combination of hardware and software. Let’s start by looking at the basic hardware needed to achieve the performance gains of GPU computing. It starts with the graphics card itself:
Is the current GPU in your system capable of performing general computing tasks? In many cases you will be surprised to learn that your existing desktop computer, and in some cases laptop, already have compute-capable GPU devices. If not, you will need to purchase one or more appropriate graphics card(s) or a system configured with the proper graphics card(s). The two main hardware manufacturers for GPU computing hardware are NVIDIA and AMD. Both companies maintain lists of compute-capable devices in their respective Developer websites: NVIDIA; AMD.
In most situations, the best performance is obtained using a dedicated GPU (or GPUs) that is independent of the graphics card utilized for your monitor. This means having extra PCI Express slot(s) in your computer, as well as a power supply that can handle the additional card. However, it is also feasible to utilize a single graphics card for both display purposes and GPU computing, with the limitation that card resources are now divided between different functions. Remember to always check system compatibility if you are adding new hardware.
Generally speaking, better performance is achieved with greater FLOPS, more cores, higher memory, faster clock speeds, and higher memory bandwidth. Nonetheless, the biggest, baddest, most recent GPU is not always the optimal solution for a given problem. There are always tradeoffs between application requirements, system specifications and budget. As a start, consider using a relatively inexpensive card and then moving to more powerful GPU cards once a prototype or proof-of-concept has been established.
Our next post will examine different software options for accelerating geospatial algorithms.