Tuesday, August 14, 2007

The trouble with the PS3

Unless you've been living under a rock you must have heard about the PS3 by now. I have had the opportunity to work on the PS3 for the last year and have written some decent software to make PS3 and Cell programming easier. I know first hand how hard it is to get good performance out of the PS3 and what it takes to get frame rates close to the XBox360. The Sony hype engine has finally backed off a bit now that reality has set in and things seem to be getting better for people making PS3 games. There are still a lot of issues that need to be overcome though and I think Sony is still sending the wrong message the developer community. At least they're being helpful now though.

It’s really a good thing that Sony has “fessed-up” about how badly they’ve handled developer support. It says a lot that they are willing to admit that they dropped the ball and are committed to doing a better job in the eyes of developers, studios, and publishers. They started this process a few months back at the PS3 Developer Conference where the keynote was almost entirely an apology to the developers for missing deadlines, delivering inadequate tools, shipping buggy SDKs, and providing extremely poor technical support. The tools, technologies, and insight presented at the conference while superb may have just been too little too late. Even with this "personality change" I am convinced they are still "doing it wrong" if they hope for the PS3 to ever be number one like the PS2. Maybe matching the performance of the 360 is good enough in Sony's eyes. If I put my consumer hat on however I certainly don't see any game out there worth shelling $600 + $50 dollars.

With that said, this statement by Phil Harrison in reference to helping Epic get the Unreal3 engine performing well on the PS3 is extremely troubling:

“We have parachuted in some of our SWAT team of super engineers to help them. Specifically, to optimize for SPUs, which are the point of difference that the Cell Processor has.”

First of all, throwing more programmers at a problem is almost never the correct solution and Phil should know better. Porting existing, non-parallelized architectures to the SPUs should not be considered the proper coarse of action for PS3 games. The approach of coding everything on the PPU and then porting to the SPUs to optimize has unfortunately become the status-quo . This approach will never lead to superior games on the PS3 that live up to the expectations set for the platform. Until addressed (meaning games run roughly 80% on SPUs and 20% on PPU) the true potential of the PS3 (if it really exists) will never be realized. Running 60-70% on the PPU and 30-40% on the SPUs will never result in high fidelity games superior to the 360. The bad news is that porting existing code bases to the platform is near impossible without significant re-architecture for fine grained parallelism. The fact is that you need two different compilers (PPU/SPU), two incompatible instructions sets, and two incompatible sets of intrinsics to build software for a single CPU, with a single main core! Sure, you can argue all day that this is necessary because the architecture of the Cell is so radically different and talk about possibilities for optimal parallel execution across the 5 (not 6, not 8 that were promised) SPUs. This is extremely challenging, expensive, and not something a studio really wants to be spending money on. When you can make an excellent game on an XBox 360 for a fraction of the development cost why would you ever lead on the PS3? The answer is, you wouldn't and extremely few studios have. You build the game for the 360 ship it and the port to the PS3 and do the best you can. This sucks for everyone; Sony most of all. Its sucks for the consumer because they get crappy ports on the PS3 (and few at that). It sucks for developers because it costs a lot of money and the return on investment isn't exactly huge given the current PS3 install base. Most of all it sucks for Sony... how many billions have they sunk into the PS3?

Sony needs to stop openly promoting this as the way to get PS3 performance. The SPUs are not a silver bullet and to use them properly in the context of something as complex as a game is a tremendous effort. Instead, Sony needs to find a way deliver a modern development environment that makes PS3 development easy, cost effective, and feasible in a timely manner. This is what Microsoft did with the XBox 360 and I can attest first hand that it is a true pleasure working on that platform and the end results (the games) are amazing.

I think that its still too soon to call the PS3 and Cell a failure but until we get better tools from Sony I just don’t see why any company would go out of their way to run on PS3. Again Epic is a great example of company of top notch people who focused on the PC and Xbox360. I sincerely doubt this was an accident.

I also take issue with the allusion (and illusion) that there is a magical SWAT Team of experts ready to come out and make your game rock on the PS3. I know the Developer Relations and R&D guys in the U.S. They are wonderful people and very knowledgeable, but they are in the same boat as the rest of the developer community… they get documentation and SDKs at the same time as the rest of us when they are released from Sony Japan. I'm not criticizing Sony's process (they can do whatever they like), but at the same time I don't think its fair to say there is a team of experts ready to bail you out. In all honesty I think it is fair to say that the people on my team know almost as much as the SWAT Team about the PS3 (not to imply we know everything about the PS3, just that we know about as much as they do since we have access to the same materials).

