Project
Loading...
Searching...
No Matches
GPUTPCNNClusterizerKernels.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
14
15#ifndef O2_GPU_NN_CLUSTERIZER_H
16#define O2_GPU_NN_CLUSTERIZER_H
17
18#include "CfArray2D.h"
19#include "GPUGeneralKernels.h"
20#include "GPUTPCNNClusterizer.h"
21#include "GPUTPCCFClusterizer.h"
22
23namespace o2::tpc
24{
25struct ClusterNative;
26} // namespace o2::tpc
27
28namespace o2::gpu
29{
30
31class ClusterAccumulator;
32class MCLabelAccumulator;
33struct CfChargePos;
34class PackedCharge;
35
37{
38 public:
39 // Must all have same number of threads, since they use a common SCRATCH_PAD_WORK_GROUP_SIZE below
40 static constexpr size_t SCRATCH_PAD_WORK_GROUP_SIZE = GPUCA_GET_THREAD_COUNT(GPUCA_LB_GPUTPCCFClusterizer);
42
43 GPUhdi() constexpr static gpudatatypes::RecoStep GetRecoStep()
44 {
46 }
47
58
59 template <int32_t iKernel = defaultKernel, typename... Args>
60 GPUd() static void Thread(int32_t, int32_t, int32_t, int32_t, GPUSharedMemory&, processorType&, uint8_t = 0, int8_t = 0, int8_t = 0, uint = 0, Args...);
61
62 private:
63 static GPUd() int32_t padOffset(int32_t, int32_t);
64 static GPUd() int32_t rowOffset(int32_t, int32_t);
65 static GPUd() bool isBoundary(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t);
66 static GPUd() bool isBoundaryPublish(int32_t, int32_t, float&, float&);
67};
68
69} // namespace o2::gpu
70
71#endif
#define GPUCA_GET_THREAD_COUNT(...)
GPUd() static void Thread(int32_t
GPUhdi() const expr static gpudatatypes
Global TPC definitions and constants.
Definition SimTraits.h:168