CPPuddle
Loading...
Searching...
No Matches
recycler::cuda_device_buffer< T, > Struct Template Reference

RAII wrapper for CUDA device memory (ideally used with a recycling allocator). More...

#include <cuda_recycling_device_buffer.hpp>

Collaboration diagram for recycler::cuda_device_buffer< T, >:
[legend]

Public Member Functions

 cuda_device_buffer (const size_t number_of_elements, const size_t device_id=0)
 cuda_device_buffer (cuda_device_buffer const &other)=delete
 cuda_device_buffer (cuda_device_buffer const &&other)=delete
 ~cuda_device_buffer ()
cuda_device_buffer operator= (cuda_device_buffer const &other)=delete
cuda_device_buffer operator= (cuda_device_buffer const &&other)=delete

Public Attributes

recycle_allocator_cuda_device< T > allocator
T * device_side_buffer
size_t number_of_elements

Detailed Description

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
struct recycler::cuda_device_buffer< T, >

RAII wrapper for CUDA device memory (ideally used with a recycling allocator).

Constructor & Destructor Documentation

◆ cuda_device_buffer() [1/3]

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cppuddle::memory_recycling::cuda_device_buffer< T, >::cuda_device_buffer ( const size_t number_of_elements,
const size_t device_id = 0 )
inline

◆ cuda_device_buffer() [2/3]

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cppuddle::memory_recycling::cuda_device_buffer< T, >::cuda_device_buffer ( cuda_device_buffer< T, > const & other)
delete

◆ cuda_device_buffer() [3/3]

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cppuddle::memory_recycling::cuda_device_buffer< T, >::cuda_device_buffer ( cuda_device_buffer< T, > const && other)
delete

◆ ~cuda_device_buffer()

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cppuddle::memory_recycling::cuda_device_buffer< T, >::~cuda_device_buffer ( )
inline

Member Function Documentation

◆ operator=() [1/2]

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cuda_device_buffer cppuddle::memory_recycling::cuda_device_buffer< T, >::operator= ( cuda_device_buffer< T, > const && other)
delete

◆ operator=() [2/2]

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cuda_device_buffer cppuddle::memory_recycling::cuda_device_buffer< T, >::operator= ( cuda_device_buffer< T, > const & other)
delete

Member Data Documentation

◆ allocator

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
recycle_allocator_cuda_device<T> cppuddle::memory_recycling::cuda_device_buffer< T, >::allocator

◆ device_side_buffer

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
T* cppuddle::memory_recycling::cuda_device_buffer< T, >::device_side_buffer

◆ number_of_elements

template<typename T, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
size_t cppuddle::memory_recycling::cuda_device_buffer< T, >::number_of_elements

The documentation for this struct was generated from the following file: