Go to the documentation of this file. 1 #ifndef HeterogeneousCore_CUDAUtilities_interface_device_unique_ptr_h
2 #define HeterogeneousCore_CUDAUtilities_interface_device_unique_ptr_h
33 using unique_ptr = std::unique_ptr<T, impl::DeviceDeleter>;
44 template <
typename T,
size_t N>
46 struct bounded_array {};
54 "Allocating with non-trivial constructor on the device memory is not supported");
66 "Allocating with non-trivial constructor on the device memory is not supported");
73 template <
typename T,
typename... Args>
74 typename device::impl::make_device_unique_selector<T>::bounded_array
make_device_unique(Args &&...) =
delete;
88 size_t n, cudaStream_t
stream) {
96 template <
typename T,
typename... Args>
device::impl::make_device_unique_selector< T >::non_array make_device_unique(cudaStream_t stream)
uint16_t mem[nChs][nEvts]
void operator()(void *ptr)
cudaStream_t T uint32_t const T *__restrict__ const uint32_t *__restrict__ uint32_t int cudaStream_t Func __host__ __device__ V int n
cms::cuda::device::unique_ptr< T > non_array
DeviceDeleter(int device)
void free_device(int device, void *ptr)
device::impl::make_device_unique_selector< T >::non_array make_device_unique_uninitialized(cudaStream_t stream)
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
cms::cuda::device::unique_ptr< T[]> unbounded_array
void * allocate_device(int dev, size_t nbytes, cudaStream_t stream)
Namespace of DDCMS conversion namespace.