Andir said: TheBigFatJ said: Cursayer2 said: The Cell is like the Emotion Engine ~ an overhyped piece of garbage. |
especially when the difference is in number of threads that can be run, there will always be a lot of games that look and run similarly or slightly better on one platform or another, but the games that stress the CPU will likely run more poorly on the PS3. And right now, a lot of games do. |
Your saying that the 8 threads (available to the games) the PS3 is capable of is somehow less then the 6 threads on the 360? The PPU has 2 threads of general purpose processing power and the SPUs have one thread each, optimized for floating point math. This is the same math used for things like vector transformation, stream decoding, and many other 3D vector related tasks. Since you took a programming class you should understand that most of these processes are handled by the GPU on today's machines because they are optimized for the exact same type of calculations. If you treat the SPU as a secondary video processing pipeline running at 3.2GHz, you'll get the most benefit out of it (especially since it's memory runs at full core speed [it's essentially a high end workstation class video PPU). When you say "games that stress the CPU" and since you appear to be in school, I'll assume you don't have the experience to understand that very little of any games processing cycles are used for things other than waiting on the GPU to finish some of these tasks and move along to the next stage where to fill the video buffer and sit back and wait. I would argue that AI is probably the most intense general purpose process on the CPU, but your hardly going to use all 6 general purpose threads for that. |
Your assumption about me being in school is incorrect. I graduated in 2004.
You're confusing the architecture. A simple (although not entirely correct) way to think of the SPEs is as if they were floating point units on a processor. Yes, they can calculate single precision FLOPs in parallel, but it takes a while to get the results from any given SPE. For "embarassingly parallel" operations, such as deciding videos, this is terrific. And if you wanted your CPU to do a lot of the transform/lighting calculations typically done by GPUs, they would be good as well. Not terrific, however, since most modern GPUs are much faster than the Cell for this type of thing. Further, the fact that you have to wait many cycles before the processor fetches the results from the SPE. Typically, this is resolved in hardware, by setting up forwards, and in software, by reodering instructions where possible. The way the Cell is designed, forwards cannot be set up for this purpose, as far as I understand, so the latency cannot be masked as well only by reordering instructions. You'll spend some time simply waiting for results.
For gaming, the Cell is unbalanced. It has a single SMT capable PPC970 core, a ton of (relatively) high latency floating point throughput. The FLOP throughput would make more sense if you wanted your Cell to do the Transform/Lighting calculations instead of your GPU. For reference, the 360 has 3 SMT capable PPC970 cores.
You cannot substituate the SPE's massive FLOP throughput for general purpose CPU power. If the system doesn't have enough general purpose CPU power and a game is starved for it, nothing else matters. This is one of the reasons it is difficult to port from the 360 to the PS3 -- you have to assume a lot less general purpose CPU power. You also have to assume less available memory and a little less fill rate. Porting from the PS3 to the 360 would be much easier because you're not decreasing your hardware capability except in terms of raw FLOP performance, which isn't an issue for many games on 3 PPC970 cores.
I'm a software developer, I write business software but I have to agree with Andir as I believe it was Sony's goal all along to have the SPE's on the Cell work in tandem with the RSX as a secondary video processor. I just hope that Sony's programmers have already written the low level code and perhaps even class libraries upon which developers and take advantage of the Cell on that level. Otherwise its no wonder "its hard to develop for". If the code is low-level it would be extremely difficult for most game developers to use as they probably build their 3d engines on top of existing C++ (or other language) class libraries.
Have you made pipelined CPUs before? That, combined with your understanding of assembly code/compilers and compiler optimisation, might help in the understanding of how the architecture works and where the weaknesses are. To be entirely frank, a basic understanding of programming won't help you understand the computer architecture. They're different disciplines.
The libraries you refer to are the PS3 SDK, of course. You're a professional developer and therefore familiar with APIs, compiling and linking, right? You'd be surprised how many business devs go through the motions when it comes to compiling/linking code without truly understanding what is happening. Some, and this is a minority I'm sure, aren't even familair symbol tables and can't figure out why they're having a hard time linking with external libraries when the symbols were generated differently.
Even with the SDK, there is only so much optimisation you can do at the compiler/library levels. In order to get the most out of exotic hardware like the Cell, you need to plan your engine around it. There are some demos that show this off, and one of the devs of a game a while back showed the Cell running a massive amount of tiny finite state automata for AI, apparently, when running hundreds of soldiers in a field. How useful that would be is another question entirely, since the system would not be able to render those with much detail.