CMS 3D CMS Logo

TrackingRecHit2DHeterogeneous.cc
Go to the documentation of this file.
6 
7 template <>
9  auto ret = cms::cuda::make_host_unique<float[]>(5 * nHits(), stream);
11  return ret;
12 }
13 
14 template <>
16  auto ret = cms::cuda::make_host_unique<float[]>(static_cast<int>(n32) * nHits(), stream);
17  cms::cuda::copyAsync(ret, m_store32, static_cast<int>(n32) * nHits(), stream);
18  return ret;
19 }
20 
21 template <>
23  auto ret = cms::cuda::make_host_unique<uint16_t[]>(static_cast<int>(n16) * nHits(), stream);
24  cms::cuda::copyAsync(ret, m_store16, static_cast<int>(n16) * nHits(), stream);
25  return ret;
26 }
27 
28 template <>
30  auto ret = cms::cuda::make_host_unique<uint32_t[]>(nMaxModules() + 1, stream);
31  cudaCheck(
32  cudaMemcpyAsync(ret.get(), m_hitsModuleStart, sizeof(uint32_t) * (nMaxModules() + 1), cudaMemcpyDefault, stream));
33  return ret;
34 }
35 
36 // the only specialization needed
37 template <>
39  assert(input);
40  m_store32 = input->localCoordToHostAsync(stream);
41 }
cms::cuda::host::unique_ptr< float[]> localCoordToHostAsync(cudaStream_t stream) const
ret
prodAgent to be discontinued
cms::cuda::host::unique_ptr< uint32_t[]> hitsModuleStartToHostAsync(cudaStream_t stream) const
void copyFromGPU(TrackingRecHit2DHeterogeneous< cms::cudacompat::GPUTraits > const *input, cudaStream_t stream)
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
assert(be >=bs)
static std::string const input
Definition: EdmProvDump.cc:50
void copyAsync(device::unique_ptr< T > &dst, const host::unique_ptr< T > &src, cudaStream_t stream)
Definition: copyAsync.h:20
cms::cuda::host::unique_ptr< float[]> store32ToHostAsync(cudaStream_t stream) const
std::unique_ptr< T, impl::HostDeleter > unique_ptr
#define cudaCheck(ARG,...)
Definition: cudaCheck.h:69
cms::cuda::host::unique_ptr< uint16_t[]> store16ToHostAsync(cudaStream_t stream) const