The Developer Relation and R&D guys, when not helping customers, generally build examples, sample code, and do research projects. In other words, they aren’t building games. It’s an important role they serve, but I question whether they can really be the SWAT Team/Experts for middleware and game developers.

For the record, the guys that are truly intimate with the PS3 are the first party developers at Sony World Wide Studios. These are the guys that ONLY have to worry about the PS3 so they have the time and budget to build what I’ll call “proper” PS3 tools, technologies and games. I don’t think most developers have that luxury.

Even with the recent positive changes with regards to how Sony is treating the PS3 developer community, there is no changing the fact that the Cell is still extremely difficult to program efficiently and the RSX (GPU) is underpowered making optimal Cell programming that more important. The GPU was added when it was realized that the Cell wasn’t going to cut it on its own. Originally it was thought that a GPU wasn’t needed at all. Many people (including myself) agree that the end result is a major step back in modern architecture where more and more work is being offloaded to the GPUs. Having the majority of work run on the Cell coupled with the difficulties with Cell programming appears to have created a tremendous barrier for budget conscious studios and publishers when it comes to leading on the PS3… something Sony badly wants. True, there are exceptions, but in general this seems to be the case. Just go to GameStop and you’ll see the end result… very few games for the PS3, even fewer exclusive PS3 games.

It is my opinion that this situation is not likely to change until Sony provides the desperately needed compiler technology, documentation, runtime system, and higher level SDKs needed to do proper PS3 development. The underpowered GPU really can’t be fixed since it’s a hardware limitation issue. Sony, IBM, or some 3rd party is going to have to deliver proper compiler technology and runtime support that abstracts away the SPUs and PPU, handles all of the low level DMA transfers , program segmentation and code swapping, scheduling, software caching, synchronization, GPU offloading (to SPUs), SPU shader execution, etc... Until this kind of enabling technology is stable and made available to the developer community I have grave
concerns about the moderate to long term success of the PS3 (no matter what the analysts say).

In simplest terms, until the PS3 is tamed I think it’s unlikely we will see the kinds of games that have been promised. At best we will see games equal to the quality of the 360 as the current trend in optimizing by porting to SPUs continues. I don’t think this model is sustainable or worth it long term when considering what the consumer wants.

For more information of how the PS3 development tools need to improve you might want to check this out: http://researchweb.watson.ibm.com/journal/sj/451/eichenberger.html

24 comments:

Unknown said...

What published Game Titles have you been credited for?

Why is it that Insomniac/Naughty Dog/Incognito/Ubisoft/Epic/ Can deliver on HD Stable FrameratePs3 games?

Outside the illusion of all of the tech talk, You sound completely ignorant. There are always new grounds to break when using new technology. Your article here is the same exact thing lazy developers were saying when the PS2 came around.

Anonymous said...

Hi!

Cell is developed with the the future in mind. Perhaps Cell might not exactly
fit you today, since I see you struggle within a lot of things, i.e. laying
out your data in parallel and/or fiddling around with the architecture.
Parallelism is the cornerstone for future high-fidelity gaming. You have to do
it, there is no way to start gently!

Secondly. The world is not only about money and/or how fast you can deliver. If
this is your "only" argument, then you will neglect all those giants having
paved the way for all the great technology to exits!

Sony has gone a risk in creating Cell. But this is a necessity if you want to
push the envelope! And there are almost always some profiteer from someone else
risks! As the (gaming) parallelism-community grows, Cell will even gain more
momentum.

If you only argue for today, I will give you some points. However, the future
cannot be build within a spot in time.

Your arguments like 'extremely difficult to program' etc. are your own. Real
developers are challenged by Cell, because they can estimate the benefits and
they don't have problems using another compiler. Come on!

It is somewhat more expensive to develop for Cell, initially. But it will pay
off in the (short) future. There are now many studios producing great
titles for the PS3 and their investments will pay-off (exponentially) over
time.

The PS4 is far away, but it will come! Today it's the best time (the cheapest
way) to invest in Cell. I expect the PS4 to consits of two to four Cell2
processors each having 32 SPUs (see the IBM roadmap for a Cell in 2010).

Well, if you ain't got no money to develop for Cell, it's not Cell's fault.
The architecture is very promising.

And at least, Sony is also learning how to do things right. Treating Cell the
right way is very challenging. You will never catch up!

Don't regret, go for it!


