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

#include <GPUReconstructionCPU.h>

Inherits o2::gpu::GPUReconstructionKernels< GPUReconstructionCPUBackend >.

Inherited by o2::gpu::GPUReconstructionDeviceBase.

Classes

struct  GPUProcessorProcessors
 

Public Member Functions

 ~GPUReconstructionCPU () override
 
template<class S , int32_t I = 0, typename... Args>
int32_t runKernel (krnlSetup &&setup, Args &&... args)
 
template<class S , int32_t I = 0>
const gpu_reconstruction_kernels::krnlProperties getKernelProperties ()
 
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)
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionKernels< GPUReconstructionCPUBackend >
 GPUReconstructionKernels (const GPUSettingsDeviceBackend &cfg)
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionCPUBackend
 ~GPUReconstructionCPUBackend () override=default
 
template<class T , int32_t I>
krnlProperties getKernelPropertiesBackend ()
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionProcessing
 ~GPUReconstructionProcessing () override=default
 
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)
 
auto & getRecoStepTimer (RecoStep step)
 
HighResTimergetGeneralStepTimer (GeneralStep step)
 
template<class T >
void AddGPUEvents (T *&events)
 
virtual std::unique_ptr< gpu_reconstruction_kernels::threadContextGetThreadContext () 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 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)
 
voidAllocateUnmanagedMemory (size_t size, int32_t type)
 
voidAllocateVolatileDeviceMemory (size_t size)
 
voidAllocateVolatileMemory (size_t size, bool device)
 
void FreeRegisteredMemory (GPUProcessor *proc, bool freeCustom=false, bool freePermanent=false)
 
void FreeRegisteredMemory (int16_t res)
 
void ClearAllocatedMemory (bool clearOutputs=true)
 
void ReturnVolatileDeviceMemory ()
 
void ReturnVolatileMemory ()
 
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 ()
 
DeviceType GetDeviceType () const
 
bool IsGPU () const
 
const GPUParamGetParam () const
 
const GPUConstantMemGetConstantMem () const
 
const GPUSettingsGRPGetGRPSettings () const
 
const GPUSettingsDeviceBackendGetDeviceBackendSettings ()
 
const GPUSettingsProcessing & GetProcessingSettings () 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 ()
 
int32_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, -1}
 
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)
 
int32_t InitDevice () override
 
int32_t ExitDevice () override
 
int32_t GetThread ()
 
virtual int32_t PrepareTextures ()
 
virtual int32_t DoStuckProtection (int32_t stream, deviceEvent event)
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionCPUBackend
 GPUReconstructionCPUBackend (const GPUSettingsDeviceBackend &cfg)
 
template<class T , int32_t I = 0, typename... Args>
int32_t runKernelBackend (const gpu_reconstruction_kernels::krnlSetupArgs< T, I, Args... > &args)
 
template<class T , int32_t I = 0, typename... Args>
int32_t runKernelBackendInternal (const gpu_reconstruction_kernels::krnlSetupTime &_xyz, const Args &... args)
 
template<class T , int32_t I>
gpu_reconstruction_kernels::krnlProperties getKernelPropertiesBackend ()
 
template<>
int32_t runKernelBackendInternal (const krnlSetupTime &_xyz, void *const &ptr, uint64_t const &size)
 
- 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 ()
 
virtual void UpdateAutomaticProcessingSettings ()
 
int32_t InitPhasePermanentMemory ()
 
int32_t InitPhaseAfterDevice ()
 
void WriteConstantParams ()
 
void UpdateMaxMemoryUsed ()
 
int32_t EnqueuePipeline (bool terminate=false)
 
GPUChainGetNextChainInQueue ()
 
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 ()
 
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
 
- Protected Attributes inherited from o2::gpu::GPUReconstruction
std::shared_ptr< LibraryLoadermMyLib = nullptr
 
std::vector< GPUMemoryResourcemMemoryResources
 
std::vector< std::unique_ptr< char[]> > mUnmanagedChunks
 
std::vector< std::unique_ptr< char[]> > mVolatileChunks
 
std::vector< std::unique_ptr< GPUChain > > mChains
 
std::unique_ptr< GPUConstantMemmHostConstantMem
 
GPUConstantMemmDeviceConstantMem = nullptr
 
GPUSettingsGRP mGRPSettings
 
GPUSettingsDeviceBackend mDeviceBackendSettings
 
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
 
voidmVolatileMemoryStart = nullptr
 
size_t mDeviceMemoryUsedMax = 0
 
std::unordered_set< const void * > mRegisteredMemoryPtrs
 
GPUReconstructionmMaster = nullptr
 
std::vector< GPUReconstruction * > mSlaves
 
bool mInitialized = 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, uint64_t > > mNonPersistentMemoryStack
 
std::vector< GPUMemoryResource * > mNonPersistentIndividualAllocations
 
std::unique_ptr< GPUReconstructionPipelineContextmPipelineContext
 

Friends

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

Additional Inherited Members

- 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 constexpr const charGetKernelName ()
 
