![]() |
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 = GPUReconstructionProcessing::krnlRunRange |
using | krnlExec = GPUReconstructionProcessing::krnlExec |
using | krnlEvent = GPUReconstructionProcessing::krnlEvent |
using | deviceEvent = GPUReconstructionProcessing::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 & | GetCalib () const |
GPUReconstruction * | rec () |
const GPUReconstruction * | rec () const |
const GPUConstantMem * | GetProcessors () const |
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} |
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 | SetONNXGPUStream (Ort::SessionOptions &opt, int32_t stream, int32_t *deviceId) |
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< GPUReconstructionProcessing::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> requires (sizeof(S) >= 0) | |
void | runKernel (GPUReconstructionProcessing::krnlSetup &&setup, Args const &... args) |
template<class S , int32_t I = 0> | |
GPUReconstructionProcessing::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, GPUDataTypes::RecoStep st=GPUDataTypes::RecoStep::NoRecoStep) |
krnlExec | GetGrid (uint32_t totalItems, int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUDataTypes::RecoStep st=GPUDataTypes::RecoStep::NoRecoStep) |
krnlExec | GetGridBlk (uint32_t nBlocks, int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUDataTypes::RecoStep st=GPUDataTypes::RecoStep::NoRecoStep) |
krnlExec | GetGridBlkStep (uint32_t nBlocks, int32_t stream, GPUDataTypes::RecoStep st=GPUDataTypes::RecoStep::NoRecoStep) |
krnlExec | GetGridAuto (int32_t stream, GPUReconstruction::krnlDeviceType d=GPUReconstruction::krnlDeviceType::Auto, GPUDataTypes::RecoStep st=GPUDataTypes::RecoStep::NoRecoStep) |
krnlExec | GetGridAutoStep (int32_t stream, GPUDataTypes::RecoStep st=GPUDataTypes::RecoStep::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 | DoStuckProtection (int32_t stream, deviceEvent event) |
template<class T , class S , typename... Args> | |
bool | DoDebugAndDump (RecoStep step, uint32_t mask, T &processor, S T::*func, Args &&... args) |
template<class T , class S , typename... Args> | |
bool | DoDebugAndDump (RecoStep step, uint32_t mask, bool transfer, T &processor, S T::*func, Args &&... args) |
template<typename... Args> | |
bool | DoDebugDump (uint32_t mask, std::function< void(Args &...)> func, Args &... args) |
template<class S , typename... Args> | |
bool | DoDebugDump (uint32_t mask, S *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 28 of file GPUChain.h.
Definition at line 40 of file GPUChain.h.
Definition at line 34 of file GPUChain.h.
Definition at line 36 of file GPUChain.h.
Definition at line 35 of file GPUChain.h.
Definition at line 39 of file GPUChain.h.
Definition at line 38 of file GPUChain.h.
Definition at line 37 of file GPUChain.h.
Definition at line 33 of file GPUChain.h.
|
virtualdefault |
|
inlineprotected |
Definition at line 80 of file GPUChain.h.
|
inlineprotected |
Definition at line 139 of file GPUChain.h.
|
inlineprotected |
Definition at line 217 of file GPUChain.h.
|
inlineprotected |
Definition at line 218 of file GPUChain.h.
|
inlineprotected |
Definition at line 213 of file GPUChain.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 54 of file GPUChain.h.
|
inlineprotected |
Definition at line 100 of file GPUChain.h.
|
inlineprotected |
Definition at line 52 of file GPUChainTrackingDebug.h.
|
inlineprotected |
Definition at line 230 of file GPUChain.h.
|
inlineprotected |
Definition at line 239 of file GPUChain.h.
|
inlineprotected |
Definition at line 69 of file GPUChainTrackingDebug.h.
|
inlineprotectedvirtual |
Definition at line 227 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 60 of file GPUChain.h.
|
inlineprotected |
Definition at line 164 of file GPUChain.h.
|
inlinevirtual |
Definition at line 47 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 56 of file GPUChain.h.
|
inline |
Definition at line 65 of file GPUChain.h.
|
inline |
Definition at line 75 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 64 of file GPUChain.h.
|
inlineprotected |
Definition at line 187 of file GPUChain.h.
|
inlineprotected |
Definition at line 193 of file GPUChain.h.
|
inlineprotected |
Definition at line 225 of file GPUChain.h.
|
inline |
Definition at line 63 of file GPUChain.h.
|
inline |
Definition at line 76 of file GPUChain.h.
|
inline |
Definition at line 68 of file GPUChain.h.
|
inline |
Definition at line 71 of file GPUChain.h.
|
inline |
Definition at line 72 of file GPUChain.h.
|
inline |
Definition at line 73 of file GPUChain.h.
|
inline |
Definition at line 74 of file GPUChain.h.
|
protected |
|
inlineprotectedvirtual |
Definition at line 109 of file GPUChain.h.
|
inlineprotected |
Definition at line 198 of file GPUChain.h.
|
inlineprotected |
Definition at line 118 of file GPUChain.h.
|
inlineprotected |
Definition at line 128 of file GPUChain.h.
|
inlineprotected |
Definition at line 129 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 107 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 87 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 53 of file GPUChain.h.
|
inlineprotected |
Definition at line 84 of file GPUChain.h.
|
inlineprotected |
Definition at line 88 of file GPUChain.h.
|
inlineprotected |
Definition at line 86 of file GPUChain.h.
|
inlineprotected |
Definition at line 85 of file GPUChain.h.
|
inlineprotected |
Definition at line 149 of file GPUChain.h.
|
inlineprotected |
Definition at line 159 of file GPUChain.h.
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 61 of file GPUChain.h.
|
inlineprotected |
Definition at line 169 of file GPUChain.h.
|
inlineprotected |
Definition at line 174 of file GPUChain.h.
|
inline |
Definition at line 66 of file GPUChain.h.
|
inline |
Definition at line 67 of file GPUChain.h.
|
inlineprotected |
Definition at line 108 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 111 of file GPUChain.h.
|
pure virtual |
Implemented in o2::gpu::GPUChainITS, and o2::gpu::GPUChainTracking.
|
inlineprotected |
Definition at line 181 of file GPUChain.h.
|
inlineprotected |
Definition at line 289 of file GPUChain.h.
|
inlineprotected |
Definition at line 90 of file GPUChain.h.
|
inlineprotected |
Definition at line 220 of file GPUChain.h.
|
inlineprotected |
Definition at line 117 of file GPUChain.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUChainTracking.
Definition at line 55 of file GPUChain.h.
|
inlineprotected |
Definition at line 92 of file GPUChain.h.
|
inlineprotected |
Definition at line 91 of file GPUChain.h.
|
inlineprotected |
Definition at line 110 of file GPUChain.h.
|
inlineprotected |
Definition at line 89 of file GPUChain.h.
|
inlineprotected |
Definition at line 215 of file GPUChain.h.
|
inlineprotected |
Definition at line 124 of file GPUChain.h.
|
inlineprotected |
Definition at line 125 of file GPUChain.h.
|
inlineprotected |
Definition at line 122 of file GPUChain.h.
|
inlineprotected |
Definition at line 123 of file GPUChain.h.
|
inlineprotected |
Definition at line 120 of file GPUChain.h.
|
inlineprotected |
Definition at line 121 of file GPUChain.h.
|
inlineprotected |
Definition at line 214 of file GPUChain.h.
|
inlineprotected |
Definition at line 127 of file GPUChain.h.
|
friend |
Definition at line 30 of file GPUChain.h.
|
staticconstexpr |
Definition at line 42 of file GPUChain.h.
|
staticconstexpr |
Definition at line 41 of file GPUChain.h.
|
protected |
Definition at line 79 of file GPUChain.h.
|
staticconstexpr |
Definition at line 58 of file GPUChain.h.