Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docs docs

XK.jl - Julia bindings for the XKRT and XKBlas softwares

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 and XKBlas repositories 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 experimentals.

To use XK.jl, please refer to the documentation and examples

Installation

XK.jl must currently be installed manually, please use the following steps.

Prerequisities

  • Julia >= 1.11
  • CMake >= 3.17
  • LLVM/Clang >= 20 (required — earlier versions lack the C++20 support XKRT needs)
  • hwloc library

Steps

  • Edit the header of deps/build_xkblas.jl to your convenience
  • Make sure CMake will use Clang >= 20, e.g. export CC=clang-20 CXX=clang++-20 (the build aborts early with a clear message if the compiler is too old)
  • Run julia --project=./deps -e 'using Pkg; Pkg.instantiate(); include("./deps/build.jl")'

Testing

If the installation succeeded, this should run (the --project=. is required so Julia can find the XK package):

julia --project=. examples/blas/gemm.jl

You can run exhaustive tests with

julia --project -e 'using Pkg; Pkg.test()'

Support

If you are look for any support, feel free to contact us directly.
Romain Pereira (rpereira@anl.gov), Michel Schanen (mschanen@anl.gov), Swann Perarnau (swann@anl.gov)

References

[1] Multi-GPU memory coherence for BLAS matrices. Romain Pereira, Pierre Etienne Polet, Swann Perarnau, Thierry Gautier. 40th IEEE International Parallel & Distributed Processing Symposium Workshops (IPDPSW, HIPS), New Orleans, USA.

[2] [UNDER REVIEW] XKRT: a Runtime System for Macro-Dataflow Programming on Multi-Devices Architectures. Romain Pereira, Swann Perarnau, Pierre-Etienne Polet, Brice Videau, Thomas Applencourt, Thierry Gautier.

[3] [UNDER REVIEW]: XK.jl: Composable and Portable Multi-GPU BLAS in Julia. Romain Pereira, Alexis Montoison, Michel Schanen, Swann Perarnau

About

Julia binding for XKBlas: a portable multi-GPU BLAS library with support host memory coherence

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages