Advanced Search
Start Your Free Trial

Overview

Other Readers Also Read...
The Art of Multiprocessor Programming

The Art of Multiprocessor Programming
by Maurice Herlihy; Nir Shavit

This is the Safari online edition of the printed book.

Make the Most of IBM’s Breakthrough Cell Processor in Any Gaming, Graphics, or Scientific Application

IBM’s Cell processor delivers truly stunning computational power: enough to satisfy even the most demanding gamers and graphics developers. That’s why Sony chose the Cell to drive its breakthrough PlayStation 3 and why Cell processors are at the heart of today’s most powerful supercomputers. But many developers have struggled to create high-performance Cell applications: the practical, coherent information they need simply hasn’t existed.

Programming the Cell Processor solves that problem once and for all. Whether you’re a game developer, graphics programmer, or engineer, Matthew Scarpino shows you how to create applications that leverage all the Cell’s extraordinary power. Scarpino covers everything from the Cell’s advanced architecture to its powerful tools and libraries, presenting realistic code examples that help you gain an increasingly deep and intuitive understanding of Cell development.

Scarpino illuminates each of the Cell’s most important technical innovations, introduces the commands needed to access its power, and walks you through the entire development process, including compiling, linking, debugging, and simulating code. He also offers start-to-finish case studies for three especially important Cell applications: games, graphics, and scientific computing. The Cell platform offers unprecedented potential, and this book will help you make the most of it.

  • Mastering the Cell SDK, including the GCC-based buildchain, ppu-gdb/spu-gdb debuggers, IBM Full System Simulator, and Cell IDE

  • Understanding the Cell’s central processing core, the PowerPC Processor Unit (PPU): structure, programming libraries, and AltiVec instructions

  • Programming the Synergistic Processor Unit (SPU): vector processing, communication, caching, assembler coding, and more

  • Leveraging SDK vector and matrix libraries, including the Large Matrix Library, BLAS Library, FFT libraries, Multiprecision Library, and Monte Carlo API

  • Coding basic 2D graphics using the Linux frame buffer

  • Building 3D graphics with the new Gallium OpenGL library 

  • Constructing 3D games with Ogre3D and packaging them using Collada digital content interchange

  • Optimizing the performance of your Cell applications

  • Developing on standard PCs and transferring code to Cell systems such as the PlayStation 3

Foreword xv

Preface xvii

Chapter 1: Introducing the Cell Processor 1

Part I: The Software Development Tools 13

Chapter 2: The Cell Software Development Kit (SDK) 15

Chapter 3: Building Applications for the Cell Processor 35

Chapter 4: Debugging and Simulating Applications 53

Chapter 5: The Cell SDK Integrated Development Environment 83

Part II: The PowerPC Processor Element (PPE) 97

Chapter 6: Introducing the PowerPC Processor Unit (PPU) 99

Chapter 7: The SPE Runtime Management Library (libspe) 125

Chapter 8: SIMD Programming on the PPU, Part 1: Vector Libraries and Functions 153

Chapter 9: SIMD Programming on the PPU, Part 2: Methods and Algorithms 195

Part III: The Synergistic Processor Element (SPE) 217

Chapter 10: Introducing the Synergistic Processor Unit (SPU) 219

Chapter 11: SIMD Programming on the SPU 239

Chapter 12: SPU Communication, Part 1: Direct Memory Access (DMA) 285

Chapter 13: SPU Communication, Part 2: Events, Signals, and Mailboxes 317

Chapter 14: Advanced SPU Topics: Overlays, Software Caching, and SPU Isolation 345

Chapter 15: SPU Assembly Language 367

Part IV: Mathematics and Computation 409

Chapter 16: Vectors and Matrices 411

Chapter 17: The Fast Fourier Transform (FFT) 439

Chapter 18: Multiprecision Processing and Monte Carlo Methods 463

Part V: Graphics and Games 489

Chapter 19: Programming the Frame Buffer: Linux and the PlayStation 3 491

Chapter 20: OpenGL on the Cell: Gallium and Mesa 503

Chapter 21: Building Games with Ogre3D 529

Chapter 22: Packaging Graphics with COLLADA 559

Epilogue 581

Part VI: Appendices 583

Appendix A: Understanding ELF Files 585

