cuda-api-wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
array.hpp File Reference

Contains a proxy class for CUDA arrays - GPU memory with 2-D or 3-D locality and hardware support for interpolated value retrieval); see also texture_view.hpp . More...

#include "context.hpp"
#include "error.hpp"
#include <cuda_fp16.h>
Include dependency graph for array.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cuda::array_t< T, NumDimensions >
 Owning wrapper for CUDA 2D and 3D arrays. More...
 
class  cuda::array_t< T, NumDimensions >
 Owning wrapper for CUDA 2D and 3D arrays. More...
 

Namespaces

 cuda
 Definitions and functionality wrapping CUDA APIs.
 
 cuda::array
 CUDA facilities for interpolating access to multidimensional array objects, in particular via the array_t class.
 

Typedefs

using cuda::array::handle_t = CUarray
 Raw CUDA driver handle for arrays (of any dimension)
 
template<dimensionality_t NumDimensions>
using cuda::array::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...
 

Functions

template<typename T , dimensionality_t NumDimensions>
array_t< T, NumDimensions > cuda::array::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 > cuda::array::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 > cuda::array::create (const device_t &device, dimensions_t< NumDimensions > dimensions)
 

Detailed Description

Contains a proxy class for CUDA arrays - GPU memory with 2-D or 3-D locality and hardware support for interpolated value retrieval); see also texture_view.hpp .

Note
Not all kinds of arrays are supported: Only non-layered, non-cubemap arrays of 2 or 3 dimensions.