1 #ifndef HeterogeneousCore_CUDAUtilities_interface_host_unique_ptr_h 2 #define HeterogeneousCore_CUDAUtilities_interface_host_unique_ptr_h 43 using unique_ptr = std::unique_ptr<T, impl::HostDeleter>;
54 template <
typename T,
size_t N>
56 struct bounded_array {};
65 "Allocating with non-trivial constructor on the host memory is not supported");
79 "Allocating with non-trivial constructor on the host memory is not supported");
93 "Allocating with non-trivial constructor on the host memory is not supported");
103 "Allocating with non-trivial constructor on the host memory is not supported");
110 template <
typename T,
typename... Args>
111 typename host::impl::make_host_unique_selector<T>::bounded_array
make_host_unique(Args &&...) =
delete;
114 template <
typename T>
121 template <
typename T>
123 size_t n, cudaStream_t
stream) {
131 template <
typename T,
typename... Args>
HostDeleter(MemoryType type)
host::impl::make_host_unique_selector< T >::non_array make_host_unique()
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type * mem
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
void free(void *ptr) noexcept
void free_host(void *ptr)
cms::cuda::host::unique_ptr< T > non_array
host::impl::make_host_unique_selector< T >::non_array make_host_unique_uninitialized(cudaStream_t stream)
void * aligned_alloc(size_t alignment, size_t size) noexcept
Namespace of DDCMS conversion namespace.
cms::cuda::host::unique_ptr< T[]> unbounded_array
__host__ __device__ VT uint32_t size
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t Func __host__ __device__ V int n
std::unique_ptr< T, impl::HostDeleter > unique_ptr
void * allocate_host(size_t nbytes, cudaStream_t stream)
void operator()(void *ptr)