13 kernel_printCounters(counters);
36 cellStorage_ = std::make_unique<unsigned char[]>(cellStorageSize);
41 gpuPixelDoublets::initDoublets(isOuterHitOfCell_,
66 gpuPixelDoublets::getDoubletsFromHisto(device_theCells_.get(),
86 assert(tuples_d && quality_d);
89 cms::cuda::launchZero(tuples_d, cudaStream);
118 kernel_find_ntuplets(hh.
view(),
129 cms::cuda::finalizeBulk(device_hitTuple_apc_, tuples_d);
131 kernel_fillHitDetIndices(tuples_d, hh.
view(), detId_d);
132 kernel_fillNLayers(tracks_d);
154 kernel_classifyTracks(tuples_d, tracks_d,
params_.
cuts_, quality_d);
173 kernel_rejectDuplicate(
176 kernel_sharedHitCleaner(hh.
view(),
183 kernel_simpleTripletCleaner(
186 kernel_tripletCleaner(
192 std::lock_guard guard(lock_stat);
193 kernel_checkOverflows(tuples_d,
209 std::lock_guard guard(lock_stat);
211 kernel_doStatsForTracks(tuples_d, quality_d,
counters_);
214 #ifdef DUMP_GPU_TK_TUPLES
215 static std::atomic<int>
iev(0);
void launchKernels(HitsOnCPU const &hh, TkSoA *tuples_d, cudaStream_t cudaStream)
const bool includeJumpingForwardDoublets_
constexpr uint32_t maxNumOfActiveDoublets
unique_ptr< HitToTuple > device_hitToTuple_
const bool doSharedHitCut_
void buildDoublets(HitsOnCPU const &hh, cudaStream_t stream)
HitToTuple::View hitToTupleView_
void classifyTuples(HitsOnCPU const &hh, TkSoA *tuples_d, cudaStream_t cudaStream)
constexpr Quality const * qualityData() const
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static void printCounters(Counters const *counters)
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t uint32_t CAHitNtupletGeneratorKernelsGPU::Counters * counters
const uint32_t minHitsPerNtuplet_
const bool useSimpleTripletCleaner_
const float dcaCutInnerTriplet_
unique_ptr< GPUCACell[]> device_theCells_
const bool earlyFishbone_
const uint16_t minHitsForSharingCut_
const bool idealConditions_
unique_ptr< caConstants::CellNeighborsVector > device_theCellNeighbors_
unique_ptr< unsigned char[]> cellStorage_
caConstants::CellNeighbors CellNeighbors
const float CAThetaCutForward_
constexpr int nPairsForTriplets
const float dcaCutOuterTriplet_
caConstants::CellNeighbors * device_theCellNeighborsContainer_
uint32_t * device_nCells_
uint32_t CellNeighborsVector CellTracksVector TrackingRecHit2DSOAView const *__restrict__ GPUCACell::OuterHitOfCell int nActualPairs
cms::cuda::AtomicPairCounter * device_hitTuple_apc_
unique_ptr< GPUCACell::OuterHitOfCellContainer[]> device_isOuterHitOfCell_
GPUCACell::OuterHitOfCell isOuterHitOfCell_
caConstants::CellTracks * device_theCellTracksContainer_
const float CAThetaCutBarrel_
constexpr int nPairsForQuadruplets
const bool dupPassThrough_
const uint32_t maxNumberOfDoublets_
TrackingRecHit2DSOAView * view()
HitContainer const *__restrict__ TkSoA const *__restrict__ Quality const *__restrict__ CAHitNtupletGeneratorKernelsGPU::HitToTuple const *__restrict__ int32_t int iev
unique_ptr< caConstants::CellTracksVector > device_theCellTracks_
unique_ptr< TupleMultiplicity > device_tupleMultiplicity_
cms::cuda::AtomicPairCounter * device_hitToTuple_apc_