21 std::cout <<
"building Doublets out of " <<
nhits <<
" Hits. BPIX2 offset is " <<
hh.offsetBPIX2() << std::endl;
36 cellStorage_ = std::make_unique<unsigned char[]>(cellStorageSize);
86 assert(tuples_d && quality_d);
89 cms::cuda::launchZero(tuples_d, cudaStream);
118 kernel_find_ntuplets(
hh.view(),
131 kernel_fillHitDetIndices(tuples_d,
hh.view(), detId_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);
218 std::lock_guard<std::mutex> guard(
lock);
220 kernel_print_found_ntuplets(
hh.view(), tuples_d, tracks_d, quality_d,
device_hitToTuple_.get(), 0, 1000000,
iev);
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)
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
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t stream
static void printCounters(Counters const *counters)
const uint32_t minHitsPerNtuplet_
const bool useSimpleTripletCleaner_
const float dcaCutInnerTriplet_
constexpr Quality const * qualityData() const
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_
HitContainer const *__restrict__ TkSoA const *__restrict__ Quality const *__restrict__ CAHitNtupletGeneratorKernelsGPU::HitToTuple const *__restrict__ int32_t int32_t int iev
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_
unique_ptr< caConstants::CellTracksVector > device_theCellTracks_
unique_ptr< TupleMultiplicity > device_tupleMultiplicity_
cms::cuda::AtomicPairCounter * device_hitToTuple_apc_