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

Forums - Sony Discussion - Booth: PS3 misconceptions and spin

Time to put your tinfoil hats on.

He has reason to want the PS3 to fail. This guy left Harmonix in September to join a new company called Conduit labs. From Conduit Labs' Website:

Why can't we do more together online?
In the real world we get together to dance, play hoops, even skydive out of planes. Online we can add people to buddy lists, but there are few options when we actually want to create, compete, and play together.
This is the start of Conduit Labs. We're building cool social entertainment destinations for you and your friends. We are bored of the same old social networks, virtual worlds, and MMOs. We've been doing this kind of thing for a long time, so we're trying something new. Drop your email below to see what's up.
That idea sounds very familiar .

Around the Network
billsalias said:
Are the people calling developer's "lazy" or "mediocre" trained developers themselves? Do you have any idea what the differences are between developing software on a symmetrical multiprocessor system with a shared memory model versus an asymmetrical multiprocessor with a distributed memory model?

I studied both in school while getting my degree in computer science, have built software professionally using both models, and for two years was a PC and mobile game developer. Any objective person trained in the field will tell you there is no question that it is more difficult to develop software for asymmetrical processor systems and the distributed memory model complicates it even further. The same person will also tell you that there is also no question that the more complicated model in this case uses hardware more efficiently so given equivalent power can do more work.

So please stop calling developers "lazy" and "mediocre" for telling a scientific truth, the PS3 is more complicated to develop for then the 360. But please feel free to mention that it is also true that the PS3 architecture is more flexible and has greater potential power.

P.S.: I am glad I am not in the game development business right now. There are three system that all have substantial differences, one in the control scheme the other two in software design philosophy. This makes it extremely hard to be efficient which makes it even harder then usual to make money. Disruptive technologies, which the Cell and motion control both are in this case, cause painful transitions.

I do multithreaded application programming for a worldwide company. My last application runs on a dual quad core server and pulls in over 50,000 files from FTP servers every hour, parses the files and injects needed data into an SQL server. It manages roughly 50 FTP sessions, and 20 SQL sessions depending on the file sizes and server load. I also do OpenGL programming as a hobby on the side. Needless to say it's not doing work on the PS3, but I've read the IBM programming documents on it and it's pretty straight forward and exactly as I've stated above when it comes to Cell vs "standard" multithreading. Same functionality, different calls.

My friend just graduated from a gaming school in Arizona. I asked him how much he learned in OpenGL and he informed me that they taught them how to use a premade engine and a few simple programs. A big chunk of his focus was on new technologies such as motion capture and "movie" tricks. This is where I draw my information from. Developers and teams that want to get the best out of the system have to do homework and rework some code. So far there have been few studios that even attempted to rework the code. Others, along with all the fans crying about games, have been trying to get games on the market and using old technology and half-assed ports. It's evident in a lot of the titles. My information comes from experience in the field and some long and boring (but interesting) IBM documents.



It seems the mods need help with this forum.  I have zero tolerance for trolling, platform criticism (Rule 4), and poster bad-mouthing (Rule 3.4) and you will be reported.

Review before posting: http://vgchartz.com/forum/rules.php

@andir

 

Ok, I will get very specific on differences between the Cell and what is currently a standard shared memory symmetric multi core CPU. Please keep in mind these are not pro and cons but just differences.

 

There are two different classes of processors with different instruction sets and functionality, the PPE and the SPE's. The PPE is a standard multi core processor, very similar the one in the xbox.

The SPE's are a different breed, designed more like a GPU then a CPU. They key differences form a software design point of view are:

-         the SPE cannot directly access anything beyond it's 256k of local memory without DMA directed by the PPE. This 256k has to include both code and data. A caveat they can access each others 256k at high speed so if working on a shared data set they can access up to 1.75MB that they must share.

-         The SPE’s cannot direct what code is run on them; they must be scheduled by the PPE.

-         The SPE’s can coordinate amongst themselves very quickly and efficiently such that a set of them can be given a complex task to be executed on shared data in parallel or on different data in series.

-         SPE’s do not have direct access to external events, e.g. user input, network traffic, disk IO, etc.

 At a high level this means you need to design your software up front as two separate systems. One the runs on the PPE as the bootstrap program that can have both game functionality and also has to act as the coordinator for the SPE based system assigning jobs to SPE’s, monitoring them, managing memory needs, managing disk and network IO, etc. Functionality targeted at the SPE’s must be designed into many small independent programs such that it can work within the memory limits and coordinate with code running on the PPE to request additional data and indicate job status. This means you need to be able to break the tasks down into small enough chunks to fit into 256k or be willing to take the hit on the manually memory management required to swap data out. This is fun stuff like only moving memory on 128 byte boundaries and keeping track of what is code and what is data in the 256k on each SPE.

