SkePU 0.7
SkePU Documentation

General Information

This is a template library with all objects being either templated or in some cases inlined. Therefore there is no need to link against any precompile libraries, just simply add the library to the compilers include path and include the header files of choice.

Basic Structure

SkePU consists of a few main classes that constitutes its functionality and interface.

Apart from these, SkePU also uses a few other internally as helpers.

Compilation and Preprocessor Symbols.

Since SkePU is a multi-backend library, it shields parts of the code with the help of preprocessor directives. Entities whose name ends in _CL are only included in the compilation if SKEPU_OPENCL is defined for the preprocessor. In a similar way entities ending in _CU are only included if SKEPU_CUDA is defined and _OMP for SKEPU_OPENMP. This way SkePU can be compiled even though you are missing some of the backends. CPU backend is always compiled.

New Features.

In version 0.7, support for 2D (two-dimesional) skeleton operations such as 2D-convolution is provided with the help of newly created matrix data type. Moreover, support for using multiple CUDA devices inside a single host thread is implemented that is available with CUDA 4.0. This is enabled by allocating page-locked memory that allows asyncrhonous CUDA operations. The support for multi-CUDA execution can be easily enabled in a skeleton program by defining USE_PINNED_MEMORY flag.

Please see the examples provided with the source code for more description.

 All Classes Namespaces Files Functions Enumerations Friends Defines