Ron
- scientific computing

Anonymous said...

0 Comments? That's sad as this was a great read. I say, you gauge a product's financial health by paying closest attention to its comparatively silent denominators.

In this case, the paid viral marketers and consumer acolytes are trumped by the growing dissension among so many developers leading on the PS3.

I've made a good deal of money these past 11 months listening to the complaints of developers. And it's true, software IS the only path to success for a console. Nothing else matters at all. And if there are constraints on the flow of software, even the most inspired piece of hardware will fail.

You've further convinced me that the so-called "console wars" will undoubtedly be a two-pony race for the foreseeable future. Thanks again for such an illuminating read and I wish you good luck in your endeavors.

Anonymous said...

I'm Phil Harrison, and you don't know wtf your talking about. Ps3 games are all better accross the board compared to thier "crashboxsucks60" competitors. You just don't understand the vision of Ken Kutaragi!

Anonymous said...

ps3 fanboys now stick to the line of "cell wasn't all it was cracked up to be at launch...but in the future cell will be everything because of all the potential."

I don't belive that is (entirely) true. Cell was hard to program for at launch. Its hard to program for now. All the clever programming in the world cannot overcome certain hardware limitations.

Lastly, sony wanted to one-up the 360 by offering a more technologically superior system. Sony sacrificed developer support, price, and time in order to list better hardware stats than the 360.

They're trying to turn things around, but the hole they have dug is deep.

Anonymous said...

@ Ron
"Secondly. The world is not only about money and/or how fast you can deliver."

What planet are you from? The world revolves around nothing else.

In the gaming world? Even more so. Every game developer worries about two things. Release date and budget constraints. The Ps3 lends itself to pushing both time and money constraints.

That's why developers choose the 360 over the ps3. It takes less time and money to create the same game. Maybe the ps3 does have amazing potential. But the price is too high for many developers to unlock that potential.

If money and time weren't a factor, maybe the ps3 would be on top. When that day comes, let me know.

Jay Lundgreen said...

This was a great article and was very insightful. I can't believe it has only six comments on it. I also can't believe the public backlash that always seems to accompany this kind of talk from people within the development community.

Back when everyone talked about how much better the original Xbox was than the PS2, in terms of power and ease of development, there was no backlash since the PS2 was totally unstoppable, sales wise. Nothing could touch it. It was the worldwide gaming platform of choice, period, and the term "Playstation" was synonymous with video games. But now that the 360 is beating the PS3 it seems that this kind of talk is no longer tolerated.

When the 360 was unveiled at E3 2005 all Sony could say was how pathetic and underpowered it was. The PS3 was touted as TWICE as powerful as the 360 and the PRE-RENDERED footage of Killzone 2 was EMPAHTICALLY pointed to as an example of REAL-TIME PS3 graphics by every Sony executive accross the board. A year later when the 360 was already out and doing pretty good with the release of Gears of War eminent, the PS3 price bomb was dropped by Sony at E3 2006. Fast forward to now. The PS3 is just a few weeks away from being a year old and look at how different reality is from what Sony has been saying. The folks at Microsoft (love 'em or hate 'em) were right all along. The symetrical architecture of the CPU design, the unified shader architecture of the GPU, the eDram on the GPU, and the universal memory architecture of the system all comes together to form a piece of hardware that is very powerful. But more importantly, it's accessible to programers. Talk up the Cell all you want, it's power is not practically accessible. Every studio that is a PS3 supporter, like Factor 5 and Insomniac all talk up the cell as amazing, but they also always say how little of the cell they are using. If you read between the lines, why aren't they using it? It's just not cost effective.

It's been a year and we know a lot more now, about how these consoles were developed. Microsoft had less memeory in mind, but they talked to developers like Bethesda and Epic and they both made strong pitches to Microsoft for more memory. Microsoft listened and doubled the RAM plus made it universally accessible by the GPU and CPU. Sony on the other hand had to be convinced to even include a GPU!

People talk about the PS3 problems a lot, because that is human nature and the media. No one stops to watch a train go by, but if the train wrecks, EVERYONE stops to behold the horrible carnage. That's all this is. The cosole market DOMINATOR from the last console war is now losing the console war. It is a fall from grace. So people like to talk about it and analyze it. So if you are a PS3 supporter, that's fine, but control your temper and form a well thought out argument and this whole discussion can be of a lot more benefit than it is with the rampant PS3 fanboyism.

Anonymous said...

Hmm?

