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

#include <GPUReconstructionCPU.h>

Inherits o2::gpu::GPUReconstructionProcessing::KernelInterface< GPUReconstructionCPU, GPUReconstructionProcessing >.

Inherited by o2::gpu::GPUReconstructionDeviceBase.

Classes

struct  GPUProcessorProcessors
 

Public Member Functions

 ~GPUReconstructionCPU () override
 
template<class S , int32_t I = 0>
krnlProperties getKernelProperties (int gpu=-1)
 
template<class T , int32_t I = 0, typename... Args>
void runKernelBackend (const krnlSetupTime &_xyz, const Args &... args)
 
virtual int32_t GPUDebug (const char *state="UNKNOWN", int32_t stream=-1, bool force=false)
 
int32_t GPUStuck ()
 
void ResetDeviceProcessorTypes ()
 
int32_t RunChains () override
 
void UpdateParamOccupancyMap (const uint32_t *mapHost, const uint32_t *mapGPU, uint32_t occupancyTotal, int32_t stream=-1)
 
template<>
void runKernelBackend (const krnlSetupTime &_xyz, void *const &ptr, uint64_t const &size)
 
template<class S , int32_t I>
GPUReconstructionProcessing::krnlProperties getKernelProperties (int gpu)
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionProcessing::KernelInterface< GPUReconstructionCPU, GPUReconstructionProcessing >
 KernelInterface (const Args &... args)
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionProcessing
 ~GPUReconstructionProcessing () override
 
int32_t getNKernelHostThreads (bool splitCores)
 
uint32_t getNActiveThreadsOuterLoop () const
 
void SetNActiveThreadsOuterLoop (uint32_t f)
 
uint32_t SetAndGetNActiveThreadsOuterLoop (bool condition, uint32_t max)
 
void runParallelOuterLoop (bool doGPU, uint32_t nThreads, std::function< void(uint32_t)> lambda)
 
void SetNActiveThreads (int32_t n)
 
const std::string & GetKernelName (int32_t i) const
 
auto & getRecoStepTimer (RecoStep step)
 
HighResTimergetGeneralStepTimer (GeneralStep step)
 
template<class T >
void AddGPUEvents (T *&events)
 
virtual std::unique_ptr< threadContextGetThreadContext () override
 
const GPUDefParametersgetGPUParameters (bool doGPU) const override
 
- Public Member Functions inherited from o2::gpu::GPUReconstruction
virtual ~GPUReconstruction ()
 
 GPUReconstruction (const GPUReconstruction &)=delete
 
GPUReconstructionoperator= (const GPUReconstruction &)=delete
 
template<class T , typename... Args>
T * AddChain (Args... args)
 
int32_t Init ()
 
int32_t Finalize ()
 
int32_t Exit ()
 
void DumpSettings (const char *dir="")
 
int32_t ReadSettings (const char *dir="")
 
void PrepareEvent ()
 
uint32_t getNEventsProcessed ()
 
uint32_t getNEventsProcessedInStat ()
 
int32_t registerMemoryForGPU (const void *ptr, size_t size)
 
int32_t unregisterMemoryForGPU (const void *ptr)
 
virtual voidgetGPUPointer (void *ptr)
 
virtual void startGPUProfiling ()
 
virtual void endGPUProfiling ()
 
int32_t GPUChkErrA (const int64_t error, const char *file, int32_t line, bool failOnError)
 
int32_t CheckErrorCodes (bool cpuOnly=false, bool forceShowErrors=false, std::vector< std::array< uint32_t, 4 > > *fillErrors=nullptr)
 
void RunPipelineWorker ()
 
void TerminatePipelineWorker ()
 
GPUMemoryResourceRes (int16_t num)
 
template<class T >
int16_t RegisterMemoryAllocation (T *proc, void *(T::*setPtr)(void *), int32_t type, const char *name="", const GPUMemoryReuse &re=GPUMemoryReuse())
 
size_t AllocateMemoryResources ()
 
size_t AllocateRegisteredMemory (GPUProcessor *proc, bool resetCustom=false)
 
size_t AllocateRegisteredMemory (int16_t res, GPUOutputControl *control=nullptr)
 
