diff --git a/modules/gpu/perf/perf_main.cpp b/modules/gpu/perf/perf_main.cpp index 4a7dd77952..75a070a53b 100644 --- a/modules/gpu/perf/perf_main.cpp +++ b/modules/gpu/perf/perf_main.cpp @@ -6,71 +6,6 @@ using namespace cv::gpu; using namespace cvtest; using namespace testing; -void printOsInfo() -{ -#if defined _WIN32 -# if defined _WIN64 - cout << "OS: Windows x64 \n" << endl; -# else - cout << "OS: Windows x32 \n" << endl; -# endif -#elif defined linux -# if defined _LP64 - cout << "OS: Linux x64 \n" << endl; -# else - cout << "OS: Linux x32 \n" << endl; -# endif -#elif defined __APPLE__ -# if defined _LP64 - cout << "OS: Apple x64 \n" << endl; -# else - cout << "OS: Apple x32 \n" << endl; -# endif -#endif -} - -void printCudaInfo() -{ -#if !defined HAVE_CUDA || defined(CUDA_DISABLER) - cout << "OpenCV was built without CUDA support \n" << endl; -#else - int driver; - cudaDriverGetVersion(&driver); - - cout << "CUDA Driver version: " << driver << '\n'; - cout << "CUDA Runtime version: " << CUDART_VERSION << '\n'; - - cout << endl; - - cout << "GPU module was compiled for the following GPU archs:" << endl; - cout << " BIN: " << CUDA_ARCH_BIN << '\n'; - cout << " PTX: " << CUDA_ARCH_PTX << '\n'; - - cout << endl; - - int deviceCount = getCudaEnabledDeviceCount(); - cout << "CUDA device count: " << deviceCount << '\n'; - - cout << endl; - - for (int i = 0; i < deviceCount; ++i) - { - DeviceInfo info(i); - - cout << "Device [" << i << "] \n"; - cout << "\t Name: " << info.name() << '\n'; - cout << "\t Compute capability: " << info.majorVersion() << '.' << info.minorVersion()<< '\n'; - cout << "\t Multi Processor Count: " << info.multiProcessorCount() << '\n'; - cout << "\t Total memory: " << static_cast(static_cast(info.totalMemory() / 1024.0) / 1024.0) << " Mb \n"; - cout << "\t Free memory: " << static_cast(static_cast(info.freeMemory() / 1024.0) / 1024.0) << " Mb \n"; - if (!info.isCompatible()) - cout << "\t !!! This device is NOT compatible with current GPU module build \n"; - - cout << endl; - } -#endif -} - int main(int argc, char** argv) { const std::string keys = @@ -88,8 +23,8 @@ int main(int argc, char** argv) return 0; } - printOsInfo(); - printCudaInfo(); + ts::printOsInfo(); + ts::printCudaInfo(); if (cmd.has("info")) diff --git a/modules/gpu/perf/utility.cpp b/modules/gpu/perf/utility.cpp index 3be162b933..0c8c926176 100644 --- a/modules/gpu/perf/utility.cpp +++ b/modules/gpu/perf/utility.cpp @@ -191,3 +191,68 @@ void PrintTo(const CvtColorInfo& info, ostream* os) *os << str[info.code]; } + +void ts::printOsInfo() +{ +#if defined _WIN32 +# if defined _WIN64 + cout << "OS: Windows x64 \n" << endl; +# else + cout << "OS: Windows x32 \n" << endl; +# endif +#elif defined linux +# if defined _LP64 + cout << "OS: Linux x64 \n" << endl; +# else + cout << "OS: Linux x32 \n" << endl; +# endif +#elif defined __APPLE__ +# if defined _LP64 + cout << "OS: Apple x64 \n" << endl; +# else + cout << "OS: Apple x32 \n" << endl; +# endif +#endif +} + +void ts::printCudaInfo() +{ +#if !defined HAVE_CUDA || defined(CUDA_DISABLER) + cout << "OpenCV was built without CUDA support \n" << endl; +#else + int driver; + cudaDriverGetVersion(&driver); + + cout << "CUDA Driver version: " << driver << '\n'; + cout << "CUDA Runtime version: " << CUDART_VERSION << '\n'; + + cout << endl; + + cout << "GPU module was compiled for the following GPU archs:" << endl; + cout << " BIN: " << CUDA_ARCH_BIN << '\n'; + cout << " PTX: " << CUDA_ARCH_PTX << '\n'; + + cout << endl; + + int deviceCount = getCudaEnabledDeviceCount(); + cout << "CUDA device count: " << deviceCount << '\n'; + + cout << endl; + + for (int i = 0; i < deviceCount; ++i) + { + DeviceInfo info(i); + + cout << "Device [" << i << "] \n"; + cout << "\t Name: " << info.name() << '\n'; + cout << "\t Compute capability: " << info.majorVersion() << '.' << info.minorVersion()<< '\n'; + cout << "\t Multi Processor Count: " << info.multiProcessorCount() << '\n'; + cout << "\t Total memory: " << static_cast(static_cast(info.totalMemory() / 1024.0) / 1024.0) << " Mb \n"; + cout << "\t Free memory: " << static_cast(static_cast(info.freeMemory() / 1024.0) / 1024.0) << " Mb \n"; + if (!info.isCompatible()) + cout << "\t !!! This device is NOT compatible with current GPU module build \n"; + + cout << endl; + } +#endif +} diff --git a/modules/gpu/perf/utility.hpp b/modules/gpu/perf/utility.hpp index f1ca244d7f..e3b5fe6e4a 100644 --- a/modules/gpu/perf/utility.hpp +++ b/modules/gpu/perf/utility.hpp @@ -48,5 +48,9 @@ DEF_PARAM_TEST(Sz_Depth_Cn, cv::Size, MatDepth, MatCn); #define GPU_TYPICAL_MAT_SIZES testing::Values(perf::sz720p, perf::szSXGA, perf::sz1080p) +namespace ts { + void printOsInfo(); + void printCudaInfo(); +} #endif // __OPENCV_PERF_GPU_UTILITY_HPP__