xkrt

Documentation

XKaapi Runtime (XKRT) - A parallel runtime system for macro-dataflow on multi-devices architectures.

XKRT is a macro-dataflow and tasking runtime system for automating memory management alongside parallel execution. It provides portable abstraction for C, C++, Julia and partial support for BLAS and OpenMP.

Please open any issue at https://github.com/rpereira-dev/xkrt

Related Projects

This repository hosts the XKRT runtime system.
Other repository hosts specialization layers built on top of the runtime:

XKRT software stack

Installation

Requirements

Optional

Build (One line assistant)

# using wget
bash <(wget -qO- https://gitlab.inria.fr/xkaapi/dev-v2/-/raw/release/latest/scripts/install.sh)

# using curl
bash <(curl -fsSL https://gitlab.inria.fr/xkaapi/dev-v2/-/raw/release/latest/scripts/install.sh)

Build example (Manual)

See the CMakeLists.txt file for all available options.

# with support for only the host driver and debug modes, typically for developing on local machines with no GPUs
CC=clang CXX=clang++ cmake -DUSE_STATS=on -DCMAKE_BUILD_TYPE=Debug ..

# with support for Cuda
CC=clang CXX=clang++ CMAKE_PREFIX_PATH=$CUDA_PATH:$CMAKE_PREFIX_PATH cmake -DUSE_CUDA=on ..

# with support for Cuda and all optimization
CC=clang CXX=clang++ CMAKE_PREFIX_PATH=$CUDA_PATH:$CMAKE_PREFIX_PATH cmake -DUSE_CUDA=on -DUSE_SHUT_UP=on -DENABLE_HEAVY_DEBUG=off -DCMAKE_BUILD_TYPE=Release ..

Available environment variable

Directions for improvements / known issues