Original URL: http://www.theregister.co.uk/2007/05/08/rapidmind_two/

RapidMind lets old dogs code for Cell and GPGPUs

Same tricks, faster software

By Ashlee Vance

Posted in Servers, 8th May 2007 20:08 GMT

Some people in the software industry say coders will fail miserably at writing multi-threaded applications capable of running on multi-core graphics processors, accelerators and x86 chips. RapidMind couldn't agree more with such cynicism.

The start-up this week released Version 2.0 of its RapidMind Platform. This product lets developers use their comfy single-threaded software writing techniques to craft code for IBM's Cell processor and an oncoming wave of so-called GPGPUs (general purpose GPUs) from Nvidia and ATI/AMD. In theory, RapidMind's technology makes it possible for programmers to enjoy the massive performance gains provided by multi-core chips without having to learn any new tricks. Woof!

"There is a whole generation of programmers that don't have backgrounds in parallel programming," RapidMind CEO Ray DePaul told us. "Instead of going back to school to learn that type of programming and the intricacies of different chip architectures, developers can use our product to take advantage of the new hardware right now."

Multi-threaded software fear mongering has turned into one of the software industry's favorite pastimes and with good reason.

Graphics chip makers such as Nvida and ATI/AMD have started pushing the idea that their many-engined parts can handle far more than just graphics jobs. The vendors have encouraged high performance computing types to write specialized software, which can tap the enormous horsepower present in GPUs. With such software on their side, labs, oil and gas firms, financial companies and others could use GPUs in conjunction with general purpose server chips to accelerate specific tasks.

Along similar lines, makers of FPGAs hope coders will craft specific applications for their products, which can now slot directly into Opteron processor sockets and soon into Xeon sockets as well. And then there's Intel, which recently announced plans for a many-core, programmable chip that will use a version of the x86 instruction set.

Take your pick between the GPUs, FPGAs or the Intel chip. In any case, we're talking about very serious performance gains on some tasks thanks to the multi-core hardware.

The problem, however, is that much of the multi-threaded software expertise needed to get the most out of these products remains locked in the brains of the few.

Giants such as Microsoft and Intel hope to correct this problem by throwing money and tools at software developers, encouraging them to embrace parallel programming techniques where software jobs are spread across multi-core chips.

RapidMind and rival start-up PeakStream - it's all Fast, Peak, Rapid, Quick these days - argue that the multi-threaded training will be too hard and too slow. So, both companies offer software that essentially parallelizes single-threaded code.

With Version 2.0 of RapidMind Platform, RapidMind has placed an emphasis on supporting the Cell chip in addition to existing support for GPGPUs. The company has also stressed its support for both Linux and Windows.

RapidMind likes to claim an edge over the competition via its support for a wide variety of hardware. It's the only start-up that comes to mind, which has spent so much time talking about Cell. Beyond that, DePaul said that RapidMind will gladly turn its focus to FPGAs or even Intel's many-core chip if one of the products takes off.

The start-up also urged that software developers check out its products for today's two and four-core server CPUs.

"You can take RapidMind on one thread that has a bottleneck and still see a speed-up," said DePaul.

Those curious about RapidMind's in and outs might want to know that the company grew out of research done at the University of Waterloo. The company used to be called SeriousHack and now employs close to 20 people.

RapidMind has a free developer edition of its software and sells the full version for $1,500 per socket.

Supported products include the Nvidia GeForce 6000, 7000, 8000 and Quadro cards, along with ATI's x1X00 cards. You can also play with IBM's QS20/30 Cell BE-based blade and the Cell chip in the Playstation when running Yellow Dog Linux. OSes covered include Windows 2000, XP and Vista along with RHEL 4, Fedora Core 4/5 and Yellow Dog Linux 5. The supported compilers are Microsoft Visual C++ 7 or 8 and GCC 4 with Linux. ®