CPPuddle
|
CPPuddle namespace containing the memory recycling functionality. More...
Namespaces | |
namespace | detail |
namespace | device_selection |
Classes | |
class | aggregated_recycling_view |
struct | cuda_aggregated_device_buffer |
RAII wrapper for CUDA device memory using a passed aggregated allocator (which ideally should be an allocator_slice from the work aggregation) More... | |
struct | cuda_device_buffer |
RAII wrapper for CUDA device memory (ideally used with a recycling allocator) More... | |
struct | hip_aggregated_device_buffer |
struct | hip_device_buffer |
class | recycling_view |
struct | view_deleter |
Typedefs | |
template<typename T , std::size_t alignement, std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_aligned = detail::recycle_allocator< T, boost::alignment::aligned_allocator< T, alignement > > |
Recycling allocator for boost aligned memory. | |
template<typename T , std::size_t alignement, std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | aggressive_recycle_aligned = detail::aggressive_recycle_allocator< T, boost::alignment::aligned_allocator< T, alignement > > |
Recycling allocator for boost aligned memory (reusing previous content as well) | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_allocator_cuda_host = detail::aggressive_recycle_allocator< T, detail::cuda_pinned_allocator< T > > |
Recycling allocator for CUDA pinned host memory. | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_allocator_cuda_device = detail::recycle_allocator< T, detail::cuda_device_allocator< T > > |
Recycling allocator for CUDA device memory. | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_allocator_hip_host = detail::aggressive_recycle_allocator< T, detail::hip_pinned_allocator< T > > |
Recycling allocator for HIP pinned host memory. | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_allocator_hip_device = detail::recycle_allocator< T, detail::hip_device_allocator< T > > |
Recycling allocator for HIP device memory. | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_std = detail::recycle_allocator< T, std::allocator< T > > |
Recycling allocator for std memory. | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | aggressive_recycle_std = detail::aggressive_recycle_allocator< T, std::allocator< T > > |
Recycling allocator for boost aligned memory (reusing previous content as well) | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_allocator_sycl_host = detail::aggressive_recycle_allocator< T, detail::sycl_host_default_allocator< T > > |
Recycling allocator for SYCL pinned host memory (default device) | |
template<typename T , std::enable_if_t< std::is_trivial< T >::value, int > = 0> | |
using | recycle_allocator_sycl_device = detail::recycle_allocator< T, detail::sycl_device_default_allocator< T > > |
Recycling allocator for SYCL device memory (default device) | |
Functions | |
void | print_buffer_counters () |
Print performance counters of all buffer managers to stdout. | |
void | force_buffer_cleanup () |
void | unused_buffer_cleanup () |
Deletes all buffers currently marked as unused. | |
void | finalize () |
CPPuddle namespace containing the memory recycling functionality.
using cppuddle::memory_recycling::aggressive_recycle_aligned = typedef detail::aggressive_recycle_allocator< T, boost::alignment::aligned_allocator<T, alignement> > |
Recycling allocator for boost aligned memory (reusing previous content as well)
using cppuddle::memory_recycling::aggressive_recycle_std = typedef detail::aggressive_recycle_allocator<T, std::allocator<T> > |
Recycling allocator for boost aligned memory (reusing previous content as well)
using cppuddle::memory_recycling::recycle_aligned = typedef detail::recycle_allocator< T, boost::alignment::aligned_allocator<T, alignement> > |
Recycling allocator for boost aligned memory.
using cppuddle::memory_recycling::recycle_allocator_cuda_device = typedef detail::recycle_allocator<T, detail::cuda_device_allocator<T> > |
Recycling allocator for CUDA device memory.
using cppuddle::memory_recycling::recycle_allocator_cuda_host = typedef detail::aggressive_recycle_allocator<T, detail::cuda_pinned_allocator<T> > |
Recycling allocator for CUDA pinned host memory.
using cppuddle::memory_recycling::recycle_allocator_hip_device = typedef detail::recycle_allocator<T, detail::hip_device_allocator<T> > |
Recycling allocator for HIP device memory.
using cppuddle::memory_recycling::recycle_allocator_hip_host = typedef detail::aggressive_recycle_allocator<T, detail::hip_pinned_allocator<T> > |
Recycling allocator for HIP pinned host memory.
using cppuddle::memory_recycling::recycle_allocator_sycl_device = typedef detail::recycle_allocator<T, detail::sycl_device_default_allocator<T> > |
Recycling allocator for SYCL device memory (default device)
using cppuddle::memory_recycling::recycle_allocator_sycl_host = typedef detail::aggressive_recycle_allocator<T, detail::sycl_host_default_allocator<T> > |
Recycling allocator for SYCL pinned host memory (default device)
using cppuddle::memory_recycling::recycle_std = typedef detail::recycle_allocator<T, std::allocator<T> > |
Recycling allocator for std memory.
|
inline |
Deletes all buffers (even ones still marked as used), delete the buffer managers and the recycler itself. Disallows further usage.
|
inline |
Deletes all buffers (even ones still marked as used), delete the buffer managers and the recycler itself
|
inline |
Print performance counters of all buffer managers to stdout.
|
inline |
Deletes all buffers currently marked as unused.