Epic is supporting the PS3 as much as they are supporting the 360. Mark Rein said lots of good things about the PS3.

Unreal Tournament already runs on the PS3, and looks as good as Gears of War.

Also as far AFAIK, Sony is already helping developers to make game development easier.

I dont see Sony forcing developers do thinbghs the hard way. Sony is trying to make developers work better with the SPU's and find solutions to the difficulties due to the inexperience with such architectures.

And it is natural that Sony is targeting the SPU's and point towards them. The Cell is designed to work that way.

How can you get good results if you are trying to do things that dont work well on Cell? How is that going to make game development easier and how are you going to get the PS3 up to the levels or better levels than 360?

There are developers who are already doing great things even with ports. A recent example is COD4.

According to some recent reports it runs at 60fps on the PS3 with the same visual quality as the 360. Actually there was even a site that quoted a dev saying that the PS3 even looks slightly better in some areas than the 360. Ofcourse I ll wait for confirmation on the last part but again you get the point.

There are even more examples I can mention and it is quite obvious that what developers need is experience, and Sony will provide the necessarry tools and information as the game development and research gathers data, feedback and solutions.

Recently more games emerge showing PS3's capabilities from both third party and 1st/2nd party developers.

I dont know why there is such a gloom and doom, but considering that PS3 is less than a year released, and has a few aspects that are new thus harder for the developers, PS3 is doing well and is recovering faster than the PS2.

PS2 was in a far worse shape in terms of development in 2000, with almost non existent tools, completely different architecture than what devs had before (unlike the PS3) and even Dreamcast ports looked worse on the PS2 and better on Sega's console. Remember DOA2? Echo the Dolphin? PS2's initial games with eye popping jaggies and super blurry textures?

Yet it was a matter of time until developers were showing mindblowing stuff. Like DMC1 and GT3 were some of the games that showed the console's real capabilities.

Both 360 and PS3 have their ups and downs and I would be a happy consumer once I own both

Dave Asbell said...

Sony: Gaming unit losses to be worse than anticipated

Anonymous said...

All Intel, AMD and Nvidia prototypes for the next-next-generation are more complex architecturally than Cell and Ps3, so I guess Ps3 problem is it is too ahead of its time.

When all the bases of gamming and software development change in the near future, we are gonna need very smart development tools capable of allowing developers a very high level of abstraction and productivity because, like you said, most don't have time or money to scratch the metal for that last drop of processing cycle.

I think this touches another problem, the unified console architecture. Having multiple vendors, each with their own unique hardware and software solutions will become turn into a nightmare developing games even for PC.
Everyone could greatly benefit from a consortium where some standards for gamming development that could be used in consoles as well and allow higher abstraction tools to be created and used in all platforms independent of hardware.
That would lower the complexity and cost of high-end development(and even such standardization could spawn better tools and boost game development for non-developers endevours)

Anonymous said...

> @ Ron
> "Secondly. The world is not only about money and/or how fast you can
> deliver."
>
> What planet are you from? The world revolves around nothing else.

Yes, and planet earth is a disk. You're dead wrong, but you might never
realize it. Well, no problem. We also need people selling the stuff. ;)

Let me say the following; Most of our technology is build from only a few
individuals out there. That you can argue this way, today, is pure luxury.
Without those individuals nothing would turn for you.

> In the gaming world? Even more so. Every game developer worries about two
> things. Release date and budget constraints.

And those can't be met on PS3? ...

> The Ps3 lends itself to pushing both time and money constraints.

... Then what does Insomniac, Inc. and Naughty Dogs, Inc. do, didn't they
met there targets? You are proven wrong here.

> That's why developers choose the 360 over the ps3. It takes less time and
> money to create the same game.

Initially, right. This might turn.

> Maybe the ps3 does have amazing potential. But the price is too high for
> many developers to unlock that potential.

Nope. It's not the price. It's the way you will think about it. You simply
have to sit down and use you your brain and not expensive tools, initially!

> If money and time weren't a factor, maybe the ps3 would be on top.

You get me wrong here; I have written "...is not only about money...".

> When that day comes, let me know.

Man, you are too fast about a lot of things here.


Ron
- scientific computing

Dave Asbell said...

Ron,
I think you might want to do a little more research.

Specifically, you mentioned Naughty Dog and Insomniac. From their respective websites...

"In 2001 Naughty Dog became a wholly owned subsidiary of Sony Computer Entertainment, publisher of the Crash series, and creators of the Psone, PlayStation2, PSP and the much anticipated PS3. You might think that this has tamed us… but you’d be wrong."

