Project
Loading...
Searching...
No Matches
o2::gpu::GPUChainITS Class Reference

#include <GPUChainITS.h>

Inherits o2::gpu::GPUChain.

Public Member Functions

 ~GPUChainITS () override
 
void RegisterPermanentMemoryAndProcessors () override
 
void RegisterGPUProcessors () override
 
int32_t Init () override
 
int32_t PrepareEvent () override
 
int32_t Finalize () override
 
int32_t RunChain () override
 
void MemorySize (size_t &gpuMem, size_t &pageLockedHostMem) override
 
o2::its::TrackerTraitsGetITSTrackerTraits ()
 
o2::its::VertexerTraitsGetITSVertexerTraits ()
 
o2::its::TimeFrameGetITSTimeframe ()
 
- Public Member Functions inherited from o2::gpu::GPUChain
virtual ~GPUChain ()=default
 
virtual int32_t EarlyConfigure ()
 
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
 

Protected Member Functions

 GPUChainITS (GPUReconstruction *rec, uint32_t maxTracks=GPUCA_MAX_ITS_FIT_TRACKS)
 
- Protected Member Functions inherited from o2::gpu::GPUChain
 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

std::unique_ptr< o2::its::TrackerTraitsmITSTrackerTraits
 
std::unique_ptr< o2::its::VertexerTraitsmITSVertexerTraits
 
std::unique_ptr< o2::its::TimeFramemITSTimeFrame
 
std::unique_ptr< o2::its::GPUFrameworkExternalAllocatormFrameworkAllocator
 
uint32_t mMaxTracks
 
- Protected Attributes inherited from o2::gpu::GPUChain
GPUReconstructionCPUmRec
 

Friends

class GPUReconstruction
 

Additional Inherited Members

- Public Types inherited from o2::gpu::GPUChain
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
 
- Static Public Attributes inherited from o2::gpu::GPUChain
static constexpr krnlRunRange krnlRunRangeNone {0, -1}
 
static constexpr krnlEvent krnlEventNone = krnlEvent{nullptr, nullptr, 0}
 
static constexpr int32_t NSECTORS = GPUReconstruction::NSECTORS
 

Detailed Description

Definition at line 32 of file GPUChainITS.h.

Constructor & Destructor Documentation

◆ ~GPUChainITS()

GPUChainITS::~GPUChainITS ( )
override

Definition at line 40 of file GPUChainITS.cxx.

◆ GPUChainITS()

GPUChainITS::GPUChainITS ( GPUReconstruction rec,
uint32_t  maxTracks = GPUCA_MAX_ITS_FIT_TRACKS 
)
protected

Definition at line 46 of file GPUChainITS.cxx.

Member Function Documentation

◆ Finalize()

int32_t GPUChainITS::Finalize ( )
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 100 of file GPUChainITS.cxx.

◆ GetITSTimeframe()

o2::its::TimeFrame * GPUChainITS::GetITSTimeframe ( )

Definition at line 81 of file GPUChainITS.cxx.

◆ GetITSTrackerTraits()

o2::its::TrackerTraits * GPUChainITS::GetITSTrackerTraits ( )

Definition at line 65 of file GPUChainITS.cxx.

◆ GetITSVertexerTraits()

o2::its::VertexerTraits * GPUChainITS::GetITSVertexerTraits ( )

Definition at line 73 of file GPUChainITS.cxx.

◆ Init()

int32_t GPUChainITS::Init ( )
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 63 of file GPUChainITS.cxx.

◆ MemorySize()

void GPUChainITS::MemorySize ( size_t &  gpuMem,
size_t &  pageLockedHostMem 
)
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 57 of file GPUChainITS.cxx.

◆ PrepareEvent()

int32_t GPUChainITS::PrepareEvent ( )
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 98 of file GPUChainITS.cxx.

◆ RegisterGPUProcessors()

void GPUChainITS::RegisterGPUProcessors ( )
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 50 of file GPUChainITS.cxx.

◆ RegisterPermanentMemoryAndProcessors()

void GPUChainITS::RegisterPermanentMemoryAndProcessors ( )
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 48 of file GPUChainITS.cxx.

◆ RunChain()

int32_t GPUChainITS::RunChain ( )
overridevirtual

Implements o2::gpu::GPUChain.

Definition at line 102 of file GPUChainITS.cxx.

Friends And Related Symbol Documentation

◆ GPUReconstruction

friend class GPUReconstruction
friend

Definition at line 34 of file GPUChainITS.h.

Member Data Documentation

◆ mFrameworkAllocator

std::unique_ptr<o2::its::GPUFrameworkExternalAllocator> o2::gpu::GPUChainITS::mFrameworkAllocator
protected

Definition at line 55 of file GPUChainITS.h.

◆ mITSTimeFrame

std::unique_ptr<o2::its::TimeFrame> o2::gpu::GPUChainITS::mITSTimeFrame
protected

Definition at line 54 of file GPUChainITS.h.

◆ mITSTrackerTraits

std::unique_ptr<o2::its::TrackerTraits> o2::gpu::GPUChainITS::mITSTrackerTraits
protected

Definition at line 52 of file GPUChainITS.h.

◆ mITSVertexerTraits

std::unique_ptr<o2::its::VertexerTraits> o2::gpu::GPUChainITS::mITSVertexerTraits
protected

Definition at line 53 of file GPUChainITS.h.

◆ mMaxTracks

uint32_t o2::gpu::GPUChainITS::mMaxTracks
protected

Definition at line 57 of file GPUChainITS.h.


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