CPPuddle
Public Member Functions | Public Attributes | List of all members
cppuddle::memory_recycling::cuda_aggregated_device_buffer< T, Host_Allocator, > Struct Template Reference

RAII wrapper for CUDA device memory using a passed aggregated allocator (which ideally should be an allocator_slice from the work aggregation) More...

#include <cuda_recycling_device_buffer.hpp>

Public Member Functions

 cuda_aggregated_device_buffer (size_t number_of_elements, Host_Allocator &alloc)
 
 ~cuda_aggregated_device_buffer ()
 
 cuda_aggregated_device_buffer (cuda_aggregated_device_buffer const &other)=delete
 
cuda_aggregated_device_buffer operator= (cuda_aggregated_device_buffer const &other)=delete
 
 cuda_aggregated_device_buffer (cuda_aggregated_device_buffer const &&other)=delete
 
cuda_aggregated_device_buffer operator= (cuda_aggregated_device_buffer const &&other)=delete
 

Public Attributes

T * device_side_buffer
 
size_t number_of_elements
 

Detailed Description

template<typename T, typename Host_Allocator, std::enable_if_t< std::is_trivial< T >::value, int > = 0>
struct cppuddle::memory_recycling::cuda_aggregated_device_buffer< T, Host_Allocator, >

RAII wrapper for CUDA device memory using a passed aggregated allocator (which ideally should be an allocator_slice from the work aggregation)

Constructor & Destructor Documentation

◆ cuda_aggregated_device_buffer() [1/3]

template<typename T , typename Host_Allocator , std::enable_if_t< std::is_trivial< T >::value, int > = 0>
cppuddle::memory_recycling::cuda_aggregated_device_buffer< T, Host_Allocator, >::cuda_aggregated_device_buffer ( size_t  number_of_elements,
Host_Allocator &  alloc 
)
inline

◆ ~cuda_aggregated_device_buffer()

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

◆ cuda_aggregated_device_buffer() [2/3]

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

◆ cuda_aggregated_device_buffer() [3/3]

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

Member Function Documentation

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

Member Data Documentation

◆ device_side_buffer

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

◆ number_of_elements

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

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