Cell/B.E.™ Software Development Kit (SDK) Version 3.0

The IBM SDK for Multicore Acceleration Version 3.0 is available for two different Linux® distributions (RHEL5.1 and Fedora 7) and in three different package types: Developer, Product, and Extras.

BSC hosts all the open source components that are part of the IBM Software Development Kit (SDK) for Cell/B.E.™. The IBM components and associated documentation are found at IBM developerWorks as three previous package types ISO images.

Developer package

The Developer package is provided under an International License Agreement for Non-Warranted Programs and are intended for evaluations of the SDK in a non-production environment. The Developer package provide access to all the mature technologies in the SDK 3.0 including:

Accelerated Library Framework (ALF)

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.

Data Communication and Synchronization (DaCS)

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.

BLAS library

BLAS library for single and double precision linear algebra functions.

GNU GCC Toolchain

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/B.E.™ 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.

GNU Ada compiler for PPE

Provides an Ada compiler for PPE.

GNU Fortran compiler for PPE and SPE

Provides a Fortran compiler for PPE and SPE code.

Performance Debugging Tool

The Performance Debugging Tool (PDT) provides the ability to trace events of interest during the application execution, and record relevant data related to these events from the SPEs and PPE and the Opteron.

PDT Reporting tools

pdtr is a command line tool that reads and post-processes PDT traces. See the man page for usage information.

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/B.E.™ 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/B.E.™ processor. 32-bit and 64-bit PPU libraries and 32-bit SPU are supported.

IBM Eclipse IDE for Cell/B.E.™ SDK

The IBM Integrated Development Environment for Cell Broadband Engine SDK is a set of Eclipse plug-ins that integrate the Cell/B.E.™ tool chain and enable rapid building of Cell/B.E.™ applications. It is built upon the Eclipse and C Development Tools (CDT) platform, integrates the Cell/B.E.™ GNU tool chain, compilers, IBM Full-System Simulator for the Cell/B.E.™, and other development components in order to provide a comprehensive, user-friendly development platform that simplifies Cell/B.E.™ 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.

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.

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/B.E.™ 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.

Documentation

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.

For Fedora 7 only, the Developer package also includes:

Linux Kernel

Enhanced Fedora 7 Linux kernel that fully enables and supports IBM BladeCenter QS20 and QS21 hardware.

libSPE/libSPE2

Low level library that defines the user space API to program for Cell Broadband Engine Architecture applications.

numactl

A library for tuning Non-Uniform Memory Access (NUMA) machines.

Product package

The SDK 3.0 RHEL5.1 Product package provides the same function as the RHEL5.1 Developer Package plus access to IBM Support and is intended for production purposes.

Extras package

The Extras package provides add-ons that can be applied to both the Product package and Developer package on RHEL5.1 and Fedora 7. The Extras packages are used to make available our latest and greatest technologies as soon as possible. They tend to be less mature or technology preview level code that may or may not become part of the generally available product in the future. The Extras packages are licensed under an International License Agreement for Early Release of Programs and contain:

Accelerated Library Framework (ALF) for Hybrid-x86

This version of ALF is directed toward a hybrid computing environment with an X86_64 host and CBEA hardware accelerators.

Data Communication and Synchronization (DaCS) for Hybrid-x86

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 a X86_64 host and CBEA hardware.

FFT Library

This library handles a wide range of 1D and 2D Fast Fourier Transforms.

Random Number Generation Library

A random number generation library suitable for simulation.

IBM C/C++ Alpha Edition for Multicore Acceleration single source compiler

The IBM XL C/C++ Alpha Edition for Multicore Acceleration for Linux, V 0.9 is an advanced, high-performance cross compiler that is tuned for the Cell Broadband Engine Architecture and allows users to compile and link both PPU and SPU code segments with a single compiler invocation.

Hybrid Performance Tools

These tools are designed to assist in using a number of the performance tools in a hybrid system that uses more than one processor architecture in the design. In particular the Cell Broadband Engine is used as an accelerator for a host system with a different architecture.

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.

SPU Timer

The SPU timer library provides virtual clock and timer services for SPU applications.

For Fedora 7 only, the Extras package also includes:

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/B.E.™ 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. This version adds support for an enhanced CBEA compliant processor with a fully pipelined, double precision SPE.

Sysroot Image for System Simulator

The system root image for the system simulator is a file that contains a disk image of FC7 files, libraries and binaries that can be used within the system simulator. This disk image file is pre-loaded with full range of FC7 utilities and also includes all of the Cell/B.E.™ Linux support libraries. 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.

Hardware Performance Counter

A Hardware Performance Counter utility has been included and allows to monitor and count cell performance events.

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 and this updated version supports cycle couting profiling of code running on the SPE.

Crash SPU Commands

Crash extension with specific commands for analyzing Cell Broadband Engine Architecture SPU run control state in a system crash.

SPU Isolation

SPU-Isolation provides a build and runtime environment for signing and encrypting SPE applications.