6 #include <alpaka/alpaka.hpp> 21 template <
typename TrackerTraits>
24 template <
typename TAcc,
typename = std::enable_if_t<alpaka::isAccelerator<TAcc>>>
26 uint32_t
const* __restrict__ hitsModuleStart,
28 uint32_t* __restrict__ hitsLayerStart)
const {
29 assert(0 == hitsModuleStart[0]);
32 hitsLayerStart[
i] = hitsModuleStart[cpeParams->
layerGeometry().layerStart[
i]];
34 int old =
i == 0 ? 0 : hitsModuleStart[cpeParams->
layerGeometry().layerStart[
i - 1]];
35 printf(
"LayerStart %d/%d at module %d: %d - %d\n",
40 hitsLayerStart[
i] - old);
48 template <
typename TrackerTraits>
56 auto nHits = clusters_d.nClusters();
57 auto offsetBPIX2 = clusters_d.offsetBPIX2();
61 int activeModulesWithDigis = digis_d.nModules();
64 if (activeModulesWithDigis) {
65 int threadsPerBlock = 128;
66 int blocks = activeModulesWithDigis;
67 const auto workDiv1D = cms::alpakatools::make_workdiv<Acc1D>(
blocks, threadsPerBlock);
70 std::cout <<
"launching GetHits kernel on " << alpaka::core::demangled<Acc1D> <<
" with " <<
blocks <<
" blocks" 73 alpaka::exec<Acc1D>(
queue,
75 GetHits<TrackerTraits>{},
88 const auto workDiv1D = cms::alpakatools::make_workdiv<Acc1D>(1, 32);
89 alpaka::exec<Acc1D>(
queue,
92 clusters_d->clusModuleStart(),
94 hits_d.view().hitsLayerStart().data());
100 hrv_d.assoc = &(hits_d.view().phiBinner());
102 hrv_d.offStorage =
nullptr;
103 hrv_d.contentSize =
nHits;
104 hrv_d.contentStorage = hits_d.view().phiBinnerStorage();
115 cms::alpakatools::fillManyFromVector<Acc1D>(&(hits_d.view().phiBinner()),
118 hits_d.view().iphi(),
119 hits_d.view().hitsLayerStart().data(),
132 std::cout <<
"PixelRecHitKernel -> DONE!" << std::endl;
ALPAKA_FN_ACC void operator()(TAcc const &acc, uint32_t const *__restrict__ hitsModuleStart, pixelCPEforDevice::ParamsOnDeviceT< TrackerTraits > const *__restrict__ cpeParams, uint32_t *__restrict__ hitsLayerStart) const
typename PhiBinner::View PhiBinnerView
constexpr uint32_t numberOfLayers
std::conditional_t< std::is_same_v< Device, alpaka::DevCpu >, SiPixelDigisHost, SiPixelDigisDevice< Device > > SiPixelDigisSoACollection
constexpr LayerGeometry const &__restrict__ layerGeometry() const
std::conditional_t< std::is_same_v< Device, alpaka::DevCpu >, TrackingRecHitHost< TrackerTraits >, TrackingRecHitDevice< TrackerTraits, Device > > TrackingRecHitsSoACollection
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
std::conditional_t< std::is_same_v< Device, alpaka::DevCpu >, SiPixelClustersHost, SiPixelClustersDevice< Device > > SiPixelClustersSoACollection