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

#include <GPUReconstructionMetal.h>

Inherits o2::gpu::GPUReconstructionProcessing::KernelInterface< GPUReconstructionMetal, GPUReconstructionDeviceBase >.

Public Member Functions

 GPUReconstructionMetal (const GPUSettingsDeviceBackend &cfg)
 
 ~GPUReconstructionMetal () override
 
template<class T , int32_t I = 0, typename... Args>
void runKernelBackend (const krnlSetupTime &_xyz, const Args &... args)
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionProcessing::KernelInterface< GPUReconstructionMetal, GPUReconstructionDeviceBase >
 KernelInterface (const Args &... args)
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionDeviceBase
 ~GPUReconstructionDeviceBase () override
 
const GPUParam * DeviceParam () const
 
- Public Member Functions inherited from o2::gpu::GPUReconstructionCPU
 ~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)
 
int32_t GPUStuck ()
 
void ResetDeviceProcessorTypes ()
 
int32_t RunChains () override
 
void UpdateParamOccupancyMap (const uint32_t *mapHost, const uint32_t *mapGPU, uint32_t occupancyTotal, uint32_t mapSize, int32_t stream=-1, deviceEvent *ev=nullptr)
 
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)
 
auto & getRecoStepTimer (RecoStep step)
 
HighResTimer & getGeneralStepTimer (GeneralStep step)
 
template<class T >
void AddGPUEvents (T *&events)
 
virtual std::unique_ptr< threadContext > GetThreadContext () override
 
const GPUDefParameters & getGPUParameters (bool doGPU) const override
 
- Public Member Functions inherited from o2::gpu::GPUReconstruction
virtual ~GPUReconstruction ()
 
 GPUReconstruction (const GPUReconstruction &)=delete
 
GPUReconstruction & operator= (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 void * getGPUPointer (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 ()
 
void DrainPipeline ()
 
GPUMemoryResource & Res (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)
 
void * AllocateDirectMemory (size_t size, int32_t type)
 
void * AllocateVolatileDeviceMemory (size_t size)
 
void * AllocateVolatileMemory (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, const GPUProcessor *proc=nullptr)
 
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)
 
GPUMemorySizeScalers * MemoryScalers ()
 
virtual void GetITSTraits (std::unique_ptr< o2::its::TrackerTraits< 7 > > *trackerTraits, std::unique_ptr< o2::its::VertexerTraits< 7 > > *vertexerTraits, std::unique_ptr< o2::its::TimeFrame< 7 > > *timeFrame)
 
bool slavesExist ()
 
int slaveId ()
 
DeviceType GetDeviceType () const
 
bool IsGPU () const
 
const GPUParam & GetParam () const
 
const GPUConstantMem & GetConstantMem () const
 
const GPUTrackingInOutPointers GetIOPtrs () const
 
const GPUSettingsGRP & GetGRPSettings () const
 
const GPUSettingsDeviceBackend & GetDeviceBackendSettings () const
 
const GPUSettingsProcessing & GetProcessingSettings () const
 
const GPUCalibObjectsConst & GetCalib () 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)
 
GPUOutputControl & OutputControl ()
 
uint32_t NStreams () const
 
const void * DeviceMemoryBase () 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 ()
 
void setDebugDumpCallback (std::function< void()> &&callback=std::function< void()>(nullptr))
 
bool triggerDebugDump ()
 
std::string getDebugFolder (const std::string &prefix="")
 
int32_t GetMaxBackendThreads () const
 

Protected Member Functions

int32_t InitDevice_Runtime () override
 
int32_t ExitDevice_Runtime () override
 
virtual int32_t GPUChkErrInternal (const int64_t error, const char *file, int32_t line) const override
 
void SynchronizeGPU () override
 
int32_t GPUDebug (const char *state="UNKNOWN", int32_t stream=-1, bool force=false) override
 
void SynchronizeStream (int32_t stream) override
 
void SynchronizeEvents (deviceEvent *evList, int32_t nEvents=1) override
 
void StreamWaitForEvents (int32_t stream, deviceEvent *evList, int32_t nEvents=1) override
 