Appendix B: Updating the PS3 Add-On Packages and Installing a New Linux Kernel 609

Appendix C: The Accelerated Library Framework (ALF) 617

Appendix D: SPU Instruction Set Reference 649

Appendix E: A Brief Introduction to Tcl 661

Index 669

Amazon.com® Reader Reviews (Ranked by Helpfulness)

Average Amazon.com® Rating: 4.5 out of 5 rating Based on 6 Ratings

Great First Look into the Cell Processor - 2008-12-13
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Though the book is great for those wanting to understand the Cell processor, it is not for beginners. As a game design student with some programming skill, I clearly do not follow my own advice. This minor detail, though, will not keep me from telling others of Mr. Scarpino's fine work.

Starting with the basic structure of the Cell processor, the book gives a brief introduction to the hardware's PPU/SPU setup and capabilities. After a few walkthroughs that setup workspaces, the book delves more into the operations of the processor's operations, how parts interact, etc. These chapters are invaluable to programming on a Cell-based system and each detail was fairly easy to absorb. Thanks to the author's great explanations, it almost never felt like I was reading a textbook or programming primer.

My only gripe is that the material from the middle of the book onward is a bit difficult to understand at times, even with the author's help. I cannot fault the book since it was made for more experienced programmers, but keep this in mind when shopping.

Other forms of documentation on the Cell Processor fail to live up to the detail, readability, and focus that this book provides. I did not fully grasp every concept my first time through, but I will definitely read again and recommend to others.

Exceptional Book - 2009-06-25
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Programming the Cell Processor: For Games, Graphics, and Computation

This book is fantastic, complete and easy to read. It centers on programming the super computer found in a PS3, albeit the same processor is used in IBM's road runner, the current fastest computer built.

If you interest in diffrent CELL Architectures take it - 2009-05-18
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Frankly, this is only book I know about Cell Processor. It explains architecture and how you going to program to Cell. I have PS3 and I am interest in game development so I got it and like it. I didn't finish yet but it is very easy to understand and topics are very well organized. If you want to know Cell Processor don't miss it.

Terrific, more books should be organized like this. - 2009-04-27
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Though I am only about half way through this book right now I can tell you that it is definitely set apart from other books. The author starts out with a wonderful overview of how the Cell processor, and each part of it, works. Its very easy to follow and covers, in my opinion, exactly what you need to know to be able to effectively develop for a platform. Though this is basically what you can tell from reading the table of contents. I just wish I could find more books written in the manner that this book is. This book deserves every last bit of the 5 stars I gave it. If you have any interest in working with the Cell processor stop thinking about it and just buy this book.

powerful libraries for higher level coding - 2008-12-22
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
IBM's Cell is a very impressive processor and Scarpino's text gives tons of practical information about programming it. But there is some material that's a little outdated. In chapter 6, it speaks about Apple's Power Mac using IBM's PowerPC 970 in 2002. However, for the past few years, Apple has gone with the Intel processor family. This book came out in 2008 and perhaps the mention of the Power Mac is slightly dated.

A strong point about Cell is its SIMD functionality. When appropriate, it lets you garner vast performance by crunching parallel data streams. For certain matrix operations, including a lot of image processing, SIMD is valid, and if these are your main applications, it is well worth taking a close look at using Cell.

What IBM has also done with Cell is emplace sophisticated libraries that can be accessed at the C/C++ level. The crucial point is that you are not restricted to coding in assembler. The code examples are given in C/C++ to drive home this point. The libraries include a lot of matrix algebra that, as mentioned above, lets you use SIMD. So the standard matrix operations are well covered. And there is even a special case of handling 4x4 floating point matrices. Used for 3 dimensional contexts. More generally, BLAS is also available, which helps if you have legacy packages that use it.

Browse Similar Topics

Top Level Categories:
Graphics
Programming

Sub-Categories:
Graphics > 3D Design and Animation
Programming > Game Programming

Some information on this page was provided using data from Amazon.com®. View at Amazon >


About Safari Books Online • Terms of Service • Privacy Policy • Contact Us • Corporate Licenses • Help • Accessibility | See us on FacebookSee us on Linked InSee us on TwitterRSS

Copyright 2009 Safari Books Online. All rights reserved.