QMCPACK
CUDAallocator.hpp File Reference

this file provides three C++ memory allocators using CUDA specific memory allocation functions. More...

+ Include dependency graph for CUDAallocator.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  CUDAManagedAllocator< T >
 allocator for CUDA unified memory More...
 
struct  CUDAManagedAllocator< T >::rebind< U >
 
class  CUDAAllocator< T >
 allocator for CUDA device memory More...
 
struct  CUDAAllocator< T >::rebind< U >
 
struct  qmc_allocator_traits< qmcplusplus::CUDAAllocator< T > >
 
struct  CUDAHostAllocator< T >
 allocator for CUDA host pinned memory More...
 
struct  CUDAHostAllocator< T >::rebind< U >
 
struct  CUDALockedPageAllocator< T, ULPHA >
 allocator locks memory pages allocated by ULPHA More...
 
struct  CUDALockedPageAllocator< T, ULPHA >::rebind< U, V >
 

Namespaces

 qmcplusplus
 helper functions for EinsplineSetBuilder
 

Functions

size_t getCUDAdeviceMemAllocated ()
 
template<class T1 , class T2 >
bool operator== (const CUDAManagedAllocator< T1 > &, const CUDAManagedAllocator< T2 > &)
 
template<class T1 , class T2 >
bool operator!= (const CUDAManagedAllocator< T1 > &, const CUDAManagedAllocator< T2 > &)
 
template<class T1 , class T2 >
bool operator== (const CUDAAllocator< T1 > &, const CUDAAllocator< T2 > &)
 
template<class T1 , class T2 >
bool operator!= (const CUDAAllocator< T1 > &, const CUDAAllocator< T2 > &)
 
template<class T1 , class T2 >
bool operator== (const CUDAHostAllocator< T1 > &, const CUDAHostAllocator< T2 > &)
 
template<class T1 , class T2 >
bool operator!= (const CUDAHostAllocator< T1 > &, const CUDAHostAllocator< T2 > &)
 

Variables

std::atomic< size_t > CUDAallocator_device_mem_allocated
 

Detailed Description

this file provides three C++ memory allocators using CUDA specific memory allocation functions.

CUDAManagedAllocator allocates CUDA unified memory CUDAAllocator allocates CUDA device memory CUDAHostAllocator allocates CUDA host pinned memory

Definition in file CUDAallocator.hpp.


Class Documentation

◆ qmcplusplus::CUDAManagedAllocator::rebind

struct qmcplusplus::CUDAManagedAllocator::rebind

template<typename T>
template<class U>
struct qmcplusplus::CUDAManagedAllocator< T >::rebind< U >

Definition at line 54 of file CUDAallocator.hpp.

+ Collaboration diagram for CUDAManagedAllocator< T >::rebind< U >:
Class Members
typedef CUDAManagedAllocator< U > other

◆ qmcplusplus::CUDAAllocator::rebind

struct qmcplusplus::CUDAAllocator::rebind

template<typename T>
template<class U>
struct qmcplusplus::CUDAAllocator< T >::rebind< U >

Definition at line 109 of file CUDAallocator.hpp.

+ Collaboration diagram for CUDAAllocator< T >::rebind< U >:
Class Members
typedef CUDAAllocator< U > other

◆ qmcplusplus::CUDAHostAllocator::rebind

struct qmcplusplus::CUDAHostAllocator::rebind

template<typename T>
template<class U>
struct qmcplusplus::CUDAHostAllocator< T >::rebind< U >

Definition at line 210 of file CUDAallocator.hpp.

+ Collaboration diagram for CUDAHostAllocator< T >::rebind< U >:
Class Members
typedef CUDAHostAllocator< U > other

◆ qmcplusplus::CUDALockedPageAllocator::rebind

struct qmcplusplus::CUDALockedPageAllocator::rebind

template<typename T, class ULPHA = std::allocator<T>>
template<class U, class V>
struct qmcplusplus::CUDALockedPageAllocator< T, ULPHA >::rebind< U, V >

Definition at line 255 of file CUDAallocator.hpp.

+ Collaboration diagram for CUDALockedPageAllocator< T, ULPHA >::rebind< U, V >:
Class Members
typedef CUDALockedPageAllocator< U, V > other