Tech Brief: Using GPUs to speed applications

The idea of harnessing the compute power of a Graphics Processing Unit (think of the video card found in a PC) to significantly speed up software applications by 50 or even 100 times, at low cost, continues to capture the imagination of IT-savvy businesses around the world.

Unlike their CPU counterparts, which are approaching their physical limitations, GPUs have been advancing technologically year on year - thanks to the ever increasing demands of the gaming industry, the requirement for faster frame rates and more realistic images - and today they are capable of performing more than the specific graphics computations for which they were designed.

Plus, they are cheap in comparison to their CPU counterparts: a computational GPU processor (a slightly more advanced, professional version of the GPU found in your games console) is going to cost around £1,000 and provide up to 1 Teraflop of performance.  You simply cannot get similar performance from traditional CPUs without spending thousands and thousands of pounds.

With this in mind, in recent years more and more uses for GPUs have been found - and one of those is the High Performance Compute systems (or supercomputer) environments. Incorporating GPUs into the HPC system environment delivers a unique opportunity - lower costs and higher compute performance from a commodity product.   

However, here is a word of warning for those pioneer organisations: unfortunately, despite GPUs having their roots in games consoles, working with GPUs in an HPC system environment specifically is not all entirely child's-console-play.  Adding the physical hardware - the GPU itself - is relatively easy, but the difficulties arise when organisations want to put the GPU to work. Finance organisations must carefully consider some important steps: 

Firstly, organisations considering GPUs should start with a single GPU (which can be bought from any PC World store) and start using and testing it.  If organisations find they are getting good performance from a single GPU and their software applications require more memory, they should purchase a professional computational GPU (which is essentially the same as a GPU bought from PC World but without the graphics output).  These can be purchased from integrators like OCF.  If organisations still require more performance, they should then consider building a full cluster of GPUs (a HPC system), in partnership with an experienced HPC system integrator. 

More and more software application vendors have come to realise that GPUs provide an extra, powerful resource and have written extensions or plug-ins to their existing applications to take advantage of GPUs where possible.  For ease and simplicity, in the first instance, organisations should try to look for and, use these applications.  Examples already on the market include Adobe Photoshop CS4 and Matlab from The Mathworks.

GPU processors are not designed for general purpose use, so organisations will never be able to run a Microsoft Excel spreadsheet straight off, for example.  Without extensions or plug-ins, most organisations will need to fine tune or, more than likely re-architect existing software applications, to make use of GPUs.  Unfortunately, this can be complex: 

‹ Organisations must examine applications and see where they can gain the best performance from the GPU - this can require a huge amount of time and investment from the organisation.

‹ Organisations must look at the algorithms in the application and see where they can offload the calculations onto the GPU. 

‹ As organisations make demands for applications to run faster and faster, they must equally invest more time and resource into programming the application.

On the flip side, there are actually free Application Programme Interfaces - available from graphic cards manufacturers that want you to use their graphics cards for compute resource - that enable organisations to easily integrate software application code with GPUs, but that is only a first step. 

However, organisations must still know the hardware of the GPU very well (the memory architecture, for example) and understand how their applications map onto the GPU to gain best performance. 

To gain the best performance from a software application on GPUs, memory management is imperative. In particular, memory coalescing and managing the memory usage and the memory transfers from the host system.

Organisations must try and take advantage of the faster memory available on a GPU, all of the time.  Organisations don't want to be moving data from slow memory to fast memory - they must coalesce application data into a ‘GPU memory friendly way' so that it will automatically run on a GPU's faster memory from scratch.  

In the future, as organisations move away from using single GPUs to regular use of GPU clusters within HPC systems, organisations will need to restructure data from ‘coarse grain' MPI type data decomposition to ‘fine grain' on the GPU to run it on multiple GPUs in the cluster nodes. 

Currently, no one has really come up with a way of managing the data decomposition - this could potentially slow the adoption of GPU-based HPC systems.       

Importantly, organisations must keep GPUs busy at all times, in terms of both memory and processes.  The processor will simply not provide the best performance if it is left idle for periods of time. 

Organisations in the finance industry are rightly investigating GPUs for their HPC system environments and they should continue to do so.  However, they must be prepared to invest an equal amount of time both in the GPU and HPC system hardware and into making software applications work effectively on GPUs. 

David Yip is new technologies business development manager at OCF

February 2012

Latest Issue

Download

Issue Archive

Subscribe to our Newsletter

Sign up to receive FREE Banking Technology news alerts straight to your inbox

Latest Whitepaper

Technology-The Key to Engaging Gen-Y Customers

Banks cannot afford to ignore Gen-Y. In a report, Catalysts for Change: The Implications of Gen-Y Consumers for Banks, Deloitte says Gen-Y could become the