bool IsEventDone (deviceEvent *evList, int32_t nEvents=1) override
 
size_t WriteToConstantMemory (size_t offset, const void *src, size_t size, int32_t stream=-1, deviceEvent *ev=nullptr) override
 
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) override
 
void ReleaseEvent (deviceEvent ev) override
 
void RecordMarker (deviceEvent *ev, int32_t stream) override
 
template<class T , int32_t I = 0>
int32_t AddKernel ()
 
template<class S , class T , int32_t I>
S & getKernelObject ()
 
int32_t GetMetalPrograms ()
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionProcessing::KernelInterface< GPUReconstructionMetal, GPUReconstructionDeviceBase >
virtual void runKernelVirtual (const int num, const void *args)
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionDeviceBase
 GPUReconstructionDeviceBase (const GPUSettingsDeviceBackend &cfg, size_t sizeCheck)
 
int32_t InitDevice () override
 
int32_t ExitDevice () override
 
int32_t registerMemoryForGPU_internal (const void *ptr, size_t size) override
 
int32_t unregisterMemoryForGPU_internal (const void *ptr) override
 
void unregisterRemainingRegisteredMemory ()
 
size_t TransferMemoryInternal (GPUMemoryResource *res, int32_t stream, deviceEvent *ev, deviceEvent *evList, int32_t nEvents, bool toGPU, const void *src, void *dst) override
 
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) override
 
int32_t GetGlobalLock (void *&pLock)
 
void ReleaseGlobalLock (void *sem)
 
void runConstantRegistrators ()
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionCPU
 GPUReconstructionCPU (const GPUSettingsDeviceBackend &cfg)
 
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 void SetONNXGPUStream (Ort::SessionOptions &, int32_t, int32_t *)
 
int32_t GetThread ()
 
- Protected Member Functions inherited from o2::gpu::GPUReconstructionProcessing
 GPUReconstructionProcessing (const GPUSettingsDeviceBackend &cfg)
 
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)
 
- 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 (int32_t stream=-1)
 
void UpdateMaxMemoryUsed ()
 
int32_t EnqueuePipeline (bool terminate=false)
 
GPUChain * GetNextChainInQueue ()
 