So yeah, Sony is making games for the PS3. No surprise there right? As I said, Sony World Wide Studios have the luxury of spending all of their time building technology from the ground up for the PS3. In a way, you've reiterated my point. However, most studios don't have the ability to develop exclusively for the PS3...

But Insomniac does... and here's why...

"All of Insomniac Games’ titles have been developed exclusively for PS one, the PlayStation 2, and the PlayStation 3, the world’s most popular videogame consoles. Insomniac Games has produced three of PlayStation’s most recognizable franchises: Resistance: Fall of Man, Ratchet & Clank and the first three Spyro the Dragon games."

So what does this mean? Well once again you are emphasizing the points I made earlier. If all you have to do is make games for one console, then you have plenty of time to develop your technology for that platform from the ground up. You don't have to worry about Wii, you don't have to worry about 360, you don't have to worry about PC. In essence you get to spend your entire production and development cycle on one platform.

Both companies publish games exclusively for Sony so they aren't as constrained by time and money as other studios. Sony lost close to 3 billion dollars in 2007 from the game division.

I appreciate your comments, but these two particular companies are probably not the best examples to illustrate your points.

So in summary, Naughty Dog as part of Sony World Wide Studios and Insomnic as an exclusive partner develop incredible games for Sony consoles. They are fantastic game studios and I don't have a single negative thing to say about them. However, I don't think they are representative of the greater development community given their exclusive relationships with Sony.

-Dave

Anonymous said...

Very good article indeed. I'm personally enjoying the PS3, but reserve all 3rd party games for my 360. Which leads to my question, if the 360's architecture is so much better than the PS3's, why aren't the games looking leaps and bounds better than on PS3?

All ports have really lacked are a little lighting here or there, and little dips in framerates. If the 360 is so much better and the programming on PS3 is so complicated, how are developers making the games about equal?

I think the PS3 will be a good thing in the long run, as it will change insight for the future.

Dave Asbell said...

Another great article about programming the PS3. Mike is an authority however many programmers may disagree with him ;-)

Mike on Cell/PS3 programming

Anonymous said...

Hi Dave!

Dave Asbell wrote:
> Ron,
> I think you might want to do a little more research.
>
> Specifically, you mentioned Naughty Dog and Insomniac. From their respective
> websites...

> "In 2001 Naughty Dog became a wholly owned subsidiary of Sony Computer
> Entertainment, publisher of the Crash series, and creators of the Psone,
> PlayStation2, PSP and the much anticipated PS3. You might think that this
> has tamed us… but you’d be wrong."

But whats the problem? It works! Naughty Dog has produced a great game from
scratch - Uncharted. Now they can use their engine/assets to produce even
better games. And btw. big budget <=/=> a great game.

> So yeah, Sony is making games for the PS3. No surprise there right? As I
> said, Sony World Wide Studios have the luxury of spending all of their
> time building technology from the ground up for the PS3.

They don't have that luxury. They are building a strong basis for game
development on PS3. And that cost a lot money, yes.

> If all you have to do is make games for one console,
> then you have plenty of time to develop your technology for that platform
> from the ground up.
> You don't have to worry about Wii, you don't have
> to worry about 360, you don't have to worry about PC. In essence you
> get to spend your entire production and development cycle on one platform.

Yes, but you have to make a choice. If you want to support all three
platforms then you have to cope with their specification. You cannot blame
the PS3 (or the Cell architecture) simply because your (PC or 360) code does
not conform to their specification. If you cannot effort development on PS3
(under the current situation) then you have to make another choice.

> Both companies publish games exclusively for Sony so they aren't as
> constrained by time and money as other studios.

What about CoD4? It runs on the PC, 360 and PS3 as well - in 1080p@60Hz.

> Sony lost close to 3 billion dollars in 2007 from the game division.

It's an long term investment. And you know that.

> I appreciate your comments, but these two particular companies are
> probably not the best examples to illustrate your points.

> So in summary, Naughty Dog as part of Sony World Wide Studios and
> Insomnic as an exclusive partner develop incredible games for Sony
> consoles. They are fantastic game studios and I don't have a single
> negative thing to say about them. However, I don't think they are
> representative of the greater development community given their
> exclusive relationships with Sony.
>
> -Dave

