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
LanceVance - Friday, June 24, 2005 - link
Excellent article. Definitely the most thorough, informative, well researched article on the PS3/Xbox360.And most importantly, unlike every other article on the subject, it's not strongly biased toward one camp while making comments of substance.
yacoub - Friday, June 24, 2005 - link
I bet the PS3 debuts at a higher price.Also regarding statements made on the Conclusionary page:
--"That being said, it won’t be impossible to get the same level of performance out of the PS3, it will just take more work. In fact, specialized hardware can be significantly faster than general purpose hardware at certain tasks, giving the PS3 the potential to outperform the Xbox 360 in CPU tasks. It has yet to be seen how much work is required to truly exploit that potential however, and it will definitely be a while before we can truly answer that question."--
I find it funny that once again the PlayStation will be the harder system to code games for that take full advantage of its abilities. If trends mimic the past (as they often do) this will lead to a large amount of mediocre games by companies too small to afford the dev time necessary to take real advantage of the PS3's advantages or on deadlines too tight to spend the time doing more.
Furen - Friday, June 24, 2005 - link
It does sound pretty low but (I'm guessing) it's more than enough, I dont think they would have separated the dies unless it didnt lead to a big performance penalty. also, I'm guessing that the 256MB/sec bandwidth between the eDRAM and its processing hardware is 256GB/sec? Microsoft was using that number to inflate their "system bandwidth" total.Woodchuck2000 - Friday, June 24, 2005 - link
And for that matter, 32Mb/s inter-die communications in the Xenos GPU seems low to me:p
Good article though guys!
Furen - Friday, June 24, 2005 - link
Is there any word on the media center extender capabilities on the xbox 360? I think Microsoft mentioned something about that but I'm not sure if that was oficial or not. Just hope they allow us to plug in some video capture device and use it as a dvr eventually.As much as I like sony's playstation, I find it quite boring on the technical side. It seems like they're just throwing everything they can into it but nothing is really that exciting, or useful. Come on, dual-HDMI. I dont see myself having two HDTVs in such close proximity to each other. Gigabit router? Seems like they're desperate to use the extra cpu muscle. I wonder how heavy ethernet traffic will affect cpu usage.
Woodchuck2000 - Friday, June 24, 2005 - link
Surely porting between multi-core PC software and Xenon should be fairly trivial, not fairly Non-trivial as stated in the article...?jotch - Friday, June 24, 2005 - link
I stands for interlaced whilst the P stands for progressive scan. Check out the difference at http://en.wikipedia.org/wiki/720por
http://en.wikipedia.org/wiki/1080i
This should resolve this issue.
AnnihilatorX - Friday, June 24, 2005 - link
1080i = 720p doesn't it? 1080p is the one Xbox 360 doesn't support.These "i"s and "p"s are confusing me
sprockkets - Friday, June 24, 2005 - link
How is 1080i on your tv's? On my 1 year old Mitsubishi native 1080i tv using dvi from the computer at 1080i is basically useless since the text is too small and the image looks like the refresh rate is below 60hz, whereas HDTV broadcasts look fine. Using the other mode of 720x480 looked great.Will HD output from a console be any better than a video card in a computer? Is it just my tv?
Cmon, did you really think nVidia would release something far more advanced for a console than for a video card, or perhaps, more specifically, having it way outperform 6800 ultras in sli?
If you need around a 400w power supply for even non sli setup, what kind of heat and power will these new consoles need anyhow???
Of course I am more interested in how the PS3 will work with Linux more than games hahahahaha, since Sony officially mentioned it.
emmap - Sunday, December 4, 2005 - link
And that's this article, Sony and M$ have missed:it's not the number of megapixels, shader pipelines, CPU / GPU bandwidth, multithreaded or single threaded code which do a great game. It's imagination put in the game, gameplay, artistic art quality, human feeling we get looking at the characters, fun and so on. It's not only mathematics and physics: we don't love a game because it has X millions polygons or run at Y fps, no it's totally different. Just see all the mame fans out there, you'll see that they don't care about the obsolete hardware the game they are playing on, they care about the most important thing about game: ENTERTAINMENT!