#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 (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 | fillHitDetIndices (HitsView const *hv, TkSoA *tuples_d, 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... | |
Private Attributes | |
unique_ptr< unsigned char[]> | cellStorage_ |
Counters * | counters_ = nullptr |
unique_ptr< HitToTuple > | device_hitToTuple_ |
cms::cuda::AtomicPairCounter * | device_hitToTuple_apc_ = nullptr |
cms::cuda::AtomicPairCounter * | device_hitTuple_apc_ = nullptr |
unique_ptr< GPUCACell::OuterHitOfCell[]> | device_isOuterHitOfCell_ |
uint32_t * | device_nCells_ = nullptr |
unique_ptr< cms::cuda::AtomicPairCounter::c_type[]> | device_storage_ |
unique_ptr< caConstants::CellNeighborsVector > | device_theCellNeighbors_ |
caConstants::CellNeighbors * | device_theCellNeighborsContainer_ |
unique_ptr< GPUCACell[]> | device_theCells_ |
unique_ptr< caConstants::CellTracksVector > | device_theCellTracks_ |
caConstants::CellTracks * | device_theCellTracksContainer_ |
unique_ptr< TupleMultiplicity > | device_tupleMultiplicity_ |
Params const & | params_ |
const uint32_t | paramsMaxDoubletes3Quarters_ |
Intermediate result avoiding repeated computations. More... | |
Definition at line 147 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Counters = cAHitNtupletGenerator::Counters |
Definition at line 153 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitContainer = pixelTrack::HitContainer |
Definition at line 167 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitsOnCPU = TrackingRecHit2DHeterogeneous<Traits> |
Definition at line 160 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitsOnGPU = TrackingRecHit2DSOAView |
Definition at line 159 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitsView = TrackingRecHit2DSOAView |
Definition at line 158 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::HitToTuple = caConstants::HitToTuple |
Definition at line 162 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Params = cAHitNtupletGenerator::Params |
Definition at line 152 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Quality = pixelTrack::Quality |
Definition at line 165 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::QualityCuts = cAHitNtupletGenerator::QualityCuts |
Definition at line 151 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::TkSoA = pixelTrack::TrackSoA |
Definition at line 166 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::Traits = TTraits |
Definition at line 149 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::TupleMultiplicity = caConstants::TupleMultiplicity |
Definition at line 163 of file CAHitNtupletGeneratorKernels.h.
using CAHitNtupletGeneratorKernels< TTraits >::unique_ptr = typename Traits::template unique_ptr<T> |
Definition at line 156 of file CAHitNtupletGeneratorKernels.h.
|
inline |
Definition at line 169 of file CAHitNtupletGeneratorKernels.h.
|
default |
void CAHitNtupletGeneratorKernelsCPU::allocateOnGPU | ( | cudaStream_t | stream | ) |
Definition at line 9 of file CAHitNtupletGeneratorKernelsAlloc.h.
References cudaCheck, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_apc_, 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::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 14 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_, hh, cAHitNtupletGenerator::Params::idealConditions_, cAHitNtupletGenerator::Params::includeJumpingForwardDoublets_, SiStripPI::max, cAHitNtupletGenerator::Params::maxNumberOfDoublets_, caConstants::maxNumOfActiveDoublets, cAHitNtupletGenerator::Params::minHitsPerNtuplet_, gpuPixelDoublets::nActualPairs, nhits, gpuPixelDoublets::nPairs, gpuPixelDoublets::nPairsForQuadruplets, gpuPixelDoublets::nPairsForTriplets, CAHitNtupletGeneratorKernels< TTraits >::params_, and mitigatedMETSequence_cff::U.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
void CAHitNtupletGeneratorKernelsCPU::classifyTuples | ( | HitsOnCPU const & | hh, |
TkSoA * | tuples_d, | ||
cudaStream_t | cudaStream | ||
) |
Definition at line 157 of file CAHitNtupletGeneratorKernels.cc.
References CAHitNtupletGeneratorKernels< TTraits >::counters_, cAHitNtupletGenerator::Params::cuts_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_, CAHitNtupletGeneratorKernels< TTraits >::device_nCells_, CAHitNtupletGeneratorKernels< TTraits >::device_theCells_, cAHitNtupletGenerator::Params::doSharedHitCut_, cAHitNtupletGenerator::Params::doStats_, hh, TrackSoAHeterogeneousT< S >::hitIndices, iev, cAHitNtupletGenerator::Params::lateFishbone_, cAHitNtupletGenerator::Params::minHitsForSharingCut_, CAHitNtupletGeneratorKernels< TTraits >::params_, and TrackSoAHeterogeneousT< S >::qualityData().
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
void CAHitNtupletGeneratorKernels< TTraits >::cleanup | ( | cudaStream_t | cudaStream | ) |
void CAHitNtupletGeneratorKernelsCPU::fillHitDetIndices | ( | HitsView const * | hv, |
TkSoA * | tuples_d, | ||
cudaStream_t | cudaStream | ||
) |
Definition at line 9 of file CAHitNtupletGeneratorKernels.cc.
References TrackSoAHeterogeneousT< S >::detIndices, and TrackSoAHeterogeneousT< S >::hitIndices.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
void CAHitNtupletGeneratorKernelsCPU::launchKernels | ( | HitsOnCPU const & | hh, |
TkSoA * | tuples_d, | ||
cudaStream_t | cudaStream | ||
) |
Definition at line 77 of file CAHitNtupletGeneratorKernels.cc.
References cms::cuda::assert(), cAHitNtupletGenerator::Params::CAThetaCutBarrel_, cAHitNtupletGenerator::Params::CAThetaCutForward_, CAHitNtupletGeneratorKernels< TTraits >::counters_, cAHitNtupletGenerator::Params::dcaCutInnerTriplet_, cAHitNtupletGenerator::Params::dcaCutOuterTriplet_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_, CAHitNtupletGeneratorKernels< TTraits >::device_hitToTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_hitTuple_apc_, CAHitNtupletGeneratorKernels< TTraits >::device_isOuterHitOfCell_, 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::earlyFishbone_, cAHitNtupletGenerator::Params::hardCurvCut_, hh, TrackSoAHeterogeneousT< S >::hitIndices, cAHitNtupletGenerator::Params::lateFishbone_, cAHitNtupletGenerator::Params::maxNumberOfDoublets_, pixelGPUConstants::maxNumberOfHits, cAHitNtupletGenerator::Params::minHitsPerNtuplet_, nhits, CAHitNtupletGeneratorKernels< TTraits >::params_, cAHitNtupletGenerator::Params::ptmin_, and TrackSoAHeterogeneousT< S >::qualityData().
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
|
inlineprivate |
Compute the number of doublet blocks for block size.
Definition at line 215 of file CAHitNtupletGeneratorKernels.h.
References CAHitNtupletGeneratorKernels< TTraits >::paramsMaxDoubletes3Quarters_.
|
inlineprivate |
Compute the number of quadruplet blocks for block size.
Definition at line 221 of file CAHitNtupletGeneratorKernels.h.
References caConstants::maxNumberOfQuadruplets.
|
static |
Definition at line 4 of file CAHitNtupletGeneratorKernels.cc.
References counters.
Referenced by CAHitNtupletGeneratorOnGPU::~CAHitNtupletGeneratorOnGPU().
|
inline |
Definition at line 186 of file CAHitNtupletGeneratorKernels.h.
References counters, and CAHitNtupletGeneratorKernels< TTraits >::counters_.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
|
inline |
Definition at line 173 of file CAHitNtupletGeneratorKernels.h.
References CAHitNtupletGeneratorKernels< TTraits >::device_tupleMultiplicity_.
Referenced by CAHitNtupletGeneratorOnGPU::makeTuples(), and CAHitNtupletGeneratorOnGPU::makeTuplesAsync().
|
private |
Definition at line 192 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 189 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), CAHitNtupletGeneratorKernels< TTraits >::launchKernels(), and CAHitNtupletGeneratorKernels< TTraits >::setCounters().
|
private |
Definition at line 202 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 203 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 205 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 199 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
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 209 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU().
|
private |
Definition at line 193 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 194 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 198 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), CAHitNtupletGeneratorKernels< TTraits >::classifyTuples(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 195 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::buildDoublets(), and CAHitNtupletGeneratorKernels< TTraits >::launchKernels().
|
private |
Definition at line 196 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::buildDoublets().
|
private |
Definition at line 207 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::allocateOnGPU(), CAHitNtupletGeneratorKernels< TTraits >::launchKernels(), and CAHitNtupletGeneratorKernels< TTraits >::tupleMultiplicity().
|
private |
Definition at line 211 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 213 of file CAHitNtupletGeneratorKernels.h.
Referenced by CAHitNtupletGeneratorKernels< TTraits >::nDoubletBlocks().