Slashdot Mirror


Linux For Cell Processor Workstation

News for nerds writes "The Cell processor from Sony, Toshiba and IBM, has been known as the chip that powers the upcoming PlayStation 3 computer entertainment system, but except for that very little is known about how it's applied to a real use. This time, at LinuxTag 2005 from 22nd to 25rd June 2005, at Messe- und Kongresszentrum Karlsruhe, Germany, Arnd Bergmann of IBM will speak about the Cell Processor programming model under Linux, and the Linux kernel in the first Cell Processor-based workstation computer, which premieres at Linuxtag 2005."

7 of 310 comments (clear)

  1. The Linux role in hardware design by Dancin_Santa · · Score: 5, Interesting

    What has impressed me about Linux is not so much that it has enabled some sort of "software revolution", but rather in how it has given chip/platform makers a specific, generic target OS that they can use freely to get something useful running on their hardware quickly.

    It used to be the case that platform makers would have to either develop their own minimal operating system for testing purposes or work very closely with an OS maker to port their software to the new hardware platform. With Linux, this has been pushed into the anals of history. Now the Linux OS porting goes hand in hand with platform building, as evidenced by the almost immediate support for Linux at the time of hardware release.

    I'm not so much interested in how the Cell board is going to revolutionize anything (it won't), but in how we have, in just the past few years, seen a dramatic increase in the number of hardware platforms being released. And not just in numbers, but also in variety. The number of different types of hardware platforms has risen dramatically. It's only limitation is the number of chip instruction sets supported by gcc and the imaginations of hardware manufacturers.

    If you want to see how Microsoft's monopoly has hurt the computer industry, look no further than the current industry. Whereas hardware platforms were pretty standardized and boring, now, with Linux (and real competition to Microsoft's hegemony) the numbers of innovative platforms has increased dramatically. We need a Microsoft out there developing consumer-level applications and quality, user-friendly operating systems. However, we also need a real competitor like Linux to push the giant into innovating.

    1. Re:The Linux role in hardware design by ignorant_coward · · Score: 4, Interesting


      Linux is more popular, but NetBSD allows quicker porting of "something useful".

      I agreee that Microsoft has dealt a fair amount of damage with crappy APIs and bad QA regarding stability and security. A 'standard turd with a pretty GUI' is still a turd.

  2. Re:*sigh* by ignorant_coward · · Score: 4, Interesting

    I watched the keynote, and Apple (Mr. Jobs) did a really good job selling the transition. The only advantage of Intel is gigahumungous manufacturing capacity, which IBM obviously wasn't willing to steer Apple's way. PowerPC is good and all...up to the point of there being no road map or a stubborn IBM negotiator.

    Consoles are where PowerPC is at from here on out.

  3. Unix used to have that role by Per+Abrahamsen · · Score: 4, Interesting

    When you had some new hardware, you bought a (relatively cheap) Unix source license, and had something running fast

    Linux is better though, because the GPL encourage hardware vendors to share their modifications.

    With Unix all you had access to was the original source, and the ports done by non-commercial/academic groups (source as UCB). Not other vendors code.

  4. And yet again the Cell fanboys by tesmako · · Score: 5, Interesting
    In this thread I have already seen several posts talking about the worthlessness of the ill-designed x86 and the wonders of the simple Cell. The problem is that while the x86 instruction set is old and very tacky the internals of the processors has evolved to be best-of-breed modern chips, lots of execution units with excellent out-of-order performance and branch-prediction, very high clockrates with nice IPC.

    The Cell also is simple, but in a way that that inflates the gflop rating at the cost of programmer time.

    • Multicore, requiring the programmers to extract explicit parallelity (granted, this is coming everywhere, but really, the fewer better-performing cores there are the easier they are to utilise well).
    • A whole pile of vector units (it is very hard to fill even one or two vector units well, this will be a huge time-sink for any project trying to utilise it even half-way well).
    • An in-order primary CPU core, what is this, the eighties?! And if you think this will be like stepping back to how it was with in-order cores a decade or two ago, think again, memory latencies are higher, pipelines are deeper, you'd better pray that your compiler gets lucky to get any real performance out of the primary core (or many sleepness nights hand-optimizing it).
    • Hand-managed memory hierarchy?! This is not even a throwback to the eighties, this is a whole new level of inconvenience for the programmer. Where all normal CPU's carefully handle the memory hierarchy for you, in the Cell it is suddenly up to the software to handle where and when and why memory is in the "cache" of the vector elements.

    By comparison the modern x86 is a dream to program for, just note how two fairly radically different cpu's (Athlon64 and the P4) handle the same code very nicely without any big performance issues. Compare this to the Cell, where all the explicitness will make sure that any binary you write for the Cell today will run like crap on the next version.

    The point here is that Apple could absolutely not have switched to the Cell, it is inconvenient now and hopeless to upgrade without having to rewrite a ton of assembler and recompile everything for the new explicit requirements.

    The Cell is the thing for number crunching and pro applications where they are willing to spend the time optimizing for every single CPU, but for normal developers it is a step back.

  5. Wrongo by Urusai · · Score: 4, Interesting

    In case you don't remember, the point of RISC was to put optimization on the compiler so it wouldn't require massive on-the-fly speculative bibbledy-bop with millions of extra transistors and hideous pipelines like we have nowadays. This was done by providing, essentially, a compiler-accessible cache in the form of lots of registers, and by having an instruction set that was amenable to automated optimization.

    In theory, you don't need any GP registers at all, you could just have memory-memory ops and rely on the cache. This is impractical due to the size of memory addresses eating up your bandwidth (incidentally, this is a problem with RISC architectures, eating bandwidth and clogging the cache, but that's another story). As an alternative, you can simply expose the cache as one big honking register file using somewhat smaller addresses, and let your fancy-pants optimizing compiler do its best.

    The real problem seems to be that compilers have just not been able to keep up with the last 20 years of theory. Witness the Itanium--in theory it should have been the ultimate, but they didn't seem to be able to get things optimized for it (other problems, too). Then what happens are curmudgeons complain about the extra work of optimization and insist on setting us back to early 80s architecture rather than writing a decent compiler.

    Moral of the story: write a decent compiler and stop trying to glorify crappy ISAs that suit your antiquated and inefficient coding habits.

    1. Re:Wrongo by tesmako · · Score: 5, Interesting
      The problem with that moral is that compiler technology is nowhere near where it needs to be. Doing VLIW and other explicitly parallel architectures has been a research darling for many years, it just so happens that compiler technology fails to really make it work as things stand.

      Compilers do manage to do decent jobs in some cases, especially with languages that are easier to do semantic analysis over than C/C++, but while it is interesting research it is not a practical way to go. The reality is that C/C++ is prevalent, and highly detuned code is abundant. This also fails to address the problem of migrating between versions of the processor, while recompiling everything every time is a way to go it is not terribly practical (and when every new processor will fail to measure up to the old in the users old apps the user will not be happy).

      It is a bit odd that you bring up the Itanium since it is the best argument for this stance, there has not been any lack of effort in the compiler technology for the Itanium, the compilers are real marvels leveraging the very best the research has to offer. The silicon itself is very powerful, if you manage to actually fill all the instruction slots the thing will really fly. Unfortunately they never do, they get 50% fills and such, and the problem is that a modern sophisticated OoO processor will do an equally good job extracting parallelity on the fly while offering more flexibility.

      A large part of the problem, and the reason why multithreaded models are becoming pervasive, is that OoO processors actually extract very close to the maximum in instruction level parallelism even with near-infinite window-sizes (I recommend the paper at http://citeseer.ist.psu.edu/145067.html), so automatic vectorization of ILP is not a field to pin much hope on.

      My final note is that; While having sophisticated issue logic is fairly complex, the chip real estate is not that large, and the gains to be made are huge. The Cell has a weak primary processor, mostly meant to be an organizing hub for the vector operations, if you don't write vectorized code you are screwed (unless compiler technology does something amazing soon).