size_t AllocateRegisteredMemoryHelper (GPUMemoryResource *res, void *&ptr, void *&memorypool, void *memorybase, size_t memorysize, void *(GPUMemoryResource::*SetPointers)(void *) const, 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 >
void DumpDynamicStructToFile (const T *obj, size_t dynamicSize, const char *file)
 
template<class T >
std::unique_ptr< T > ReadStructFromFile (const char *file, T *obj=nullptr, bool *errorOnMissing=nullptr, bool allowSmaller=false)
 
template<class T , auto F>
aligned_unique_buffer_ptr< T > ReadDynamicStructFromFile (const char *file)
 
virtual RecoStepField AvailableGPURecoSteps ()
 
virtual bool CanQueryMaxMemory ()
 
GPUConstantMem * processors ()
 
const GPUConstantMem * processors () const
 
GPUParam & param ()
 
void debugInit ()
 
void debugExit ()
 

Protected Attributes

GPUReconstructionMetalInternals * mInternals
 
- Protected Attributes inherited from o2::gpu::GPUReconstructionDeviceBase
int32_t mDeviceId = -1
 
DebugEvents * mDebugEvents = nullptr
 
std::vector< void * > mDeviceConstantMemList
 
- Protected Attributes inherited from o2::gpu::GPUReconstructionCPU
GPUProcessorProcessors mProcShadow
 
GPUConstantMem *& mProcessorsShadow = mProcShadow.mProcessorsProc
 
uint32_t mMultiprocessorCount = 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
 
GPUDefParameters * mParCPU = nullptr
 
GPUDefParameters * mParDevice = nullptr
 
- Protected Attributes inherited from o2::gpu::GPUReconstruction
std::shared_ptr< LibraryLoader > mMyLib = nullptr
 
std::vector< GPUMemoryResource > mMemoryResources
 
std::vector< std::unique_ptr< GPUChain > > mChains
 
std::unique_ptr< GPUConstantMem > mHostConstantMem
 
GPUConstantMem * mDeviceConstantMem = nullptr
 
std::unique_ptr< GPUSettingsGRP > mGRPSettings
 
std::unique_ptr< GPUSettingsDeviceBackend > mDeviceBackendSettings
 
std::unique_ptr< GPUSettingsProcessing > mProcessingSettings
 
GPUOutputControl mOutputControl
 
GPUOutputControl mInputControl
 
std::unique_ptr< GPUMemorySizeScalers > mMemoryScalers
 
GPURecoStepConfiguration mRecoSteps
 
std::string mDeviceName = "CPU"
 
void * mHostMemoryBase = nullptr
 
void * mHostMemoryPermanent = nullptr
 
void * mHostMemoryPool = nullptr
 
void * mHostMemoryPoolEnd = nullptr
 
void * mHostMemoryPoolBlocked = nullptr
 
size_t mHostMemorySize = 0
 
size_t mHostMemoryUsedMax = 0
 
void * mDeviceMemoryBase = nullptr
 
void * mDeviceMemoryPermanent = nullptr
 
void * mDeviceMemoryPool = nullptr
 
void * mDeviceMemoryPoolEnd = nullptr
 
void * mDeviceMemoryPoolBlocked = nullptr
 
size_t mDeviceMemorySize = 0
 
size_t mDeviceMemoryUsedMax = 0
 
void * mVolatileMemoryStart = nullptr
 
bool mDeviceMemoryAsVolatile = false
 
std::unordered_set< const void * > mRegisteredMemoryPtrs
 
GPUReconstruction * mMaster = 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< GPUROOTDumpCore > mROOTDump
 
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< ProcessorData > mProcessors
 
std::unordered_map< GPUMemoryReuse::ID, MemoryReuseMeta > mMemoryReuse1to1
 
std::vector< std::tuple< void *, void *, size_t, size_t, uint64_t > > mNonPersistentMemoryStack
 
std::vector< GPUMemoryResource * > mNonPersistentIndividualAllocations
 
std::vector< std::unique_ptr< char[], alignedDefaultBufferDeleter > > mNonPersistentIndividualDirectAllocations
 
std::vector< std::unique_ptr< char[], alignedDefaultBufferDeleter > > mDirectMemoryChunks
 
std::vector< std::unique_ptr< char[], alignedDefaultBufferDeleter > > mVolatileChunks
 
std::atomic_flag mMemoryMutex = ATOMIC_FLAG_INIT
 
std::unique_ptr< GPUReconstructionPipelineContext > mPipelineContext
 
bool mDebugEnabled = false
 

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  retValValue : uint32_t {
  retOk = 0 , retError = 1 , retDoExit = 2 , retNonFatalErrorCode = 3 ,
  retAbort = 4
}
 
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
 
using alignedDefaultBufferDeleter = alignedDeleter< char, constants::GPU_BUFFER_ALIGNMENT >
 
- Static Public Member Functions inherited from o2::gpu::GPUReconstructionProcessing
template<class T , int32_t I>
static const char * GetKernelName ()
 
static const std::string & GetKernelName (int32_t i)
 
template<class T , int32_t I = 0>
static uint32_t GetKernelNum ()
 
static uint32_t GetNKernels ()
 
- Static Public Member Functions inherited from o2::gpu::GPUReconstruction
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 ()
 
template<typename T >
static T * alignedDefaultBufferAllocator (size_t n)
 
- Public Attributes inherited from o2::gpu::GPUReconstruction
std::shared_ptr< GPUReconstructionThreading > mThreading
 
- Static Public Attributes inherited from o2::gpu::GPUReconstructionCPU
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 = GPUTPCGeometry::NSECTORS
 
static constexpr const char *const GEOMETRY_TYPE_NAMES [] = {"INVALID", "ALIROOT", "O2"}
 
static constexpr GeometryType geometryType = GeometryType::O2
 
static constexpr const char *const IOTYPENAMES []
 
- Static Protected Member Functions inherited from o2::gpu::GPUReconstructionDeviceBase
static std::vector< void *(*)()> & getDeviceConstantMemRegistratorsVector ()
 
- Static Protected Member Functions inherited from o2::gpu::GPUReconstruction
static std::shared_ptr< LibraryLoader > * GetLibraryInstance (DeviceType type, bool verbose)
 
static std::string getBackendVersions ()
 
static GPUReconstruction * GPUReconstruction_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< LibraryLoader > sLibCUDA
 
static std::shared_ptr< LibraryLoader > sLibHIP
 
static std::shared_ptr< LibraryLoader > sLibOCL
 
static std::shared_ptr< LibraryLoader > sLibMETAL
 
static std::unique_ptr< debugInternal > mDebugData
 

Detailed Description

Definition at line 23 of file GPUReconstructionMetal.h.

Constructor & Destructor Documentation

◆ GPUReconstructionMetal()

o2::gpu::GPUReconstructionMetal::GPUReconstructionMetal ( const GPUSettingsDeviceBackend &  cfg)

◆ ~GPUReconstructionMetal()

o2::gpu::GPUReconstructionMetal::~GPUReconstructionMetal ( )
override

Member Function Documentation

◆ AddKernel()

template<class T , int32_t I = 0>
int32_t o2::gpu::GPUReconstructionMetal::AddKernel ( )
protected

◆ ExitDevice_Runtime()

int32_t o2::gpu::GPUReconstructionMetal::ExitDevice_Runtime ( )
overrideprotectedvirtual

◆ getKernelObject()

template<class S , class T , int32_t I>
S & o2::gpu::GPUReconstructionMetal::getKernelObject ( )
protected

◆ GetMetalPrograms()

int32_t o2::gpu::GPUReconstructionMetal::GetMetalPrograms ( )
protected

◆ GPUChkErrInternal()

virtual int32_t o2::gpu::GPUReconstructionMetal::GPUChkErrInternal ( const int64_t  error,
const char *  file,
int32_t  line 
) const
overrideprotectedvirtual

◆ GPUDebug()

int32_t o2::gpu::GPUReconstructionMetal::GPUDebug ( const char *  state = "UNKNOWN",
int32_t  stream = -1,
bool  force = false 
)
overrideprotectedvirtual

◆ GPUMemCpy()

size_t o2::gpu::GPUReconstructionMetal::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 
)
overrideprotectedvirtual