The PS3 is a bit challenging for novices, ok. But hey, it's not rocket
science! The Cell processors is a major leap forward. The problem is simply
that 80% of the game developers have no glue about parallel programming, yet.
But they have to learn it, no matter what happens. It's the only way to
scale into the future. If you don't want to do it, then you have to wait
for the right tools to come.


Ron
- scientific computing

Dave Asbell said...

So, I don't think I mentioned this above, but I actually love programming the PS3. Its challenging, exciting and fun. It makes you think in new and creative ways... and if you do, it rewards you with excellent performance. Parallel programming is indeed hard and in the past few years developers have become educated about it by using the XBox360 and modern multi-core PCs. The thing these platforms have in common however is that all of the processors are the same and have unified access to memory. The Cell however is different...

I found this on Wikipedia...

"The Cell architecture includes a novel memory coherence architecture for which IBM received many patents. The architecture emphasizes efficiency/watt, prioritizes bandwidth over latency, and favors peak computational throughput over simplicity of program code. For these reasons, Cell is widely regarded as a challenging environment for software development.[5] IBM provides a comprehensive Linux-based Cell development platform to assist developers in confronting these challenges.[6] Software adoption remains a key issue in whether Cell ultimately delivers on its performance potential. Despite those challenges, research has indicated that Cell excels at several types of scientific computation.[7]"

It is NOT a PC by any stretch of the imagination and I agree that it should not be approached as such. You have to be careful using software engineering practices (OO, abstraction, virtual functions, branching, etc...) because the architecture doesn't support those concepts well. Instead you need to use things like lock-free synchronization primitives, branchless algorithms, data decomposition instead of functional decomposition and so forth. That not to say its BAD. Its different.

It takes a lot of time and energy to program optimally because it's so different from what -most- programmers are used to. You can't just sit down and program the Cell like any other processor. You really don't want to program it in C++ if you can avoid it and you don't want to build lots of object oriented hierarchies of classes. These things lead to poor performance and difficulty in leveraging the SPUs.

On the other hand I do need to leverage parallel programming concepts. Just not in C++ and without much abstraction. In some ways you have to take a 15 year step backwards if you want to program it properly. To get optimal performance you must program it using SPU/PPU intrinsics which are essentially compiler macros for assembly instructions.

I think its fair to say that not every game developer wants to sit down and master this kind of platform. Some developers just want to make a great game without having to worry so much about the underlying hardware. Ok, so these "lazy" (as someone said) developers can go program the 360 and PC's right? They aren't console developers. My point is that that's exactly what appears to be happening. A few guys on a team are responsible for porting the stuff written by the majority of the other programmers. Porting to the PS3 is done after the fact. Yes, there are exceptions. No, this isn't a hard and fast rule. Its just seems to be a current trend.

In my original post (which people seem to have ignored when making their arguments) I said that Sony needs to stop telling people to program the PS3 as if it were a PC and then just start moving stuff to the SPUs. I think its fine to prototype that way in the beginning when you are learning, but building an application that way will not lead to optimal use of the SPUs. If the majority of the application isn't running on the SPUs or the SPUs are left idle then your simply aren't going to achieve the best possible performance.

As I said, its important that people design their applications to run 80% on the SPUs and 20% on the PPU (or something similar). The PPU is for controlling the SPUs - period -. This is old news now of course but companies are still not doing that for all the reasons I mentioned. Sure, its easier to just get everything running on the PPU and then just port the hot spots to the SPUs and that will work. But, it won't raise the bar as high as we'd all like to see.

My argument isn't that the PS3 or the Cell sucks. My arguments are about why there hasn't been a -large- number of (non-Sony) companies leading on the platform. I think many of the posters have lost sight of that and are defending the Cell and PS3 as if this were some holy war or crusade. Make no mistake; I want the PS3 to succeed. I don't want it to be easier to program so -I- can be lazy. As I said, I love programming the PS3 at the lowest level and challenging myself to come up with new parallel approaches to problems.

I want it to be easier to program so the -entire- game developer community has more opportunity to do amazing things with it, not just masochists like me.

Anonymous said...

BTW Ron,
COD4 is not 1080p native on the PS3. Just jump on IW's board and see what the devs had to say about it.

Anonymous said...

Greetings!


Dave Asbell wrote:
> So, I don't think I mentioned this above, but I actually love programming
> the PS3. Its challenging, exciting and fun. It makes you think in new and
> creative ways... and if you do, it rewards you with excellent performance.

:)

