As promised last week, I have here some benchmarks that compare the performance of double-precision floating point operations between a PowerMac (2.5 GHz G5), a PlayStation 3 (3.2 GHz Cell) and a Mac Pro (2.66 GHz Xeon). The PowerMac and Mac Pro are running Mac OS X Tiger. The PS3 is running Yellow Dog Linux 5.0. The codes I used are simple, serial and single-threaded. Thus, the numbers below are for a single core only on all the systems. I used a variety of compilers/flags on these different platforms, including some commercial ones. GCC is available for all these systems, IBM XLC (an alpha version) is available for the Cell and Intel’s ICC is available for the Mac Pro. Note that for now, I am only using the PPU on the PS3 for these tests, so I’m really using a fraction of the PS3’s available hardware.
The “Astrophysics Simulation” is based on one of my own research codes. Its essentially a linear, hyperbolic PDE solver with a complicated source-term. Sorry, the source code is not publicly available. The other two codes compute “Pi” using different approaches. Those codes can be found easily on the internet. Now, on with the numbers ..
Compute Pi (Monte Carlo)
Compute Pi (Integral)
Time in seconds. Smaller is better.
Of course, feel free to draw your conclusions. But, here are my thoughts. I won’t talk that much about the Mac Pro. We know very well that the combination of hardware and mature compilers that Intel has to offer today is hard to beat. Between the G5 and the Cell, my results are essentially confirming what Geek Patrol Security found. The PS3 performs at about half of the performance of a high-end PowerMac G5. While this may not sound impressive, recall, I’m only using a fraction of the PS3’s potential since I’m only using the PPU and completely ignoring the 8 SPU’s (UPDATE! See below). Also, note that IBM’s XLC compiler is still in alpha state and it already optimizes 2X better than GCC. Moreover, IBM is working on a special compiler for the Cell, called the Octopiler, which is supposed to be able to optimize regular code to take advantage of the Cell architecture, including the SPU’s. So, there is a lot to look forward to on this front in the near future. Finally, if you consider the low cost of the PS3, even with all these caveats, it still delivers an exceptional “bang-per-buck”. So, if you’re one of those people who invested on the PowerPC architecture maybe for certain very specfic tasks (eg. involving AltiVec etc.), I highly recommend your getting and playing with a PS3.
UPDATE: I just learned the very basics of SPU programming and ran the same tests on a single SPU of my PS3. Crudely, the performance of a single SPU appears to be in the same ballpark as that of a high-end G5 processor. This is quite impressive, especially if you note that the PS3’s Cell has 6 of these available for crunching.
UPDATE II: IBM recently released an alpha version of XL Fortran for the Cell. It appears to work very well on my PS3 running YDL. Its performance on my codes is about 2X faster over Gfortran, which is very impressive. It is worth noting that this Fortran compiler only creates executables for the PPU. You can’t write code for the SPUs using Fortran (yet). More details here: IBM XLF for Cell.