void AllocateRegisteredForeignMemory (int16_t res, GPUReconstruction *rec, GPUOutputControl *control=nullptr)
 
voidAllocateDirectMemory (size_t size, int32_t type)
 
voidAllocateVolatileDeviceMemory (size_t size)
 
voidAllocateVolatileMemory (size_t size, bool device)
 
void MakeFutureDeviceMemoryAllocationsVolatile ()
 
void FreeRegisteredMemory (GPUProcessor *proc, bool freeCustom=false, bool freePermanent=false)
 
void FreeRegisteredMemory (int16_t res)
 
void ClearAllocatedMemory (bool clearOutputs=true)
 
void ReturnVolatileDeviceMemory ()
 
void ReturnVolatileMemory ()
 
ThrustVolatileAllocator getThrustVolatileDeviceAllocator ()
 
void PushNonPersistentMemory (uint64_t tag)
 
void PopNonPersistentMemory (RecoStep step, uint64_t tag)
 
void BlockStackedMemory (GPUReconstruction *rec)
 
void UnblockStackedMemory ()
 
void ResetRegisteredMemoryPointers (GPUProcessor *proc)
 
void ResetRegisteredMemoryPointers (int16_t res)
 
void ComputeReuseMax (GPUProcessor *proc)
 
void PrintMemoryStatistics ()
 
void PrintMemoryOverview ()
 
void PrintMemoryMax ()
 
void SetMemoryExternalInput (int16_t res, void *ptr)
 
GPUMemorySizeScalersMemoryScalers ()
 
virtual void GetITSTraits (std::unique_ptr< o2::its::TrackerTraits > *trackerTraits, std::unique_ptr< o2::its::VertexerTraits > *vertexerTraits, std::unique_ptr< o2::its::TimeFrame > *timeFrame)
 
bool slavesExist ()
 
int slaveId ()
 
DeviceType GetDeviceType () const
 
bool IsGPU () const
 
const GPUParamGetParam () const
 
const GPUConstantMemGetConstantMem () const
 
const GPUTrackingInOutPointers GetIOPtrs () const
 
const GPUSettingsGRPGetGRPSettings () const
 
const GPUSettingsDeviceBackendGetDeviceBackendSettings () const
 
const GPUSettingsProcessing & GetProcessingSettings () const
 
const GPUCalibObjectsConstGetCalib () const
 
bool IsInitialized () const
 
void SetSettings (float solenoidBzNominalGPU, const GPURecoStepConfiguration *workflow=nullptr)
 
void SetSettings (const GPUSettingsGRP *grp, const GPUSettingsRec *rec=nullptr, const GPUSettingsProcessing *proc=nullptr, const GPURecoStepConfiguration *workflow=nullptr)
 
void SetResetTimers (bool reset)
 
void SetDebugLevelTmp (int32_t level)
 
void UpdateSettings (const GPUSettingsGRP *g, const GPUSettingsProcessing *p=nullptr, const GPUSettingsRecDynamic *d=nullptr)
 
void UpdateDynamicSettings (const GPUSettingsRecDynamic *d)
 
void SetOutputControl (const GPUOutputControl &v)
 
void SetOutputControl (void *ptr, size_t size)
 
void SetInputControl (void *ptr, size_t size)
 
GPUOutputControlOutputControl ()
 
uint32_t NStreams () const
 
const voidDeviceMemoryBase () const
 
RecoStepField GetRecoSteps () const
 
RecoStepField GetRecoStepsGPU () const
 
InOutTypeField GetRecoStepsInputs () const
 
InOutTypeField GetRecoStepsOutputs () const
 
int32_t getRecoStepNum (RecoStep step, bool validCheck=true)
 
int32_t getGeneralStepNum (GeneralStep step, bool validCheck=true)
 
void setErrorCodeOutput (std::vector< std::array< uint32_t, 4 > > *v)
 
std::vector< std::array< uint32_t, 4 > > * getErrorCodeOutput ()
 
template<class T >
void RegisterGPUProcessor (T *proc, bool deviceSlave)
 
template<class T >
void SetupGPUProcessor (T *proc, bool allocate)
 
void RegisterGPUDeviceProcessor (GPUProcessor *proc, GPUProcessor *slaveProcessor)
 
void ConstructGPUProcessor (GPUProcessor *proc)
 