◆ InitDevice_Runtime()

int32_t o2::gpu::GPUReconstructionMetal::InitDevice_Runtime ( )
overrideprotectedvirtual

◆ IsEventDone()

bool o2::gpu::GPUReconstructionMetal::IsEventDone ( deviceEvent *  evList,
int32_t  nEvents = 1 
)
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ RecordMarker()

void o2::gpu::GPUReconstructionMetal::RecordMarker ( deviceEvent *  ev,
int32_t  stream 
)
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ ReleaseEvent()

void o2::gpu::GPUReconstructionMetal::ReleaseEvent ( deviceEvent  ev)
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ runKernelBackend()

template<class T , int32_t I = 0, typename... Args>
void o2::gpu::GPUReconstructionMetal::runKernelBackend ( const krnlSetupTime &  _xyz,
const Args &...  args 
)

◆ StreamWaitForEvents()

void o2::gpu::GPUReconstructionMetal::StreamWaitForEvents ( int32_t  stream,
deviceEvent *  evList,
int32_t  nEvents = 1 
)
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ SynchronizeEvents()

void o2::gpu::GPUReconstructionMetal::SynchronizeEvents ( deviceEvent *  evList,
int32_t  nEvents = 1 
)
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ SynchronizeGPU()

void o2::gpu::GPUReconstructionMetal::SynchronizeGPU ( )
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ SynchronizeStream()

void o2::gpu::GPUReconstructionMetal::SynchronizeStream ( int32_t  stream)
overrideprotectedvirtual

Reimplemented from o2::gpu::GPUReconstructionCPU.

◆ WriteToConstantMemory()

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

Member Data Documentation

◆ mInternals

GPUReconstructionMetalInternals* o2::gpu::GPUReconstructionMetal::mInternals
protected

Definition at line 53 of file GPUReconstructionMetal.h.


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