These are the known limitations and restrictions in
this version of the SDK.
DaCS for
Cell BE and
DaCS for Hybrid-x86 limitations:
- Performing a dacs_runtime_exit() call immediately after
a DaCS for Hybrid-x86 communication operation without an intervening test
for communication completion may cause the application to hang. The hang occurs
because the exiting application may complete (and terminate communication)
before the communication completes, leaving the other application (the one
the exiting function was communicating with) in a hung state awaiting the
communication. To avoid this problem ensure that your applications allow
for communication to complete by testing for completion prior to calling dacs_runtime_exit().
- When using the dacs_de_start API, it returns DACS_ERR_SYSTEM
instead of INVALID_DACS_ERROR_CODE if the file doesn't exist on the remote
machine. To diagnose the problem, set the environment variable DACS_HYBRID_DEBUG=Y and
examine the associated log files on the accelerator(s) for the adacsd,
typically /var/log/adacsd.log for the failing errno.
GCC Toolchain limitations:
- In the SPE, the %l qualifier for printf/scanf is
not supported.
- When debugging a multi-threaded application, the debugger may get confused
if, during a single-step operation on one thread, some other thread reports
an event that causes debugging to stop. An example is a new thread is created,
a shared library or SPE context is loaded, and some breakpoint is hit. Subsequent
single-step operations on the original thread may behave incorrectly. When
this occurs, you can restore correct operation of the debugger by not single-stepping
and instead continuing the program until it hits another breakpoint.
- GDB has trouble correctly tracing an SPE context that is created with
events enabled (SPE_EVENTS_ENABLE).
- Attempting to build the Linux kernel for Cell BE using
the ppu-gcc compiler will fail with an Internal Compiler
Error. As a workaround, build the kernel using the system compiler gcc.
Networking limitation:
- The eth1 network port on a BladeCenter QS20 may
be slower than eth0 when transmitting UDP streams.
Performance Debugging Tool limitations:
- PDT tracing in a hybrid system is only supported on AMD Opteron chips
that support the RDTSCP (read time-stamp counter and processor
ID instruction) introduced in the NPT Family 0Fh processors.
Full-System Simulator limitations:
- The libsim library has been removed from the SDK. Sample source code is
provided with the simulator that allows users to build their own version of
libsim. The source code can be found in /opt/ibm/systemsim-cell/sample/cell/libsim.
The first execution of the /opt/cell/cellsdk_sync_simulator script
will build the libsim.a library and export it to the /opt/cell/sysroot/usr/spu/lib directory.
- The sim_printf.h header file has been removed from the SDK. A sample header
file containing a prototype for sim_printf is shipped with the simulator and
can be found in the /opt/ibm/systemsim-cell/sample/cell/libsim/spu/libsim.h file.
The first execution of the /opt/cell/cellsdk_sync_simulator script will
export the libsim.h header file to the /opt/cell/sysroot/usr/spu/include directory.
- The level 3 BLAS examples cause a BUS ERROR when they are executed in
the Full-System Simulator.