Third Helix is now Kickbomb Entertainment! Please visit kickbomb.us for all future updates.


26 Nov 2008

programmingthecellprocessorI recently had the opportunity to check out the just-released book Programming the Cell Processor by Matthew Scarpino. While I'm not technically a programmer -- insofar as that my career is based on game design -- I'm not unfamiliar with programming, and since I've been working on the Playstation 3 for the last three years or so I do have a bit of interest in how the Cell really works.

First and foremost, this is NOT a book for beginners. It's for experienced programmers who want to start working with the Cell processor. If that describes you, then you should buy this book immediately.

Every imaginable detail about the Cell is covered here. You'll learn how to write code, yes, but you'll also learn how that code works in terms of the Cell's physical architecture. This is crucial to understanding how best to harness the Cell's power. There are numerous diagrams and clear writing throughout, succinctly explaining what your code does and why it does it.

The book opens with a few chapters on setting up your work environment. This goes into great detail, walking you through installing Linux on a Windows PC or a Playstation 3 system, using gcc/make, acquiring and configuring the Cell SDK, debugging and simulating Cell applications, and setting up Eclipse and the Cell IDE. If you already know your way around Linux you'll be able to skip most of this, but if you're a Windows user (like me) this section will prove invaluable.

This is followed by in-depth technical discussions of the PPU (the Cell's primary processor) and the SPUs (the smaller, distributed processors at the heart of the Cell's power), how these communicate with each other, and how to optimize these communications. Sprinkled throughout are use cases for various functions in the Cell standard libraries; by the end of this section you should be able to program the Cell processor reasonably effectively.

While this book is focused on the Cell processor in general, it does recognize that perhaps the most ubiquitous application of the processor at present is the Playstation 3 system; to that end, the third and final section of the book is targeted at using the Cell processor for specifically game-related tasks: programming the frame buffer, using OpenGL, running the popular Ogre3D engine on the Cell, and using the COLLADA shared graphics file format and libraries. Depending on your focus, this section may or may not be useful, but either way its quality remains up to par with the rest of the book.

My only complaint is that the book's structure is not particularly conducive to use as a reference guide. That is, while it covers a significant portion of the Cell libraries and features, you can't just quickly look something up. The book's design seems to suggest a deep, initial read-through and then only occasional re-references thereafter. But perhaps supplementing it with the SDK's own documentation is sufficient.

Overall, highly recommended for experienced programmers who want to start working with the Cell processor.

Posted In: