Project
Loading...
Searching...
No Matches
GPUTPCDecompressionKernels.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 GPUTPCDECOMPRESSIONKERNELS_H
16#define GPUTPCDECOMPRESSIONKERNELS_H
17
18#include "GPUGeneralKernels.h"
19#include "GPUO2DataTypes.h"
20#include "GPUParam.h"
21#include "GPUConstantMem.h"
23
24namespace o2::gpu
25{
26
28{
29 public:
30 GPUhdi() constexpr static GPUDataTypes::RecoStep GetRecoStep() { return GPUDataTypes::RecoStep::TPCDecompression; }
31
32 enum K : int32_t {
35 };
36
37 template <int32_t iKernel = defaultKernel, typename... Args>
38 GPUd() static void Thread(int32_t nBlocks, int32_t nThreads, int32_t iBlock, int32_t iThread, GPUsharedref() GPUSharedMemory& smem, processorType& GPUrestrict() processors, Args... args);
39
40 GPUd() static uint32_t computeLinearTmpBufferIndex(uint32_t sector, uint32_t row, uint32_t maxClustersPerBuffer)
41 {
43 }
44
45 template <typename T>
46 GPUdi() static void decompressorMemcpyBasic(T* dst, const T* src, uint32_t size);
47};
48
50{
51 public:
52 enum K : int32_t {
53 countFilteredClusters = 0,
54 storeFilteredClusters = 1,
55 sortPerSectorRow = 2,
56 };
57
58 template <int32_t iKernel = defaultKernel>
59 GPUd() static void Thread(int32_t nBlocks, int32_t nThreads, int32_t iBlock, int32_t iThread, GPUsharedref() GPUSharedMemory& smem, processorType& GPUrestrict() processors);
60
61 GPUdi() static bool isClusterKept(const o2::tpc::ClusterNative& cl, const GPUParam& GPUrestrict() param);
62};
63
64} // namespace o2::gpu
65#endif // GPUTPCDECOMPRESSIONKERNELS_H
Container to store compressed TPC cluster data.
#define GPUsharedref()
#define GPUCA_ROW_COUNT
int32_t int32_t int32_t processorType & processors
GPUd() static void Thread(int32_t nBlocks
GPUhdi() const expr static GPUDataTypes
GPUdi() static void decompressorMemcpyBasic(T *dst
int32_t int32_t int32_t processorType & GPUrestrict() processors
int32_t int32_t int32_t processorType Args args
GPUd() static void Thread(int32_t nBlocks
GLenum src
Definition glcorearb.h:1767
GLsizeiptr size
Definition glcorearb.h:659
GLenum GLenum dst
Definition glcorearb.h:1767
GLenum GLfloat param
Definition glcorearb.h:271
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...