Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
f5d6367e
Commit
f5d6367e
authored
Oct 09, 2012
by
marina.kolpakova
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GPU module performance tests are aligned with other OpenCV pefrofmance tests
parent
10f10044
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
54 additions
and
71 deletions
+54
-71
perf_labeling.cpp
modules/gpu/perf/perf_labeling.cpp
+5
-1
perf_main.cpp
modules/gpu/perf/perf_main.cpp
+2
-70
utility.hpp
modules/gpu/perf/utility.hpp
+11
-0
ts_perf.hpp
modules/ts/include/opencv2/ts/ts_perf.hpp
+13
-0
ts_perf.cpp
modules/ts/src/ts_perf.cpp
+23
-0
No files found.
modules/gpu/perf/perf_labeling.cpp
View file @
f5d6367e
...
...
@@ -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
);
}
}
...
...
modules/gpu/perf/perf_main.cpp
View file @
f5d6367e
#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
)
\ No newline at end of file
modules/gpu/perf/utility.hpp
View file @
f5d6367e
...
...
@@ -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__
modules/ts/include/opencv2/ts/ts_perf.hpp
View file @
f5d6367e
...
...
@@ -205,6 +205,19 @@ private:
#define SANITY_CHECK_KEYPOINTS(array, ...) ::perf::Regression::addKeypoints(this, #array, array , ## __VA_ARGS__)
#define SANITY_CHECK_MATCHES(array, ...) ::perf::Regression::addMatches(this, #array, array , ## __VA_ARGS__)
#ifdef HAVE_CUDA
//#error "CUDA"
class
CV_EXPORTS
GpuPerf
{
public
:
static
bool
targetDevice
();
};
# define PERF_RUN_GPU() ::perf::GpuPerf::targetDevice()
#else
# define PERF_RUN_GPU()
#endif
/*****************************************************************************************\
* Container for performance metrics *
...
...
modules/ts/src/ts_perf.cpp
View file @
f5d6367e
...
...
@@ -26,6 +26,9 @@ const std::string command_line_keys =
#endif
"{ perf_max_deviation |1.0 |}"
"{ help h | |print help info}"
#ifdef HAVE_CUDA
"{ perf_run_cpu |false |run GPU performance tests for analogy CPU functions}"
#endif
;
static
double
param_max_outliers
;
...
...
@@ -36,10 +39,15 @@ static uint64 param_seed;
static
double
param_time_limit
;
static
int
param_tbb_nthreads
;
static
bool
param_write_sanity
;
#ifdef HAVE_CUDA
static
bool
param_run_cpu
;
#endif
#ifdef ANDROID
static
int
param_affinity_mask
;
static
bool
log_power_checkpoints
;
#include <sys/syscall.h>
#include <pthread.h>
static
void
setCurrentThreadAffinityMask
(
int
mask
)
...
...
@@ -608,6 +616,10 @@ void TestBase::Init(int argc, const char* const argv[])
log_power_checkpoints
=
args
.
has
(
"perf_log_power_checkpoints"
);
#endif
#ifdef HAVE_CUDA
param_run_cpu
=
args
.
has
(
"perf_run_cpu"
);
#endif
if
(
!
args
.
check
())
{
args
.
printErrors
();
...
...
@@ -1185,6 +1197,17 @@ TestBase::_declareHelper::_declareHelper(TestBase* t) : test(t)
{
}
/*****************************************************************************************\
* ::perf::GpuPerf
\*****************************************************************************************/
#ifdef HAVE_CUDA
bool
perf
::
GpuPerf
::
targetDevice
()
{
return
!
param_run_cpu
;
}
#endif
/*****************************************************************************************\
* ::perf::PrintTo
\*****************************************************************************************/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment