Xenon vs. Cell

The first public game demo on the PlayStation 3 was Epic Games’ Unreal Engine 3 at Sony’s PS3 press conference.  Tim Sweeney, the founder and UE3 father of Epic, performed the demo and helped shed some light on how multi-threading can work on the PlayStation 3.

According to Tim, a lot of things aren’t appropriate for SPE acceleration in UE3, mainly high-level game logic, artificial intelligence and scripting.  But he adds that “Fortunately these comprise a small percentage of total CPU time on a traditional single-threaded architecture, so dedicating the CPU to those tasks is appropriate, while the SPE's and GPU do their thing." 

So what does Tim Sweeney see the SPEs being used for in UE3?  "With UE3, our focus on SPE acceleration is on physics, animation updates, particle systems, sound; a few other areas are possible but require more experimentation."

Tim’s view on the PPE/SPE split in Cell is far more balanced than most we’ve encountered.  There are many who see the SPEs as utterly useless for executing anything (we’ll get to why in a moment), while there are others who have been talking about doing far too much on SPEs where the general purpose PPE would do much better. 

For the most part, the areas that UE3 uses the Cell’s SPEs for are fairly believable.  For example, sound processing makes a lot of sense for the SPEs given their rather specialized architecture aimed at streaming tasks.  But the one curious item is the focus on using SPEs to accelerate physics calculations, especially given how branch heavy physics calculations generally are. 

Collision detection is a big part of what is commonly referred to as “game physics.”  As the name implies, collision detection simply refers to the game engine determining when two objects collide.  Without collision detection, bullets would never hit your opponents and your character would be able to walk through walls, cars, etc... among other things.

One method of implementing collision detection in a game is through the use of a Binary Search Partitioning (BSP) tree.  BSP trees are created by organizing lists of polygons into a binary tree.  The structure of the tree itself doesn’t matter to this discussion, but the important thing to keep in mind is that to traverse a BSP tree in order to test for a collision between some object and a polygon in the tree you have to perform a lot of comparisons.  You first traverse the tree finding to find the polygon you want to test for a collision against.  Then you have to perform a number of checks to see whether a collision has occurred between the object you’re comparing and the polygon itself.  This process involves a lot of conditional branching, code which likes to be run on a high performance OoO core with a very good branch predictor. 

Unfortunately, the SPEs have no branch prediction, so BSP tree traversal will tie up an SPE for quite a bit of time while not performing very well as each branch condition has to be evaluated before execution can continue.  However it is possible to structure collision detection for execution on the SPEs, but it would require a different approach to the collision detection algorithms than what would be normally implemented on a PC or Xbox 360.

We’re still working on providing examples of how it is actually done, but it’s tough getting access to detailed information at this stage given that a number of NDAs are still in place involving Cell development for the PS3.  Regardless of how it is done, obviously the Epic team found the SPEs to be a good match for their physics code, if structured properly, meaning that the Cell processor isn’t just one general purpose core with 7 others that go unused. 

In fact, if properly structured and coded for SPE acceleration, physics code could very well run faster on the PlayStation 3 than on the Xbox 360 thanks to the more specialized nature of the SPE hardware.  Not to mention that physics acceleration is particularly parallelizable, making it a perfect match for an array of 7 SPEs. 

Microsoft has referred to the Cell’s array of SPEs as a bunch of DSPs useless to game developers.  The fact that the next installment of the Unreal engine will be using the Cell’s SPEs for physics, animation updates, particle systems as well as audio processing means that Microsoft’s definition is a bit off.  While not all developers will follow in Epic’s footsteps, those that wish to remain competitive and get good performance out of the PS3 will have to.

The bottom line is that Sony would not foolishly spend over 75% of their CPU die budget on SPEs to use them for nothing more than fancy DSPs.  Architecting a game engine around Cell and optimizing for SPE acceleration will take more effort than developing for the Xbox 360 or PC, but it can be done.  The question then becomes, will developers do it? 

In Johan’s Quest for More Processing Power series he looked at the developmental limitations of multi-threading, especially as they applied to games.  The end result is that multi-threaded game development takes between 2 and 3 times longer than conventional single-threaded game development, to add additional time in order to restructure elements of your engine to get better performance on the PS3 isn’t going to make the transition any easier on developers. 

