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>(size,
stream);
100 template <
typename T>
102 return cms::cuda::make_host_unique<T>(
stream);
105 template <
typename T>
107 return cms::cuda::make_device_unique<T>(
stream);
110 template <
typename T>
112 return cms::cuda::make_device_unique<T>(size,
stream);
117 template <
typename T>
120 template <
typename T>
122 return std::make_unique<T>();
125 template <
typename T>
127 return std::make_unique<T>(size);
130 template <
typename T>
132 return std::make_unique<T>();
135 template <
typename T>
137 return std::make_unique<T>();
140 template <
typename T>
142 return std::make_unique<T>(size);
150 template <
typename T,
typename Traits>
153 template <
typename V>
164 T const *
get()
const {
return m_ptr.get(); }
174 template <
typename T,
typename Traits>
180 template <
typename T,
typename Traits>
182 auto ret = cms::cuda::make_host_unique<T>(
stream);
187 template <
typename T>
189 template <
typename T>
191 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)
static auto make_unique(size_t size, cudaStream_t stream)