![]() |
Project
|
#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 GPUParam & | GetParam () const |
const GPUSettingsGRP & | GetGRPSettings () const |
const GPUCalibObjectsConst & | calib () const |
GPUReconstruction * | rec () |
const GPUReconstruction * | rec () const |
const GPUConstantMem * | GetProcessors () |
GPUReconstruction::RecoStepField | GetRecoSteps () const |
GPUReconstruction::RecoStepField | GetRecoStepsGPU () const |
GPUReconstruction::InOutTypeField | GetRecoStepsInputs () const |
GPUReconstruction::InOutTypeField | GetRecoStepsOutputs () const |
const GPUSettingsDeviceBackend & | GetDeviceBackendSettings () 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 () |
GPUConstantMem * | processors () |
GPUConstantMem * | processorsShadow () |
GPUConstantMem * | processorsDevice () |
GPUParam & | param () |
const GPUConstantMem * | processors () 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::threadContext > | GetThreadContext () |
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> | |
HighResTimer & | getKernelTimer (RecoStep step, int32_t num=0, size_t addMemorySize=0, bool increment=true) |
template<class T , int32_t J = -1> | |
HighResTimer & | getTimer (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) |
GPUChain * | GetNextChainInQueue () |
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 | |
GPUReconstructionCPU * | mRec |
Friends | |
class | GPUReconstruction |
Definition at line 24 of file GPUChain.h.
Definition at line 36 of file GPUChain.h.
Definition at line 30 of file GPUChain.h.
Definition at line 32 of file GPUChain.h.
Definition at line 31 of file GPUChain.h.
Definition at line 35 of file GPUChain.h.
Definition at line 34 of file GPUChain.h.
Definition at line 33 of file GPUChain.h.
Definition at line 29 of file GPUChain.h.
|
virtualdefault |
|
inlineprotected |
Definition at line 76 of file GPUChain.h.
|
inlineprotected |
Definition at line 134 of file GPUChain.h.
|
inlineprotected |
Definition at line 209 of file GPUChain.h.
|
inlineprotected |
Definition at line 210 of file GPUChain.h.
|
inlineprotected |
Definition at line 205 of file GPUChain.h.
|
inline |
Definition at line 61 of file GPUChain.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 50 of file GPUChain.h.
|
inlineprotected |
Definition at line 95 of file GPUChain.h.
|
protected |
Definition at line 265 of file GPUChain.h.
|
inlineprotected |
Definition at line 223 of file GPUChain.h.
|
inlineprotectedvirtual |
Definition at line 220 of file GPUChain.h.
|
inlineprotected |
Definition at line 139 of file GPUChain.h.
|
inlineprotected |
Definition at line 149 of file GPUChain.h.
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 56 of file GPUChain.h.
|
inlineprotected |
Definition at line 159 of file GPUChain.h.
|
inlinevirtual |
Definition at line 43 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 52 of file GPUChain.h.
|
inline |
Definition at line 71 of file GPUChain.h.
|
protected |
Definition at line 27 of file GPUChain.cxx.
|
protected |
Definition at line 21 of file GPUChain.cxx.
|
protected |
Definition at line 42 of file GPUChain.cxx.
|
protected |
Definition at line 47 of file GPUChain.cxx.
|
protected |
Definition at line 32 of file GPUChain.cxx.
|
protected |
Definition at line 37 of file GPUChain.cxx.
|
inline |
Definition at line 60 of file GPUChain.h.
|
inlineprotected |
Definition at line 179 of file GPUChain.h.
|
inlineprotected |
Definition at line 185 of file GPUChain.h.
|
inlineprotected |
Definition at line 217 of file GPUChain.h.
|
inline |
Definition at line 59 of file GPUChain.h.
|
inline |
Definition at line 72 of file GPUChain.h.
|
inline |
Definition at line 64 of file GPUChain.h.
|
inline |
Definition at line 67 of file GPUChain.h.
|
inline |
Definition at line 68 of file GPUChain.h.
|
inline |
Definition at line 69 of file GPUChain.h.
|
inline |
Definition at line 70 of file GPUChain.h.
|
protected |
|
inlineprotectedvirtual |
Definition at line 104 of file GPUChain.h.
|
inlineprotected |
Definition at line 190 of file GPUChain.h.
|
inlineprotected |
Definition at line 113 of file GPUChain.h.
|
inlineprotected |
Definition at line 123 of file GPUChain.h.
|
inlineprotected |
Definition at line 124 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 102 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 83 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotectedvirtual |
Definition at line 219 of file GPUChain.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 49 of file GPUChain.h.
|
inlineprotected |
Definition at line 80 of file GPUChain.h.
|
inlineprotected |
Definition at line 84 of file GPUChain.h.
|
inlineprotected |
Definition at line 82 of file GPUChain.h.
|
inlineprotected |
Definition at line 81 of file GPUChain.h.
|
inlineprotected |
Definition at line 144 of file GPUChain.h.
|
inlineprotected |
Definition at line 154 of file GPUChain.h.
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 57 of file GPUChain.h.
|
inlineprotected |
Definition at line 164 of file GPUChain.h.
|
inlineprotected |
Definition at line 169 of file GPUChain.h.
|
inline |
Definition at line 62 of file GPUChain.h.
|
inline |
Definition at line 63 of file GPUChain.h.
|
inlineprotected |
Definition at line 103 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 106 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 174 of file GPUChain.h.
|
protected |
Definition at line 282 of file GPUChain.h.
|
inlineprotected |
Definition at line 212 of file GPUChain.h.
|
inlineprotected |
Definition at line 112 of file GPUChain.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 51 of file GPUChain.h.
|
inlineprotected |
Definition at line 87 of file GPUChain.h.
|
inlineprotected |
Definition at line 86 of file GPUChain.h.
|
inlineprotected |
Definition at line 105 of file GPUChain.h.
|
inlineprotected |
Definition at line 85 of file GPUChain.h.
|
inlineprotected |
Definition at line 207 of file GPUChain.h.
|
inlineprotected |
Definition at line 119 of file GPUChain.h.
|
inlineprotected |
Definition at line 120 of file GPUChain.h.
|
inlineprotected |
Definition at line 117 of file GPUChain.h.
|
inlineprotected |
Definition at line 118 of file GPUChain.h.
|
inlineprotected |
Definition at line 115 of file GPUChain.h.
|
inlineprotected |
Definition at line 116 of file GPUChain.h.
|
inlineprotected |
Definition at line 206 of file GPUChain.h.
|
inlineprotected |
Definition at line 122 of file GPUChain.h.
|
friend |
Definition at line 26 of file GPUChain.h.
|
staticconstexpr |
Definition at line 38 of file GPUChain.h.
|
staticconstexpr |
Definition at line 37 of file GPUChain.h.
|
protected |
Definition at line 75 of file GPUChain.h.
|
staticconstexpr |
Definition at line 54 of file GPUChain.h.