1 #ifndef CUDADataFormatsCommonHeterogeneousSoA_H 2 #define CUDADataFormatsCommonHeterogeneousSoA_H 41 auto ret = cms::cuda::make_host_unique<T>(
stream);
54 namespace cudacompat {
62 return cms::cuda::make_device_unique<T>(
stream);
67 return cms::cuda::make_device_unique<T>(
size,
stream);
72 return cms::cuda::make_host_unique<T>(
stream);
77 return cms::cuda::make_device_unique<T>(
stream);
82 return cms::cuda::make_device_unique<T>(
size,
stream);
92 return cms::cuda::make_host_unique<T>(
stream);
97 return cms::cuda::make_host_unique<T>(
stream);
100 template <
typename T>
102 return cms::cuda::make_device_unique<T>(
stream);
105 template <
typename T>
107 return cms::cuda::make_device_unique<T>(
size,
stream);
112 template <
typename T>
115 template <
typename T>
117 return std::make_unique<T>();
120 template <
typename T>
122 return std::make_unique<T>(
size);
125 template <
typename T>
127 return std::make_unique<T>();
130 template <
typename T>
132 return std::make_unique<T>();
135 template <
typename T>
137 return std::make_unique<T>(
size);
145 template <
typename T,
typename Traits>
148 template <
typename V>
159 T const *
get()
const {
return m_ptr.get(); }
169 template <
typename T,
typename Traits>
175 template <
typename T,
typename Traits>
177 auto ret = cms::cuda::make_host_unique<T>(
stream);
182 template <
typename T>
184 template <
typename T>
186 template <
typename T>
HeterogeneousSoA(cms::cuda::host::unique_ptr< T > &&p)
~HeterogeneousSoA()=default
auto const * operator->() const
HeterogeneousSoAImpl()=default
ret
prodAgent to be discontinued
auto const & operator*() const
HeterogeneousSoA & operator=(HeterogeneousSoA &&)=default
static auto make_device_unique(cudaStream_t stream)
HeterogeneousSoAImpl(unique_ptr< T > &&p)
static auto make_device_unique(cudaStream_t stream)
cms::cuda::host::unique_ptr< T > unique_ptr
static auto make_host_unique(cudaStream_t)
std::unique_ptr< T > std_ptr
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
cms::cuda::device::unique_ptr< T > dm_ptr
cms::cuda::device::unique_ptr< T > unique_ptr
HeterogeneousSoA(cms::cuda::device::unique_ptr< T > &&p)
cms::cuda::host::unique_ptr< T > toHostAsync(cudaStream_t stream) const
def template(fileName, svg, replaceme="REPLACEME")
std::unique_ptr< T > unique_ptr
static auto make_host_unique(cudaStream_t stream)
cms::cuda::host::unique_ptr< T > hm_ptr
static auto make_host_unique(cudaStream_t stream)
HeterogeneousSoA()=default
static auto make_unique(size_t size, cudaStream_t stream)
Namespace of DDCMS conversion namespace.
static auto make_device_unique(cudaStream_t)
static auto make_device_unique(size_t size, cudaStream_t stream)
cms::cuda::host::unique_ptr< T > toHostAsync(cudaStream_t stream) const
typename Traits::template unique_ptr< V > unique_ptr
static auto make_unique(cudaStream_t)
static auto make_unique(cudaStream_t stream)
static auto make_device_unique(size_t size, cudaStream_t)
static auto make_unique(cudaStream_t stream)
HeterogeneousSoAImpl & operator=(HeterogeneousSoAImpl &&)=default
HeterogeneousSoA(std::unique_ptr< T > &&p)
std::unique_ptr< T, impl::HostDeleter > unique_ptr
~HeterogeneousSoAImpl()=default
static auto make_device_unique(size_t size, cudaStream_t stream)
#define cudaCheck(ARG,...)
static auto make_unique(size_t size, cudaStream_t)