|
RapidMind Automates Programming for Cell, GPU Processors
Published: May 16, 2007
by Timothy Prickett Morgan
Companies looking to boost the performance of certain kinds of numerically intensive applications have been looking eagerly at the prospect of being able to put special co-processors, like the Cell chip from IBM, Sony, and Toshiba, or graphics processors, like those made by nVidia and Advanced Micro Devices, to work, thereby taking advantage of the immense performance these chips offer. Trouble is, coding applications to take advantage of Cell co-processors, GPUs, or even general purpose, multicore processors is not easy.
RapidMind, a Canadian company that was created to commercialize technology created at the University of Waterloo in 2004 and that was originally called Serious Hack, thinks it has the answer to the programming problem for these devices with its new RapidMind Platform version 2.0 development tool. Using this platform, programmers working in C++ keep creating their single-threaded Windows and Linux code the way the always do on their workstations. Then, rather than go through the processor of manually multithreading the application, or writing routines that pass code to a Cell chip or a GPU, the RapidMind environment scans the hardware in the production system where the application will run and figures out how to best parallelize the code and to take the best advantage of the unique features of the hardware the IT department sets up to run the application.
Ray DePaul, president and chief executive officer of RapidMind, says that on certain applications, the parallelization optimizations from RapidMind plus the deployment on Cell co-processors or GPUs can result in a significant speed up for number-crunching applications. This is obviously a huge increase in performance. As part of the launch, DePaul showed off a benchmark using a Black Sholes financial modeling workload running on a workstation from Hewlett-Packard; when the GPU was discovered by the RapidMind tool and allowed to help with the math, the application sped up by a factor of 32.2.
This speed up is not the only reason to use an environment like RapidMind, says DePaul. Hardware independence is. "Applications outlive the processors they initially run on," says DePaul. "You really want to make application decisions independent of hardware decisions, or else you might get stuck on a path you didn't choose."
With RapidMind, you code your C++ application, and RapidMind optimizes it for Cell, or GPUs, or multicore X64 chips (that latter on is in the future), and you go on about your business. If you decide to switch from GPUs to Cell, you take the same code and the same RapidMind environment, recompile the code on the new Cell-augmented machines, and now the app is ported over without trying to translate the GPU optimizations to Cell optimizations by hand.
RapidMind includes a load balancer that sits below the C++ compiler and distributes computing workload to the cores in a Cell chip or to the GPUs in a box. This load balancer also keeps the cores in lockstep on parallelized work, so one core does not stall as it is waiting for results from another core in a Cell or GPU chip. (GPUs have been multicore for a long time now.) RapidMind also includes a data manager that gets processors (CPUs as well as co-processors and GPUs) and the memory they use working in lockstep for much the same reason. There are also logging and diagnostics tools to help application developers spot bottlenecks in the systems and the applications running on them.
Right now, the RapidMind tool only supports deployment on machines with nVidia GeForce 6000, 7000, or 8000 graphics cards, nVidia Quadro cards, or the AMD x1X00 cards. IBM's Cell-based QS20 blades can also be coded using the RapidMind environment, as can Sony's PlayStation 3 game console using TerraSoft's Yellow Dog Linux. DePaul says that RapidMind is prototyping optimizations for multicore X64 processors from AMD and Intel as well. Machines running Windows 2000, XP, or Vista; Yellow Dog Linux 5 (Sony PS3 only); or Red Hat Enterprise Linux 4, Fedora Core 4, or Fedora Core 5 can support code that has been created by the RapidMind environment. Microsoft's Visual C++ 7 or 8 compilers for Windows or the GNU gcc 4 compilers for Linux are supported with the tool.
RapidMind has also announced an influx of investment capital as it brings version 2.0 of its product to market. The company received its initial $1.3 million (Canadian) seed capital from BDC Venture Capital in March 2006, and at the end of April it announced $10 million in Series A venture funding from Ventures West Capital, with EdgeStone Capital Partners and BDC Venture Capital also kicking in some dough.
Post this story to del.icio.us
Post this story to Digg
Post this story to Slashdot
|