![]() |
Project
|
#include <GPUReconstruction.h>
Inherited by o2::gpu::GPUReconstructionProcessing.
Classes | |
class | LibraryLoader |
struct | MemoryReuseMeta |
struct | ProcessorData |
Public Types | |
enum | InOutPointerType : uint32_t { CLUSTER_DATA = 0 , SECTOR_OUT_TRACK = 1 , SECTOR_OUT_CLUSTER = 2 , MC_LABEL_TPC = 3 , MC_INFO_TPC = 4 , MERGED_TRACK = 5 , MERGED_TRACK_HIT = 6 , TRD_TRACK = 7 , TRD_TRACKLET = 8 , RAW_CLUSTERS = 9 , CLUSTERS_NATIVE = 10 , TRD_TRACKLET_MC = 11 , TPC_COMPRESSED_CL = 12 , TPC_DIGIT = 13 , TPC_ZS = 14 , CLUSTER_NATIVE_MC = 15 , TPC_DIGIT_MC = 16 , TRD_SPACEPOINT = 17 , TRD_TRIGGERRECORDS = 18 , TF_SETTINGS = 19 } |
enum class | krnlDeviceType : int32_t { CPU = 0 , Device = 1 , Auto = -1 } |
using | GeometryType = GPUDataTypes::GeometryType |
using | DeviceType = GPUDataTypes::DeviceType |
using | RecoStep = GPUDataTypes::RecoStep |
using | GeneralStep = GPUDataTypes::GeneralStep |
using | RecoStepField = GPUDataTypes::RecoStepField |
using | InOutTypeField = GPUDataTypes::InOutTypeField |
Static Public Member Functions | |
static DeviceType | GetDeviceType (const char *type) |
static uint32_t | getNIOTypeMultiplicity (InOutPointerType type) |
static GPUReconstruction * | CreateInstance (const GPUSettingsDeviceBackend &cfg) |
static GPUReconstruction * | CreateInstance (DeviceType type=DeviceType::CPU, bool forceType=true, GPUReconstruction *master=nullptr) |
static GPUReconstruction * | CreateInstance (int32_t type, bool forceType, GPUReconstruction *master=nullptr) |
static GPUReconstruction * | CreateInstance (const char *type, bool forceType, GPUReconstruction *master=nullptr) |
static bool | CheckInstanceAvailable (DeviceType type, bool verbose) |
static int32_t | getHostThreadIndex () |
Public Attributes | |
std::shared_ptr< GPUReconstructionThreading > | mThreading |
Static Public Attributes | |
static constexpr uint32_t | NSECTORS = GPUCA_NSECTORS |
static constexpr const char *const | GEOMETRY_TYPE_NAMES [] = {"INVALID", "ALIROOT", "O2"} |
static constexpr GeometryType | geometryType = GeometryType::ALIROOT |
static constexpr const char *const | IOTYPENAMES [] |
Protected Member Functions | |
void | AllocateRegisteredMemoryInternal (GPUMemoryResource *res, GPUOutputControl *control, GPUReconstruction *recPool) |
void | FreeRegisteredMemory (GPUMemoryResource *res) |
GPUReconstruction (const GPUSettingsDeviceBackend &cfg) | |
int32_t | InitPhaseBeforeDevice () |
virtual void | UpdateAutomaticProcessingSettings () |
virtual int32_t | InitDevice ()=0 |
int32_t | InitPhasePermanentMemory () |
int32_t | InitPhaseAfterDevice () |
void | WriteConstantParams () |
virtual int32_t | ExitDevice ()=0 |
virtual size_t | WriteToConstantMemory (size_t offset, const void *src, size_t size, int32_t stream=-1, gpu_reconstruction_kernels::deviceEvent *ev=nullptr)=0 |
void | UpdateMaxMemoryUsed () |
int32_t | EnqueuePipeline (bool terminate=false) |
GPUChain * | GetNextChainInQueue () |
virtual int32_t | registerMemoryForGPU_internal (const void *ptr, size_t size)=0 |
virtual int32_t | unregisterMemoryForGPU_internal (const void *ptr)=0 |
virtual std::unique_ptr< gpu_reconstruction_kernels::threadContext > | GetThreadContext ()=0 |
size_t | AllocateRegisteredMemoryHelper (GPUMemoryResource *res, void *&ptr, void *&memorypool, void *memorybase, size_t memorysize, void *(GPUMemoryResource::*SetPointers)(void *), void *&memorypoolend, const char *device) |
size_t | AllocateRegisteredPermanentMemory () |
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 > | |
T * | AllocateIOMemoryHelper (size_t n, const T *&ptr, std::unique_ptr< T[]> &u) |
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 > | |
int32_t | ReadStructFromFile (const char *file, T *obj) |
virtual RecoStepField | AvailableGPURecoSteps () |
virtual bool | CanQueryMaxMemory () |
GPUConstantMem * | processors () |
const GPUConstantMem * | processors () const |
GPUParam & | param () |
Static Protected Member Functions | |
static std::shared_ptr< LibraryLoader > * | GetLibraryInstance (DeviceType type, bool verbose) |
static GPUReconstruction * | GPUReconstruction_Create_CPU (const GPUSettingsDeviceBackend &cfg) |
Static Protected Attributes | |
static std::shared_ptr< LibraryLoader > | sLibCUDA |
static std::shared_ptr< LibraryLoader > | sLibHIP |
static std::shared_ptr< LibraryLoader > | sLibOCL |
Definition at line 58 of file GPUReconstruction.h.
using o2::gpu::GPUReconstruction::DeviceType = GPUDataTypes::DeviceType |
Definition at line 77 of file GPUReconstruction.h.
using o2::gpu::GPUReconstruction::GeneralStep = GPUDataTypes::GeneralStep |
Definition at line 79 of file GPUReconstruction.h.
using o2::gpu::GPUReconstruction::GeometryType = GPUDataTypes::GeometryType |
Definition at line 76 of file GPUReconstruction.h.
Definition at line 81 of file GPUReconstruction.h.
using o2::gpu::GPUReconstruction::RecoStep = GPUDataTypes::RecoStep |
Definition at line 78 of file GPUReconstruction.h.
Definition at line 80 of file GPUReconstruction.h.
enum o2::gpu::GPUReconstruction::InOutPointerType : uint32_t |
Definition at line 91 of file GPUReconstruction.h.
|
strong |
Enumerator | |
---|---|
CPU | |
Device | |
Auto |
Definition at line 123 of file GPUReconstruction.h.
|
virtual |
Definition at line 102 of file GPUReconstruction.cxx.
|
delete |
|
protected |
Definition at line 77 of file GPUReconstruction.cxx.
|
inline |
Definition at line 420 of file GPUReconstruction.h.
|
inlineprotected |
Definition at line 391 of file GPUReconstruction.h.
size_t o2::gpu::GPUReconstruction::AllocateMemoryResources | ( | ) |
void GPUReconstruction::AllocateRegisteredForeignMemory | ( | int16_t | res, |
GPUReconstruction * | rec, | ||
GPUOutputControl * | control = nullptr |
||
) |
Definition at line 661 of file GPUReconstruction.cxx.
size_t GPUReconstruction::AllocateRegisteredMemory | ( | GPUProcessor * | proc, |
bool | resetCustom = false |
||
) |
Definition at line 487 of file GPUReconstruction.cxx.
size_t GPUReconstruction::AllocateRegisteredMemory | ( | int16_t | res, |
GPUOutputControl * | control = nullptr |
||
) |
Definition at line 666 of file GPUReconstruction.cxx.
|
protected |
Definition at line 527 of file GPUReconstruction.cxx.
|
protected |
Definition at line 580 of file GPUReconstruction.cxx.
|
protected |
Definition at line 508 of file GPUReconstruction.cxx.
void * GPUReconstruction::AllocateUnmanagedMemory | ( | size_t | size, |
int32_t | type | ||
) |
Definition at line 677 of file GPUReconstruction.cxx.
void * GPUReconstruction::AllocateVolatileDeviceMemory | ( | size_t | size | ) |
Definition at line 702 of file GPUReconstruction.cxx.
void * GPUReconstruction::AllocateVolatileMemory | ( | size_t | size, |
bool | device | ||
) |
Definition at line 724 of file GPUReconstruction.cxx.
|
inlineprotectedvirtual |
Definition at line 285 of file GPUReconstruction.h.
void GPUReconstruction::BlockStackedMemory | ( | GPUReconstruction * | rec | ) |
Definition at line 844 of file GPUReconstruction.cxx.
|
inlineprotectedvirtual |
Reimplemented in o2::gpu::GPUReconstructionCUDA.
Definition at line 286 of file GPUReconstruction.h.
int32_t GPUReconstruction::CheckErrorCodes | ( | bool | cpuOnly = false , |
bool | forceShowErrors = false , |
||
std::vector< std::array< uint32_t, 4 > > * | fillErrors = nullptr |
||
) |
Definition at line 1079 of file GPUReconstruction.cxx.
|
static |
Definition at line 79 of file GPUReconstructionLibrary.cxx.
void GPUReconstruction::ClearAllocatedMemory | ( | bool | clearOutputs = true | ) |
Definition at line 869 of file GPUReconstruction.cxx.
void GPUReconstruction::ComputeReuseMax | ( | GPUProcessor * | proc | ) |
Definition at line 472 of file GPUReconstruction.cxx.
void GPUReconstruction::ConstructGPUProcessor | ( | GPUProcessor * | proc | ) |
Definition at line 470 of file GPUReconstruction.cxx.
|
static |
Definition at line 115 of file GPUReconstructionLibrary.cxx.
|
static |
Definition at line 44 of file GPUReconstructionLibrary.cxx.
|
static |
Definition at line 34 of file GPUReconstructionLibrary.cxx.
|
inlinestatic |
Definition at line 119 of file GPUReconstruction.h.
|
inline |
Definition at line 205 of file GPUReconstruction.h.
|
inlineprotected |
Definition at line 24 of file GPUReconstructionIO.h.
|
inlineprotected |
Definition at line 82 of file GPUReconstructionIO.h.
Definition at line 1090 of file GPUReconstruction.cxx.
|
inlineprotected |
Definition at line 125 of file GPUReconstructionIO.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUReconstructionCUDA.
Definition at line 146 of file GPUReconstruction.h.
|
protected |
Definition at line 1024 of file GPUReconstruction.cxx.
int32_t GPUReconstruction::Exit | ( | ) |
Definition at line 439 of file GPUReconstruction.cxx.
|
protectedpure virtual |
Implemented in o2::gpu::GPUReconstructionCPU, and o2::gpu::GPUReconstructionDeviceBase.
int32_t GPUReconstruction::Finalize | ( | ) |
Definition at line 431 of file GPUReconstruction.cxx.
|
protected |
Definition at line 777 of file GPUReconstruction.cxx.
void GPUReconstruction::FreeRegisteredMemory | ( | GPUProcessor * | proc, |
bool | freeCustom = false , |
||
bool | freePermanent = false |
||
) |
Definition at line 763 of file GPUReconstruction.cxx.
void GPUReconstruction::FreeRegisteredMemory | ( | int16_t | res | ) |
Definition at line 772 of file GPUReconstruction.cxx.
|
inline |
Definition at line 189 of file GPUReconstruction.h.
|
inline |
Definition at line 191 of file GPUReconstruction.h.
|
inline |
Definition at line 186 of file GPUReconstruction.h.
|
static |
|
inline |
Definition at line 215 of file GPUReconstruction.h.
int32_t GPUReconstruction::getGeneralStepNum | ( | GeneralStep | step, |
bool | validCheck = true |
||
) |
Definition at line 981 of file GPUReconstruction.cxx.
Definition at line 144 of file GPUReconstruction.h.
|
inline |
Definition at line 190 of file GPUReconstruction.h.
|
static |
Definition at line 122 of file GPUReconstruction.cxx.
|
virtual |
Reimplemented in o2::gpu::GPUReconstructionCUDA.
Definition at line 109 of file GPUReconstruction.cxx.
|
staticprotected |
Definition at line 89 of file GPUReconstructionLibrary.cxx.
|
inline |
Definition at line 233 of file GPUReconstruction.h.
|
inline |
Definition at line 140 of file GPUReconstruction.h.
|
inline |
Definition at line 141 of file GPUReconstruction.h.
|
protected |
Definition at line 1053 of file GPUReconstruction.cxx.
|
inlinestatic |
Definition at line 114 of file GPUReconstruction.h.
|
inline |
Definition at line 188 of file GPUReconstruction.h.
|
inline |
Definition at line 192 of file GPUReconstruction.h.
int32_t GPUReconstruction::getRecoStepNum | ( | RecoStep | step, |
bool | validCheck = true |
||
) |
Definition at line 980 of file GPUReconstruction.cxx.
|
inline |
Definition at line 207 of file GPUReconstruction.h.
|
inline |
Definition at line 208 of file GPUReconstruction.h.
|
inline |
Definition at line 209 of file GPUReconstruction.h.
|
inline |
Definition at line 210 of file GPUReconstruction.h.
|
inline |
Definition at line 227 of file GPUReconstruction.h.
|
inline |
Definition at line 228 of file GPUReconstruction.h.
|
protectedpure virtual |
Implemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionProcessing.
|
staticprotected |
Definition at line 51 of file GPUReconstructionCPU.cxx.
int32_t GPUReconstruction::Init | ( | ) |
Definition at line 127 of file GPUReconstruction.cxx.
|
protectedpure virtual |
Implemented in o2::gpu::GPUReconstructionCPU, and o2::gpu::GPUReconstructionDeviceBase.
|
protected |
Definition at line 403 of file GPUReconstruction.cxx.
|
protected |
Definition at line 208 of file GPUReconstruction.cxx.
|
protected |
Definition at line 392 of file GPUReconstruction.cxx.
|
inline |
Definition at line 187 of file GPUReconstruction.h.
|
inline |
Definition at line 193 of file GPUReconstruction.h.
|
inline |
Definition at line 179 of file GPUReconstruction.h.
|
inline |
Definition at line 204 of file GPUReconstruction.h.
|
delete |
|
inline |
Definition at line 203 of file GPUReconstruction.h.
|
inlineprotected |
Definition at line 291 of file GPUReconstruction.h.
Definition at line 811 of file GPUReconstruction.cxx.
void GPUReconstruction::PrepareEvent | ( | ) |
Definition at line 1060 of file GPUReconstruction.cxx.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUReconstructionCUDABackend.
Definition at line 226 of file GPUReconstruction.h.
void GPUReconstruction::PrintMemoryMax | ( | ) |
Definition at line 892 of file GPUReconstruction.cxx.
void GPUReconstruction::PrintMemoryOverview | ( | ) |
Definition at line 897 of file GPUReconstruction.cxx.
void GPUReconstruction::PrintMemoryStatistics | ( | ) |
Definition at line 906 of file GPUReconstruction.cxx.
|
inlineprotected |
Definition at line 289 of file GPUReconstruction.h.
|
inlineprotected |
Definition at line 290 of file GPUReconstruction.h.
void GPUReconstruction::PushNonPersistentMemory | ( | uint64_t | tag | ) |
Definition at line 806 of file GPUReconstruction.cxx.
|
inlineprotected |
Definition at line 48 of file GPUReconstructionIO.h.
|
inlineprotected |
Definition at line 96 of file GPUReconstructionIO.h.
int32_t GPUReconstruction::ReadSettings | ( | const char * | dir = "" | ) |
Definition at line 1125 of file GPUReconstruction.cxx.
|
inlineprotected |
Definition at line 138 of file GPUReconstructionIO.h.
|
inlineprotected |
Definition at line 161 of file GPUReconstructionIO.h.
void GPUReconstruction::RegisterGPUDeviceProcessor | ( | GPUProcessor * | proc, |
GPUProcessor * | slaveProcessor | ||
) |
Definition at line 469 of file GPUReconstruction.cxx.
|
inline |
Definition at line 457 of file GPUReconstruction.h.
|
inline |
Definition at line 427 of file GPUReconstruction.h.
int32_t GPUReconstruction::registerMemoryForGPU | ( | const void * | ptr, |
size_t | size | ||
) |
Definition at line 935 of file GPUReconstruction.cxx.
|
protectedpure virtual |
Implemented in o2::gpu::GPUReconstructionCUDA, o2::gpu::GPUReconstructionCPU, and o2::gpu::GPUReconstructionDeviceBase.
|
inline |
Definition at line 152 of file GPUReconstruction.h.
void GPUReconstruction::ResetRegisteredMemoryPointers | ( | GPUProcessor * | proc | ) |
Definition at line 733 of file GPUReconstruction.cxx.
void GPUReconstruction::ResetRegisteredMemoryPointers | ( | int16_t | res | ) |
Definition at line 742 of file GPUReconstruction.cxx.
void GPUReconstruction::ReturnVolatileDeviceMemory | ( | ) |
Definition at line 789 of file GPUReconstruction.cxx.
void GPUReconstruction::ReturnVolatileMemory | ( | ) |
Definition at line 800 of file GPUReconstruction.cxx.
|
pure virtual |
Implemented in o2::gpu::GPUReconstructionCPU.
void GPUReconstruction::RunPipelineWorker | ( | ) |
Definition at line 983 of file GPUReconstruction.cxx.
|
inline |
Definition at line 197 of file GPUReconstruction.h.
|
inline |
Definition at line 214 of file GPUReconstruction.h.
Definition at line 1181 of file GPUReconstruction.cxx.
Definition at line 864 of file GPUReconstruction.cxx.
|
inline |
Definition at line 200 of file GPUReconstruction.h.
Definition at line 1174 of file GPUReconstruction.cxx.
|
inline |
Definition at line 196 of file GPUReconstruction.h.
void GPUReconstruction::SetSettings | ( | const GPUSettingsGRP * | grp, |
const GPUSettingsRec * | rec = nullptr , |
||
const GPUSettingsProcessing * | proc = nullptr , |
||
const GPURecoStepConfiguration * | workflow = nullptr |
||
) |
Definition at line 1155 of file GPUReconstruction.cxx.
void GPUReconstruction::SetSettings | ( | float | solenoidBzNominalGPU, |
const GPURecoStepConfiguration * | workflow = nullptr |
||
) |
Definition at line 1141 of file GPUReconstruction.cxx.
|
inline |
Definition at line 465 of file GPUReconstruction.h.
|
inline |
Definition at line 183 of file GPUReconstruction.h.
|
inlinevirtual |
Reimplemented in o2::gpu::GPUReconstructionCUDA.
Definition at line 145 of file GPUReconstruction.h.
void GPUReconstruction::TerminatePipelineWorker | ( | ) |
Definition at line 1019 of file GPUReconstruction.cxx.
void GPUReconstruction::UnblockStackedMemory | ( | ) |
Definition at line 853 of file GPUReconstruction.cxx.
int32_t GPUReconstruction::unregisterMemoryForGPU | ( | const void * | ptr | ) |
Definition at line 947 of file GPUReconstruction.cxx.
|
protectedpure virtual |
Implemented in o2::gpu::GPUReconstructionCUDA, o2::gpu::GPUReconstructionCPU, and o2::gpu::GPUReconstructionDeviceBase.
|
inlineprotectedvirtual |
Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCLBackend.
Definition at line 240 of file GPUReconstruction.h.
void GPUReconstruction::UpdateDynamicSettings | ( | const GPUSettingsRecDynamic * | d | ) |
Definition at line 1101 of file GPUReconstruction.cxx.
|
protected |
Definition at line 886 of file GPUReconstruction.cxx.
void GPUReconstruction::UpdateSettings | ( | const GPUSettingsGRP * | g, |
const GPUSettingsProcessing * | p = nullptr , |
||
const GPUSettingsRecDynamic * | d = nullptr |
||
) |
Definition at line 1106 of file GPUReconstruction.cxx.
|
protected |
Definition at line 423 of file GPUReconstruction.cxx.
|
protectedpure virtual |
|
staticconstexpr |
Definition at line 83 of file GPUReconstruction.h.
|
staticconstexpr |
Definition at line 87 of file GPUReconstruction.h.
|
staticconstexpr |
Definition at line 111 of file GPUReconstruction.h.
|
protected |
Definition at line 66 of file GPUReconstruction.h.
|
protected |
Definition at line 297 of file GPUReconstruction.h.
|
protected |
Definition at line 293 of file GPUReconstruction.h.
|
protected |
Definition at line 315 of file GPUReconstruction.h.
|
protected |
Definition at line 316 of file GPUReconstruction.h.
|
protected |
Definition at line 317 of file GPUReconstruction.h.
|
protected |
Definition at line 319 of file GPUReconstruction.h.
|
protected |
Definition at line 318 of file GPUReconstruction.h.
|
protected |
Definition at line 320 of file GPUReconstruction.h.
|
protected |
Definition at line 322 of file GPUReconstruction.h.
|
protected |
Definition at line 305 of file GPUReconstruction.h.
|
protected |
Definition at line 340 of file GPUReconstruction.h.
|
protected |
Definition at line 296 of file GPUReconstruction.h.
|
protected |
Definition at line 292 of file GPUReconstruction.h.
|
protected |
Definition at line 308 of file GPUReconstruction.h.
|
protected |
Definition at line 309 of file GPUReconstruction.h.
|
protected |
Definition at line 310 of file GPUReconstruction.h.
|
protected |
Definition at line 312 of file GPUReconstruction.h.
|
protected |
Definition at line 311 of file GPUReconstruction.h.
|
protected |
Definition at line 313 of file GPUReconstruction.h.
|
protected |
Definition at line 314 of file GPUReconstruction.h.
|
protected |
Definition at line 330 of file GPUReconstruction.h.
|
protected |
Definition at line 300 of file GPUReconstruction.h.
|
protected |
Definition at line 326 of file GPUReconstruction.h.
|
protected |
Definition at line 339 of file GPUReconstruction.h.
|
protected |
Definition at line 342 of file GPUReconstruction.h.
|
protected |
Definition at line 63 of file GPUReconstruction.h.
|
protected |
Definition at line 359 of file GPUReconstruction.h.
|
protected |
Definition at line 301 of file GPUReconstruction.h.
|
protected |
Definition at line 62 of file GPUReconstruction.h.
|
protected |
Definition at line 332 of file GPUReconstruction.h.
|
protected |
Definition at line 361 of file GPUReconstruction.h.
|
protected |
Definition at line 360 of file GPUReconstruction.h.
|
protected |
Definition at line 341 of file GPUReconstruction.h.
|
protected |
Definition at line 299 of file GPUReconstruction.h.
|
protected |
Definition at line 337 of file GPUReconstruction.h.
|
protected |
Definition at line 363 of file GPUReconstruction.h.
|
protected |
Definition at line 298 of file GPUReconstruction.h.
|
protected |
Definition at line 352 of file GPUReconstruction.h.
|
protected |
Definition at line 303 of file GPUReconstruction.h.
|
protected |
Definition at line 324 of file GPUReconstruction.h.
|
protected |
Definition at line 336 of file GPUReconstruction.h.
|
protected |
Definition at line 327 of file GPUReconstruction.h.
|
protected |
Definition at line 335 of file GPUReconstruction.h.
|
protected |
Definition at line 333 of file GPUReconstruction.h.
|
protected |
Definition at line 331 of file GPUReconstruction.h.
|
protected |
Definition at line 334 of file GPUReconstruction.h.
std::shared_ptr<GPUReconstructionThreading> o2::gpu::GPUReconstruction::mThreading |
Definition at line 231 of file GPUReconstruction.h.
|
protected |
Definition at line 64 of file GPUReconstruction.h.
|
protected |
Definition at line 65 of file GPUReconstruction.h.
|
protected |
Definition at line 321 of file GPUReconstruction.h.
|
staticconstexpr |
Definition at line 74 of file GPUReconstruction.h.
|
staticprotected |
Definition at line 385 of file GPUReconstruction.h.
|
staticprotected |
Definition at line 385 of file GPUReconstruction.h.
|
staticprotected |
Definition at line 385 of file GPUReconstruction.h.