Project
Loading...
Searching...
No Matches
GPUTPCCFStreamCompaction.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_STREAM_COMPACTION_H
16
#define O2_GPU_STREAM_COMPACTION_H
17
18
#include "
clusterFinderDefs.h
"
19
#include "
GPUGeneralKernels.h
"
20
#include "
GPUConstantMem.h
"
21
#include "
GPUTPCClusterFinder.h
"
22
23
namespace
o2::gpu
24
{
25
26
class
GPUTPCCFStreamCompaction
:
public
GPUKernelTemplate
27
{
28
29
public
:
30
enum
K
: int32_t {
31
scanStart
= 0,
32
scanUp
= 1,
33
scanTop
= 2,
34
scanDown
= 3,
35
compactDigits
= 4,
36
};
37
38
#if defined(GPUCA_GPUCODE) && !defined(GPUCA_GPUCODE_NO_LAUNCH_BOUNDS)
39
struct
GPUSharedMemory :
public
GPUKernelTemplate::GPUSharedMemoryScan64
<int32_t, GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE> {
40
};
41
static_assert
(
GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
==
GPUCA_GET_THREAD_COUNT
(GPUCA_LB_GPUTPCCFStreamCompaction_scanStart));
42
static_assert
(
GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
==
GPUCA_GET_THREAD_COUNT
(GPUCA_LB_GPUTPCCFStreamCompaction_scanUp));
43
static_assert
(
GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
==
GPUCA_GET_THREAD_COUNT
(GPUCA_LB_GPUTPCCFStreamCompaction_scanTop));
44
static_assert
(
GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
==
GPUCA_GET_THREAD_COUNT
(GPUCA_LB_GPUTPCCFStreamCompaction_scanDown));
45
static_assert
(
GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
==
GPUCA_GET_THREAD_COUNT
(GPUCA_LB_GPUTPCCFStreamCompaction_compactDigits));
46
#endif
47
48
typedef
GPUTPCClusterFinder
processorType
;
49
GPUhdi
() static
processorType
* Processor(
GPUConstantMem
&
processors
)
50
{
51
return
processors
.tpcClusterer;
52
}
53
54
GPUhdi
() constexpr static
GPUDataTypes
::RecoStep GetRecoStep()
55
{
56
return
GPUDataTypes::RecoStep::TPCClusterFinding
;
57
}
58
59
template
<int32_t iKernel =
GPUKernelTemplate::defaultKernel
,
typename
... Args>
60
GPUd
() static
void
Thread(int32_t nBlocks, int32_t
nThreads
, int32_t
iBlock
, int32_t
iThread
,
GPUSharedMemory
&
smem
,
processorType
&
clusterer
, Args...
args
);
61
62
private:
63
static
GPUd
() int32_t CompactionElems(
processorType
&
clusterer
, int32_t stage);
64
};
65
66
}
// namespace o2::gpu
67
68
#endif
GPUConstantMem.h
GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
#define GPUCA_PAR_CF_SCAN_WORKGROUP_SIZE
Definition
GPUDefParametersDefaults.h:584
GPUCA_GET_THREAD_COUNT
#define GPUCA_GET_THREAD_COUNT(...)
Definition
GPUDefParametersWrapper.h:35
GPUGeneralKernels.h
GPUTPCClusterFinder.h
o2::gpu::GPUDataTypes
Definition
GPUDataTypes.h:115
o2::gpu::GPUDataTypes::RecoStep::TPCClusterFinding
@ TPCClusterFinding
o2::gpu::GPUKernelTemplate
Definition
GPUGeneralKernels.h:40
o2::gpu::GPUKernelTemplate::processors
int32_t int32_t int32_t processorType & processors
Definition
GPUGeneralKernels.h:88
o2::gpu::GPUKernelTemplate::defaultKernel
@ defaultKernel
Definition
GPUGeneralKernels.h:42
o2::gpu::GPUTPCCFStreamCompaction
Definition
GPUTPCCFStreamCompaction.h:27
o2::gpu::GPUTPCCFStreamCompaction::GPUhdi
GPUhdi() const expr static GPUDataTypes
Definition
GPUTPCCFStreamCompaction.h:54
o2::gpu::GPUTPCCFStreamCompaction::processorType
GPUTPCClusterFinder processorType
Definition
GPUTPCCFStreamCompaction.h:48
o2::gpu::GPUTPCCFStreamCompaction::nThreads
int32_t nThreads
Definition
GPUTPCCFStreamCompaction.h:60
o2::gpu::GPUTPCCFStreamCompaction::iBlock
int32_t int32_t iBlock
Definition
GPUTPCCFStreamCompaction.h:60
o2::gpu::GPUTPCCFStreamCompaction::iThread
int32_t int32_t int32_t iThread
Definition
GPUTPCCFStreamCompaction.h:60
o2::gpu::GPUTPCCFStreamCompaction::K
K
Definition
GPUTPCCFStreamCompaction.h:30
o2::gpu::GPUTPCCFStreamCompaction::scanStart
@ scanStart
Definition
GPUTPCCFStreamCompaction.h:31
o2::gpu::GPUTPCCFStreamCompaction::scanDown
@ scanDown
Definition
GPUTPCCFStreamCompaction.h:34
o2::gpu::GPUTPCCFStreamCompaction::compactDigits
@ compactDigits
Definition
GPUTPCCFStreamCompaction.h:35
o2::gpu::GPUTPCCFStreamCompaction::scanUp
@ scanUp
Definition
GPUTPCCFStreamCompaction.h:32
o2::gpu::GPUTPCCFStreamCompaction::scanTop
@ scanTop
Definition
GPUTPCCFStreamCompaction.h:33
o2::gpu::GPUTPCCFStreamCompaction::smem
int32_t int32_t int32_t GPUSharedMemory & smem
Definition
GPUTPCCFStreamCompaction.h:60
o2::gpu::GPUTPCCFStreamCompaction::args
int32_t int32_t int32_t GPUSharedMemory processorType Args args
Definition
GPUTPCCFStreamCompaction.h:60
o2::gpu::GPUTPCCFStreamCompaction::clusterer
int32_t int32_t int32_t GPUSharedMemory processorType & clusterer
Definition
GPUTPCCFStreamCompaction.h:60
o2::gpu::GPUTPCCFStreamCompaction::GPUhdi
GPUhdi() static processorType *Processor(GPUConstantMem &processors)
Definition
GPUTPCCFStreamCompaction.h:49
o2::gpu::GPUTPCCFStreamCompaction::GPUd
GPUd() static void Thread(int32_t nBlocks
o2::gpu::GPUTPCClusterFinder
Definition
GPUTPCClusterFinder.h:52
clusterFinderDefs.h
o2::gpu
Definition
TrackTRD.h:35
o2::gpu::GPUConstantMem
Definition
GPUConstantMem.h:43
o2::gpu::GPUKernelTemplate::GPUSharedMemoryScan64
Definition
GPUGeneralKernels.h:65
o2::gpu::GPUKernelTemplate::GPUSharedMemory
Definition
GPUGeneralKernels.h:50
GPU
GPUTracking
TPCClusterFinder
GPUTPCCFStreamCompaction.h
Generated on Fri Apr 25 2025 17:28:21 for Project by
1.9.8