SDK component descriptions

The SDK is divided into components, each of which is at a particular level of development. Some components are prototype code and others have been fully tested and are warranted by IBM® with the appropriate purchased license.

The following table details the component development levels:
Table 1. Component development levels
Development level Description
1 Prototype-level code. There is no guarantee that the features and API will not change in a future release. IBM is particularly interested in customer feedback about this component.
2 Beta-level code that is stable.
3 Product-level code that is stable. However the function, which is typically example code, is provided on an as-is basis and might not be maintained or upgraded by IBM.
4 Product-level code that is stable and has been fully tested. This code is warranted on certain platforms and is fully supported by IBM through standard support channels.
5 GPL and LGPL open source code that is not directly supported by IBM but has been tested with the SDK.
The following table provides the list of SDK components with license, development level, and functional descriptions:
Table 2. SDK component list
Component Level License Description
ALF for Cell BE 4 IBM Accelerator Library and Framework (ALF) provides for ease of use in multi-core computing by simplifying the data distribution and work queue management for multiple tasks. The host is the PPU and the SPUs are the accelerators. The source and examples are available under a BSD license.
ALF for Hybrid-x86 1 IBM This version of ALF is directed toward a hybrid computing environment with an X86_64 host and CBEA hardware accelerators.
BLAS 4 IBM BLAS library for single and double precision linear algebra functions. The examples are available under a BSD license.
Cell Performance Counter 2 IBM The cell-perf-counter (cpc) tool is used for setting up and using the hardware performance counters in the Cell BE processor. These counters allow you to see how many times certain hardware events occur, which is useful if you are analyzing the performance of software running on a Cell BE system. This component is only available for the Fedora 7 platform.
Crash SPU Commands 5 GPL Crash extension with specific commands for analyzing Cell Broadband Engine Architecture SPU run control state. This component is only available for the Fedora 7 platform.
DaCS for Cell BE 4 IBM The Data Communication and Synchronization (DaCS) library contains functions for process management, data movement, data and process synchronization, topology features (such as the group concept), and error handling. DaCS is used only on CBEA hardware. The source and examples are available under a BSD license.
DaCS for Hybrid-x86 1 IBM The Data Communication and Synchronization (DaCS) library contains functions for process management, data movement, data and process synchronization, topology features (such as the group concept), and error handling. DaCS for Hybrid-x86 is used between an X86_64 host and CBEA hardware.
Documentation 4 IBM Documentation consists of man pages, PDFs, and README files in individual directories. The PDFs for the SDK are installed into directories under the /opt/cell/sdk/docs directory.
Examples 3 IBM This component contains example code including example libraries, demos, and a tutorial. The source code is available under a BSD license.
FDPR-Pro 4 IBM The Feedback-directed post-link program optimization tool allows you to instrument a program, run the instrumented version to collect its profile, and create a semantically-equivalent optimized version using that profile.
GCC Toolchain 4 GPL The GNU Toolchain packages provide a full development tool chain (GCC compiler, assembler, linker, debugger, binary utilities, and runtime library) to generate and debug code for the Cell BE PPE and SPE processor cores. The toolchain is provided both as native version running on Cell Broadband Engine Architecture and other PowerPC® Linux® systems, and as a cross toolchain hosted on X86 or X86_64 Linux systems. See the SDK 3.0 Programmer's Guide for more information on how to use the GNU Toolchain.
Hybrid Performance Tools 1 IBM These tools are designed to help you use a number of the performance tools in a hybrid system with more than one processor architecture. In particular, the Cell Broadband Engine is used as an accelerator for a host system with a different architecture.
IDE 4 IBM Eclipse-based integrated development environment for the SDK.
Kernel 5 GPL The operating system kernel with Cell Broadband Engine Architecture support. The kernel is included in RHEL 5.1. For Fedora 7, the kernel is part of the SDK.
LIBFFT 1 IBM This library provides a wide range of 1D and 2D Fast Fourier Transforms.
LIBSPE1/LIBSPE2 5 LGPL A low level library that defines the user space API to program for Cell Broadband Engine Architecture applications. LIBSPE2 is supplied with RHEL 5.1. For Fedora 7, LIBSPE2 and backwards compatibility support of LIBSPE1 is provided.
MASS Library 4 IBM 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 32-bit, 64-bit PPU, and SPU libraries are supported.
netpbm 5 GPL This graphics bitmap library is used by the Julia example. A cross development version is provided in the SDK for use on X86 and X86_64 platforms.
numactl 5 LGPL A library for tuning Non-Uniform Memory Access (NUMA) machines.
OProfile 5 GPL OProfile is a tool for profiling user and kernel level code. It uses the hardware performance counters to sample the program counter every N events. This component is only available for the Fedora 7 platform.
PDT 4 IBM The Performance Debugging Tool (PDT) provides the ability to trace events of interest during application execution, and record data related to these events from the SPEs, the PPE, and the AMD Opteron processor.
PDTR 4 IBM pdtr is a command line tool that reads and post-processes PDT traces.
Random Number Library 1 IBM A random number generator library suitable for simulation.
SIMDMath 4 IBM A math library that takes advantage of the Single Instruction, Multiple Data (SIMD) instructions in CBEA-compliant hardware.
Simulator 2 IBM A full system simulation infrastructure and tools for the Cell Broadband Engine™ processor. This component is only available for the Fedora 7 platform.
SPU-Isolation 1 IBM SPU-Isolation provides a build and runtime environment for signing and encrypting SPE applications. This component is only available for the Fedora 7 platform.
SPU-Timer 1 IBM The SPU timer library provides virtual clock and timer services for SPU applications.
SPU-Timing Tool 2 IBM The SPU static timing tool spu_timing annotates an SPU assembly file with scheduling, timing, and instruction issue estimates assuming a straight, linear execution of the program.
Sysroot Image 5 GPL/LGPL The system root image for the Full System Simulator is a file that contains a disk image of Fedora 7 files, libraries, and binaries that can be used within the simulator. This component is only available for the Fedora 7 platform.
XL C/C++ 2 IBM The IBM XL C/C++ Alpha Edition for Multicore Acceleration for Linux is an advanced, high-performance cross compiler that is tuned for the Cell Broadband Engine Architecture. It allows users to compile and link PPU and SPU code segments with a single compiler invocation.
Notes about the table:
  1. For RHEL 5.1, the Kernel and LIBSPE components are supplied with the operating system and not the SDK.
  2. The following components are not available for RHEL 5.1 because the necessary prerequisites are not available:
    • Crash SPU commands
    • Cell Performance Counter
    • OProfile
    • SPU-Isolation
    • Full-System Simulator and Sysroot Image
  3. The following components are provided for Fedora 7 as a convenience or to ensure correct functionality of a dependent component:
    • netbpm cross development package
  4. For the SDK, components that are at level 3 or 4 are installed by default except for the IDE, Crash SPU commands, PDT, and PDTR which are optional. Components that are at level 1 or 2 are optional. RPMs that have the -trace or -debuginfo suffixes are also optional and not installed by default.