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
93172bab
Commit
93172bab
authored
Aug 17, 2012
by
Vladislav Vinogradov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added --cpu flag (run tests on CPU)
parent
00546f24
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
52 deletions
+74
-52
main.cpp
modules/gpu/perf/main.cpp
+70
-52
perf_utility.cpp
modules/gpu/perf/perf_utility.cpp
+2
-0
perf_utility.hpp
modules/gpu/perf/perf_utility.hpp
+2
-0
No files found.
modules/gpu/perf/main.cpp
View file @
93172bab
#include "perf_precomp.hpp"
#ifdef HAVE_CUDA
using
namespace
std
;
using
namespace
cv
;
using
namespace
cv
::
gpu
;
using
namespace
cvtest
;
using
namespace
testing
;
void
printInfo
()
void
print
Os
Info
()
{
#if defined _WIN32
# if defined _WIN64
puts
(
"OS: Windows x64"
)
;
cout
<<
"OS: Windows x64
\n
"
<<
endl
;
# else
puts
(
"OS: Windows x32"
)
;
cout
<<
"OS: Windows x32
\n
"
<<
endl
;
# endif
#elif defined linux
# if defined _LP64
puts
(
"OS: Linux x64"
)
;
cout
<<
"OS: Linux x64
\n
"
<<
endl
;
# else
puts
(
"OS: Linux x32"
)
;
cout
<<
"OS: Linux x32
\n
"
<<
endl
;
# endif
#elif defined __APPLE__
# if defined _LP64
puts
(
"OS: Apple x64"
)
;
cout
<<
"OS: Apple x64
\n
"
<<
endl
;
# else
puts
(
"OS: Apple x32"
)
;
cout
<<
"OS: Apple x32
\n
"
<<
endl
;
# endif
#endif
}
void
printCudaInfo
()
{
#ifndef HAVE_CUDA
cout
<<
"OpenCV was built without CUDA support
\n
"
<<
endl
;
#else
int
driver
;
cudaDriverGetVersion
(
&
driver
);
printf
(
"CUDA Driver version: %d
\n
"
,
driver
)
;
printf
(
"CUDA Runtime version: %d
\n
"
,
CUDART_VERSION
)
;
cout
<<
"CUDA Driver version: "
<<
driver
<<
'\n'
;
cout
<<
"CUDA Runtime version: "
<<
CUDART_VERSION
<<
'\n'
;
puts
(
"GPU module was compiled for the following GPU archs:"
);
printf
(
" BIN: %s
\n
"
,
CUDA_ARCH_BIN
);
printf
(
" PTX: %s
\n\n
"
,
CUDA_ARCH_PTX
);
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
();
printf
(
"CUDA device count: %d
\n\n
"
,
deviceCount
);
cout
<<
"CUDA device count: "
<<
deviceCount
<<
'\n'
;
cout
<<
endl
;
for
(
int
i
=
0
;
i
<
deviceCount
;
++
i
)
{
DeviceInfo
info
(
i
);
printf
(
"Device %d:
\n
"
,
i
)
;
printf
(
" Name: %s
\n
"
,
info
.
name
().
c_str
())
;
printf
(
" Compute capability version: %d.%d
\n
"
,
info
.
majorVersion
(),
info
.
minorVersion
())
;
printf
(
" Multi Processor Count: %d
\n
"
,
info
.
multiProcessorCount
())
;
printf
(
" Total memory: %d Mb
\n
"
,
static_cast
<
int
>
(
static_cast
<
int
>
(
info
.
totalMemory
()
/
1024.0
)
/
1024.0
))
;
printf
(
" Free memory: %d Mb
\n
"
,
static_cast
<
int
>
(
static_cast
<
int
>
(
info
.
freeMemory
()
/
1024.0
)
/
1024.0
))
;
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
<
int
>
(
static_cast
<
int
>
(
info
.
totalMemory
()
/
1024.0
)
/
1024.0
)
<<
" Mb
\n
"
;
cout
<<
"
\t
Free memory: "
<<
static_cast
<
int
>
(
static_cast
<
int
>
(
info
.
freeMemory
()
/
1024.0
)
/
1024.0
)
<<
" Mb
\n
"
;
if
(
!
info
.
isCompatible
())
puts
(
" !!! This device is NOT compatible with current GPU module build
\n
"
);
printf
(
"
\n
"
);
cout
<<
"
\t
!!! This device is NOT compatible with current GPU module build
\n
"
;
cout
<<
endl
;
}
#endif
}
int
main
(
int
argc
,
char
**
argv
)
{
CommandLineParser
parser
(
argc
,
(
const
char
**
)
argv
,
"{ print_info_only | print_info_only | false | Print information about system and exit }"
"{ device | device | 0 | Device on which tests will be executed }"
);
CommandLineParser
cmd
(
argc
,
argv
,
"{ print_info_only | print_info_only | false | Print information about system and exit }"
"{ device | device | 0 | Device on which tests will be executed }"
"{ cpu | cpu | false | Run tests on cpu }"
);
printInfo
();
printOsInfo
();
printCudaInfo
();
if
(
parser
.
get
<
bool
>
(
"print_info_only"
))
if
(
cmd
.
get
<
bool
>
(
"print_info_only"
))
return
0
;
int
device
=
parser
.
get
<
int
>
(
"device"
);
int
device
=
cmd
.
get
<
int
>
(
"device"
);
bool
cpu
=
cmd
.
get
<
bool
>
(
"cpu"
);
#ifndef HAVE_CUDA
cpu
=
true
;
#endif
if
(
device
<
0
||
device
>=
getCudaEnabledDeviceCount
()
)
if
(
cpu
)
{
cerr
<<
"Incorrect device number - "
<<
device
<<
endl
;
return
-
1
;
}
runOnGpu
=
false
;
DeviceInfo
info
(
device
);
if
(
!
info
.
isCompatible
())
{
cerr
<<
"Device "
<<
device
<<
" ["
<<
info
.
name
()
<<
"] is NOT compatible with current GPU module build"
<<
endl
;
return
-
1
;
cout
<<
"Run tests on CPU
\n
"
<<
endl
;
}
else
{
runOnGpu
=
true
;
std
::
cout
<<
"Run tests on device "
<<
device
<<
'\n'
<<
std
::
endl
;
if
(
device
<
0
||
device
>=
getCudaEnabledDeviceCount
())
{
cerr
<<
"Incorrect device index - "
<<
device
<<
endl
;
return
-
1
;
}
setDevice
(
device
);
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
;
}
testing
::
InitGoogleTest
(
&
argc
,
argv
);
perf
::
TestBase
::
Init
(
argc
,
argv
);
return
RUN_ALL_TESTS
();
return
0
;
}
#else
int
main
()
{
printf
(
"OpenCV was built without CUDA support
\n
"
);
return
0
;
}
#endif
modules/gpu/perf/perf_utility.cpp
View file @
93172bab
...
...
@@ -4,6 +4,8 @@ using namespace std;
using
namespace
cv
;
using
namespace
cv
::
gpu
;
bool
runOnGpu
=
true
;
void
fillRandom
(
Mat
&
m
,
double
a
,
double
b
)
{
RNG
rng
(
123456789
);
...
...
modules/gpu/perf/perf_utility.hpp
View file @
93172bab
...
...
@@ -6,6 +6,8 @@
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/ts/ts_perf.hpp"
extern
bool
runOnGpu
;
void
fillRandom
(
cv
::
Mat
&
m
,
double
a
=
0.0
,
double
b
=
255.0
);
cv
::
Mat
readImage
(
const
std
::
string
&
fileName
,
int
flags
=
cv
::
IMREAD_COLOR
);
...
...
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