1 / 76

Developing Software for the PS3/Cell Platform

Developing Software for the PS3/Cell Platform. Mike Acton macton@insomniacgames.com. The Cell Processor. A quick introduction to the hardware. The Cell is. ... not a magic bullet. ... not a radical change in high-performance design. ... fun to program for!. Programming for Games.

astra
Télécharger la présentation

Developing Software for the PS3/Cell Platform

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Developing Software for the PS3/Cell Platform Mike Acton macton@insomniacgames.com

  2. The Cell Processor A quick introduction to the hardware

  3. The Cell is... • ... not a magic bullet. • ... not a radical change in high-performance design. • ... fun to program for!

  4. Programming for Games Quick background of game development

  5. Performance Mostly "soft" real-time  (60Hz or 30Hz)

  6. Languages and Compilers

  7. Other Processers and I/O GPU, Blu-ray, HDD, Peripherals, Network

  8. Many Assets Art, Animation, Audio

  9. "Game" vs. "Engine" code Divisions of development

  10. Our Approach to the Cell for games What does it change?

  11. WARNING! “Manual Solution” “Very optimized codes but atcost of programmability." Marc Gonzales, IBM

  12. Good solutions for the Cellwill be good solutions on otherplatforms.

  13. High-performance code is easy toport to the Cell.

  14. Poorly performing code from anyplatform is hard to port.

  15. Data and codeoptimization are merely importanton conventional architectures ... On the Cell, they're critical.

  16. Common Complaints

  17. #1 "But, it's too hard!"

  18. Multi-processing is not new • Trouble with the SPUs usually is just trouble with multi-core. • You can't wish multi-core programming away.  • It's part of the job.

  19. "Cache and DMA data design too complex" Enforced simplicity

  20. Not that different from calling memcpy

  21. But you get extra control

  22. "My code can't be made parallel." Yes. It can.

  23. "C/C++ is no good for parallel programming" The solution is to understand the issues -- not to hide them.

  24. "But I'm just doing this one little thing... it doesn't make any difference." Is it really just you?  Is it really just this one thing?

  25. It's all about the SPUs Designing code for concurrency

  26. “What's the easiest way to split programs into SPU modules?”

  27. Let someone else do it.

  28. But if that someone is you... Rules and guidelines

  29. Rule #1DATA IS MORE IMPORTANTTHAN CODE

  30. Good code follows good data. • Fast code follows good data. • Small code follows good data. Guess what follows bad data.

  31. Rule #2WHERE THERE IS ONE, THERE IS MORE THAN ONE

  32. The "domain-model design" Lie.

  33. Rule #3SOFTWARE IS NOT A PLATFORM

  34. Unless you are a CS Professor.

  35. The real difficulty is in the unlearning.

  36. The ultimate goal: Get everything on the SPUs.

  37. Complex systems can go on the SPUs • Not just streaming systems • Used for any kind of task • But you do need to consider some things...

  38. Data comes first. • Goal is minimum energy for transformation. • What is energy usage?  • CPU time.  • Memory read/write time.  • Stall time.

  39. Design the transformation pipeline back to front. • Start with your destination data and work backward. Changes are inevitable -- Pay less for them.

  40. SPUs use the canonical data. Best format for the most expensive case.

  41. Minimize synchronization Start with the smallest synchronization method possible.

More Related