Project
Loading...
Searching...
No Matches
o2::gpu::GPUChain Class Referenceabstract

#include <GPUChain.h>

Inherited by o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.

Public Types

using RecoStep = GPUReconstruction::RecoStep
 
using GeneralStep = GPUReconstruction::GeneralStep
 
using InOutPointerType = GPUReconstruction::InOutPointerType
 
using GeometryType = GPUReconstruction::GeometryType
 
using krnlRunRange = gpu_reconstruction_kernels::krnlRunRange
 
using krnlExec = gpu_reconstruction_kernels::krnlExec
 
using krnlEvent = gpu_reconstruction_kernels::krnlEvent
 
using deviceEvent = gpu_reconstruction_kernels::deviceEvent
 

Public Member Functions

virtual ~GPUChain ()=default
 
virtual void RegisterPermanentMemoryAndProcessors ()=0
 
virtual void RegisterGPUProcessors ()=0
 
virtual int32_t EarlyConfigure ()
 
virtual int32_t Init ()=0
 
virtual int32_t PrepareEvent ()=0
 
virtual int32_t Finalize ()=0
 
virtual int32_t RunChain ()=0
 
virtual void MemorySize (size_t &gpuMem, size_t &pageLockedHostMem)=0
 
virtual void PrintMemoryStatistics ()
 
virtual int32_t CheckErrorCodes (bool cpuOnly=false, bool forceShowErrors=false, std::vector< std::array< uint32_t, 4 > > *fillErrors=nullptr)
 
virtual bool SupportsDoublePipeline ()
 
virtual int32_t FinalizePipelinedProcessing ()
 
virtual void DumpSettings (const char *dir="")
 
virtual void ReadSettings (const char *dir="")
 
const GPUParamGetParam () const
 
const GPUSettingsGRPGetGRPSettings () const
 
const GPUCalibObjectsConstcalib () const
 
GPUReconstructionrec ()
 
const GPUReconstructionrec () const
 
const GPUConstantMemGetProcessors ()
 
GPUReconstruction::RecoStepField GetRecoSteps () const
 
GPUReconstruction::RecoStepField GetRecoStepsGPU () const
 
GPUReconstruction::InOutTypeField GetRecoStepsInputs () const
 
GPUReconstruction::InOutTypeField GetRecoStepsOutputs () const
 
const GPUSettingsDeviceBackendGetDeviceBackendSettings () const
 
const GPUSettingsProcessing & GetProcessingSettings () const
 

Static Public Attributes

static constexpr krnlRunRange krnlRunRangeNone {0, -1}
 
static constexpr krnlEvent krnlEventNone = krnlEvent{nullptr, nullptr, 0}
 
static constexpr int32_t NSECTORS = GPUReconstruction::NSECTORS
 

Protected Member Functions

 GPUChain (GPUReconstruction *rec)
 
int32_t GetThread ()
 
GPUConstantMemprocessors ()
 
GPUConstantMemprocessorsShadow ()
 
GPUConstantMemprocessorsDevice ()
 
GPUParamparam ()
 
const GPUConstantMemprocessors () const
 
void SynchronizeStream (int32_t stream)
 
void SynchronizeEvents (deviceEvent *evList, int32_t nEvents=1)
 
void SynchronizeEventAndRelease (deviceEvent &ev, bool doGPU=true)
 
template<class T >
void CondWaitEvent (T &cond, deviceEvent *ev)
 
bool IsEventDone (deviceEvent *evList, int32_t nEvents=1)
 
void RecordMarker (deviceEvent *ev, int32_t stream)
 
virtual std::unique_ptr< gpu_reconstruction_kernels::threadContextGetThreadContext ()
 
void SynchronizeGPU ()
 
void ReleaseEvent (deviceEvent ev, bool doGPU=true)
 
void StreamWaitForEvents (int32_t stream, deviceEvent *evList, int32_t nEvents=1)
 
int32_t GPUDebug (const char *state="UNKNOWN", int32_t stream=-1)
 
