ShootMyMonkey said:
The part that needs ASM and/or compiler magic would be getting any kind of per-thread performance out of XeCPU or CELL.
That is a legitimate concern, but everytime someone describes CELL's "achilles heel" they lump multi-core and in-order together.
When I see statements like
Hell it's going to take hand assembly coding I'd think to get multi-threaded in-order code going good isn't it?
in these threads, it raises red flags to me that people don't know what they are talking about and are parroting what criticisms they see others tossing around.
With respect to in-order, ironically, it multithreaded code (on the same chip, e.g. Sun's Niagara) which solves the problem of keeping the execution units of the CPU busy, but switching threads when in-order code would lead to a stall.
But the so-called Achilles heels of CELL I think will be proven to be a red herring in the long run (in-order and lack of branch prediction) Programming this architecture simply requires a change in the way developers think. I think it is unrealistic to expect PC-style programming to run optimally via abstraction layers and compiler magic.
PC developers are often wasteful and overlook dataflow issues on consoles. Fafa brought up the most infamous example, of Max Payne's poor memory management, which seem to treat malloc()/free() like they were ultracheap operations, which they are not.
Programming on an architecture with heavy abstraction after awhile makes developers atrophy, because the APIs are "fire and forget", and you often don't know whats happening beneath the covers.
So let the PC developers complain. I think for some of the best programmers, CELL coding will be an interesting challenge, and a chance to innovate. You may even see some important ACM papers come out of it.