#include <CAHitNtupletGeneratorKernels.h>
Public Types | |
using | Counters = cAHitNtupletGenerator::Counters |
using | HitContainer = pixelTrack::HitContainer |
using | HitsOnCPU = TrackingRecHit2DHeterogeneous< Traits > |
using | HitsOnGPU = TrackingRecHit2DSOAView |
using | HitsView = TrackingRecHit2DSOAView |
using | HitToTuple = caConstants::HitToTuple |
using | Params = cAHitNtupletGenerator::Params |
using | Quality = pixelTrack::Quality |
using | QualityCuts = cAHitNtupletGenerator::QualityCuts |
using | TkSoA = pixelTrack::TrackSoA |
using | Traits = TTraits |
using | TupleMultiplicity = caConstants::TupleMultiplicity |
template<typename T > | |
using | unique_ptr = typename Traits::template unique_ptr< T > |
Public Member Functions | |
void | allocateOnGPU (int32_t nHits, cudaStream_t stream) |
void | buildDoublets (HitsOnCPU const &hh, cudaStream_t stream) |
CAHitNtupletGeneratorKernels (Params const ¶ms) | |
void | classifyTuples (HitsOnCPU const &hh, TkSoA *tuples_d, cudaStream_t cudaStream) |
void | cleanup (cudaStream_t cudaStream) |
void | launchKernels (HitsOnCPU const &hh, TkSoA *tuples_d, cudaStream_t cudaStream) |
void | setCounters (Counters *counters) |
TupleMultiplicity const * | tupleMultiplicity () const |
~CAHitNtupletGeneratorKernels ()=default | |
Static Public Member Functions | |
static void | printCounters (Counters const *counters) |
Private Member Functions | |
uint32_t | nDoubletBlocks (uint32_t blockSize) |
Compute the number of doublet blocks for block size. More... | |
uint32_t | nQuadrupletBlocks (uint32_t blockSize) |
Compute the number of quadruplet blocks for block size. More... | |
Definition at line 156 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Counters = cAHitNtupletGenerator::Counters |
Definition at line 162 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitContainer = pixelTrack::HitContainer |
Definition at line 176 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitsOnCPU = TrackingRecHit2DHeterogeneous<Traits> |
Definition at line 169 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitsOnGPU = TrackingRecHit2DSOAView |
Definition at line 168 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitsView = TrackingRecHit2DSOAView |
Definition at line 167 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitToTuple = caConstants::HitToTuple |
Definition at line 171 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Params = cAHitNtupletGenerator::Params |
Definition at line 161 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Quality = pixelTrack::Quality |
Definition at line 174 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::QualityCuts = cAHitNtupletGenerator::QualityCuts |
Definition at line 160 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::TkSoA = pixelTrack::TrackSoA |
Definition at line 175 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Traits = TTraits |
Definition at line 158 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::TupleMultiplicity = caConstants::TupleMultiplicity |
Definition at line 172 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::unique_ptr = typename Traits::template unique_ptr<T> |
Definition at line 165 of file CAHitNtupletGeneratorKernels.h.
|
inline |
Definition at line 178 of file CAHitNtupletGeneratorKernels.h.
|
default |
void CAHitNtupletGeneratorKernelsCPU::allocateOnGPU | ( | int32_t | nHits, |
cudaStream_t | stream | ||
) |
Definition at line 9 of file CAHitNtupletGeneratorKernelsAlloc.cc.
References cms::cuda::assert(), cms::cuda::OneToManyAssocView< Assoc >::assoc, gather_cfg::cout, cudaCheck, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTupleStorage_, CAHitNtupletGeneratorKernels< TTraits >::device_hitTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_nCells_, CAHitNtupletGeneratorKernels< TTraits >::device_storage_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellNeighbors_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellTracks_, CAHitNtupletGeneratorKernels< TTraits >::device_tupleMultiplicity_, cms::cuda::AtomicPairCounter::get(), CAHitNtupletGeneratorKernels< TTraits >::hitToTupleView_, nHits, cms::cuda::OneToManyAssocView< Assoc >::offSize, cms::cuda::OneToManyAssocView< Assoc >::offStorage, cms::cuda::stream, svgfig::template(), and relativeConstraints::value.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
void CAHitNtupletGeneratorKernelsCPU::buildDoublets | ( | HitsOnCPU const & | hh, |
cudaStream_t | stream | ||
) |
Definition at line 17 of file CAHitNtupletGeneratorKernels.cc.
References cms::cuda::assert(), CAHitNtupletGeneratorKernels< TTraits >::cellStorage_, gather_cfg::cout, CAHitNtupletGeneratorKernels< TTraits >::device_isOuterHitOfCell_, CAHitNtupletGeneratorKernels< TTraits >::device_nCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellNeighbors_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellNeighborsContainer_, CAHitNtupletGeneratorKernels< TTraits >::device_theCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellTracks_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellTracksContainer_, cAHitNtupletGenerator::Params::doClusterCut_, cAHitNtupletGenerator::Params::doPtCut_, cAHitNtupletGenerator::Params::doZ0Cut_, cAHitNtupletGenerator::Params::idealConditions_, cAHitNtupletGenerator::Params::includeJumpingForwardDoublets_, CAHitNtupletGeneratorKernels< TTraits >::isOuterHitOfCell_, SiStripPI::max, cAHitNtupletGenerator::Params::maxNumberOfDoublets_, caConstants::maxNumOfActiveDoublets, cAHitNtupletGenerator::Params::minHitsPerNtuplet_, gpuPixelDoublets::nActualPairs, TrackingRecHit2DHeterogeneous< Traits >::nHits(), nhits, gpuPixelDoublets::nPairs, gpuPixelDoublets::nPairsForQuadruplets, gpuPixelDoublets::nPairsForTriplets, TrackingRecHit2DHeterogeneous< Traits >::offsetBPIX2(), CAHitNtupletGeneratorKernels< TTraits >::params_, and TrackingRecHit2DHeterogeneous< Traits >::view().
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
void CAHitNtupletGeneratorKernelsCPU::classifyTuples | ( | HitsOnCPU const & | hh, |
TkSoA * | tuples_d, | ||
cudaStream_t | cudaStream | ||
) |
Definition at line 147 of file CAHitNtupletGeneratorKernels.cc.
References CAHitNtupletGeneratorKernels< TTraits >::counters_, cAHitNtupletGenerator::Params::cuts_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_, CAHitNtupletGeneratorKernels< TTraits >::device_hitTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_nCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellNeighbors_, CAHitNtupletGeneratorKernels< TTraits >::device_theCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellTracks_, CAHitNtupletGeneratorKernels< TTraits >::device_tupleMultiplicity_, cAHitNtupletGenerator::Params::doSharedHitCut_, cAHitNtupletGenerator::Params::doStats_, cAHitNtupletGenerator::Params::dupPassThrough_, TrackSoAHeterogeneousT< S >::hitIndices, CAHitNtupletGeneratorKernels< TTraits >::hitToTupleView_, iev, CAHitNtupletGeneratorKernels< TTraits >::isOuterHitOfCell_, cAHitNtupletGenerator::Params::lateFishbone_, cAHitNtupletGenerator::Params::maxNumberOfDoublets_, cAHitNtupletGenerator::Params::minHitsForSharingCut_, TrackingRecHit2DHeterogeneous< Traits >::nHits(), nhits, CAHitNtupletGeneratorKernels< TTraits >::params_, TrackSoAHeterogeneousT< S >::qualityData(), cAHitNtupletGenerator::Params::useSimpleTripletCleaner_, and TrackingRecHit2DHeterogeneous< Traits >::view().
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
void CAHitNtupletGeneratorKernels< TTraits >::cleanup | ( | cudaStream_t | cudaStream | ) |
void CAHitNtupletGeneratorKernelsCPU::launchKernels | ( | HitsOnCPU const & | hh, |
TkSoA * | tuples_d, | ||
cudaStream_t | cudaStream | ||
) |
Definition at line 81 of file CAHitNtupletGeneratorKernels.cc.
References cms::cuda::assert(), cAHitNtupletGenerator::Params::CAThetaCutBarrel_, cAHitNtupletGenerator::Params::CAThetaCutForward_, cAHitNtupletGenerator::Params::dcaCutInnerTriplet_, cAHitNtupletGenerator::Params::dcaCutOuterTriplet_, TrackSoAHeterogeneousT< S >::detIndices, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_hitTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_nCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellNeighbors_, CAHitNtupletGeneratorKernels< TTraits >::device_theCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCellTracks_, CAHitNtupletGeneratorKernels< TTraits >::device_tupleMultiplicity_, cAHitNtupletGenerator::Params::doStats_, cAHitNtupletGenerator::Params::dupPassThrough_, cAHitNtupletGenerator::Params::earlyFishbone_, cAHitNtupletGenerator::Params::hardCurvCut_, TrackSoAHeterogeneousT< S >::hitIndices, CAHitNtupletGeneratorKernels< TTraits >::isOuterHitOfCell_, cAHitNtupletGenerator::Params::lateFishbone_, cAHitNtupletGenerator::Params::minHitsPerNtuplet_, TrackingRecHit2DHeterogeneous< Traits >::nHits(), nhits, CAHitNtupletGeneratorKernels< TTraits >::params_, cAHitNtupletGenerator::Params::ptmin_, TrackSoAHeterogeneousT< S >::qualityData(), and TrackingRecHit2DHeterogeneous< Traits >::view().
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
|
inlineprivate |
Compute the number of doublet blocks for block size.
Definition at line 226 of file CAHitNtupletGeneratorKernels.h.
References CAHitNtupletGeneratorKernels< TTraits >::paramsMaxDoubletes3Quarters_.
|
inlineprivate |
Compute the number of quadruplet blocks for block size.
Definition at line 232 of file CAHitNtupletGeneratorKernels.h.
References caConstants::maxNumberOfQuadruplets.
|
static |
Definition at line 12 of file CAHitNtupletGeneratorKernels.cc.
Referenced by CAHitNtupletGeneratorOnGPU::~CAHitNtupletGeneratorOnGPU().
|
inline |
Definition at line 193 of file CAHitNtupletGeneratorKernels.h.
References counters, and CAHitNtupletGeneratorKernels< TTraits >::counters_.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
|
inline |
Definition at line 182 of file CAHitNtupletGeneratorKernels.h.
References CAHitNtupletGeneratorKernels< TTraits >::device_tupleMultiplicity_.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
|
private |
Definition at line 199 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 196 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::setCounters().
|
private |
Definition at line 210 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), and CAHitNtupletGeneratorKernels< TTraits >::classifyTuples().
|
private |
Definition at line 214 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 211 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU().
|
private |
Definition at line 216 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 206 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 208 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 220 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU().
|
private |
Definition at line 200 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 201 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 205 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 202 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 203 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 218 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), CAHitNtupletGeneratorKernels< TTraits >::launchKernels(), and CAHitNtupletGeneratorKernels< TTraits >::tupleMultiplicity().
|
private |
Definition at line 212 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), and CAHitNtupletGeneratorKernels< TTraits >::classifyTuples().
|
private |
Definition at line 207 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 222 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Intermediate result avoiding repeated computations.
Definition at line 224 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::nDoubletBlocks().