void TransferMemoryResourceToGPU (RecoStep step, GPUMemoryResource *res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
void TransferMemoryResourceToHost (RecoStep step, GPUMemoryResource *res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
void TransferMemoryResourcesToGPU (RecoStep step, GPUProcessor *proc, int32_t stream=-1, bool all=false)
 
void TransferMemoryResourcesToHost (RecoStep step, GPUProcessor *proc, int32_t stream=-1, bool all=false)
 
void TransferMemoryResourceLinkToGPU (RecoStep step, int16_t res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
void TransferMemoryResourceLinkToHost (RecoStep step, int16_t res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
void WriteToConstantMemory (RecoStep step, size_t offset, const void *src, size_t size, int32_t stream=-1, deviceEvent *ev=nullptr)
 
void GPUMemCpy (RecoStep step, void *dst, const void *src, size_t size, int32_t stream, int32_t toGPU, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
void GPUMemCpyAlways (RecoStep step, void *dst, const void *src, size_t size, int32_t stream, int32_t toGPU, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
template<class T >
void AllocateIOMemoryHelper (uint32_t n, const T *&ptr, std::unique_ptr< T[]> &u)
 
template<class T , class S >
uint32_t DumpData (FILE *fp, const T *const *entries, const S *num, InOutPointerType type)
 
template<class T , class S >
size_t ReadData (FILE *fp, const T **entries, S *num, std::unique_ptr< T[]> *mem, InOutPointerType type, T **nonConstPtrs=nullptr)
 
template<class T >
void DumpFlatObjectToFile (const T *obj, const char *file)
 
template<class T >
std::unique_ptr< T > ReadFlatObjectFromFile (const char *file)
 
template<class T >
void DumpStructToFile (const T *obj, const char *file)
 
template<class T >
std::unique_ptr< T > ReadStructFromFile (const char *file)
 
template<class T >
void ReadStructFromFile (const char *file, T *obj)
 
template<class S , int32_t I = 0, typename... Args>
int32_t runKernel (gpu_reconstruction_kernels::krnlSetup &&setup, Args &&... args)
 
template<class S , int32_t I = 0>
gpu_reconstruction_kernels::krnlProperties getKernelProperties ()
 
template<class T , int32_t I = 0>
HighResTimergetKernelTimer (RecoStep step, int32_t num=0, size_t addMemorySize=0, bool increment=true)
 
template<class T , int32_t J = -1>
HighResTimergetTimer (const char *name, int32_t num=-1)
 
krnlExec GetGrid (uint32_t totalItems, uint32_t nThreads, int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUCA_RECO_STEP st=GPUCA_RECO_STEP::NoRecoStep)
 
krnlExec GetGrid (uint32_t totalItems, int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUCA_RECO_STEP st=GPUCA_RECO_STEP::NoRecoStep)
 
krnlExec GetGridBlk (uint32_t nBlocks, int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUCA_RECO_STEP st=GPUCA_RECO_STEP::NoRecoStep)
 
krnlExec GetGridBlkStep (uint32_t nBlocks, int32_t stream, GPUCA_RECO_STEP st=GPUCA_RECO_STEP::NoRecoStep)
 
krnlExec GetGridAuto (int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUCA_RECO_STEP st=GPUCA_RECO_STEP::NoRecoStep)
 
krnlExec GetGridAutoStep (int32_t stream, GPUCA_RECO_STEP st=GPUCA_RECO_STEP::NoRecoStep)
 
uint32_t BlockCount () const
 
uint32_t WarpSize () const
 
uint32_t ThreadCount () const
 
size_t AllocateRegisteredMemory (GPUProcessor *proc)
 
size_t AllocateRegisteredMemory (int16_t res, GPUOutputControl *control=nullptr)
 
template<class T >
void SetupGPUProcessor (T *proc, bool allocate)
 
GPUChainGetNextChainInQueue ()
 
virtual int32_t PrepareTextures ()
 
virtual int32_t DoStuckProtection (int32_t stream, deviceEvent event)
 
template<class T , class S , typename... Args>
bool DoDebugAndDump (RecoStep step, int32_t mask, T &processor, S T::*func, Args &&... args)
 
template<class T , class S , typename... Args>
bool DoDebugAndDump (RecoStep step, int32_t mask, bool transfer, T &processor, S T::*func, Args &&... args)
 
template<class T , class S , typename... Args>
int32_t runRecoStep (RecoStep step, S T::*func, Args... args)
 

Protected Attributes

GPUReconstructionCPUmRec
 

Friends

class GPUReconstruction
 

Detailed Description

Definition at line 24 of file GPUChain.h.

Member Typedef Documentation

◆ deviceEvent

◆ GeneralStep

◆ GeometryType

◆ InOutPointerType

◆ krnlEvent

◆ krnlExec

◆ krnlRunRange

◆ RecoStep

Constructor & Destructor Documentation

◆ ~GPUChain()

virtual o2::gpu::GPUChain::~GPUChain ( )
virtualdefault

◆ GPUChain()

o2::gpu::GPUChain::GPUChain ( GPUReconstruction rec)
inlineprotected

Definition at line 76 of file GPUChain.h.

Member Function Documentation

◆ AllocateIOMemoryHelper()

template<class T >
void o2::gpu::GPUChain::AllocateIOMemoryHelper ( uint32_t  n,
const T *&  ptr,
std::unique_ptr< T[]> &  u 
)
inlineprotected

Definition at line 134 of file GPUChain.h.

◆ AllocateRegisteredMemory() [1/2]

size_t o2::gpu::GPUChain::AllocateRegisteredMemory ( GPUProcessor proc)
inlineprotected

Definition at line 209 of file GPUChain.h.

◆ AllocateRegisteredMemory() [2/2]

size_t o2::gpu::GPUChain::AllocateRegisteredMemory ( int16_t  res,
GPUOutputControl control = nullptr 
)
inlineprotected

Definition at line 210 of file GPUChain.h.

◆ BlockCount()

uint32_t o2::gpu::GPUChain::BlockCount ( ) const
inlineprotected

Definition at line 205 of file GPUChain.h.

◆ calib()

const GPUCalibObjectsConst & o2::gpu::GPUChain::calib ( ) const
inline

Definition at line 61 of file GPUChain.h.

◆ CheckErrorCodes()

virtual int32_t o2::gpu::GPUChain::CheckErrorCodes ( bool  cpuOnly = false,
bool  forceShowErrors = false,
std::vector< std::array< uint32_t, 4 > > *  fillErrors = nullptr 
)
inlinevirtual

Reimplemented in o2::gpu::GPUChainTracking.

Definition at line 50 of file GPUChain.h.

◆ CondWaitEvent()

template<class T >
void o2::gpu::GPUChain::CondWaitEvent ( T &  cond,
deviceEvent ev 
)
inlineprotected

Definition at line 95 of file GPUChain.h.

◆ DoDebugAndDump() [1/2]

template<class T , class S , typename... Args>
bool o2::gpu::GPUChain::DoDebugAndDump ( GPUChain::RecoStep  step,
int32_t  mask,
bool  transfer,
T &  processor,
S T::*  func,
Args &&...  args 
)
protected

Definition at line 265 of file GPUChain.h.

◆ DoDebugAndDump() [2/2]

template<class T , class S , typename... Args>
bool o2::gpu::GPUChain::DoDebugAndDump ( RecoStep  step,
int32_t  mask,
T &  processor,
S T::*  func,
Args &&...  args 
)
inlineprotected

Definition at line 223 of file GPUChain.h.

◆ DoStuckProtection()

virtual int32_t o2::gpu::GPUChain::DoStuckProtection ( int32_t  stream,
deviceEvent  event 
)
inlineprotectedvirtual

Definition at line 220 of file GPUChain.h.

◆ DumpData()

template<class T , class S >
uint32_t o2::gpu::GPUChain::DumpData ( FILE *  fp,
const T *const *  entries,
const S num,
InOutPointerType  type 
)
inlineprotected

Definition at line 139 of file GPUChain.h.

◆ DumpFlatObjectToFile()

template<class T >
void o2::gpu::GPUChain::DumpFlatObjectToFile ( const T *  obj,
const char file 
)
inlineprotected

Definition at line 149 of file GPUChain.h.

◆ DumpSettings()

virtual void o2::gpu::GPUChain::DumpSettings ( const char dir = "")
inlinevirtual

Reimplemented in o2::gpu::GPUChainTracking.

Definition at line 56 of file GPUChain.h.

◆ DumpStructToFile()

template<class T >
void o2::gpu::GPUChain::DumpStructToFile ( const T *  obj,
const char file 
)
inlineprotected

Definition at line 159 of file GPUChain.h.

◆ EarlyConfigure()

virtual int32_t o2::gpu::GPUChain::EarlyConfigure ( )
inlinevirtual

Definition at line 43 of file GPUChain.h.

◆ Finalize()

virtual int32_t o2::gpu::GPUChain::Finalize ( )
pure virtual

◆ FinalizePipelinedProcessing()

virtual int32_t o2::gpu::GPUChain::FinalizePipelinedProcessing ( )
inlinevirtual

Reimplemented in o2::gpu::GPUChainTracking.

Definition at line 52 of file GPUChain.h.

◆ GetDeviceBackendSettings()

const GPUSettingsDeviceBackend & o2::gpu::GPUChain::GetDeviceBackendSettings ( ) const
inline

Definition at line 71 of file GPUChain.h.

◆ GetGrid() [1/2]

GPUChain::krnlExec GPUChain::GetGrid ( uint32_t  totalItems,
int32_t  stream,
GPUReconstruction::krnlDeviceType  d = GPUReconstruction::krnlDeviceType::Auto,
GPUCA_RECO_STEP  st = GPUCA_RECO_STEP::NoRecoStep 
)
protected

Definition at line 27 of file GPUChain.cxx.

◆ GetGrid() [2/2]

GPUChain::krnlExec GPUChain::GetGrid ( uint32_t  totalItems,
uint32_t  nThreads,
int32_t  stream,
GPUReconstruction::krnlDeviceType  d = GPUReconstruction::krnlDeviceType::Auto,
GPUCA_RECO_STEP  st = GPUCA_RECO_STEP::NoRecoStep 
)
protected

Definition at line 21 of file GPUChain.cxx.

◆ GetGridAuto()

GPUChain::krnlExec GPUChain::GetGridAuto ( int32_t  stream,
GPUReconstruction::krnlDeviceType  d = GPUReconstruction::krnlDeviceType::Auto,
GPUCA_RECO_STEP  st = GPUCA_RECO_STEP::NoRecoStep 
)
protected

Definition at line 42 of file GPUChain.cxx.

◆ GetGridAutoStep()

GPUChain::krnlExec GPUChain::GetGridAutoStep ( int32_t  stream,
GPUCA_RECO_STEP  st = GPUCA_RECO_STEP::NoRecoStep 
)
protected

Definition at line 47 of file GPUChain.cxx.

◆ GetGridBlk()

GPUChain::krnlExec GPUChain::GetGridBlk ( uint32_t  nBlocks,
int32_t  stream,
GPUReconstruction::krnlDeviceType  d = GPUReconstruction::krnlDeviceType::Auto,
GPUCA_RECO_STEP  st = GPUCA_RECO_STEP::NoRecoStep 
)
protected

Definition at line 32 of file GPUChain.cxx.

◆ GetGridBlkStep()

GPUChain::krnlExec GPUChain::GetGridBlkStep ( uint32_t  nBlocks,
int32_t  stream,
GPUCA_RECO_STEP  st = GPUCA_RECO_STEP::NoRecoStep 
)
protected

Definition at line 37 of file GPUChain.cxx.

◆ GetGRPSettings()

const GPUSettingsGRP & o2::gpu::GPUChain::GetGRPSettings ( ) const
inline

Definition at line 60 of file GPUChain.h.

◆ getKernelProperties()

template<class S , int32_t I = 0>
gpu_reconstruction_kernels::krnlProperties o2::gpu::GPUChain::getKernelProperties ( )
inlineprotected

Definition at line 179 of file GPUChain.h.

◆ getKernelTimer()

template<class T , int32_t I = 0>
HighResTimer & o2::gpu::GPUChain::getKernelTimer ( RecoStep  step,
int32_t  num = 0,
size_t  addMemorySize = 0,
bool  increment = true 
)
inlineprotected

Definition at line 185 of file GPUChain.h.

◆ GetNextChainInQueue()

GPUChain * o2::gpu::GPUChain::GetNextChainInQueue ( )
inlineprotected

Definition at line 217 of file GPUChain.h.

◆ GetParam()

const GPUParam & o2::gpu::GPUChain::GetParam ( ) const
inline

Definition at line 59 of file GPUChain.h.

◆ GetProcessingSettings()

const GPUSettingsProcessing & o2::gpu::GPUChain::GetProcessingSettings ( ) const
inline

Definition at line 72 of file GPUChain.h.

◆ GetProcessors()

const GPUConstantMem * o2::gpu::GPUChain::GetProcessors ( )
inline

Definition at line 64 of file GPUChain.h.

◆ GetRecoSteps()

GPUReconstruction::RecoStepField o2::gpu::GPUChain::GetRecoSteps ( ) const
inline

Definition at line 67 of file GPUChain.h.

◆ GetRecoStepsGPU()

GPUReconstruction::RecoStepField o2::gpu::GPUChain::GetRecoStepsGPU ( ) const
inline

Definition at line 68 of file GPUChain.h.

◆ GetRecoStepsInputs()

GPUReconstruction::InOutTypeField o2::gpu::GPUChain::GetRecoStepsInputs ( ) const
inline

Definition at line 69 of file GPUChain.h.

◆ GetRecoStepsOutputs()

GPUReconstruction::InOutTypeField o2::gpu::GPUChain::GetRecoStepsOutputs ( ) const
inline

Definition at line 70 of file GPUChain.h.

◆ GetThread()

int32_t o2::gpu::GPUChain::GetThread ( )
protected

◆ GetThreadContext()

virtual std::unique_ptr< gpu_reconstruction_kernels::threadContext > o2::gpu::GPUChain::GetThreadContext ( )
inlineprotectedvirtual

Definition at line 104 of file GPUChain.h.

◆ getTimer()

template<class T , int32_t J = -1>
HighResTimer & o2::gpu::GPUChain::getTimer ( const char name,
int32_t  num = -1 
)
inlineprotected

Definition at line 190 of file GPUChain.h.

◆ GPUDebug()

int32_t o2::gpu::GPUChain::GPUDebug ( const char state = "UNKNOWN",
int32_t  stream = -1 
)
inlineprotected

Definition at line 113 of file GPUChain.h.

◆ GPUMemCpy()

void o2::gpu::GPUChain::GPUMemCpy ( RecoStep  step,
void dst,
const void src,
size_t  size,
int32_t  stream,
int32_t  toGPU,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 123 of file GPUChain.h.

◆ GPUMemCpyAlways()

void o2::gpu::GPUChain::GPUMemCpyAlways ( RecoStep  step,
void dst,
const void src,
size_t  size,
int32_t  stream,
int32_t  toGPU,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 124 of file GPUChain.h.

◆ Init()

virtual int32_t o2::gpu::GPUChain::Init ( )
pure virtual

◆ IsEventDone()

bool o2::gpu::GPUChain::IsEventDone ( deviceEvent evList,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 102 of file GPUChain.h.

◆ MemorySize()

virtual void o2::gpu::GPUChain::MemorySize ( size_t &  gpuMem,
size_t &  pageLockedHostMem 
)
pure virtual

◆ param()

GPUParam & o2::gpu::GPUChain::param ( )
inlineprotected

Definition at line 83 of file GPUChain.h.

◆ PrepareEvent()

virtual int32_t o2::gpu::GPUChain::PrepareEvent ( )
pure virtual

◆ PrepareTextures()

virtual int32_t o2::gpu::GPUChain::PrepareTextures ( )
inlineprotectedvirtual

Definition at line 219 of file GPUChain.h.

◆ PrintMemoryStatistics()

virtual void o2::gpu::GPUChain::PrintMemoryStatistics ( )
inlinevirtual

Reimplemented in o2::gpu::GPUChainTracking.

Definition at line 49 of file GPUChain.h.

◆ processors() [1/2]

GPUConstantMem * o2::gpu::GPUChain::processors ( )
inlineprotected

Definition at line 80 of file GPUChain.h.

◆ processors() [2/2]

const GPUConstantMem * o2::gpu::GPUChain::processors ( ) const
inlineprotected

Definition at line 84 of file GPUChain.h.

◆ processorsDevice()

GPUConstantMem * o2::gpu::GPUChain::processorsDevice ( )
inlineprotected

Definition at line 82 of file GPUChain.h.

◆ processorsShadow()

GPUConstantMem * o2::gpu::GPUChain::processorsShadow ( )
inlineprotected

Definition at line 81 of file GPUChain.h.

◆ ReadData()

template<class T , class S >
size_t o2::gpu::GPUChain::ReadData ( FILE *  fp,
const T **  entries,
S num,
std::unique_ptr< T[]> *  mem,
InOutPointerType  type,
T **  nonConstPtrs = nullptr 
)
inlineprotected

Definition at line 144 of file GPUChain.h.

◆ ReadFlatObjectFromFile()

template<class T >
std::unique_ptr< T > o2::gpu::GPUChain::ReadFlatObjectFromFile ( const char file)
inlineprotected

Definition at line 154 of file GPUChain.h.

◆ ReadSettings()

virtual void o2::gpu::GPUChain::ReadSettings ( const char dir = "")
inlinevirtual

Reimplemented in o2::gpu::GPUChainTracking.

Definition at line 57 of file GPUChain.h.

◆ ReadStructFromFile() [1/2]

template<class T >
std::unique_ptr< T > o2::gpu::GPUChain::ReadStructFromFile ( const char file)
inlineprotected

Definition at line 164 of file GPUChain.h.

◆ ReadStructFromFile() [2/2]

template<class T >
void o2::gpu::GPUChain::ReadStructFromFile ( const char file,
T *  obj 
)
inlineprotected

Definition at line 169 of file GPUChain.h.

◆ rec() [1/2]

GPUReconstruction * o2::gpu::GPUChain::rec ( )
inline

Definition at line 62 of file GPUChain.h.

◆ rec() [2/2]

const GPUReconstruction * o2::gpu::GPUChain::rec ( ) const
inline

Definition at line 63 of file GPUChain.h.

◆ RecordMarker()

void o2::gpu::GPUChain::RecordMarker ( deviceEvent ev,
int32_t  stream 
)
inlineprotected

Definition at line 103 of file GPUChain.h.

◆ RegisterGPUProcessors()

virtual void o2::gpu::GPUChain::RegisterGPUProcessors ( )
pure virtual

◆ RegisterPermanentMemoryAndProcessors()

virtual void o2::gpu::GPUChain::RegisterPermanentMemoryAndProcessors ( )
pure virtual

◆ ReleaseEvent()

void o2::gpu::GPUChain::ReleaseEvent ( deviceEvent  ev,
bool  doGPU = true 
)
inlineprotected

Definition at line 106 of file GPUChain.h.

◆ RunChain()

virtual int32_t o2::gpu::GPUChain::RunChain ( )
pure virtual

◆ runKernel()

template<class S , int32_t I = 0, typename... Args>
int32_t o2::gpu::GPUChain::runKernel ( gpu_reconstruction_kernels::krnlSetup &&  setup,
Args &&...  args 
)
inlineprotected

Definition at line 174 of file GPUChain.h.

◆ runRecoStep()

template<class T , class S , typename... Args>
int32_t o2::gpu::GPUChain::runRecoStep ( RecoStep  step,
S T::*  func,
Args...  args 
)
protected

Definition at line 282 of file GPUChain.h.

◆ SetupGPUProcessor()

template<class T >
void o2::gpu::GPUChain::SetupGPUProcessor ( T *  proc,
bool  allocate 
)
inlineprotected

Definition at line 212 of file GPUChain.h.

◆ StreamWaitForEvents()

void o2::gpu::GPUChain::StreamWaitForEvents ( int32_t  stream,
deviceEvent evList,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 112 of file GPUChain.h.

◆ SupportsDoublePipeline()

virtual bool o2::gpu::GPUChain::SupportsDoublePipeline ( )
inlinevirtual

Reimplemented in o2::gpu::GPUChainTracking.

Definition at line 51 of file GPUChain.h.

◆ SynchronizeEventAndRelease()

void o2::gpu::GPUChain::SynchronizeEventAndRelease ( deviceEvent ev,
bool  doGPU = true 
)
inlineprotected

Definition at line 87 of file GPUChain.h.

◆ SynchronizeEvents()

void o2::gpu::GPUChain::SynchronizeEvents ( deviceEvent evList,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 86 of file GPUChain.h.

◆ SynchronizeGPU()

void o2::gpu::GPUChain::SynchronizeGPU ( )
inlineprotected

Definition at line 105 of file GPUChain.h.

◆ SynchronizeStream()

void o2::gpu::GPUChain::SynchronizeStream ( int32_t  stream)
inlineprotected

Definition at line 85 of file GPUChain.h.

◆ ThreadCount()

uint32_t o2::gpu::GPUChain::ThreadCount ( ) const
inlineprotected

Definition at line 207 of file GPUChain.h.

◆ TransferMemoryResourceLinkToGPU()

void o2::gpu::GPUChain::TransferMemoryResourceLinkToGPU ( RecoStep  step,
int16_t  res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 119 of file GPUChain.h.

◆ TransferMemoryResourceLinkToHost()

void o2::gpu::GPUChain::TransferMemoryResourceLinkToHost ( RecoStep  step,
int16_t  res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 120 of file GPUChain.h.

◆ TransferMemoryResourcesToGPU()

void o2::gpu::GPUChain::TransferMemoryResourcesToGPU ( RecoStep  step,
GPUProcessor proc,
int32_t  stream = -1,
bool  all = false 
)
inlineprotected

Definition at line 117 of file GPUChain.h.

◆ TransferMemoryResourcesToHost()

void o2::gpu::GPUChain::TransferMemoryResourcesToHost ( RecoStep  step,
GPUProcessor proc,
int32_t  stream = -1,
bool  all = false 
)
inlineprotected

Definition at line 118 of file GPUChain.h.

◆ TransferMemoryResourceToGPU()

void o2::gpu::GPUChain::TransferMemoryResourceToGPU ( RecoStep  step,
GPUMemoryResource res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 115 of file GPUChain.h.

◆ TransferMemoryResourceToHost()

void o2::gpu::GPUChain::TransferMemoryResourceToHost ( RecoStep  step,
GPUMemoryResource res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 116 of file GPUChain.h.

◆ WarpSize()

uint32_t o2::gpu::GPUChain::WarpSize ( ) const
inlineprotected

Definition at line 206 of file GPUChain.h.

◆ WriteToConstantMemory()

void o2::gpu::GPUChain::WriteToConstantMemory ( RecoStep  step,
size_t  offset,
const void src,
size_t  size,
int32_t  stream = -1,
deviceEvent ev = nullptr 
)
inlineprotected

Definition at line 122 of file GPUChain.h.

Friends And Related Symbol Documentation

◆ GPUReconstruction

friend class GPUReconstruction
friend

Definition at line 26 of file GPUChain.h.

Member Data Documentation

◆ krnlEventNone

constexpr GPUChain::krnlEvent GPUChain::krnlEventNone = krnlEvent{nullptr, nullptr, 0}
staticconstexpr

Definition at line 38 of file GPUChain.h.

◆ krnlRunRangeNone

constexpr GPUChain::krnlRunRange GPUChain::krnlRunRangeNone {0, -1}
staticconstexpr

Definition at line 37 of file GPUChain.h.

◆ mRec

GPUReconstructionCPU* o2::gpu::GPUChain::mRec
protected

Definition at line 75 of file GPUChain.h.

◆ NSECTORS

constexpr int32_t o2::gpu::GPUChain::NSECTORS = GPUReconstruction::NSECTORS
staticconstexpr

Definition at line 54 of file GPUChain.h.


The documentation for this class was generated from the following files: