Cell Programming IBM: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
mNo edit summary
(→‎Tutorials: Some mirror links are down, removed them.)
Line 63: Line 63:


== Tutorials ==
== Tutorials ==
*Cell Programming Tutorial - IBM (5in1; mirror: http://rapidshare.com/files/416223029/cell.zip  mirror: http://ul.to/39b2fq  mirror: http://www.megaupload.com/?d=0BWIWG1N)
*Cell Programming Tutorial - IBM
** [http://ibm.com/developerworks/power/tutorials/pa-cbecompile1 part1] - Summary: Meet the Cell Broadband Engine™ (Cell BE) processor from a compiler-writer's perspective, and get a bird's-eye view of a number of the unique challenges it poses in this first tutorial of a five-part series.
** [http://ibm.com/developerworks/power/tutorials/pa-cbecompile1 part1] - Summary: Meet the Cell Broadband Engine™ (Cell BE) processor from a compiler-writer's perspective, and get a bird's-eye view of a number of the unique challenges it poses in this first tutorial of a five-part series.
** [http://ibm.com/developerworks/power/tutorials/pa-cbecompile2 part2] - Summary: This tutorial discusses specific issues in optimizing code to run effectively on the Synergistic Processor Elements (SPEs) in the Cell Broadband Engine™ (Cell BE) processor.
** [http://ibm.com/developerworks/power/tutorials/pa-cbecompile2 part2] - Summary: This tutorial discusses specific issues in optimizing code to run effectively on the Synergistic Processor Elements (SPEs) in the Cell Broadband Engine™ (Cell BE) processor.
Line 72: Line 72:
* [http://publib.boulder.ibm.com/infocenter/ieduasst/stgv1r0/index.jsp IBM Cell Broadband engine tutorials]
* [http://publib.boulder.ibm.com/infocenter/ieduasst/stgv1r0/index.jsp IBM Cell Broadband engine tutorials]


* [http://ilab.usc.edu/packages/cell-processor/course/ iLab University of Southern California 18 part course] (18in1 mirror: [http://www.multiupload.com/2ZII56U731 ilab.usc.edu-cell-course.rar (12.61 MB)]
* [http://ilab.usc.edu/packages/cell-processor/course/ iLab University of Southern California 18 part course]


** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture1-intro.pdf 1.Intro] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture2-cell.pdf 2.Cell] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture3-architecture.pdf 3.Architecture] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture4-concurrency.pdf 4.Concurrency] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture5-parallelism.pdf 5.Parallelism] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture6-patterns1.pdf 6.Patterns1] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture7-patterns2.pdf 7.Patterns2] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture8-streamit.pdf 8.Streamit] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture9-debugging.pdf 9.Debugging] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture10-performance.pdf 10.Performance] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture11-compilers.pdf 11.Compilers] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture12-streaming.pdf 12.Streaming] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture13-starp.pdf 13.Starp] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture14-bluespec.pdf 14.Bluespec] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture15-cilk.pdf 15.Cilk] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture16-games.pdf 16.Games] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture17-raw.pdf 17.Raw] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture18-future.pdf 18.Future]
** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture1-intro.pdf 1.Intro] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture2-cell.pdf 2.Cell] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture3-architecture.pdf 3.Architecture] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture4-concurrency.pdf 4.Concurrency] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture5-parallelism.pdf 5.Parallelism] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture6-patterns1.pdf 6.Patterns1] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture7-patterns2.pdf 7.Patterns2] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture8-streamit.pdf 8.Streamit] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture9-debugging.pdf 9.Debugging] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture10-performance.pdf 10.Performance] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture11-compilers.pdf 11.Compilers] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture12-streaming.pdf 12.Streaming] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture13-starp.pdf 13.Starp] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture14-bluespec.pdf 14.Bluespec] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture15-cilk.pdf 15.Cilk] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture16-games.pdf 16.Games] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture17-raw.pdf 17.Raw] ** [http://ilab.usc.edu/packages/cell-processor/course/6.189-lecture18-future.pdf 18.Future]

Revision as of 22:46, 7 May 2013

Programming Frameworks

Cell eclipse sdk systemsim.jpg
example

Currently there are two programming frameworks to use (we don't intend to talk about © Sony SDK nor about the free community driven psl1ght on this page). The Cell SDK is the most full featured and "supported" but is architecture specific, whereas the OpenCL should allow code portability to other accelerators (like GP-GPU's) however is from IBM alphaworks so should be considered beta.

Cell SDK 3.0

Cell SDK 3.1

note: The IBM Full-System Simulator has been removed from the SDK package, and is now available separately. To obtain the Simulator, download it from the following alphaWorks Web site: http://www.alphaworks.ibm.com/tech/cellsystemsim

Compilers

  • ppu-gcc -- GNU GCC PPC compiler
  • spu-gcc -- GNU GCC SPU compiler
  • xlcl -- IBM XL OpenCL compiler

Documentation

Further Info

Even more docs http://moss.csc.ncsu.edu/~mueller/cluster/ps3/

Project OpenCLit - Cluster Computing with the PS3 : http://portal.gitbrew.org/wikibrew/PS3:OpenCLit

Tutorials

  • Cell Programming Tutorial - IBM
    • part1 - Summary: Meet the Cell Broadband Engine™ (Cell BE) processor from a compiler-writer's perspective, and get a bird's-eye view of a number of the unique challenges it poses in this first tutorial of a five-part series.
    • part2 - Summary: This tutorial discusses specific issues in optimizing code to run effectively on the Synergistic Processor Elements (SPEs) in the Cell Broadband Engine™ (Cell BE) processor.
    • part3 - Summary: This tutorial discusses the compiler issues in optimizing code to run efficiently on SIMD-capable processors. In particular, it shows how to optimize code that must run both on the VMX SIMD engine of the PowerPC® core of the Cell Broadband Engine (Cell BE) processor, and also on the SIMD-only Synergistic Processor Elements (SPEs).
    • part4 - Summary: This part discusses ways to partition code to run across the multiple cores available in a Cell Broadband Engine™ (Cell BE) processor. It gives particular attention to efficient partitioning of code to allow larger programs or data sets to be manipulated using the 256KB of local store available on the Synergistic Processor Elements (SPEs).
    • part5 - Summary: This last tutorial discusses techniques for managing data in the local store of the Synergistic Processor Elements (SPEs) of a Cell Broadband Engine (Cell BE) processor. Learn particular techniques such as double-buffering and maintaining a reasonably efficient software cache.

PowerPC Assembly



Hypervisor

Research hypervisor (rhype):

Secure hypervisor(shype):