Cell BE Software Development Kit (SDK) Version 2.0
Since SDK 2.1 replaces SDK 2.0, the web pages and the packages will become unavailable two months after SDK 2.1 launch. It is recommended to move your systems to SDK 2.1/FC6.
GNU Toolchain
The GNU tool chain contains the GCC compiler for the PPU and SPU implemented by Sony Computer Entertainment. For the
PPU it is a cross-compiler on x86 and a replacement for the native GCC
compiler on PPC platforms. The GCC compiler for the PPU is preferred
and the make files are configured to use it when building the Libraries
and Samples. The GCC compiler also contains a separate SPE
cross-compiler that supports the standards defined in the SPU C/C++
Language Extensions V2.1, SPU Application Binary Interface
Specification V1.4, and Synergistic Processor Unit (SPU) Instruction
Set Architecture V1.0 documents.
IBM XL C/C++ Compiler
The IBM XL C/C++ compiler for Cell BE Processor is a cross-compiler for x86
platforms only. This C/C++ cross-compiler generates code for the
PowerPC Processor Unit (C and C++) or Synergistic Processor Unit (C
only) and is tuned for the Cell BE Architecture. The compiler requires
the GCC Tool chain for Cell Broadband Engine, which provides tools for
cross-assembling and cross-linking applications for both the PPE and
SPE.
IBM Full System Simulator
The IBM Full System Simulator is a software application that emulates the behavior of a
full system that contains a Cell BE Processor. Users are able to boot a
Linux operating system on the simulator and run applications on the
simulated operating system. In addition, the simulator also supports
the loading and running of statically-linked executables and
stand-alone tests without an underlying operating system.
Sysroot Image for System Simulator
The system root image for the system simulator is a file that contains a
disk image of FC5 files, libraries and binaries that can be used within
the system simulator. This disk image file is pre-loaded with full
range of FC5 utilities and also includes all of the Cell BE Linux
support libraries described in section 4.6. The RPM file is by far the
largest of the RPM files and when installed takes up 1.6 G bytes on the
host machineÂ’s hard disk.
Linux Kernel
A number of patches have been made to the Linux 2.6.18 kernel to provide services
needed to support the hardware facilities of the Cell BE Processor.
Cell BE libraries
SPE Runtime Management Library Version 1.2
The SPE runtime management library (libspe) contains an SPE thread
programming model for Cell BE applications. The elfspe enables direct
SPE executable execution from a Linux shell without the need for a PPE
application creating an SPE thread.
SIMD math library
The SIMD math library provides vector versions of a subset of the traditional math functions. These vector versions conform as closely as possible to the specifications set out by the scalar standards. However, fundamental differences between scalar architectures and the Cell BE Architecture require some deviations, including the handling of rounding, error conditions, floating-point exceptions, and special operands, such as NaN and infinities.
MASS (Mathematical Acceleration SubSystem) library
The Mathematical Acceleration Subsystem (MASS) consists of libraries of
mathematical intrinsic functions, which are tuned specifically for optimum
performance on the Cell BE processor. Currently only 32-bit and 64-bit PPU
libraries are supported.
Prototype code
Prototype libraries and samples package
The libraries and samples RPM package provides a rich set of optimized
standard Synergistic Processor Element (SPE) C library routines that
greatly reduce the development cost and enhance the performance of SPU
programs. A variety of application-oriented libraries, including Fast
Fourier Transform (FFT), image, audio resample, math, game math,
intrinsics, matrix operation, multi-precision math, noise generation,
oscillator, surface, synchronization, and vector are also included in
order to demonstrate the versatility of Cell BE architecture.
Additional samples and workloads demonstrate how a programmer can
exploit the on-chip computational capacity. Included is a large FFT
workload that showcases a performance that is more than an order of
magnitude higher than a traditional processor.
Accelerated Library Framework API (ALF)
The Accelerated Library Framework (ALF) API provides a set of functions to help
programmers solving data parallel problems on a hybrid system. ALF supports the
single-program-multiple-data (SPMD) programming style with a single program running
on all accelerator elements at one time. ALF offers programmers an interface to
partition data across a set of parallel processes easily without having to write
architecturally dependent code. The provided features include: data transfer
management, parallel task management, double buffering, and data partitioning.
SPE Runtime Management Library Version 2.0
SPE Runtime Management Library version 2.0 is an upgrade to version 1.2 and
is provided for early development and testing with SDK 2.0.
Performance support libraries and utilities
NUMA Policy Control (numactl)
Numactl is used to control NUMA policy for processes or shared memory. An
application can take advantage of this facility by binding a region of
virtual storage to specific bank of memory as well as binding a process
to specific NUMA node.
SPU Timing tool
The SPU static timing tool, spu_timing, annotates an SPU assembly file with
scheduling, timing, and instruction issue estimates assuming straight,
linear execution of the program. The tool generates a textual output of
the execution pipeline of the SPE instruction stream from this input
assembly file.
Feedback Directed Program Restructuring (FDPR-Pro)
The FDPR-Pro is a performance-tuning utility that reduces the runtime of user-level application programs.
The tool optimizes the executable image of a program by collecting information about the program's behavior
under a typical workload, and creating a new version of the program that is optimized for that workload.
The new program generated by the post-link optimizer typically runs faster than the original program.
Oprofile
OProfile is a system-wide profiler for Linux systems, capable of profiling all
running code at low overhead. OProfile is released under the GNU GPL.
IBM Eclipse IDE for Cell BE SDK
The IBM Integrated Development Environment for Cell Broadband Engine SDK is a set of Eclipse plug-ins that integrate the Cell BE tool chain and enable rapid building of Cell BE applications. It is built upon the Eclipse and C Development Tools (CDT) platform, integrates the Cell BE GNU tool chain, compilers, IBM Full-System Simulator for the Cell BE, and other development components in order to provide a comprehensive, user-friendly development platform that simplifies Cell BE development. Key features include the following: a C/C++ editor that supports syntax highlighting; a customizable template; and an outline window view for procedures, variables, declarations, and functions that appear in source code, a rich visual interface for PPE (Power Processing Element) and SPE (Synergistic Processing Element) GDB (GNU debugger), seamless integration of simulator into Eclipse and an automatic builder, performance tools, and several other enhancements.
RPMs in SDK
The table below shows the complete list of packages that can be installed for each supported platform. The rows in green are RPMs that can be download from IBM alphaWorks website and the remainder are hosted here.
|