Introducing the Xbox 360’s Xenon CPU Does In-Order Matter?
Comments Locked

93 Comments

View All Comments

  • MDme - Friday, June 24, 2005 - link

    now i know what to buy :)
  • SuperStrokey - Friday, June 24, 2005 - link

    lol, thats funny
  • bldckstark - Friday, June 24, 2005 - link

    Having a PS2 and an XBOX I was not even thinking about buying a PS3 since the XBOX kicks the PS2's ace. (IMHO). After reading this article I have much more respect for the PS3 and now I don't have any idea which onw I will buy. My wife may force me to buy the PS3 if the 360 isn't as backward compatible as most want it to be.

    Maybe I will just use my unusually large brain to create a PS360 that will play everything. Oooh, wait, I gotta get a big brain first. Then a big p3nis. Or maybe just a normal one.
  • Furen - Friday, June 24, 2005 - link

    #37: supposedly yes. Since it will have to be through hardcore emulation there will be issues (but of course). It wont be fully transparent like the ps2 but rather you'll have profiles saved on your harddrive which will tell the system how to run the games.
  • SuperStrokey - Friday, June 24, 2005 - link

    I havnt been following the 360 too much (im a self admitted nintendo fanboy), but will it be backward compatible too? I heard it was still up in the air but as PS3 is going to be and revolution is going to be (bigtime) i would assume that 360 will be too right?
  • ZobarStyl - Friday, June 24, 2005 - link

    #32 is right: how many games get released for all 3 console with only minor, subtle differences between them? Most of the time, first party stuff is the only major difference between consoles. Very few 3rd party games are held back from the 'slower' consoles; most are just licensing deals (GTA:SA on PS2, for example). And if you look back, of the first party games lineup, XBox didn't have the most compelling of libraries, in my opinion.
  • yacoub - Friday, June 24, 2005 - link

    imo, the revolution will be a loser in more than just hardware. i can't remember the last time i actually wanted to play any of the exclusive nintendo games. actually, i think for about one day i considered a gamecube for metroid but then i saw it in action at a friend's place and was underwhelmed by the gameplay. forget mario and link, give me splinter cell or gran tourismo or forza or... yeah you get the idea.
  • nserra - Friday, June 24, 2005 - link

    #27

    If you read the article carefully, you will see that since they are "weaker" pipelines, the 48 will perform like 24 "complete" ones.

    I think with this Ati new design, there will be games where the performance will be much better, equal or worst.
    But that’s the price to pay for complete new designs.

    On paper Ati design is much more advance, in fact reminds the VOODOO2 design where there are more than one chip doing things. I think I prefer some very fancy graphics design over a double all easy solution.
  • Taracta - Friday, June 24, 2005 - link

    With 25.5 Gbs of bandwith to memory, is OoO (Out Of Order processing) necessary? Isn't OoO and its ilk bandwith hiding solutions? I have an issue with regards to Anandtech outlook on the SPPs of the CELL processor (I could be wrong). I consider the SPPs to be full fledge Vector Processors and not just fancy implementation of MMX, SSE, Altivec etc, which seems to be Anandtech's outlook. As full fledge Vector Processors they are orders of magnitude more flexible than that and as Vector Processors comparing them to Scalar Processors is erroneous.

    Another thing, RISC won the war! Don't believe, what do you call a processor with a RISC core with a CISC hardware translator around it? CISC? I think not, it's a RISC processor. x86 did win the procesor war but not by beating them but joining them and by extension CISC loss. Just needed to clear that up. The x86 instruction set won but the old x86 CISC architecture loss. The x86 insrtuction set will always win, fortunately for AMD because the Itanium was to have been their death. No way could they have copied the Itanium in this day and age which come to think of it is very unfortunate.

    From you have the processor the runs x86 the best you will always win. Unless you can get a toehold in the market with something else such as LINUX and CELL!
  • CuriousMike - Friday, June 24, 2005 - link

    If it's a 3rd party game, it won't matter (greatly) which platform you pick, because developers will develop to the least-common-denominator.

    In the current generation, about the best one could hope for is slightly higher-res textures and better framerate on XBOX over ps2/gc.

    IMO, pick your platform based on first-party games/series you're looking forward to. Simple as that.

Log in

Don't have an account? Sign up now