CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL > Class Template Reference

#include <PFRecHitProducerKernel.h>

Public Member Functions

void associateTopologyInfo (Queue &queue, const typename CAL::TopologyTypeDevice &topology, reco::PFRecHitDeviceCollection &pfRecHits)
 
 PFRecHitProducerKernel (Queue &queue, const uint32_t num_recHits)
 
void processRecHits (Queue &queue, const typename CAL::CaloRecHitSoATypeDevice &recHits, const typename CAL::ParameterType &params, reco::PFRecHitDeviceCollection &pfRecHits)
 

Private Attributes

cms::alpakatools::device_buffer< Device, uint32_t[]> denseId2pfRecHit_
 
cms::alpakatools::device_buffer< Device, uint32_t > num_pfRecHits_
 
WorkDiv< Dim1Dwork_div_
 

Detailed Description

template<typename CAL>
class ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >

Definition at line 11 of file PFRecHitProducerKernel.h.

Constructor & Destructor Documentation

◆ PFRecHitProducerKernel()

template<typename CAL >
ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::PFRecHitProducerKernel ( Queue &  queue,
const uint32_t  num_recHits 
)

Definition at line 155 of file PFRecHitProducerKernel.dev.cc.

References ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::denseId2pfRecHit_, cms::alpakatools::divide_up_by(), mps_monitormerge::items, ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::num_pfRecHits_, createBeamHaloJobs::queue, and ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::work_div_.

157  num_pfRecHits_(cms::alpakatools::make_device_buffer<uint32_t>(queue)),
158  work_div_(cms::alpakatools::make_workdiv<Acc1D>(1, 1)) {
159  alpaka::memset(queue, denseId2pfRecHit_, 0xff); // Reset denseId -> pfRecHit index map
160  alpaka::memset(queue, num_pfRecHits_, 0x00); // Reset global pfRecHit counter
161 
162  const uint32_t items = 64;
163  const uint32_t groups = cms::alpakatools::divide_up_by(num_recHits, items);
164  work_div_ = cms::alpakatools::make_workdiv<Acc1D>(groups, items);
165  }
cms::alpakatools::device_buffer< Device, uint32_t > num_pfRecHits_
constexpr Idx divide_up_by(Idx value, Idx divisor)
Definition: workdivision.h:19
std::enable_if_t< alpaka::isDevice< TDev > and not std::is_array_v< T >, device_buffer< TDev, T > > make_device_buffer(TDev const &device)
Definition: memory.h:177
cms::alpakatools::device_buffer< Device, uint32_t[]> denseId2pfRecHit_

Member Function Documentation

◆ associateTopologyInfo()

template<typename CAL >
void ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::associateTopologyInfo ( Queue &  queue,
const typename CAL::TopologyTypeDevice &  topology,
reco::PFRecHitDeviceCollection pfRecHits 
)

Definition at line 183 of file PFRecHitProducerKernel.dev.cc.

References createBeamHaloJobs::queue, and PortableDeviceCollection< T, TDev, typename >::view().

185  {
186  alpaka::exec<Acc1D>(queue,
187  work_div_,
188  PFRecHitProducerKernelTopology<CAL>{},
189  topology.view(),
190  pfRecHits.view(),
191  denseId2pfRecHit_.data(),
192  num_pfRecHits_.data());
193  }
cms::alpakatools::device_buffer< Device, uint32_t > num_pfRecHits_
cms::alpakatools::device_buffer< Device, uint32_t[]> denseId2pfRecHit_

◆ processRecHits()

template<typename CAL >
void ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::processRecHits ( Queue &  queue,
const typename CAL::CaloRecHitSoATypeDevice &  recHits,
const typename CAL::ParameterType &  params,
reco::PFRecHitDeviceCollection pfRecHits 
)

Member Data Documentation

◆ denseId2pfRecHit_

template<typename CAL >
cms::alpakatools::device_buffer<Device, uint32_t[]> ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::denseId2pfRecHit_
private

◆ num_pfRecHits_

template<typename CAL >
cms::alpakatools::device_buffer<Device, uint32_t> ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::num_pfRecHits_
private

◆ work_div_

template<typename CAL >
WorkDiv<Dim1D> ALPAKA_ACCELERATOR_NAMESPACE::PFRecHitProducerKernel< CAL >::work_div_
private