- 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
 
- Protected Types inherited from o2::gpu::GPUReconstructionKernels< GPUReconstructionCPUBackend >
using deviceEvent = gpu_reconstruction_kernels::deviceEvent
 
using krnlExec = gpu_reconstruction_kernels::krnlExec
 
using krnlRunRange = gpu_reconstruction_kernels::krnlRunRange
 
using krnlEvent = gpu_reconstruction_kernels::krnlEvent
 
using krnlSetup = gpu_reconstruction_kernels::krnlSetup
 
using krnlSetupTime = gpu_reconstruction_kernels::krnlSetupTime
 
using krnlSetupArgs = gpu_reconstruction_kernels::krnlSetupArgs< S, I, Args... >
 
- Protected Types inherited from o2::gpu::GPUReconstructionProcessing
using deviceEvent = gpu_reconstruction_kernels::deviceEvent
 
- 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::GPUReconstruction
static std::shared_ptr< LibraryLoadersLibCUDA
 
static std::shared_ptr< LibraryLoadersLibHIP
 
static std::shared_ptr< LibraryLoadersLibOCL
 

Detailed Description

Definition at line 45 of file GPUReconstructionCPU.h.

Constructor & Destructor Documentation

◆ ~GPUReconstructionCPU()

GPUReconstructionCPU::~GPUReconstructionCPU ( )
override

Definition at line 53 of file GPUReconstructionCPU.cxx.

◆ GPUReconstructionCPU()

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

Definition at line 78 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::GPUReconstructionOCLBackend.

Definition at line 119 of file GPUReconstructionCPU.h.

◆ ExitDevice()

int32_t GPUReconstructionCPU::ExitDevice ( )
overrideprotectedvirtual

Implements o2::gpu::GPUReconstruction.

Reimplemented in o2::gpu::GPUReconstructionDeviceBase.

Definition at line 206 of file GPUReconstructionCPU.cxx.

◆ getKernelProperties()

template<class S , int32_t I = 0>
const gpu_reconstruction_kernels::krnlProperties o2::gpu::GPUReconstructionCPU::getKernelProperties ( )
inline

Definition at line 58 of file GPUReconstructionCPU.h.

◆ GetThread()

int32_t GPUReconstructionCPU::GetThread ( )
protected

Definition at line 173 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 138 of file GPUReconstructionCPU.cxx.

◆ GPUStuck()

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

Definition at line 64 of file GPUReconstructionCPU.h.

◆ InitDevice()

int32_t GPUReconstructionCPU::InitDevice ( )
overrideprotectedvirtual

Implements o2::gpu::GPUReconstruction.

Reimplemented in o2::gpu::GPUReconstructionDeviceBase.

Definition at line 185 of file GPUReconstructionCPU.cxx.

◆ IsEventDone()

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

◆ PrepareTextures()

virtual int32_t o2::gpu::GPUReconstructionCPU::PrepareTextures ( )
inlineprotectedvirtual

Reimplemented in o2::gpu::GPUReconstructionCUDA.

Definition at line 118 of file GPUReconstructionCPU.h.

◆ RecordMarker()

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

◆ 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

◆ ResetDeviceProcessorTypes()

void GPUReconstructionCPU::ResetDeviceProcessorTypes ( )

Definition at line 330 of file GPUReconstructionCPU.cxx.

◆ RunChains()

int32_t GPUReconstructionCPU::RunChains ( )
overridevirtual

Implements o2::gpu::GPUReconstruction.

Definition at line 218 of file GPUReconstructionCPU.cxx.

◆ runKernel()

template<class S , int32_t I, typename... Args>
int32_t o2::gpu::GPUReconstructionCPU::runKernel ( krnlSetup &&  setup,
Args &&...  args 
)
inline

Definition at line 134 of file GPUReconstructionCPU.h.

◆ StreamWaitForEvents()

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

◆ SynchronizeEvents()

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

◆ SynchronizeGPU()

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

◆ SynchronizeStream()

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

◆ 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 136 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 107 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 108 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourcesToGPU()

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

Definition at line 105 of file GPUReconstructionCPU.h.

◆ TransferMemoryResourcesToHost()

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

Definition at line 106 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 103 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 104 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 339 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 48 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 53 of file GPUReconstructionCPU.h.

◆ krnlRunRangeNone

constexpr GPUReconstructionCPU::krnlRunRange GPUReconstructionCPU::krnlRunRangeNone {0, -1}
staticconstexpr

Definition at line 52 of file GPUReconstructionCPU.h.

◆ mBlockCount

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

Definition at line 125 of file GPUReconstructionCPU.h.

◆ mProcessorsShadow

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

Definition at line 123 of file GPUReconstructionCPU.h.

◆ mProcShadow

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

Definition at line 122 of file GPUReconstructionCPU.h.

◆ mThreadCount

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

Definition at line 126 of file GPUReconstructionCPU.h.

◆ mWarpSize

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

Definition at line 127 of file GPUReconstructionCPU.h.


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