Yaksa is a high-performance datatype engine for expressing, managing and manipulating data present in noncontiguous memory regions. It provides portable abstractions for structured noncontiguous data layouts that are much more comprehensive compared with traditional I/O vectors.
Yaksa imitates parts of the MPI Datatype system, but adds additional functionality that would allow it to be used independent of MPI. It provides routines for packing/unpacking, creating I/O vectors (array of contiguous segments) and flattening/unflattening datatypes into process-portable formats.
Yaksa’s backend includes support for CPUs as well as different GPUs.
Yaksa has been tested on the following CPU architectures:
For GPU architectures, the following are supported:
- NVIDIA GPU via CUDA
- Intel GPU via Level Zero
Yaksa supports all C99 and POSIX 2001 compliant systems. Specific compilers that are supported are:
- GNU (>= 4.1)
- LLVM clang (>= 3.0)
- Intel (>= 10.1)
- PGI (>= 9.0)
- XL (>= 10.0)
- Sun Studio (>= 12)
- Fujitsu Softune
Please note that building for CUDA requires a compiler that is compatible with the CUDA installation. More details can be found at https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
The contents of this website are © 2020 under the terms of the yaksa license.