NATIVE_DOUBLE = FEATURE_SET_COMPUTE_13\r
};\r
\r
+ // Gives information about what GPU archs this OpenCV GPU module was \r
+ // compiled for\r
class CV_EXPORTS TargetArchs\r
{\r
public:\r
TargetArchs();\r
};\r
\r
+ // Gives information about the given GPU\r
class CV_EXPORTS DeviceInfo\r
{\r
public:\r
/////////////////////////// Multi GPU Manager //////////////////////////////\r
\r
// Provides functionality for working with many GPUs\r
- class CV_EXPORTS MultiGpuMgr\r
+ class CV_EXPORTS MultiGpuManager\r
{\r
public:\r
- MultiGpuMgr();\r
- ~MultiGpuMgr();\r
+ MultiGpuManager();\r
+ ~MultiGpuManager();\r
\r
// Must be called before any other GPU calls\r
void init();\r
// Makes the given GPU active\r
void gpuOn(int gpu_id);\r
\r
- // Finishes the piece of work with the current GPU\r
+ // Finishes the piece of work on the current GPU\r
void gpuOff();\r
\r
static const int BAD_GPU_ID = -1;\r
\r
private:\r
- void operator=(const MultiGpuMgr&);\r
- MultiGpuMgr(const MultiGpuMgr&);\r
+ void operator=(const MultiGpuManager&);\r
+ MultiGpuManager(const MultiGpuManager&);\r
\r
class Impl;\r
Ptr<Impl> impl_;\r
namespace cv { namespace gpu {
-class MultiGpuMgr::Impl {};
-MultiGpuMgr::MultiGpuMgr() { throw_nogpu(); }
-void MultiGpuMgr::init() { throw_nogpu(); }
-void MultiGpuMgr::gpuOn(int) { throw_nogpu(); }
-void MultiGpuMgr::gpuOff() { throw_nogpu(); }
+class MultiGpuManager::Impl {};
+MultiGpuManager::MultiGpuManager() { throw_nogpu(); }
+MultiGpuManager::~MultiGpuManager() { throw_nogpu(); }
+void MultiGpuManager::init() { throw_nogpu(); }
+void MultiGpuManager::gpuOn(int) { throw_nogpu(); }
+void MultiGpuManager::gpuOff() { throw_nogpu(); }
}}
#else
-#include <stack>
#include <vector>
#include <cuda.h>
namespace cv { namespace gpu {
-class MultiGpuMgr::Impl
+class MultiGpuManager::Impl
{
public:
Impl();
void gpuOn(int gpu_id)
{
if (gpu_id < 0 || gpu_id >= num_devices_)
- CV_Error(CV_StsBadArg, "MultiGpuMgr::gpuOn: GPU ID is out of range");
+ CV_Error(CV_StsBadArg, "MultiGpuManager::gpuOn: GPU ID is out of range");
cuSafeCall(cuCtxPushCurrent(contexts_[gpu_id]));
}
};
-MultiGpuMgr::Impl::Impl(): num_devices_(0)
+MultiGpuManager::Impl::Impl(): num_devices_(0)
{
num_devices_ = getCudaEnabledDeviceCount();
contexts_.resize(num_devices_);
}
-MultiGpuMgr::MultiGpuMgr() {}
-MultiGpuMgr::~MultiGpuMgr() {}
+MultiGpuManager::MultiGpuManager() {}
+MultiGpuManager::~MultiGpuManager() {}
-void MultiGpuMgr::init()
+void MultiGpuManager::init()
{
impl_ = Ptr<Impl>(new Impl());
}
-void MultiGpuMgr::gpuOn(int gpu_id)
+void MultiGpuManager::gpuOn(int gpu_id)
{
if (impl_.empty())
- CV_Error(CV_StsNullPtr, "MultiGpuMgr::gpuOn: must be initialized before any calls");
+ CV_Error(CV_StsNullPtr, "MultiGpuManager::gpuOn: must be initialized before any calls");
impl_->gpuOn(gpu_id);
}
-void MultiGpuMgr::gpuOff()
+void MultiGpuManager::gpuOff()
{
if (impl_.empty())
- CV_Error(CV_StsNullPtr, "MultiGpuMgr::gpuOff: must be initialized before any calls");
+ CV_Error(CV_StsNullPtr, "MultiGpuManager::gpuOff: must be initialized before any calls");
impl_->gpuOff();
}