Programming the Cell Processor: For Games, Graphics, and Computation, 1 edition
Authors: Matthew Scarpino
Venue:  (2008)

Make the Most of IBMs Breakthrough Cell Processor in Any Gaming, Graphics, or Scientific ApplicationIBMs Cell processor delivers truly stunning computational power: enough to satisfy even the most demanding gamers and graphics developers. Thats why Sony chose the Cell to drive its breakthrough PlayStation 3 and why Cell processors are at the heart of todays most powerful supercomputers. But many developers have struggled to create high-performance Cell applications: the practical, coherent information they need simply hasnt existed. Programming the Cell Processor solves that problem once and for all. Whether youre a game developer, graphics programmer, or engineer, Matthew Scarpino shows you how to create applications that leverage all the Cells extraordinary power. Scarpino covers everything from the Cells 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 Cells 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 IDEUnderstanding the Cells central processing core, the PowerPC Processor Unit (PPU): structure, programming libraries, and AltiVec instructionsProgramming the Synergistic Processor Unit (SPU): vector processing, communication, caching, assembler coding, and moreLeveraging SDK vector and matrix libraries, including the Large Matrix Library, BLAS Library, FFT libraries, Multiprecision Library, and Monte Carlo APICoding basic 2D graphics using the Linux frame bufferBuilding 3D graphics with the new Gallium OpenGL libraryConstructing 3D games with Ogre3D and packaging them using Collada digital content interchangeOptimizing the performance of your Cell applicationsDeveloping 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