> Parallel programming is indeed hard and in the past few years developers
> have become educated about it by using the XBox360 and modern multi-core
> PCs. The thing these platforms have in common however is that all of the
> processors are the same and have unified access to memory. The Cell however
> is different...

Unified memory access (in hardware) is a bad thing if it comes down to
performance (large latencies, longer wires, more power consumption, smaller
bandwidth, etc.). It is better to have a non-uniform memory architecture and
to build a software layer for uniform memory access where needed. The
same problem holds for the cache. Programming the memory system is the
right way to go, initially. You can do everything with it, building a cache
in software, scatter/gather memory operation, etc.. Later on you can build
layers upon each other. But it doesn't work the other way round. Simulating
a programmable cache is a pain in the ass (see Intel's prefetch ops., etc.).

Memory programming is "assembler programming" in the world of parallel
computing. For example, all those streaming languages are layers (simpler
languages) of a kind of memory programming style. Their backends need a
granular memory architecture to map their expressions (streams, kernels)
efficiently onto the system.

> I found this on Wikipedia...
>
> "The Cell architecture includes a novel memory coherence architecture for
> which IBM received many patents. The architecture emphasizes
> efficiency/watt, prioritizes bandwidth over latency, and favors peak
> computational throughput over simplicity of program code. For these reasons,
> Cell is widely regarded as a challenging environment for software
> development.[5] IBM provides a comprehensive Linux-based Cell development
> platform to assist developers in confronting these challenges.[6] Software
> adoption remains a key issue in whether Cell ultimately delivers on its
> performance potential. Despite those challenges, research has indicated that
> Cell excels at several types of scientific computation.[7]"

> It is NOT a PC by any stretch of the imagination and I agree that it
> should not be approached as such.

> You have to be careful using software engineering practices (OO,
> abstraction, virtual functions, branching, etc...) because the
> architecture doesn't support those concepts well.

Some mixing here. OOP is a pure software thing. Yes, a lot of branches are
not welcome.

> Instead you need to use things like lock-free synchronization primitives,
> branchless algorithms, data decomposition instead of functional
> decomposition and so forth. That not to say its BAD. Its different.

> It takes a lot of time and energy to program optimally because it's so
> different from what -most- programmers are used to.

Thanks to Intel and AMD. They have never done anything to progress parallel
computing into the main stream (and I know OpenMP, thanx), no compiler, no tools, etc., despite that
the hardware has become so cheap within the last 10 years. They want you to
think sequentially as long as possible, since all their compilers are
optimized for this type of programming.

> You can't just sit down
> and program the Cell like any other processor. You really don't want to
> program it in C++ if you can avoid it and you don't want to build lots of
> object oriented hierarchies of classes. These things lead to poor
> performance and difficulty in leveraging the SPUs.

> On the other hand I do need to leverage parallel programming concepts.
> Just not in C++ and without much abstraction. In some ways you have to take
> a 15 year step backwards if you want to program it properly.

> To get optimal
> performance you must program it using SPU/PPU intrinsics which are
> essentially compiler macros for assembly instructions.

Yes, but this is not the real issue. An SPE unit is like an SSE unit (as
you know). Developers have optimized for SSE long ago. The real issue is the
memory-subsystem. But if you once have figured out how to shuffle all the
data around (in different ways) and have built a tight layer around it, then
you only have to worry about your data-decomposition strategy which is
problem dependent.

> I think its fair to say that not every game developer wants to sit down and
> master this kind of platform.
>
> Some developers just want to make a great game
> without having to worry so much about the underlying hardware. Ok, so these
> "lazy" (as someone said) developers can go program the 360 and PC's right?
> They aren't console developers. My point is that that's exactly what appears
> to be happening. A few guys on a team are responsible for porting the stuff
> written by the majority of the other programmers. Porting to the PS3 is done
> after the fact. Yes, there are exceptions. No, this isn't a hard and fast
> rule. Its just seems to be a current trend.

Yes, but where to start? If everything goes well for the PS3, then the
situation might be the other way round in 2013 (having Cell2 inside PS4 and
a lot of tools for content development).

> In my original post (which people seem to have ignored when making their
> arguments) I said that Sony needs to stop telling people to program the PS3
> as if it were a PC and then just start moving stuff to the SPUs. I think its
> fine to prototype that way in the beginning when you are learning, but
> building an application that way will not lead to optimal use of the SPUs.
> If the majority of the application isn't running on the SPUs or the SPUs are
> left idle then your simply aren't going to achieve the best possible
> performance.

Yeah, but not within one day.

> As I said, its important that people design their applications to run
> 80% on the SPUs and 20% on the PPU (or something similar).

This will happen!

> The PPU is for
> controlling the SPUs - period -. This is old news now of course but
> companies are still not doing that for all the reasons I mentioned. Sure,
> its easier to just get everything running on the PPU and then just port the
> hot spots to the SPUs and that will work. But, it won't raise the bar as
> high as we'd all like to see.

Just wait a little. It is much too early to go for the home run. There are
about 5 - 7 years to come for Cell developing on PS3.

> My argument isn't that the PS3 or the Cell sucks. My arguments are about
> why there hasn't been a -large- number of (non-Sony) companies leading on
> the platform.

On a new architecture you will never see a rapid increase in support,
initially.

> I think many of the posters have lost sight of that and are
> defending the Cell and PS3 as if this were some holy war or crusade. Make no
> mistake; I want the PS3 to succeed. I don't want it to be easier to program
> so -I- can be lazy. As I said, I love programming the PS3 at the lowest
> level and challenging myself to come up with new parallel approaches to
> problems.

That's fine.

> I want it to be easier to program so the -entire- game developer community
> has more opportunity to do amazing things with it, not just masochists like
> me.

The evolution of the PC graphics market was a pure mess! Different languages
(OpenGL, DX, ARB, HSL, Cg, CUDA, Brook+) and every friday a new acceleration
board. So it was never easy to produce a great game on PC, too. It could be
much more simpler!



Ron
- scientific computing

PS: Sorry for my bad english. I need to get the grammar right. Some links?

Dave Asbell said...

Thanks for the counter points Ron. I'm going to let it rest at this point.
-D

Anonymous said...

Found this article on Gamespot:

http://www.gamespot.com/news/6182641.html

Wonder why Sony has stopped supporting Cell processor development?

Anonymous said...

Hi!

> Anonymous said...
> Found this article on Gamespot:
>
> http://www.gamespot.com/news/6182641.html

Perhaps you have found out that this "article" was pwned all over the
place. It doesn't make any sense for Sony to invest into the 45nm and 32nm
regime for the PS{3,4}. It is too expensive.

> Wonder why Sony has stopped supporting Cell processor development?

The Cell processors you are referring here is the first implementation of the
'Cell Broadband Engine Architecture' (CBEA) and is called the 'Cell/B.E.
processor'. The Cell/B.E. processor has long been taped out. 65nm was/is
Sony's target process. No need to go further if it will cost too much.
However, development hasn't stop whether for the CBEA nor for an
implementation of it. The next incarnation of the CBEA is the 65nm enhanced
Cell/B.E. processor which features enhanced SPEs (codenamed: HPC SPEs)
utilizing full double-precision floating-point operations to support the
scientific community. Any changes to the CBEA or its implementation requires
an unanimous acceptance of Sony, Toshiba, and IBM (STI), and this holds up
until today!

In 2010 IBM will manufacture an 45nm implementation of the CBEA which should
peak at 1TFlop. If you follow IBM's roadmap you will see that they are right
on track. However, reaching this goal will cost a lot of money. Too much for
Sony. Sony may buy this 45nm (manufacturing process) in 2014 to support the
PS4 (through mass volume production), but not necessarily. However, there is
a good indication that this 1TFlop-implementation will be seen in
next-next-gen gaming.


Ron
- scientific computing

NeoTechni said...

Everything I've read from numerous sources say you get access to 6 SPUs, not 5.

NeoTechni said...

"I don't belive that is (entirely) true. Cell was hard to program for at launch. Its hard to program for now. All the clever programming in the world cannot overcome certain hardware limitations"

Everything that is hard to do at one point becomes easier to do in the future. That's how learning works. And yes, clever programming does overcome many hardware limitations. For example, offloading culling to an SPU will effectively double the polygon count.

NeoTechni said...

"The PS3 was touted as TWICE as powerful as the 360 and the PRE-RENDERED footage of Killzone 2 was EMPAHTICALLY pointed to as an example of REAL-TIME PS3 graphics by every Sony executive accross the board."

Actually, KZ2's footage was touted as realtime by 1 and 1 exec only who later admitted he got confused with Resistance. Everyone else said it was target footage from the start. And it's a moot point since it's nigh unanimous that the target was met

"It is NOT a PC by any stretch of the imagination"

Disagreed. I've got Linux on it. It's as much a PC as any macintosh

Though you're referring to how you program for it not how we use it. So I'm wrong in this case