gtensor
- 0 Collaborators
Multi-dimensional array C++14 header-only library for hybrid GPU development. ...learn more
Project status: Under Development
Intel Technologies
DPC++
Overview / Usage
gtensor is a multi-dimensional array C++14 header-only library for hybrid GPU development. It was inspired by xtensor, and designed to support the GPU port of the GENE fusion code.
Features:
- multi-dimensional arrays and array views, with easy interoperability with Fortran and thrust
- automatically generate GPU kernels based on array operations
- define complex re-usable operations with lazy evaluation. This allows operations to be composed in different ways and evaluated once as a single kernel
- easily support both CPU-only and GPU-CPU hybrid code in the same code base, with only minimal use of #ifdef.
- multi-dimensional array slicing similar to numpy
- GPU support for nVidia via CUDA, AMD via HIP/rocm, and Intel GPUs via SYCL.
Methodology / Approach
GTensor uses template meta-programming and the CRTP pattern to allow creation of composable multi-dimensional expressions which will run on a GPU device when evaluated. It supports CUDA, HIP, and SYCL backends.
Technologies Used
CUDA, HIP, SYCL (specifically DPC++ with USM)