Microsoft's Xbox 360, Sony's PS3 - A Hardware Discussion
by Anand Lal Shimpi & Derek Wilson on June 24, 2005 4:05 AM EST- Posted in
- GPUs
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.
93 Comments
View All Comments
calimero - Wednesday, July 6, 2005 - link
http://arstechnica.com/news.ars/post/20050629-5054...btw Anand article was "full of shit" (sorry but that is the right phrase) and it's not odd that Anand pull it. It's quite embarassing for Anand; someone already told: one thing is to write test of CPU speed and speed of graphics card in games... and another to analyse CPU architecture.
jwix - Tuesday, July 5, 2005 - link
Creathir - the article was reposted on other forums around the net. Here is the story in summary - Sony & Microsoft have both overhyped the processing power of their cpu's by using clever marketing speak. It turns out the processor designs are uneccessarily complicated, inefficient at crunching today's game code, and unlikely to be useful when game code finally becomes fully multi-threaded in the coming years. Why microsoft and sony didn't go with an Intel or AMD design, I don't know. The article speculates that both companies wanted IP rights to the cpu, maybe that's the reason.The GPU's on the other hand look plenty powerful. They should both be relatively equivalent in performance to the R520 and the current 7800 GTX.
Bottom line - the new consoles will be quite powerful compared to the previous generation. However, PC's will still be more powerful, and wil remain the platform of choice for high end gaming. Something I was glad to read as I just built a new pc.
steveyoung123456789 - Friday, December 9, 2011 - link
wow your so smart! faggitcreathir - Saturday, July 2, 2005 - link
jwix:I had read a good portion of the article, but had been pulled away (thought to myself I'll just reread it later) and was upset to find it was gone. I have never seen this here at Anandtech, and Anand has not made a single comment on his blog about it. I suppose some fact was incorrect? Maybe Sony/Microsoft decided they would SUE him over the article? I bet the most logical answer is this, Tim Sweeney saw the article, and even though Anand referenced the "anonymous developer", he had earlier mentioned in his blog he had been waiting for some answers from Tim. I would bet this "outed" his source, much like the LA Times outed their source recently for a Grand Jury. This outing probably was followed by a request by Tim to pull the article. I would have to bet we will see it soon enough, reworked, reworded. Whatever the case, Anand, it was a good article, you should be sure to repost it.
- Creathir
steveyoung123456789 - Friday, December 9, 2011 - link
o someone can read!! yay!linkgoron - Thursday, June 30, 2005 - link
blckgrffn, THIS IS NOT i repeat NOT the article you think it is.blckgrffn - Thursday, June 30, 2005 - link
Yes it is back up! :DNat
jwix - Thursday, June 30, 2005 - link
Last night, around 10:00pm EST, I surfed over to the Anandtech home page to see what was happening. I was greeted by Part II of the article (Xbox 360, Sony PS3 - a hardware discussion). Did anyone else read this article last night. I was only able to read the first 2 pages before the article was pulled off the website. Why would they post it and then pull it so quickly? And why has not been reposted since?The story it told was unbelievable - basically, the floating point processing power of both the Sony and Xbox processor was less than half of your average Pentium 4. Anand went into detail on how and why this was the case. His sources apparently were confidential, but definitely industry insiders (ie...game developers). I wish I could have finished reading the article before it was pulled. Did anyone read the whole article?
ecoumans - Thursday, June 30, 2005 - link
Physics Middleware will be Multithreaded and heavily optimized for Cell's 7 SPE's. This makes life easier for gamedevelopers, and it changes the story about CPU usage... Same story for sound etc.Houdani - Tuesday, June 28, 2005 - link
29: In order to turn off the "sponsored links" go to ABOUT in the top left menu and turn off INTELITEXT.I think this setting is stored in a cookie, so you will need to do this everytime you clear your cookies.