FLImaging 7.8.25.3
AlgorithmBase.h
1#pragma once
2
10
12namespace FLImaging
13{
15 namespace Foundation
16 {
26 {
33
38
45
46
61
66 };
67
75 class FL_EXPORT CAlgorithmBase : public Base::CFLBase
76 {
77 public:
78
87
98
109
115
127 virtual const CResult Assign(const CAlgorithmBase& pufb);
128
140 virtual const CResult Assign(const CAlgorithmBase* pPufb);
141
151 virtual const CAlgorithmBase& operator=(const CAlgorithmBase& pufb);
152
162 virtual const CResult Clear();
163
175 virtual const CResult Execute();
176
189
197 virtual int32_t GetOptimalThreadCount() const;
198
206 virtual int64_t GetRequiredGPUMemory() const;
207
208
209 SupportToDuplicateAbstractObject(CAlgorithmBase);
210 DeclareGetClassType();
211
212 protected:
213
214 virtual const CResult InitializeProcessingUnit(bool bCheckGPUMemoryAvailable = false);
215 virtual bool IsOptimalProcessingUnitEnabled() const;
216
217 FLImaging::Foundation::EProcessingUnitFeatures m_eRequiredProcessingUnitFeatures;
218 int32_t m_i32RequiredThreadCount;
219 };
220 }
221}
Top-level base class of FLImaging.
Definition FLBase.h:36
FLImaging module execution result object.
Definition ResultsDef.h:1704
virtual int64_t GetRequiredGPUMemory() const
virtual int32_t GetOptimalThreadCount() const
virtual FLImaging::Foundation::EProcessingUnitFeatures GetOptimalProcessingUnit() const
virtual const CResult Assign(const CAlgorithmBase *pPufb)
CAlgorithmBase(const CAlgorithmBase *pPufb)
Copy constructor (pointer).
virtual const CResult Execute()
virtual const CResult Assign(const CAlgorithmBase &pufb)
virtual const CAlgorithmBase & operator=(const CAlgorithmBase &pufb)
CAlgorithmBase(const CAlgorithmBase &pufb)
Copy constructor (reference).
CAlgorithmBase()
Default constructor.
Definition AlgorithmBase.h:16
EProcessingUnitFeatures
Processing Unit Features.
Definition AlgorithmBase.h:26
@ EProcessingUnitFeatures_Cuda
Definition AlgorithmBase.h:63
@ EProcessingUnitFeatures_Feature_Cuda
Definition AlgorithmBase.h:30
@ EProcessingUnitFeatures_Feature_AVX2
Definition AlgorithmBase.h:44
@ EProcessingUnitFeatures_Hip
Definition AlgorithmBase.h:65
@ EProcessingUnitFeatures_CPU_Multi_AVX2
Definition AlgorithmBase.h:60
@ EProcessingUnitFeatures_None
Definition AlgorithmBase.h:48
@ EProcessingUnitFeatures_CPU_Multi_SSE4
Definition AlgorithmBase.h:58
@ EProcessingUnitFeatures_Feature_SerialProcessing
Definition AlgorithmBase.h:35
@ EProcessingUnitFeatures_Feature_SSE4
Definition AlgorithmBase.h:42
@ EProcessingUnitFeatures_Feature_CPU
Definition AlgorithmBase.h:28
@ EProcessingUnitFeatures_CPU_Multi_Naive
Definition AlgorithmBase.h:56
@ EProcessingUnitFeatures_Feature_Hip
Definition AlgorithmBase.h:32
@ EProcessingUnitFeatures_CPU_SSE4
Definition AlgorithmBase.h:52
@ EProcessingUnitFeatures_Feature_Naive
Definition AlgorithmBase.h:40
@ EProcessingUnitFeatures_CPU_Naive
Definition AlgorithmBase.h:50
@ EProcessingUnitFeatures_CPU_AVX2
Definition AlgorithmBase.h:54
@ EProcessingUnitFeatures_Feature_ParallelProcessing
Definition AlgorithmBase.h:37