By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - Gaming - Madden comparison: PS3 vs 360

Entroper said:
oli2 said:
Entroper said:
The level of anti-Cell FUD in this thread is absolutely staggering. How many of you have looked at the CBE SDK? How many of you have ever written a single piece of multithreaded code in your lives?

Care to enlighten us ?

In fact you don't seem to understand the complexity of coding difference between muti-threaded programming model (on which Xbox360's CPU is better suited than Cell), and distributed parallel model one (on which Cell is way better suited than Xbox360's CPU).


What leads you to believe that I don't understand the difference?


 This sentence : "How many of you have looked at the CBE SDK"

Maybe i am mistaken (it could have been another poster), but i have read posts from you showing me that you envision the programming this CPU as if it was a "simple" multi-threaded one. "You give the sound to SPE 3 and 5, the AI to SPE 2, etc".

Distributed parallel programming is more complex. 



Around the Network

It was definitely another poster.

The fact that the SPEs can't directly address main memory precludes "simple" multithreading.  You can't just spawn a thread for something, you have to think carefully about how the threads will use data.  This is, IMO, a strength of the design as compared to a simple multicore CPU such as the Xbox 360's.



Entroper said:

, you have to think carefully about how the threads will use data


Precisely. Each SPE has very high computationnal power.The fact that each SPE can put / store datas very quickly to the local store of another, and that with 6 of them you can organize them (ring , linear or hypercube, etc.) make me say this processor was designed towards distributed parallel programming.

The possible rewards are potentially tremendous in what you can perform as calculation.

Problem is reaching global efficiency has proven theorically and practically very difficult on such systems. Have you looked how the algorithms for "sort" or "matrix multiplication" look like in such environnements ?

You said this is "a strength of the design". I prefer to say this is a very ambitious one.

 Edit : typos.



Actually, I wrote a Cell matrix multiplication as a case study.  :)  I didn't get 200 Gflops out of it like some case studies I've seen written entirely in asm, my goal was to write a readable program and gain some experience in this kind of programming, not completely max out the silicon.

The reason I say it's a design strength is because you can't just whip something together.  Now, people are going to take this to mean that it's difficult to program for.  My reasoning is that writing very efficient programs in a multi-core environment IS difficult.  You can easily whip something together in a shared memory system, but it's not going to perform well unless you think carefully about how the threads use memory, and how you're going to synchronize tasks.  You can't get anything done on the SPEs unless you think carefully about these things, so it sort of enforces efficient design by not letting you take the easy way out.  Note the "sort of" there.  :)  Obviously you can still hack something together, but just the fact that you have to write code to initiate a DMA transfer makes you stop and think, what's the best way to do this?  How do I efficiently get the data to and from the SPE?



You make as if this type of programming is fairly simple. I cannot agree there.

Listen, in a monothread environnement, a generally first attempt to make a sort (bubble sort) imply a complexity O(N^2).

I you step back a second and "think" a better way to make it (quicksort, radix sort, etc.) you can arrive fairly simply to a complexity of O(n*log(n)) or O(n/2*log(n^2)).

 In a distributed parallel one you can obtain even more efficient algorithms. For example, if you have a bitonic sort friendly environnement (which Cell is not), you can theorically obtain O(n). 

 But there are 2 conditions :

1) the total inter-processors communications needed must be inferior to a calculable value related to your algorithm.

2) You must not make any "mistake" both in your algorithm and in your implementation, because "you pay it cash" very quickly. 

This is on this point (2)) that i don't agree with you. Very clever programming designs imply great results.  It is not as simple as "thinking twice". I shall not insist enough how Distributed Parallel programming is different from Mono-threaded one. In my experience, you make easily mistakes that make your complexity explode ... If you have implemented a matrix multiplication on Cell, you do know that.



Around the Network

Can either of you two (oli2, Entroper) recommend a decent compiler for YDL 5.0?



______________________________

VGChartz forums: the new gamefaqs

LordTheNightKnight said:
The 360 has its frame buffer set aside from the 512MB of RAM. The PS3 has to share its frame buffer within the 512MB of RAM.

