Get a quick overview of the latest and greatest technologies for application acceleration!
The Graphics Processing Unit, GPU, in nowaday’s computers, is not just a device that feeds data to the computer monitor. It’s also a massively parallel computational unit! Driven by the ever increasing hunger for powerful and realistic computer games, todays GPUs have a theoretical computational performance of almost 3 TFlops – and the best of it all, this power can be used much more generically than to just render realistic video sequences on the display. Developments over the last years has opened up the GPUs architecture to support generic calculations, well supported by dedicated programming models like CUDA and OpenCL and efforts from the two major manufacturers Nvidia and ATI/AMD.
GPUs are used as accelerators for the computational-intense parts of the program, while the CPU still runs the sequential code. With a massively parallel architecture of floating point units, a GPU can for the right application easily accelerate the total run time with 10x or more. Recent GPUs also perform well for double precision floating point operations, 500 GFlops and above, which opens up for even a wider range of applications to be relevant for GPU computing.
Solutions for GPU computing
GPUs can be integrated with CPUs in many different ways – what solution is best for a specific situation very much depend on the requirements and the problem to solve:
- The most traditional – the GPU is on a PCIe board in a desktop computer or server
- Computers that can house up to 8 PCIe based GPU units are availabe to form a small GPU cluster
- External GPU cluster that communicates with the CPU over PCIe cable
- Intrestingly, GPUs also start to make their way into the embedded world as computational units, to off load the CPU
Synective offer GPU computing solutions based on commercially available platforms or as tailored systems for embedded applications. Get in touch with us to learn more!