1 #ifndef HeterogeneousCore_CUDAUtilities_interface_host_unique_ptr_h
2 #define HeterogeneousCore_CUDAUtilities_interface_host_unique_ptr_h
21 using unique_ptr = std::unique_ptr<T, impl::HostDeleter>;
32 template <
typename T,
size_t N>
34 struct bounded_array {};
43 "Allocating with non-trivial constructor on the pinned host memory is not supported");
52 "Allocating with non-trivial constructor on the pinned host memory is not supported");
57 template <
typename T,
typename... Args>
69 size_t n, cudaStream_t stream) {
75 template <
typename T,
typename... Args>
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_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)
cms::cuda::host::unique_ptr< T[]> unbounded_array
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)
host::impl::make_host_unique_selector< T >::non_array make_host_unique(cudaStream_t stream)
void operator()(void *ptr)