GPU module performance tests are aligned with other OpenCV pefrofmance tests
This commit is contained in:
@@ -106,7 +106,7 @@ PERF_TEST_P(Image, Labeling_ConnectedComponents, Values<string>("gpu/labeling/al
|
||||
|
||||
cv::Mat image = readImage(GetParam(), cv::IMREAD_GRAYSCALE);
|
||||
|
||||
if (runOnGpu)
|
||||
if (PERF_RUN_GPU())
|
||||
{
|
||||
cv::gpu::GpuMat mask;
|
||||
mask.create(image.rows, image.cols, CV_8UC1);
|
||||
@@ -122,6 +122,8 @@ PERF_TEST_P(Image, Labeling_ConnectedComponents, Values<string>("gpu/labeling/al
|
||||
{
|
||||
cv::gpu::labelComponents(mask, components);
|
||||
}
|
||||
|
||||
GPU_SANITY_CHECK(components);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -135,6 +137,8 @@ PERF_TEST_P(Image, Labeling_ConnectedComponents, Values<string>("gpu/labeling/al
|
||||
{
|
||||
host(host._labels);
|
||||
}
|
||||
|
||||
CPU_SANITY_CHECK(host._labels);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,72 +1,3 @@
|
||||
#include "perf_precomp.hpp"
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
using namespace cv::gpu;
|
||||
using namespace cvtest;
|
||||
using namespace testing;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
const std::string keys =
|
||||
"{ h help ? | | Print help}"
|
||||
"{ i info | | Print information about system and exit }"
|
||||
"{ device | 0 | Device on which tests will be executed }"
|
||||
"{ cpu | | Run tests on cpu }"
|
||||
;
|
||||
|
||||
CommandLineParser cmd(argc, (const char**) argv, keys);
|
||||
|
||||
if (cmd.has("help"))
|
||||
{
|
||||
cmd.printMessage();
|
||||
return 0;
|
||||
}
|
||||
|
||||
ts::printOsInfo();
|
||||
ts::printCudaInfo();
|
||||
|
||||
|
||||
if (cmd.has("info"))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int device = cmd.get<int>("device");
|
||||
bool cpu = cmd.has("cpu");
|
||||
#if !defined HAVE_CUDA || defined(CUDA_DISABLER)
|
||||
cpu = true;
|
||||
#endif
|
||||
|
||||
if (cpu)
|
||||
{
|
||||
runOnGpu = false;
|
||||
|
||||
cout << "Run tests on CPU \n" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
runOnGpu = true;
|
||||
|
||||
if (device < 0 || device >= getCudaEnabledDeviceCount())
|
||||
{
|
||||
cerr << "Incorrect device index - " << device << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
DeviceInfo info(device);
|
||||
if (!info.isCompatible())
|
||||
{
|
||||
cerr << "Device " << device << " [" << info.name() << "] is NOT compatible with current GPU module build" << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
setDevice(device);
|
||||
|
||||
cout << "Run tests on device " << device << " [" << info.name() << "] \n" << endl;
|
||||
}
|
||||
|
||||
InitGoogleTest(&argc, argv);
|
||||
perf::TestBase::Init(argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
||||
CV_PERF_TEST_MAIN(gpu)
|
@@ -53,4 +53,15 @@ namespace ts {
|
||||
void printCudaInfo();
|
||||
}
|
||||
|
||||
#define GPU_SANITY_CHECK(dmat, ...) \
|
||||
do{ \
|
||||
cv::Mat d##dmat(dmat); \
|
||||
SANITY_CHECK(d##dmat, ## __VA_ARGS__); \
|
||||
} while(0);
|
||||
|
||||
#define CPU_SANITY_CHECK(cmat, ...) \
|
||||
do{ \
|
||||
SANITY_CHECK(cmat, ## __VA_ARGS__); \
|
||||
} while(0);
|
||||
|
||||
#endif // __OPENCV_PERF_GPU_UTILITY_HPP__
|
||||
|
Reference in New Issue
Block a user