virtual void PrintKernelOccupancies ()
 
double GetStatKernelTime ()
 
double GetStatWallTime ()
 
int32_t GetMaxBackendThreads () const
 

Static Public Attributes

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

 GPUReconstructionCPU (const GPUSettingsDeviceBackend &cfg)
 
int32_t registerMemoryForGPU_internal (const void *ptr, size_t size) override
 
int32_t unregisterMemoryForGPU_internal (const void *ptr) override
 
virtual void SynchronizeStream (int32_t stream)
 
virtual void SynchronizeEvents (deviceEvent *evList, int32_t nEvents=1)
 
virtual void StreamWaitForEvents (int32_t stream, deviceEvent *evList, int32_t nEvents=1)
 
virtual bool IsEventDone (deviceEvent *evList, int32_t nEvents=1)
 
virtual void RecordMarker (deviceEvent *ev, int32_t stream)
 
virtual void SynchronizeGPU ()
 
virtual void ReleaseEvent (deviceEvent ev)
 
size_t TransferMemoryResourceToGPU (GPUMemoryResource *res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
size_t TransferMemoryResourceToHost (GPUMemoryResource *res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
size_t TransferMemoryResourcesToGPU (GPUProcessor *proc, int32_t stream=-1, bool all=false)
 
size_t TransferMemoryResourcesToHost (GPUProcessor *proc, int32_t stream=-1, bool all=false)
 
size_t TransferMemoryResourceLinkToGPU (int16_t res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
size_t TransferMemoryResourceLinkToHost (int16_t res, int32_t stream=-1, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
virtual size_t GPUMemCpy (void *dst, const void *src, size_t size, int32_t stream, int32_t toGPU, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
virtual size_t GPUMemCpyAlways (bool onGpu, void *dst, const void *src, size_t size, int32_t stream, int32_t toGPU, deviceEvent *ev=nullptr, deviceEvent *evList=nullptr, int32_t nEvents=1)
 
size_t WriteToConstantMemory (size_t offset, const void *src, size_t size, int32_t stream=-1, deviceEvent *ev=nullptr) override
 
virtual size_t TransferMemoryInternal (GPUMemoryResource *res, int32_t stream, deviceEvent *ev, deviceEvent *evList, int32_t nEvents, bool toGPU, const void *src, void *dst)
 
virtual void SetONNXGPUStream (Ort::SessionOptions &, int32_t, int32_t *)
 
int32_t InitDevice () override
 
int32_t ExitDevice () override
 
int32_t GetThread ()
 
virtual int32_t DoStuckProtection (int32_t stream, deviceEvent event)
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionProcessing::KernelInterface< GPUReconstructionCPU, GPUReconstructionProcessing >
virtual void runKernelVirtual (const int num, const void *args)
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionProcessing
 GPUReconstructionProcessing (const GPUSettingsDeviceBackend &cfg)
 
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)
 
- Protected Member Functions inherited from o2::gpu::GPUReconstruction
void AllocateRegisteredMemoryInternal (GPUMemoryResource *res, GPUOutputControl *control, GPUReconstruction *recPool)
 
void FreeRegisteredMemory (GPUMemoryResource *res)
 
 GPUReconstruction (const GPUSettingsDeviceBackend &cfg)
 
int32_t InitPhaseBeforeDevice ()
 
int32_t InitPhasePermanentMemory ()
 
int32_t InitPhaseAfterDevice ()
 
void WriteConstantParams ()
 
void UpdateMaxMemoryUsed ()
 
int32_t EnqueuePipeline (bool terminate=false)
 
GPUChainGetNextChainInQueue ()
 
virtual int32_t GPUChkErrInternal (const int64_t error, const char *file, int32_t line) const
 
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)
 
int16_t RegisterMemoryAllocationHelper (GPUProcessor *proc, void *(GPUProcessor::*setPtr)(void *), int32_t type, const char *name, const GPUMemoryReuse &re)
 
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 ()
 
GPUConstantMemprocessors ()
 
const GPUConstantMemprocessors () const
 
GPUParamparam ()
 

Protected Attributes

GPUProcessorProcessors mProcShadow
 
GPUConstantMem *& mProcessorsShadow = mProcShadow.mProcessorsProc
 
uint32_t mBlockCount = 1
 
uint32_t mThreadCount = 1
 
uint32_t mWarpSize = 1
 
- Protected Attributes inherited from o2::gpu::GPUReconstructionProcessing
int32_t mActiveHostKernelThreads = 0
 
uint32_t mNActiveThreadsOuterLoop = 1
 
std::vector< std::vector< deviceEvent > > mEvents
 
HighResTimer mTimersGeneralSteps [GPUDataTypes::N_GENERAL_STEPS]
 
std::vector< std::unique_ptr< timerMeta > > mTimers
 
RecoStepTimerMeta mTimersRecoSteps [GPUDataTypes::N_RECO_STEPS]
 
HighResTimer mTimerTotal
 
GPUDefParametersmParCPU = nullptr
 
GPUDefParametersmParDevice = nullptr
 
- Protected Attributes inherited from o2::gpu::GPUReconstruction
std::shared_ptr< LibraryLoadermMyLib = nullptr
 
std::vector< GPUMemoryResourcemMemoryResources
 
std::vector< std::unique_ptr< GPUChain > > mChains
 
std::unique_ptr< GPUConstantMemmHostConstantMem
 
GPUConstantMemmDeviceConstantMem = nullptr
 
std::unique_ptr< GPUSettingsGRPmGRPSettings
 
std::unique_ptr< GPUSettingsDeviceBackendmDeviceBackendSettings
 
std::unique_ptr< GPUSettingsProcessing > mProcessingSettings
 
GPUOutputControl mOutputControl
 
GPUOutputControl mInputControl
 
std::unique_ptr< GPUMemorySizeScalersmMemoryScalers
 
GPURecoStepConfiguration mRecoSteps
 
std::string mDeviceName = "CPU"
 
voidmHostMemoryBase = nullptr
 
voidmHostMemoryPermanent = nullptr
 
voidmHostMemoryPool = nullptr
 
voidmHostMemoryPoolEnd = nullptr
 
voidmHostMemoryPoolBlocked = nullptr
 
size_t mHostMemorySize = 0
 
size_t mHostMemoryUsedMax = 0
 
voidmDeviceMemoryBase = nullptr
 
voidmDeviceMemoryPermanent = nullptr
 
voidmDeviceMemoryPool = nullptr
 
voidmDeviceMemoryPoolEnd = nullptr
 
voidmDeviceMemoryPoolBlocked = nullptr
 
size_t mDeviceMemorySize = 0
 
size_t mDeviceMemoryUsedMax = 0
 
voidmVolatileMemoryStart = nullptr
 
bool mDeviceMemoryAsVolatile = false
 
std::unordered_set< const void * > mRegisteredMemoryPtrs
 
GPUReconstructionmMaster = nullptr
 
std::vector< GPUReconstruction * > mSlaves
 
int mSlaveId = -1
 
bool mInitialized = false
 
bool mInErrorHandling = false
 
uint32_t mStatNEvents = 0
 
uint32_t mNEventsProcessed = 0
 
double mStatKernelTime = 0.
 
double mStatWallTime = 0.
 
double mStatCPUTime = 0.
 
std::shared_ptr< GPUROOTDumpCoremROOTDump
 
std::vector< std::array< uint32_t, 4 > > * mOutputErrorCodes = nullptr
 
int32_t mMaxBackendThreads = 0
 
int32_t mGPUStuck = 0
 
int32_t mNStreams = 1
 
int32_t mMaxHostThreads = 0
 
std::vector< ProcessorDatamProcessors
 
std::unordered_map< GPUMemoryReuse::ID, MemoryReuseMetamMemoryReuse1to1
 
std::vector< std::tuple< void *, void *, size_t, size_t, uint64_t > > mNonPersistentMemoryStack
 
std::vector< GPUMemoryResource * > mNonPersistentIndividualAllocations
 
std::vector< std::unique_ptr< char[], alignedDeleter > > mNonPersistentIndividualDirectAllocations
 
std::vector< std::unique_ptr< char[], alignedDeleter > > mDirectMemoryChunks
 
std::vector< std::unique_ptr< char[], alignedDeleter > > mVolatileChunks
 
std::unique_ptr< GPUReconstructionPipelineContextmPipelineContext
 

Friends

class GPUChain
 
GPUReconstructionGPUReconstruction::GPUReconstruction_Create_CPU (const GPUSettingsDeviceBackend &cfg)
 

Additional Inherited Members

- Public Types inherited from o2::gpu::GPUReconstructionProcessing
using deviceEvent = gpu_reconstruction_kernels::deviceEvent
 
using threadContext = gpu_reconstruction_kernels::threadContext
 
- Public Types inherited from o2::gpu::GPUReconstruction
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 inherited from o2::gpu::GPUReconstructionProcessing
template<class T , int32_t I>
static const charGetKernelName ()
 
template<class T , int32_t I = 0>
static uint32_t GetKernelNum ()
 
- Static Public Member Functions inherited from o2::gpu::GPUReconstruction
static DeviceType GetDeviceType (const char *type)
 
static uint32_t getNIOTypeMultiplicity (InOutPointerType type)
 
static GPUReconstructionCreateInstance (const GPUSettingsDeviceBackend &cfg)
 
static GPUReconstructionCreateInstance (DeviceType type=DeviceType::CPU, bool forceType=true, GPUReconstruction *master=nullptr)
 
static GPUReconstructionCreateInstance (int32_t type, bool forceType, GPUReconstruction *master=nullptr)
 
static GPUReconstructionCreateInstance (const char *type, bool forceType, GPUReconstruction *master=nullptr)
 
static bool CheckInstanceAvailable (DeviceType type, bool verbose)
 
static int32_t getHostThreadIndex ()
 
- Public Attributes inherited from o2::gpu::GPUReconstruction
std::shared_ptr< GPUReconstructionThreadingmThreading
 
- Static Protected Member Functions inherited from o2::gpu::GPUReconstruction
static std::shared_ptr< LibraryLoader > * GetLibraryInstance (DeviceType type, bool verbose)
 
static GPUReconstructionGPUReconstruction_Create_CPU (const GPUSettingsDeviceBackend &cfg)
 
- Static Protected Attributes inherited from o2::gpu::GPUReconstructionProcessing
static const std::vector< std::string > mKernelNames
 
- Static Protected Attributes inherited from o2::gpu::GPUReconstruction
static std::shared_ptr< LibraryLoadersLibCUDA
 
static std::shared_ptr< LibraryLoadersLibHIP
 
static std::shared_ptr< LibraryLoadersLibOCL
 

Detailed Description

Definition at line 30 of file GPUReconstructionCPU.h.

Constructor & Destructor Documentation

◆ ~GPUReconstructionCPU()

GPUReconstructionCPU::~GPUReconstructionCPU ( )
override

Definition at line 51 of file GPUReconstructionCPU.cxx.

◆ GPUReconstructionCPU()

o2::gpu::GPUReconstructionCPU::GPUReconstructionCPU ( const GPUSettingsDeviceBackend cfg)
inlineprotected

Definition at line 60 of file GPUReconstructionCPU.h.

Member Function Documentation

◆ DoStuckProtection()

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

Reimplemented in o2::gpu::GPUReconstructionOCL.

Definition at line 91 of file GPUReconstructionCPU.h.

◆ ExitDevice()

int32_t GPUReconstructionCPU::ExitDevice ( )
overrideprotectedvirtual

Implements o2::gpu::GPUReconstruction.

Reimplemented in o2::gpu::GPUReconstructionDeviceBase.

Definition at line 204 of file GPUReconstructionCPU.cxx.

◆ getKernelProperties() [1/2]

template<class S , int32_t I>
GPUReconstructionProcessing::krnlProperties o2::gpu::GPUReconstructionCPU::getKernelProperties ( int  gpu)

Definition at line 112 of file GPUReconstructionCPU.cxx.

◆ getKernelProperties() [2/2]

template<class S , int32_t I = 0>
krnlProperties o2::gpu::GPUReconstructionCPU::getKernelProperties ( int  gpu = -1)

◆ GetThread()

int32_t GPUReconstructionCPU::GetThread ( )
protected

Definition at line 171 of file GPUReconstructionCPU.cxx.

◆ GPUDebug()

int32_t GPUReconstructionCPU::GPUDebug ( const char state = "UNKNOWN",
int32_t  stream = -1,
bool  force = false 
)
virtual

◆ GPUMemCpy()

size_t GPUReconstructionCPU::GPUMemCpy ( void dst,
const void src,
size_t  size,
int32_t  stream,
int32_t  toGPU,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
protectedvirtual

◆ GPUMemCpyAlways()

size_t GPUReconstructionCPU::GPUMemCpyAlways ( bool  onGpu,
void dst,
const void src,
size_t  size,
int32_t  stream,
int32_t  toGPU,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
protectedvirtual

Reimplemented in o2::gpu::GPUReconstructionDeviceBase.

Definition at line 136 of file GPUReconstructionCPU.cxx.

◆ GPUStuck()

int32_t o2::gpu::GPUReconstructionCPU::GPUStuck ( )
inline

Definition at line 46 of file GPUReconstructionCPU.h.

◆ InitDevice()

int32_t GPUReconstructionCPU::InitDevice ( )
overrideprotectedvirtual

Implements o2::gpu::GPUReconstruction.

Reimplemented in o2::gpu::GPUReconstructionDeviceBase.

Definition at line 183 of file GPUReconstructionCPU.cxx.

◆ IsEventDone()

virtual bool o2::gpu::GPUReconstructionCPU::IsEventDone ( deviceEvent evList,
int32_t  nEvents = 1 
)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 68 of file GPUReconstructionCPU.h.

◆ RecordMarker()

virtual void o2::gpu::GPUReconstructionCPU::RecordMarker ( deviceEvent ev,
int32_t  stream 
)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 69 of file GPUReconstructionCPU.h.

◆ registerMemoryForGPU_internal()

int32_t o2::gpu::GPUReconstructionCPU::registerMemoryForGPU_internal ( const void ptr,
size_t  size 
)
inlineoverrideprotectedvirtual

◆ ReleaseEvent()

virtual void o2::gpu::GPUReconstructionCPU::ReleaseEvent ( deviceEvent  ev)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 71 of file GPUReconstructionCPU.h.

◆ ResetDeviceProcessorTypes()

void GPUReconstructionCPU::ResetDeviceProcessorTypes ( )

Definition at line 339 of file GPUReconstructionCPU.cxx.

◆ RunChains()

int32_t GPUReconstructionCPU::RunChains ( )
overridevirtual

Implements o2::gpu::GPUReconstruction.

Definition at line 216 of file GPUReconstructionCPU.cxx.

◆ runKernelBackend() [1/2]

template<class T , int32_t I, typename... Args>
void GPUReconstructionCPU::runKernelBackend ( const krnlSetupTime _xyz,
const Args &...  args 
)
inline

Definition at line 57 of file GPUReconstructionCPU.cxx.

◆ runKernelBackend() [2/2]

template<>
void o2::gpu::GPUReconstructionCPU::runKernelBackend ( const krnlSetupTime _xyz,
void *const &  ptr,
uint64_t const &  size 
)
inline

Definition at line 91 of file GPUReconstructionCPU.cxx.

◆ SetONNXGPUStream()

virtual void o2::gpu::GPUReconstructionCPU::SetONNXGPUStream ( Ort::SessionOptions &  ,
int32_t  ,
int32_t *   
)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA.

Definition at line 85 of file GPUReconstructionCPU.h.

◆ StreamWaitForEvents()

virtual void o2::gpu::GPUReconstructionCPU::StreamWaitForEvents ( int32_t  stream,
deviceEvent evList,
int32_t  nEvents = 1 
)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 67 of file GPUReconstructionCPU.h.

◆ SynchronizeEvents()

virtual void o2::gpu::GPUReconstructionCPU::SynchronizeEvents ( deviceEvent evList,
int32_t  nEvents = 1 
)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 66 of file GPUReconstructionCPU.h.

◆ SynchronizeGPU()

virtual void o2::gpu::GPUReconstructionCPU::SynchronizeGPU ( )
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 70 of file GPUReconstructionCPU.h.

◆ SynchronizeStream()

virtual void o2::gpu::GPUReconstructionCPU::SynchronizeStream ( int32_t  stream)
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA, and o2::gpu::GPUReconstructionOCL.

Definition at line 65 of file GPUReconstructionCPU.h.

◆ TransferMemoryInternal()

size_t GPUReconstructionCPU::TransferMemoryInternal ( GPUMemoryResource res,
int32_t  stream,
deviceEvent ev,
deviceEvent evList,
int32_t  nEvents,
bool  toGPU,
const void src,
void dst 
)
protectedvirtual

Reimplemented in o2::gpu::GPUReconstructionDeviceBase.

Definition at line 134 of file GPUReconstructionCPU.cxx.

◆ TransferMemoryResourceLinkToGPU()

size_t o2::gpu::GPUReconstructionCPU::TransferMemoryResourceLinkToGPU ( int16_t  res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 77 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourceLinkToHost()

size_t o2::gpu::GPUReconstructionCPU::TransferMemoryResourceLinkToHost ( int16_t  res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 78 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourcesToGPU()

size_t o2::gpu::GPUReconstructionCPU::TransferMemoryResourcesToGPU ( GPUProcessor proc,
int32_t  stream = -1,
bool  all = false 
)
inlineprotected

Definition at line 75 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourcesToHost()

size_t o2::gpu::GPUReconstructionCPU::TransferMemoryResourcesToHost ( GPUProcessor proc,
int32_t  stream = -1,
bool  all = false 
)
inlineprotected

Definition at line 76 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourceToGPU()

size_t o2::gpu::GPUReconstructionCPU::TransferMemoryResourceToGPU ( GPUMemoryResource res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 73 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourceToHost()

size_t o2::gpu::GPUReconstructionCPU::TransferMemoryResourceToHost ( GPUMemoryResource res,
int32_t  stream = -1,
deviceEvent ev = nullptr,
deviceEvent evList = nullptr,
int32_t  nEvents = 1 
)
inlineprotected

Definition at line 74 of file GPUReconstructionCPU.h.

◆ unregisterMemoryForGPU_internal()

int32_t o2::gpu::GPUReconstructionCPU::unregisterMemoryForGPU_internal ( const void ptr)
inlineoverrideprotectedvirtual

◆ UpdateParamOccupancyMap()

void GPUReconstructionCPU::UpdateParamOccupancyMap ( const uint32_t *  mapHost,
const uint32_t *  mapGPU,
uint32_t  occupancyTotal,
int32_t  stream = -1 
)

Definition at line 348 of file GPUReconstructionCPU.cxx.

◆ WriteToConstantMemory()

size_t GPUReconstructionCPU::WriteToConstantMemory ( size_t  offset,
const void src,
size_t  size,
int32_t  stream = -1,
deviceEvent ev = nullptr 
)
overrideprotectedvirtual

Friends And Related Symbol Documentation

◆ GPUChain

friend class GPUChain
friend

Definition at line 33 of file GPUReconstructionCPU.h.

◆ GPUReconstruction::GPUReconstruction_Create_CPU

Member Data Documentation

◆ krnlEventNone

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

Definition at line 38 of file GPUReconstructionCPU.h.

◆ krnlRunRangeNone

constexpr GPUReconstructionCPU::krnlRunRange GPUReconstructionCPU::krnlRunRangeNone {0}
staticconstexpr

Definition at line 37 of file GPUReconstructionCPU.h.

◆ mBlockCount

uint32_t o2::gpu::GPUReconstructionCPU::mBlockCount = 1
protected

Definition at line 97 of file GPUReconstructionCPU.h.

◆ mProcessorsShadow

GPUConstantMem*& o2::gpu::GPUReconstructionCPU::mProcessorsShadow = mProcShadow.mProcessorsProc
protected

Definition at line 95 of file GPUReconstructionCPU.h.

◆ mProcShadow

GPUProcessorProcessors o2::gpu::GPUReconstructionCPU::mProcShadow
protected

Definition at line 94 of file GPUReconstructionCPU.h.

◆ mThreadCount

uint32_t o2::gpu::GPUReconstructionCPU::mThreadCount = 1
protected

Definition at line 98 of file GPUReconstructionCPU.h.

◆ mWarpSize

uint32_t o2::gpu::GPUReconstructionCPU::mWarpSize = 1
protected

Definition at line 99 of file GPUReconstructionCPU.h.


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