IBM Plans to Open the Cell Processor
morcheeba writes "According to an EETimes article, IBM is planning on releasing the full specifications and software libraries for the powerful processor that will be in the Playstation 3. The goal is to stimulate open-source development for other applications of the chip. The article doesn't mention if there will be some affordable development systems for all these programmers -- I'm hoping for a ps3 devkit." From the article: "IBM is eager to find other opportunities for Cell, but it's going to take a lot of software work...Going to the open-source community makes sense, because they could attract a lot of pretty smart programmers who could spin out software and applications for Cell."
is how does Sony feel about this?
Holy crap! That's amazing. Now, is this "fully open" a la' "Shared Source" or "fully open" as in "you have the same docs we do?" And what's with the comment about hardware discounts?
-theGreater....f*ck yeah! Thanks IBM! :D
This is just another indication that
IBM "gets" Open Source
The original IBM compatible standard (what we just call X86 nowadays) took off when Compaq reverse-engineered the BIOS and created the first "clone" of a "genuine" IBM PC. This undoubtedly resulted in explosive growth for Intel, who made the CPU. Now that IBM is manufacturing the chip (instead of Intel for the first IBM PC), it is absolutely in their best interest to make the Cell processor as mainstream as possible by opening up all of its specs.
Bill Clinton: Pimp we can believe in. - The Shirt!!!
Of course, it would benefit Sony too.
Really there isn't too much of a story here. It is only a story because Sony is involved. If Sony wasn't using the Cell in the PS3 and the Cell was just some new chip from IBM, they would be doing the exact same thing anyways. We tend to think of the Cell as the "PS3 chip", but really the PS3 is just the first product to market to use it.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
Why wouldn't Sony want IBM to do this. Since the platform specific game developer is going the way of the Dodo, how do you get an edge?
Perhaps by giving every anti-Microsoft fanatic video game freak an outlet? When licensed 3rd party support becomes even on both sides of the map, it will be consumer mods that make the difference to gamers. Can I mod chip it to play foreign games? Can I put vinyl kits on it? Can I use it to power my toaster?
Theoretically, one might be able to write some code that will allow you to play foreign games without having to void your warranty. How huge is that?
Also, Sony is going to need something extra to get people to buy it's system after a XBOX 360 Holiday season, and this may just be that.
Now if someone can just tell me:
1) When will the chip be available?
2) How much power will it disipate?
3) How much will it cost?
Then maybe I can design a product around it. Until then, it's vaporware for all practical intents and purposes.
I've abandoned my search for truth; now I'm just looking for some useful delusions.
It seems to me that this is a first step by IBM to try and move the Cell more into the foreground of computing i.e. to start transitioning computers over to start using Cell instead of x86. Going to the open source community with this project is the only feasible way to do this anymore, really. As much as big companies might like to, they will not be able to put in near the amount of effort or creativity that open source can provide.
As well, I think that moving to Cell would be a very positive step for the computer industry as a whole, helping it to get out of a rut that it seems to have fallen into. The benefits are enormous, the least of which is that if Cell starts becoming standard, average computing power of a desktop will skyrocket, allowing for brand new, highly computing intensive applications to be developed.
Now if they can make good products from these processors, maybe more games will be available for that platform. At the very least, one would have some market value in porting the games to that platform.
I've been hearing this argument a lot lately but I just can't quite understand it. So the consoles will all be using a variation of the Power processor. How does that translate into more games for the Mac? Linux has been running on x86 hardware forever yet no one has every tried to say, "Windows games run on x86 hardware so they should be easy to port to Linux or at the very least have some market value in porting the games to that platform." There's a lot more to it than just what the underlying instruction set happens to be...
the cheaper it will be to produce for the long haul. I would think Sony would be in favor of that.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
This setup looks a lot like the inverse of IBM's greatest strategic loss: the PC. That time, IBM had the brand, and sold hardware to a maverick niche market of PC hobbyists. They viewed software, including the OS, as a necessary sidelight, and let Microsoft judo them out of their control of the market revolution they created. IBM later lost $20B as their market failure came home to roost, and never recovered the leadership they squandered.
This time, IBM is the necessary part in the Playstation, which is in the hands of this generation's maverick niche market: gamers. Their Cell processors give them Microsoft's opportunity: base the market in the demanding niche, and market their product outside of it, leveraging their market feedback and brand into the larger market, including supplying competitors to the original platform. IBM is flipping the script: selling hardware means opening the software promotes their sales, inverting Microsoft's formula of taking software proprietary to capture more of the market defined by the hardware.
It all looks great on paper. Especially the greater scalability and persistence of open software, compared to Microsoft's centralized, proprietary approach. Time will tell if IBM can manage the opportunity, competing against Microsoft, as well as Microsoft did in the 1980s - and better than Microsoft will in the 2000s.
--
make install -not war
Well I can only assume Sony didn't sign any sort of exclusivity agreement for Cell, and in the corporate world "hey that's kind of unfair!" isn't exactly a grounds for suit.
Sony can't do much about this now, anyway, it's way too late in the game to switch processors, and IBM probably has enough patents on the thing to prevent anyone from making an equivalent too soon.
Somehow I don't think this is going to hurt Sony though. True blue Geek Buzz generates the right kind of attention to a new product. If people think that cool hacks will be coming out for the PS3, then they'll be more likely to hold off and not buy an XBox 360 (this is certainly changing MY opinion, and while my main reason for buying a PS3 might be to hack around, I'll still get some games -- it's been a while since I've played anything up to date, and I'm certainly never going to drop the crazy money it takes to get a PC up to respectable gaming speed)
Sony is generally a lot more hacker friendly that major competitors Apple and Microsoft. I think they'll be smart enough to see that this a) only affects a very small market segment and b) will generate good press.
In Capitalist America, bank robs you!
The reason why I mentioned "putting FP back into the curriculum" was, however, that it is my understanding that, if you're right, there's a good chance that programmers would prefer multithreading in imperative languages precisely because it'd be closer to what they'd be used to. So, by getting them used to FP, we'd see a "more fair" evaluation of the practicality of this approach.
Your idea seems to be that idealism would drive the CS curriculum, which then would drive the industry. My observation over the last 10 years has been the opposite. In 1996, CS freshman were learning Scheme and Haskell; today they are using Java, because "it's more practical and aligned with the industry" or some such excuse. But now that the bust has eliminated all the "I just want to get rich" CS students, maybe it will swing the other way.
Now wait, this is business as usual. Pick just about any processor (ARM,
PowerPC, x86, MIPS, you name it) and you can download detailed specs, both for
the programming model and the hardware details. Honestly, I can't think of a
CPU that this hasn't been true for. Maybe with the general closedness
of GPUs people are forgetting this.
I don't think the SPEs can be effectively preemptively scheduled. They are designed to have executable code loaded onto them, and work on buffer blocks of data. A context switch would have to load both code, SPE CPU state, and buffer data.
What's more likely is for them to be cooperatively scheduled. SPE code could signal when it's done a block.
Actually, now that I think about it, there's a central memory manager module, which handles transfering data to and from SPEs. Potentially the Cell could build a dependency map of how the buffer blocks feed through the SPEs, and detect when more data is coming from system RAM, and start the context switch then.
RAM -> SPE0 -> SPE5 -> SPE2 -> RAM
The main CPU would build metrics to see how long each SPE takes to process a block of data, so when it's near time to context switch, it could wait for the next copy of data from RAM to SPE0, at which point it would stop not let the copy happen. When all of the old data was done copying from SPE0 to SPE5, then SPE0 could be context switched away. Similarly when SPE5 was done processing its data, and had copied it to SPE2, then it would be context switched, and so on.
Instead of thinking of all of the SPEs as part of one process, that would be preemptively scheduled together, think of them as separate threads that would be independantly scheduled, but whose dependancies would provide hints as to the best time to context switch them each.
The PowerPC element (PPE) of the Cell is not simply a G4 or G5 processor. It's am much simpler design overall. It only issues two instructions per clock cycle, compared to eight on a G4, and is strictly in-order execution only, which complicates optimization on a multi-tasking general purpose computer.
Those fancy vector units are also not tuned for general purpose computing. The 250+ GFLOP numbers that have been widely quoted are for single percision mathematics with non-standard rounding. There is a stricter double percision mode available, but it's a full order of magnitude slower.
I can't help but wonder if this is directly related to IBM's decision to sell their PC business to Lenovo. IBM has watched counless Linux geeks mod the XBox and install their OS of choice. If it were to take off like wildfire, this kind of modding would be potentially dangerous to the traditional OEM PC market, because it would mean that cheap (like $199) machines that can be made to run a powerful OS and do things like MythTV and the like could subvert the normal PC market. Sure, the market for modded Xboxen is small, and confined to hobbyists, but if the architecture were open and you didn't have to mod it, a lot more people would do it.
Of course if you aren't an OEM, this looks much less terrifying. In fact, it starts looking more and more like an opportunity. So a company like IBM can sell its money-losing OEM business and get into the game system market with no worries about what happens to x86 if the new consoles start to hurt the PC.
Maybe they weren't thinking "Let's get rid of this money-losing PC business." Maybe they were thinking "Let's kill x86 by building a cheaper PC market on another architecture, staring with a console, but expanding into other appliances. We'll open it up so that people get interested, Linux will be running on it in no time, new Linksys and Netgear routers will use it, and then on to other appliances we haven't even imagined yet. It'll find its way into PCs, and PCs will suddenly be as cheap as a console. Come to think of it, before we do any of this, let's schedule a meeting with Lenovo ... suckers."
That said, I'm not totally convinced Haskell will take off even if FP does become hugely mainstream. As a language it has pretty atrocious usability. More likely, mainstream imperative languages will incorporate extensions that allow for function programming: after all, parametric polymorphism and lambda functions (sort of) already entered mainstream imperative languages.
Alternatively, something like Subtext may prove to be the way forward. All I know is I'm convinced there is a better way to do lazy function programming than Haskell ;)
Oh, and for what it's worth, while learning Haskell and Floyd-Hoare logic is mind expanding, graduates that can write code which compiles are probably more desirable long term. The free market doesn't demand languages like Java because it's McCrap, they demand it because it makes the most sense for many commercial projects (aka getting things done outside of academia).
I hope you're joking, since Java programmers still ought to understand those basic concepts.