FLImaging 6.5.13.1
ProcessingUnitCuda.h
1#pragma once
2
11#include "ProcessingUnitBase.h"
12#include "FLArray.h"
13
15namespace FLImaging
16{
18 namespace Base
19 {
28 {
29 SupportToDuplicateObject(CProcessingUnitCuda, *this);
30
31 public:
40
51
62
71
85 virtual const CResult Assign(const CProcessingUnitCuda& pu);
86
100 virtual const CResult Assign(const CProcessingUnitCuda* pPu);
101
102 virtual const CProcessingUnitBase& operator=(const CProcessingUnitBase& pu) override;
103
104 virtual const type_info& GetTypeInfo() const override;
105
106 virtual bool IsEqual(const CProcessingUnitBase& pu) const override;
107 virtual bool IsEqual(const CProcessingUnitBase* pPu) const override;
108
120 static const CResult IsCudaAvailable();
121
135 static const CResult IsCudaImageProcessingAvailable(int32_t i32DeviceIndex);
136
150 static const CResult IsCudaDeepLearningAvailable(int32_t i32DeviceIndex);
151
162
174 static const CResult GetDeviceIndex(int32_t& i32DeviceIndex);
175
187 static const CResult SetDeviceIndex(int32_t i32DeviceIndex);
188
200 static const CResult WarmUp();
201
202
203
218
234 static const CResult SetInvolvedCudaDeviceIndices(const CFLArray<uint32_t>& flaInvolvedCudaDeviceList);
235
248
261
274
275
286
301
315 static const CResult GetAvailableCudaMemory(size_t& stAvailableCudaMemory);
316
330 static const CResult GetBusID(int32_t& i32BusID);
331
349 static const CResult GetCudaComputeCapability(int32_t i32DeviceIndex, int32_t& i32Major, int32_t& i32Minor);
350
351 /*
352 * \~English
353 * \brief Retrieves the CUDA driver version.
354 * @param[out] i32Version The value of the driver version.
355 * @retval const FLImaging::CResult Information about the result of the execution.
356 * @see FLImaging::CResult
357 *
358 * \~Korean
359 * \brief 쿠다 드라이버 버전을 얻어옵니다.
360 * @param[out] i32Version 드라이버 버전 값
361 * @retval const FLImaging::CResult 실행 결과에 대한 정보
362 * @see FLImaging::CResult
363 */
364 static const CResult GetCudaDriverVersion(int32_t& i32Version);
365
366 DeclareGetClassType();
367 };
368 }
369}
Template type array class.
Definition RangeTree.h:19
Processing unit base class.
Definition ProcessingUnitBase.h:27
Cuda Processing unit class.
Definition ProcessingUnitCuda.h:28
virtual const CResult Assign(const CProcessingUnitCuda *pPu)
Assign.
static CFLArray< uint32_t > GetInvolvedCudaDeviceIndices()
Returns indices of cuda device to involve in the operation.
static const CResult ClearInvolvedCudaDeviceIndices()
Clear indices of cuda device to involve in the operation.
CProcessingUnitCuda(const CProcessingUnitCuda *pPu)
Copy constructor (pointer)
static const CResult SetDeviceIndex(int32_t i32DeviceIndex)
Set the Cuda device index to use.
static const CResult GetCudaComputeCapability(int32_t i32DeviceIndex, int32_t &i32Major, int32_t &i32Minor)
Retrieves the Compute Capability version of the CUDA device.
static const CResult UnlockToModifyInvolvedCudaDeviceIndices()
Unlocks the state locked by the LockToModifyInvolvedCudaDeviceIndices function.
static const CResult IsCudaDeepLearningAvailable(int32_t i32DeviceIndex)
Return whether Cuda deep learning is available for actual use.
static CFLArray< uint32_t > GetPermittedCudaDeviceIndices()
Returns permitted cuda device indices.
CProcessingUnitCuda()
Default constructor.
static const CResult IsCudaImageProcessingAvailable(int32_t i32DeviceIndex)
Return whether Cuda image processing is available for actual use.
virtual ~CProcessingUnitCuda()
Destructor.
CProcessingUnitCuda(const CProcessingUnitCuda &pu)
Copy constructor (reference)
static const CResult LockToModifyInvolvedCudaDeviceIndices()
Prevents changing the index of CUDA devices involved in the computation. After calling this function,...
static const CResult GetAvailableCudaMemory(size_t &stAvailableCudaMemory)
Returns the available CUDA memory of the currently selected device.
virtual const CProcessingUnitBase & operator=(const CProcessingUnitBase &pu) override
Assignment operator.
static const CResult GetDeviceIndex(int32_t &i32DeviceIndex)
Returns the set Cuda device index.
virtual const CResult Assign(const CProcessingUnitCuda &pu)
Assign.
static const CResult IsCudaAvailable()
Return whether Cuda is available for actual use.
static const CResult WarmUp()
Function to assist in pre-processing the time taken by the Cuda module during initial loading.
static int32_t GetAvailableCudaDeviceCount()
Returns the number of available Cuda devices.
static const CResult GetBusID(int32_t &i32BusID)
Retrieves the Bus ID of the currently selected device.
static int32_t GetPermittedCudaDeviceCount()
Returns the number of allowed cuda devices.
static const CResult SetInvolvedCudaDeviceIndices(const CFLArray< uint32_t > &flaInvolvedCudaDeviceList)
Set indices of cuda device to involve in the operation.
virtual const type_info & GetTypeInfo() const override
Get type information.
FLImaging module execution result object.
Definition ResultsDef.h:1514