All of this is in contrast to the “standard” CPU of today where each core is identical, has access to all system resources including RAM, disk, network, user input. You can design your system at a high level to simply have one thread per core and hard code what each thread does. You do not need to break your tasks down into small chunks, you do not need to worry about coordinating what code runs where when or how that code accesses memory. You do need to use the standard sempaphore/mutex model to protect shared resources, but there is no need to coordinate your cores at the level the SPE’s need to be.

 

In addition to the increased software design and development time required for the more complex Cell model there is also the additional test and bug fix time.

 

Many if the difficulties can be reduced by good middleware but the fundamental design difference of having two interconnected systems will remain.

 

Now which is “better” is a matter of deciding what is important. If speed of development and minimal barrier to entry is your top concerns then the simpler model is “better”. If your concern is maximum performance per transistor (hardware $) then the more efficient hardware of the Cell is “better”.

 

Sorry for the long post but I cut it down as much as I could.



Oh, one more important thing. You can design your code for a symmetric CPU shared memory system with the Cell model in mind and it will run well on both. It will actually run better on the "standard" processor then the simple monolithic design because you will be using the CPU cache very efficiently because your design was concerned with keeping memory down to the 256K usable by the SPE's.

This is not true in reverse obviously. If your game engine was designed for "standard" cpus you probably have your code built into large very interdependent systems that cannot be easily broken down to be put on SPE's. This is probably why so many of the XBox -> PS3 ports are so bad.



What I've seen in different objective analyses is this: if you barely use the SPEs, the 360 tops the PS3, as it has more memory, a slightly stronger GPU, and the main core of the Cell is similar to each of the cores of the Xenon, and the latter of course has three of them.

If you do use the SPEs, you can get better graphics out of the PS3, but you have to be VERY PRECISE on how data is manages among them, which can take a lot of work to figure out.

Basically if someone figures out an engine to manage the way the SPEs handle data, it would be a major boost for PS3 development, not to mention likely to get the owner of the engine loads of money (I still have a hunch this is exactly what Katuragi is doing right now).



A flashy-first game is awesome when it comes out. A great-first game is awesome forever.

Plus, just for the hell of it: Kelly Brook at the 2008 BAFTAs

Around the Network
Andir said:

And I never said that they weren't. Reading comprehension is your friend.


The spec sheet posted said "triangles *not polygons", that's what he was referring to.

Bill explained the difference between symmetric multiprocessing with shared memory vs. asymmetric with local memory quite well.  It's all down to the fact that the SPUs can't access main memory directly.  One advantage to this approach is that developers are forced to think carefully about how their applications access memory, and this can lead to better performance.  Memory access can be a bottleneck even in shared memory systems, especially when done poorly.  Of course, there's nothing stopping a PS3 developer from writing poor code, but like I said, you have to really think about memory use just to use the SPEs at all.  When you can see all the DMA calls in your code, it reminds you where the latencies are.

 

@WoW, it doesn't matter who you are, when you say something that's going to cause a stir, you back it up if you want people to take you seriously.  Experience certainly helps you understand, but it never makes you automatically right, especially when other experts disagree.



Saiyar said:

Time to put your tinfoil hats on.

He has reason to want the PS3 to fail. This guy left Harmonix in September to join a new company called Conduit labs. From Conduit Labs' Website:

Why can't we do more together online?
In the real world we get together to dance, play hoops, even skydive out of planes. Online we can add people to buddy lists, but there are few options when we actually want to create, compete, and play together.
This is the start of Conduit Labs. We're building cool social entertainment destinations for you and your friends. We are bored of the same old social networks, virtual worlds, and MMOs. We've been doing this kind of thing for a long time, so we're trying something new. Drop your email below to see what's up.
That idea sounds very familiar .

You must mean Second Life. 

Don't see why that would make him want the PS3 to fail though.



Leo-j said: If a dvd for a pc game holds what? Crysis at 3000p or something, why in the world cant a blu-ray disc do the same?

ssj12 said: Player specific decoders are nothing more than specialized GPUs. Gran Turismo is the trust driving simulator of them all. 

"Why do they call it the xbox 360? Because when you see it, you'll turn 360 degrees and walk away"