From 04709a2793e252f820015650f965d6d4bc16bdea Mon Sep 17 00:00:00 2001 From: Alexey Spizhevoy Date: Tue, 15 Feb 2011 13:25:24 +0000 Subject: [PATCH] refactoring of GPU module --- modules/gpu/include/opencv2/gpu/gpu.hpp | 15 ++++++---- .../{multi_gpu_mgr.cpp => multi_gpu_manager.cpp} | 32 +++++++++++----------- samples/gpu/multi.cpp | 2 +- samples/gpu/stereo_multi.cpp | 2 +- 4 files changed, 27 insertions(+), 24 deletions(-) rename modules/gpu/src/{multi_gpu_mgr.cpp => multi_gpu_manager.cpp} (81%) diff --git a/modules/gpu/include/opencv2/gpu/gpu.hpp b/modules/gpu/include/opencv2/gpu/gpu.hpp index a112755..029c029 100644 --- a/modules/gpu/include/opencv2/gpu/gpu.hpp +++ b/modules/gpu/include/opencv2/gpu/gpu.hpp @@ -76,6 +76,8 @@ namespace cv NATIVE_DOUBLE = FEATURE_SET_COMPUTE_13 }; + // Gives information about what GPU archs this OpenCV GPU module was + // compiled for class CV_EXPORTS TargetArchs { public: @@ -91,6 +93,7 @@ namespace cv TargetArchs(); }; + // Gives information about the given GPU class CV_EXPORTS DeviceInfo { public: @@ -132,11 +135,11 @@ namespace cv /////////////////////////// Multi GPU Manager ////////////////////////////// // Provides functionality for working with many GPUs - class CV_EXPORTS MultiGpuMgr + class CV_EXPORTS MultiGpuManager { public: - MultiGpuMgr(); - ~MultiGpuMgr(); + MultiGpuManager(); + ~MultiGpuManager(); // Must be called before any other GPU calls void init(); @@ -144,14 +147,14 @@ namespace cv // Makes the given GPU active void gpuOn(int gpu_id); - // Finishes the piece of work with the current GPU + // Finishes the piece of work on the current GPU void gpuOff(); static const int BAD_GPU_ID = -1; private: - void operator=(const MultiGpuMgr&); - MultiGpuMgr(const MultiGpuMgr&); + void operator=(const MultiGpuManager&); + MultiGpuManager(const MultiGpuManager&); class Impl; Ptr impl_; diff --git a/modules/gpu/src/multi_gpu_mgr.cpp b/modules/gpu/src/multi_gpu_manager.cpp similarity index 81% rename from modules/gpu/src/multi_gpu_mgr.cpp rename to modules/gpu/src/multi_gpu_manager.cpp index b251366..68bab7e 100644 --- a/modules/gpu/src/multi_gpu_mgr.cpp +++ b/modules/gpu/src/multi_gpu_manager.cpp @@ -46,17 +46,17 @@ 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 #include #include @@ -67,7 +67,7 @@ using namespace std; namespace cv { namespace gpu { -class MultiGpuMgr::Impl +class MultiGpuManager::Impl { public: Impl(); @@ -81,7 +81,7 @@ public: 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])); } @@ -103,7 +103,7 @@ private: }; -MultiGpuMgr::Impl::Impl(): num_devices_(0) +MultiGpuManager::Impl::Impl(): num_devices_(0) { num_devices_ = getCudaEnabledDeviceCount(); contexts_.resize(num_devices_); @@ -121,28 +121,28 @@ MultiGpuMgr::Impl::Impl(): num_devices_(0) } -MultiGpuMgr::MultiGpuMgr() {} -MultiGpuMgr::~MultiGpuMgr() {} +MultiGpuManager::MultiGpuManager() {} +MultiGpuManager::~MultiGpuManager() {} -void MultiGpuMgr::init() +void MultiGpuManager::init() { impl_ = Ptr(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(); } diff --git a/samples/gpu/multi.cpp b/samples/gpu/multi.cpp index 447816d..e02a490 100644 --- a/samples/gpu/multi.cpp +++ b/samples/gpu/multi.cpp @@ -36,7 +36,7 @@ using namespace cv::gpu; struct Worker { void operator()(int device_id) const; }; -MultiGpuMgr multi_gpu_mgr; +MultiGpuManager multi_gpu_mgr; int main() { diff --git a/samples/gpu/stereo_multi.cpp b/samples/gpu/stereo_multi.cpp index 6e6cfe5..54dcf3b 100644 --- a/samples/gpu/stereo_multi.cpp +++ b/samples/gpu/stereo_multi.cpp @@ -38,7 +38,7 @@ using namespace cv::gpu; struct Worker { void operator()(int device_id) const; }; -MultiGpuMgr multi_gpu_mgr; +MultiGpuManager multi_gpu_mgr; // GPUs data GpuMat d_left[2]; -- 2.7.4