Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
1b83bc48
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1b83bc48
编写于
2月 28, 2018
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dnn: make OpenCL DNN code optional
上级
24bed38c
变更
32
隐藏空白更改
内联
并排
Showing
32 changed file
with
117 addition
and
80 deletion
+117
-80
cmake/OpenCVModule.cmake
cmake/OpenCVModule.cmake
+6
-2
modules/dnn/CMakeLists.txt
modules/dnn/CMakeLists.txt
+17
-2
modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake
modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake
+3
-0
modules/dnn/src/layers/batch_norm_layer.cpp
modules/dnn/src/layers/batch_norm_layer.cpp
+3
-0
modules/dnn/src/layers/concat_layer.cpp
modules/dnn/src/layers/concat_layer.cpp
+3
-0
modules/dnn/src/layers/convolution_layer.cpp
modules/dnn/src/layers/convolution_layer.cpp
+1
-1
modules/dnn/src/layers/detection_output_layer.cpp
modules/dnn/src/layers/detection_output_layer.cpp
+3
-0
modules/dnn/src/layers/elementwise_layers.cpp
modules/dnn/src/layers/elementwise_layers.cpp
+4
-1
modules/dnn/src/layers/eltwise_layer.cpp
modules/dnn/src/layers/eltwise_layer.cpp
+3
-0
modules/dnn/src/layers/fully_connected_layer.cpp
modules/dnn/src/layers/fully_connected_layer.cpp
+1
-1
modules/dnn/src/layers/layers_common.cpp
modules/dnn/src/layers/layers_common.cpp
+1
-0
modules/dnn/src/layers/layers_common.hpp
modules/dnn/src/layers/layers_common.hpp
+1
-1
modules/dnn/src/layers/lrn_layer.cpp
modules/dnn/src/layers/lrn_layer.cpp
+1
-1
modules/dnn/src/layers/mvn_layer.cpp
modules/dnn/src/layers/mvn_layer.cpp
+4
-1
modules/dnn/src/layers/permute_layer.cpp
modules/dnn/src/layers/permute_layer.cpp
+3
-0
modules/dnn/src/layers/pooling_layer.cpp
modules/dnn/src/layers/pooling_layer.cpp
+2
-1
modules/dnn/src/layers/prior_box_layer.cpp
modules/dnn/src/layers/prior_box_layer.cpp
+3
-0
modules/dnn/src/layers/region_layer.cpp
modules/dnn/src/layers/region_layer.cpp
+3
-0
modules/dnn/src/layers/reorg_layer.cpp
modules/dnn/src/layers/reorg_layer.cpp
+3
-0
modules/dnn/src/layers/slice_layer.cpp
modules/dnn/src/layers/slice_layer.cpp
+3
-0
modules/dnn/src/layers/softmax_layer.cpp
modules/dnn/src/layers/softmax_layer.cpp
+2
-1
modules/dnn/src/ocl4dnn/include/common.hpp
modules/dnn/src/ocl4dnn/include/common.hpp
+0
-3
modules/dnn/src/ocl4dnn/include/math_functions.hpp
modules/dnn/src/ocl4dnn/include/math_functions.hpp
+0
-3
modules/dnn/src/ocl4dnn/include/ocl4dnn.hpp
modules/dnn/src/ocl4dnn/include/ocl4dnn.hpp
+3
-5
modules/dnn/src/ocl4dnn/src/common.cpp
modules/dnn/src/ocl4dnn/src/common.cpp
+1
-4
modules/dnn/src/ocl4dnn/src/math_functions.cpp
modules/dnn/src/ocl4dnn/src/math_functions.cpp
+4
-14
modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp
modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp
+6
-9
modules/dnn/src/ocl4dnn/src/ocl4dnn_inner_product.cpp
modules/dnn/src/ocl4dnn/src/ocl4dnn_inner_product.cpp
+5
-8
modules/dnn/src/ocl4dnn/src/ocl4dnn_lrn.cpp
modules/dnn/src/ocl4dnn/src/ocl4dnn_lrn.cpp
+4
-7
modules/dnn/src/ocl4dnn/src/ocl4dnn_pool.cpp
modules/dnn/src/ocl4dnn/src/ocl4dnn_pool.cpp
+4
-7
modules/dnn/src/ocl4dnn/src/ocl4dnn_softmax.cpp
modules/dnn/src/ocl4dnn/src/ocl4dnn_softmax.cpp
+4
-7
modules/dnn/src/precomp.hpp
modules/dnn/src/precomp.hpp
+16
-1
未找到文件。
cmake/OpenCVModule.cmake
浏览文件 @
1b83bc48
...
...
@@ -747,7 +747,7 @@ endmacro()
# finds and sets headers and sources for the standard OpenCV module
# Usage:
# ocv_glob_module_sources([EXCLUDE_CUDA] <extra sources&headers in the same format as used in ocv_set_module_sources>)
# ocv_glob_module_sources([EXCLUDE_CUDA]
[EXCLUDE_OPENCL]
<extra sources&headers in the same format as used in ocv_set_module_sources>)
macro
(
ocv_glob_module_sources
)
ocv_debug_message
(
"ocv_glob_module_sources("
${
ARGN
}
")"
)
set
(
_argn
${
ARGN
}
)
...
...
@@ -755,6 +755,10 @@ macro(ocv_glob_module_sources)
if
(
NOT exclude_cuda EQUAL -1
)
list
(
REMOVE_AT _argn
${
exclude_cuda
}
)
endif
()
list
(
FIND _argn
"EXCLUDE_OPENCL"
exclude_opencl
)
if
(
NOT exclude_opencl EQUAL -1
)
list
(
REMOVE_AT _argn
${
exclude_opencl
}
)
endif
()
file
(
GLOB_RECURSE lib_srcs
"
${
CMAKE_CURRENT_LIST_DIR
}
/src/*.cpp"
...
...
@@ -801,7 +805,7 @@ macro(ocv_glob_module_sources)
file
(
GLOB cl_kernels
"
${
CMAKE_CURRENT_LIST_DIR
}
/src/opencl/*.cl"
)
if
(
cl_kernels
)
if
(
cl_kernels
AND exclude_opencl EQUAL -1
)
set
(
OCL_NAME opencl_kernels_
${
name
}
)
add_custom_command
(
OUTPUT
"
${
CMAKE_CURRENT_BINARY_DIR
}
/
${
OCL_NAME
}
.cpp"
# don't add .hpp file here to optimize build process
...
...
modules/dnn/CMakeLists.txt
浏览文件 @
1b83bc48
...
...
@@ -11,6 +11,14 @@ set(the_description "Deep neural network module. It allows to load models from d
ocv_add_dispatched_file_force_all
(
"layers/layers_common"
AVX AVX2 AVX512_SKX
)
ocv_add_module
(
dnn opencv_core opencv_imgproc WRAP python matlab java js
)
ocv_option
(
OPENCV_DNN_OPENCL
"Build with OpenCL support"
HAVE_OPENCL
)
if
(
OPENCV_DNN_OPENCL AND HAVE_OPENCL
)
add_definitions
(
-DCV_OCL4DNN=1
)
else
()
ocv_cmake_hook_append
(
INIT_MODULE_SOURCES_opencv_dnn
"
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake"
)
endif
()
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wno-shadow -Wno-parentheses -Wmaybe-uninitialized -Wsign-promo
-Wmissing-declarations -Wmissing-prototypes
)
...
...
@@ -63,8 +71,15 @@ else()
set
(
fw_inc
"
${
CMAKE_CURRENT_LIST_DIR
}
/misc/caffe"
"
${
CMAKE_CURRENT_LIST_DIR
}
/misc/tensorflow"
)
endif
()
ocv_module_include_directories
(
${
fw_inc
}
${
CMAKE_CURRENT_LIST_DIR
}
/src/ocl4dnn/include
${
OPENCL_INCLUDE_DIRS
}
)
ocv_glob_module_sources
(
SOURCES
${
fw_srcs
}
)
set
(
include_dirs
${
fw_inc
}
)
set
(
sources_options
""
)
if
(
OPENCV_DNN_OPENCL AND HAVE_OPENCL
)
list
(
APPEND include_dirs
${
OPENCL_INCLUDE_DIRS
}
)
else
()
set
(
sources_options EXCLUDE_OPENCL
)
endif
()
ocv_module_include_directories
(
${
include_dirs
}
)
ocv_glob_module_sources
(
${
sources_options
}
SOURCES
${
fw_srcs
}
)
ocv_create_module
(
libprotobuf
${
LAPACK_LIBRARIES
}
)
ocv_add_samples
()
ocv_add_accuracy_tests
()
...
...
modules/dnn/cmake/hooks/INIT_MODULE_SOURCES_opencv_dnn.cmake
0 → 100644
浏览文件 @
1b83bc48
message
(
STATUS
"opencv_dnn: filter out ocl4dnn source code"
)
ocv_list_filterout
(
OPENCV_MODULE_
${
the_module
}
_SOURCES
"/ocl4dnn/"
)
ocv_list_filterout
(
OPENCV_MODULE_
${
the_module
}
_HEADERS
"/ocl4dnn/"
)
modules/dnn/src/layers/batch_norm_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -13,7 +13,10 @@ Implementation of Batch Normalization layer.
#include "op_halide.hpp"
#include "op_inf_engine.hpp"
#include <opencv2/dnn/shape_utils.hpp>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/concat_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -44,7 +44,10 @@
#include "layers_common.hpp"
#include "op_halide.hpp"
#include "op_inf_engine.hpp"
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/convolution_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -47,9 +47,9 @@
#include "opencv2/core/hal/hal.hpp"
#include "opencv2/core/hal/intrin.hpp"
#include <iostream>
#include "opencl_kernels_dnn.hpp"
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
using
namespace
cv
::
dnn
::
ocl4dnn
;
#endif
...
...
modules/dnn/src/layers/detection_output_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -46,7 +46,10 @@
#include <float.h>
#include <string>
#include "../nms.inl.hpp"
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/elementwise_layers.cpp
浏览文件 @
1b83bc48
...
...
@@ -46,9 +46,12 @@
#include "op_inf_engine.hpp"
#include "opencv2/imgproc.hpp"
#include <opencv2/dnn/shape_utils.hpp>
#include "opencl_kernels_dnn.hpp"
#include <iostream>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
namespace
dnn
...
...
modules/dnn/src/layers/eltwise_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -44,7 +44,10 @@
#include "layers_common.hpp"
#include "op_halide.hpp"
#include "op_inf_engine.hpp"
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/fully_connected_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -44,10 +44,10 @@
#include "layers_common.hpp"
#include "op_halide.hpp"
#include "op_inf_engine.hpp"
#include "opencl_kernels_dnn.hpp"
#include <opencv2/dnn/shape_utils.hpp>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
using
namespace
cv
::
dnn
::
ocl4dnn
;
#endif
...
...
modules/dnn/src/layers/layers_common.cpp
浏览文件 @
1b83bc48
...
...
@@ -40,6 +40,7 @@
//
//M*/
#include "../precomp.hpp"
#include "layers_common.hpp"
namespace
cv
...
...
modules/dnn/src/layers/layers_common.hpp
浏览文件 @
1b83bc48
...
...
@@ -52,7 +52,7 @@
#undef CV_CPU_OPTIMIZATION_DECLARATIONS_ONLY
#ifdef HAVE_OPENCL
#include "ocl4dnn.hpp"
#include "
../ocl4dnn/include/
ocl4dnn.hpp"
#endif
namespace
cv
...
...
modules/dnn/src/layers/lrn_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -47,10 +47,10 @@
#include "opencv2/imgproc.hpp"
#include "opencv2/dnn/shape_utils.hpp"
#include "opencv2/core/hal/hal.hpp"
#include "opencl_kernels_dnn.hpp"
#include <algorithm>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
using
namespace
cv
::
dnn
::
ocl4dnn
;
#endif
...
...
modules/dnn/src/layers/mvn_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -43,8 +43,11 @@
#include "../precomp.hpp"
#include "layers_common.hpp"
#include <opencv2/dnn/shape_utils.hpp>
#include "math_functions.hpp"
#ifdef HAVE_OPENCL
#include "../ocl4dnn/include/math_functions.hpp"
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/permute_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -45,7 +45,10 @@
#include "op_inf_engine.hpp"
#include <float.h>
#include <algorithm>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/pooling_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -45,12 +45,13 @@
#include "opencv2/core/hal/intrin.hpp"
#include "op_halide.hpp"
#include "op_inf_engine.hpp"
#include "opencl_kernels_dnn.hpp"
#include <float.h>
#include <algorithm>
using
std
::
max
;
using
std
::
min
;
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
using
namespace
cv
::
dnn
::
ocl4dnn
;
#endif
...
...
modules/dnn/src/layers/prior_box_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -46,7 +46,10 @@
#include <float.h>
#include <algorithm>
#include <cmath>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/region_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -44,7 +44,10 @@
#include <opencv2/dnn/shape_utils.hpp>
#include <opencv2/dnn/all_layers.hpp>
#include "nms.inl.hpp"
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/reorg_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -44,7 +44,10 @@
#include <opencv2/dnn/shape_utils.hpp>
#include <opencv2/dnn/all_layers.hpp>
#include <iostream>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/slice_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -43,7 +43,10 @@
#include "../precomp.hpp"
#include "layers_common.hpp"
#include <opencv2/dnn/shape_utils.hpp>
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
#endif
namespace
cv
{
...
...
modules/dnn/src/layers/softmax_layer.cpp
浏览文件 @
1b83bc48
...
...
@@ -44,11 +44,12 @@
#include "layers_common.hpp"
#include "op_halide.hpp"
#include "op_inf_engine.hpp"
#include "opencl_kernels_dnn.hpp"
#include <algorithm>
#include <stdlib.h>
using
std
::
max
;
#ifdef HAVE_OPENCL
#include "opencl_kernels_dnn.hpp"
using
namespace
cv
::
dnn
::
ocl4dnn
;
#endif
...
...
modules/dnn/src/ocl4dnn/include/common.hpp
浏览文件 @
1b83bc48
...
...
@@ -45,8 +45,6 @@
#include "../../caffe/glog_emulator.hpp"
#include <opencv2/core/opencl/runtime/opencl_core.hpp>
#ifdef HAVE_OPENCL
// Macro to select the single (_float) or double (_double) precision kernel
#define CL_KERNEL_SELECT(kernel) kernel "_float"
...
...
@@ -58,5 +56,4 @@
bool
clOptionSupport
(
cv
::
String
option
);
#endif // HAVE_OPENCL
#endif
modules/dnn/src/ocl4dnn/include/math_functions.hpp
浏览文件 @
1b83bc48
...
...
@@ -52,7 +52,6 @@ namespace dnn
namespace
ocl4dnn
{
#ifdef HAVE_OPENCL
enum
CBLAS_TRANSPOSE
{
CblasNoTrans
=
111
,
CblasTrans
=
112
,
CblasConjTrans
=
113
};
template
<
typename
Dtype
>
...
...
@@ -81,8 +80,6 @@ bool ocl4dnnAXPY(const int32_t N, const Dtype alpha,
const
UMat
x
,
const
int32_t
offx
,
UMat
y
,
const
int32_t
offy
);
#endif // HAVE_OPENCL
}
// namespace ocl4dnn
}
// namespace dnn
}
// namespce cv
...
...
modules/dnn/src/ocl4dnn/include/ocl4dnn.hpp
浏览文件 @
1b83bc48
...
...
@@ -51,7 +51,6 @@
#include "common.hpp"
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
#ifdef HAVE_OPENCL
struct
OCL4DNNConvConfig
{
...
...
@@ -507,8 +506,7 @@ class OCL4DNNSoftmax
bool
log_softmax_
;
UMat
scale_data_
;
};
#endif // HAVE_OPENCL
}
// namespace ocl4dnn
}
// namespace dnn
}
// namespce cv
}}}
// namespace cv::dnn::ocl4dnn
#endif
modules/dnn/src/ocl4dnn/src/common.cpp
浏览文件 @
1b83bc48
...
...
@@ -41,17 +41,14 @@
//M*/
#include "../../precomp.hpp"
#include "common.hpp"
#include "
../include/
common.hpp"
#include "opencl_kernels_dnn.hpp"
using
namespace
cv
;
#ifdef HAVE_OPENCL
bool
clOptionSupport
(
cv
::
String
option
)
{
cv
::
String
errmsg
;
ocl
::
Program
program
=
ocl
::
Context
::
getDefault
().
getProg
(
ocl
::
dnn
::
dummy_oclsrc
,
option
,
errmsg
);
return
program
.
ptr
()
?
true
:
false
;
}
#endif // HAVE_OPENCL
modules/dnn/src/ocl4dnn/src/math_functions.cpp
浏览文件 @
1b83bc48
...
...
@@ -41,19 +41,13 @@
//M*/
#include "../../precomp.hpp"
#include "common.hpp"
#include "math_functions.hpp"
#include "
../include/
common.hpp"
#include "
../include/
math_functions.hpp"
#include <vector>
#include "opencl_kernels_dnn.hpp"
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
#ifdef HAVE_OPENCL
// Create and copy buffer to image for GEMM's matrix A and B.
// Will return image to caller if the input image is NULL. Otherwise,
// will use the image directly. It's caller's responsibility to
...
...
@@ -527,8 +521,4 @@ template bool ocl4dnnAXPY<float>(const int32_t N, const float alpha,
const
UMat
X
,
const
int32_t
offX
,
UMat
Y
,
const
int32_t
offY
);
#endif // HAVE_OPENCL
}
// namespace ocl4dnn
}
// namespace dnn
}
// namespce cv
}}}
// namespace cv::dnn::ocl4dnn
modules/dnn/src/ocl4dnn/src/ocl4dnn_conv_spatial.cpp
浏览文件 @
1b83bc48
...
...
@@ -49,18 +49,17 @@
#include <fstream>
#include <sys/stat.h>
#include <assert.h>
#include "common.hpp"
#include "ocl4dnn.hpp"
#include "
../include/
common.hpp"
#include "
../include/
ocl4dnn.hpp"
#include "opencl_kernels_dnn.hpp"
#include "math_functions.hpp"
#include "default_kernel_config.hpp"
#include "
../include/
math_functions.hpp"
#include "
../include/
default_kernel_config.hpp"
#if defined WIN32 || defined _WIN32
#include <windows.h>
#include <direct.h>
#endif
#ifdef HAVE_OPENCL
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
static
cv
::
Mutex
kernelConfigMutex
;
typedef
std
::
map
<
std
::
string
,
std
::
string
>
kernel_hash_t
;
...
...
@@ -1855,7 +1854,5 @@ bool OCL4DNNConvSpatial<Dtype>::loadTunedConfig()
}
template
class
OCL4DNNConvSpatial
<
float
>;
}
// namespace ocl4dnn
}
}
#endif // HAVE_OPENCL
}}}
// namespace cv::dnn::ocl4dnn
modules/dnn/src/ocl4dnn/src/ocl4dnn_inner_product.cpp
浏览文件 @
1b83bc48
...
...
@@ -41,11 +41,10 @@
//M*/
#include "../../precomp.hpp"
#include "common.hpp"
#include "ocl4dnn.hpp"
#include "math_functions.hpp"
#include "
../include/
common.hpp"
#include "
../include/
ocl4dnn.hpp"
#include "
../include/
math_functions.hpp"
#ifdef HAVE_OPENCL
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
template
<
typename
Dtype
>
OCL4DNNInnerProduct
<
Dtype
>::
OCL4DNNInnerProduct
(
OCL4DNNInnerProductConfig
config
)
...
...
@@ -102,7 +101,5 @@ bool OCL4DNNInnerProduct<Dtype>::Forward(const UMat& bottom,
}
template
class
OCL4DNNInnerProduct
<
float
>;
}
// namespace ocl4dnn
}
}
#endif // HAVE_OPENCL
}}}
// namespace cv::dnn::ocl4dnn
modules/dnn/src/ocl4dnn/src/ocl4dnn_lrn.cpp
浏览文件 @
1b83bc48
...
...
@@ -41,11 +41,10 @@
//M*/
#include "../../precomp.hpp"
#include "common.hpp"
#include "ocl4dnn.hpp"
#include "
../include/
common.hpp"
#include "
../include/
ocl4dnn.hpp"
#include "opencl_kernels_dnn.hpp"
#ifdef HAVE_OPENCL
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
template
<
typename
Dtype
>
OCL4DNNLRN
<
Dtype
>::
OCL4DNNLRN
(
OCL4DNNLRNConfig
config
)
...
...
@@ -119,7 +118,5 @@ bool OCL4DNNLRN<Dtype>::crossChannelForward(const UMat& bottom, UMat& top)
}
template
class
OCL4DNNLRN
<
float
>;
}
// namespace ocl4dnn
}
}
#endif // HAVE_OPENCL
}}}
// namespace cv::dnn::ocl4dnn
modules/dnn/src/ocl4dnn/src/ocl4dnn_pool.cpp
浏览文件 @
1b83bc48
...
...
@@ -42,11 +42,10 @@
#include "../../precomp.hpp"
#include <string>
#include <vector>
#include "common.hpp"
#include "ocl4dnn.hpp"
#include "
../include/
common.hpp"
#include "
../include/
ocl4dnn.hpp"
#include "opencl_kernels_dnn.hpp"
#ifdef HAVE_OPENCL
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
template
<
typename
Dtype
>
OCL4DNNPool
<
Dtype
>::
OCL4DNNPool
(
OCL4DNNPoolConfig
config
)
...
...
@@ -208,7 +207,5 @@ bool OCL4DNNPool<Dtype>::Forward(const UMat& bottom,
}
template
class
OCL4DNNPool
<
float
>;
}
// namespace ocl4dnn
}
}
#endif // HAVE_OPENCL
}}}
// namespace cv::dnn::ocl4dnn
modules/dnn/src/ocl4dnn/src/ocl4dnn_softmax.cpp
浏览文件 @
1b83bc48
...
...
@@ -41,11 +41,10 @@
#include "../../precomp.hpp"
#include <vector>
#include "common.hpp"
#include "ocl4dnn.hpp"
#include "
../include/
common.hpp"
#include "
../include/
ocl4dnn.hpp"
#include "opencl_kernels_dnn.hpp"
#ifdef HAVE_OPENCL
namespace
cv
{
namespace
dnn
{
namespace
ocl4dnn
{
template
<
typename
Dtype
>
OCL4DNNSoftmax
<
Dtype
>::
OCL4DNNSoftmax
(
OCL4DNNSoftmaxConfig
config
)
...
...
@@ -130,7 +129,5 @@ bool OCL4DNNSoftmax<Dtype>::Forward(const UMat& bottom, UMat& top)
}
template
class
OCL4DNNSoftmax
<
float
>;
}
// namespace ocl4dnn
}
}
#endif // HAVE_OPENCL
}}}
// namespace cv::dnn::ocl4dnn
modules/dnn/src/precomp.hpp
浏览文件 @
1b83bc48
...
...
@@ -40,13 +40,28 @@
//M*/
#include <opencv2/core.hpp>
#include "cvconfig.h"
#ifndef CV_OCL4DNN
#define CV_OCL4DNN 0
#endif
#if CV_OCL4DNN
#ifndef HAVE_OPENCL
#error "Configuration error: re-run CMake from clean build directory"
#endif
#else
#undef HAVE_OPENCL
#endif
#include <opencv2/core/ocl.hpp>
#include <opencv2/core/opencl/ocl_defs.hpp>
#include <opencv2/core/utils/trace.hpp>
#include "cvconfig.h"
#include <opencv2/dnn.hpp>
#include <opencv2/dnn/all_layers.hpp>
namespace
cv
{
namespace
dnn
{
CV__DNN_EXPERIMENTAL_NS_BEGIN
Mutex
&
getInitializationMutex
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录