gtensor

0 0
  • 0 Collaborators

Multi-dimensional array C++14 header-only library for hybrid GPU development. ...learn more

Project status: Under Development

HPC

Intel Technologies
DPC++

Code Samples [1]

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)

Repository

https://github.com/wdmapp/gtensor

Comments (0)