null

Parallel Computing by GPU Utilization

October 7th, 2006

Last month, PeakStream Inc unveiled a very interesting development platform that will utilize the multiprocessor systems we had today. The first version of the platform targets the combination of computational power of CPU + GPU.

PeakStream Logo

A graphical processing unit is well known for its power in floating-point calculations which reach up to 40x more bandwidth than the CPU. For example a Pentium4 3GHz processor was estimated to reach up to 6 Giga Flops per second (GFLOPs), while the more recent Intel’s Core 2 Duo server variant is reaching approximately 24 GFLOPs and the more advance Itanium 2 system is at 45 GFLOPs.

At this point we might think 45 billion operations a second is truly a lot, but the current ATI high-end X1950- XTX GPU processor is at 375 GFLOPs! So perhaps the most powerful processing unit in you PC right now is not your expensive CPU, but your average GPU on your graphic card.

Click Here for Faster Computer!

With all the power available in the GPU, there was a growing interest to harness it over the pass years. This is especially for software developers that is working with a high performance computing applications (HPC). However, previously there is no easy way to actually make use of the massively available computation resources within GPU easily.

Now PeakStream claims that they have come out with this one of a kind software platform that unlocks the full potential of both CPU and GPU combination which might give up to 20x performance increase a software program. The platform can be run on variety of multiprocessing systems, include the x86 multi core CPU. Currently, PeakStream only support ATI R580-based graphics card, but planned to support more GPUs in future releases. However, your code will still run without a GPU, but with no additional performance benefits.

The PeakStream Platform is a set of tools - Application programming interface (API), a virtual machine, JIT compiler, Profiling tools, etc. Using the provided API, a programmer can incorporate it into there own development using existing C or C++ development environment, for example using gcc, VIsual Studio, Eclipes etc. By this way, the programmer does not required to know anything about graphic programming in order to take the advantage of GPU as a coprocessor.

Before a programmer can actually make use of PeakStream Platform, the existing code has to be modified so that the critical data points are converted into 1D or 2D independent arrays that will be automatically parallelized. This is to follow the Stream Programming approach that the PeakStream Platform is adopting. Additional to that the system is providing supports to algorithmic blocks such as random number generators which will probably be used in a lot of HPC applications.

An example code when using PeakStream (taken from PeakStream white paper)

#include < peakstream.h >
using namespace SP;

Arrayf32 dot_product_cxx(const Arrayf32& a, const Arrayf32& b)
{

return sum(a * b, SP_ALL_DIMS);

}

where there is an overloaded operation on PeakStream Array types “a” and “b” and the overloaded function sum.

The above example is obviously a simple example. But from my opinion, rewriting source code in a way of parallelization is not an easy task. If there are many dependent operations, there is no way that these operations can be made parallel. So you may end up restructuring the whole program, rather than just a simple modification. However, for software developers that are just starting to write the source codes, probably it is a good consideration. This is also taking in mind that the software requires such massive computation power from both CPU and GPU. In other hand, for casual software developers, $2000 price tag on a single node might be a bit too high.

Entry Filed under: Stand alone Software

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

October 2006
M T W T F S S
« Sep   Nov »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Most Recent Posts