CUDA specs

Typedefs

using ext1d_d = cuda::std::extents<int, dyn>
using ext2d_d = cuda::std::extents<int, dyn, dyn>
using ext3d_d = cuda::std::extents<int, dyn, dyn, dyn>
using ext1d_t = cuda::std::dextents<int, 1>
using ext2d_t = cuda::std::dextents<int, 2>
using ext3d_t = cuda::std::dextents<int, 3>
using mdspan_1d_double = cuda::std::mdspan<double, ext1d_t>
using mdspan_2d_double = cuda::std::mdspan<double, ext2d_t>
using mdspan_3d_double = cuda::std::mdspan<double, ext3d_t>
using mdspan_2d_int = cuda::std::mdspan<int, ext2d_t>
using mdspan_3d_int = cuda::std::mdspan<int, ext3d_t>
using gpu_memview_policy = cuda_mdspan_impl
using gpu_launch_policy = cuda_launch_impl

Variables

constexpr auto dyn = cuda::std::dynamic_extent
class cuda_mdspan_impl
#include <cuda_backend.hpp>

CUDA mdspan memory view policy.

It defines the policy to allocate/deallocate arrays and create CUDA mdspan objects.

Public Static Functions

static inline mdspan_1d_double memview(double *data, int nlevs)

Create a 1D mdspan object from double pointer.

static inline mdspan_2d_double memview(double *data, int nblocks, int nproma)

Create a 2D mdspan object from double pointer.

static inline mdspan_3d_double memview(double *data, int nblocks, int nlevs, int nproma)

Create a 3D mdspan object from double pointer.

static inline mdspan_2d_int memview(int *data, int nblocks, int nproma)

Create a 2D mdspan object from int pointer.

static inline mdspan_3d_int memview(int *data, int nblocks, int nlevs, int nproma)

Create a 3D mdspan object from int pointer.

static inline mdspan_1d_double memview_malloc(double *field, int dim1)

Allocate memory and create a 1D mdspan object from double pointer.

static inline mdspan_2d_double memview_malloc(double *field, int dim1, int dim2)

Allocate memory and create a 2D mdspan object from double pointer.

static inline mdspan_3d_double memview_malloc(double *field, int dim1, int dim2, int dim3)

Allocate memory and create a 3D mdspan object from double pointer.

static inline void memview_free(double *field)

Free memory from double pointer.

class cuda_launch_impl
#include <cuda_backend.hpp>

CUDA kernel launch policy.

Public Static Functions

static inline void launch(int threadsPerBlock, int blocksPerGrid, void *func, void **args)

It creates a CUDA kernel launch configuration object and launch the kernel with it.