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.
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.
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
SKEPU_OPENMP. This way SkePU can be compiled even though you are missing some of the backends. CPU backend is always compiled.
In version 1.0, support for parse matrix skeleton operation is implemented. Also, 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 'CHANGES' file and examples/tests provided with the source code for more description.