cuda-api-wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
cuda::array Namespace Reference

CUDA facilities for interpolating access to multidimensional array objects, in particular via the array_t class. More...

Classes

struct  dimensions_t
 CUDA's array memory-objects are multi-dimensional; but their dimensions, or extents, are not the same as cuda::grid::dimensions_t ; they may be much larger in each axis. More...
 
struct  dimensions_t< 2 >
 Dimensions for 2D CUDA arrays. More...
 
struct  dimensions_t< 3 >
 Dimensions for 3D CUDA arrays. More...
 

Typedefs

using handle_t = CUarray
 Raw CUDA driver handle for arrays (of any dimension)
 
template<dimensionality_t NumDimensions>
using descriptor_t = typename ::std::conditional< NumDimensions==2, CUDA_ARRAY_DESCRIPTOR, CUDA_ARRAY3D_DESCRIPTOR >::type
 Raw CUDA driver descriptor structure for an array of dimension. More...
 
using dimension_t = size_t
 An individual dimension extent for an array.
 

Functions

template<typename T , dimensionality_t NumDimensions>
array_t< T, NumDimensions > wrap (device::id_t device_id, context::handle_t context_handle, handle_t handle, dimensions_t< NumDimensions > dimensions) noexcept
 Wrap an existing CUDA array in an array_t instance.
 
template<typename T , dimensionality_t NumDimensions>
array_t< T, NumDimensions > create (const context_t &context, dimensions_t< NumDimensions > dimensions)
 Create a new (typed) CUDA array of the specified dimensions. More...
 
template<typename T , dimensionality_t NumDimensions>
array_t< T, NumDimensions > create (const device_t &device, dimensions_t< NumDimensions > dimensions)
 

Detailed Description

CUDA facilities for interpolating access to multidimensional array objects, in particular via the array_t class.

Typedef Documentation

◆ descriptor_t

template<dimensionality_t NumDimensions>
using cuda::array::descriptor_t = typedef typename ::std::conditional<NumDimensions == 2, CUDA_ARRAY_DESCRIPTOR, CUDA_ARRAY3D_DESCRIPTOR>::type

Raw CUDA driver descriptor structure for an array of dimension.

Template Parameters
NumDimensions

Function Documentation

◆ create() [1/2]

template<typename T , dimensionality_t NumDimensions>
array_t< T, NumDimensions > cuda::array::create ( const context_t context,
dimensions_t< NumDimensions >  dimensions 
)

Create a new (typed) CUDA array of the specified dimensions.

Parameters
context... in which the array is to be created

◆ create() [2/2]

template<typename T , dimensionality_t NumDimensions>
array_t< T, NumDimensions > cuda::array::create ( const device_t device,
dimensions_t< NumDimensions >  dimensions 
)
Parameters
device... in whose primary context the array is to be created