Go ahead and think that won't affect performance in identical situations. It won't actually make that effect go away.
 But each individual SPE has 256KB of dedicated SRAM to play with :D

______________________________

VGChartz forums: the new gamefaqs

Darc Requiem said:
leo-j said:
omgwtfbbq said:
ckmlb said:
omgwtfbbq said:
If they don't provide enough money, then the developers have to ration it, and things like getting the PS3 version up to 60fps take a back seat to getting the 360 version looking good since that will be the version that sells the most.

So EVERYBODY, please stop saying "Lazy Developers". It just shows you have no idea what you're talking about.

You honestly think EA doesn't have enough money for Madden?????

If NBA 08 is 60 fps at 1080p and Madden 08 is 30 fps at 720p what does that tell you about EA?

Don't give me the crap about Madden not being funded enough, this is Madden we are talking about.

Still, for most average buyers of Madden, this will not be an issue unless they actually see them side by side which most likely they won't and they will buy it for the system they have.

This will matter to people who are both on the up 'n' up with gaming news and are Madden fans.

Did you see EA's last financial report? That is not a company who can throw money behind developers just to get Madden to run at 30fps on the system that will sell the least copies? Do you expect them to see ANY financial return from this? Should they do it just to showcase the POWER OF THE CELL? Of course Sony is going to put the money into creating a fantastic looking game, because they benifit from it. It's no skin off EA's back if someone buys the 360 version instead of the PS3 version.

This is true, they make the one with the bigger install base run better, the ps3 can support up to 120fps(when tv's support it) http://www.joystiq.com/2005/10/28/playstation-3-will-do-120-fps/

Basicly every first party ps3 title runs at 60fps, resistance,motorstorm,mlb07,nba08, etc.. Heavenly sword the final game is roumered to run at 60fps. Besides I find it funny, the video I saw at GT for the ps3 looks way better than this, people really want ps3 to burn.

 


 Both Motorstorm and Resistance run at 30fps not 60fps.


Then why do they run so smooth? Oh well 30fps is good I guess.



 

mM
oli2 said:

You make as if this type of programming is fairly simple. I cannot agree there.

Listen, in a monothread environnement, a generally first attempt to make a sort (bubble sort) imply a complexity O(N^2).

I you step back a second and "think" a better way to make it (quicksort, radix sort, etc.) you can arrive fairly simply to a complexity of O(n*log(n)) or O(n/2*log(n^2)).

In a distributed parallel one you can obtain even more efficient algorithms. For example, if you have a bitonic sort friendly environnement (which Cell is not), you can theorically obtain O(n).

But there are 2 conditions :

1) the total inter-processors communications needed must be inferior to a calculable value related to your algorithm.

2) You must not make any "mistake" both in your algorithm and in your implementation, because "you pay it cash" very quickly.

This is on this point (2)) that i don't agree with you. Very clever programming designs imply great results. It is not as simple as "thinking twice". I shall not insist enough how Distributed Parallel programming is different from Mono-threaded one. In my experience, you make easily mistakes that make your complexity explode ... If you have implemented a matrix multiplication on Cell, you do know that.


Hehe.  "Bus error?  What bus error?!  There's no bus error in this code, I checked it!"  Yeah, I've been there.  :)

I'm talking more about optimization and tweaking, buffering memory reads, reducing bus contention, etc. than actual parallel algorithm design.  Still, I admit this kind of programming is not easy.  I do, however, think that a programmer working on a game engine for a major title on the Playstation 3 should be expected to be able to handle this sort of thing.  I don't want to get into whether it's the developer's fault or the publisher's.  The point I'm trying to make, though, is that Cell is not this unbearably cryptic design that only the smartest programmers in the world can crack, whereas on 360 you just plug and chug and out comes a fast game engine.



Entroper said:
 

The point I'm trying to make, though, is that Cell is not this unbearably cryptic design that only the smartest programmers in the world can crack, whereas on 360 you just plug and chug and out comes a fast game engine.


My view relyes more in this : programming efficiently on 360's processor is difficult. Programming efficiently on Cell is more difficult. The trade-off is eventually more "rewards" on Cell, but within the context i detailled in my previous posts.

edit : typos.