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 see the XKRT Repository for more information.
This package is the Julia API of the XKRT environment.
It currently exposes the XK.BLAS module: a composable, performant and portable multi-GPU BLAS library.
Other modules are experimental.
XK.jl must currently be installed manually, please use the following steps.
- Julia >= 1.11
- CMake >= 3.17
- A C++20 compatible compiler (LLVM/clang >= 20.x recommended)
- hwloc library
- Edit the header of
deps/build_xkblas.jlto your convenience - Be sure to be using a C++20 compatible compiler (i.e., maybe
export CC=clang CXX=clang++) - Run
julia --project=./deps -e 'using Pkg; Pkg.instantiate(); include("./deps/build.jl")'
If the installation succeeded, this should run:
julia examples/blas/gemm.jlYou can run exhaustive tests with
julia --project -e 'using Pkg; Pkg.test()'See examples/ for more examples.