Commit Graph

83 Commits

Author SHA1 Message Date
Arnaud Brejeon
636ab095b0 Merge pull request #8535 from arnaudbrejeon:std_array
Add support for std::array<T, N> (#8535)

* Add support for std::array<T, N>

* Add std::array<Mat, N> support

* Remove UMat constructor with std::array parameter
2017-04-19 13:13:39 +03:00
insoow
2922738b6d Merge pull request #8104 from insoow:master
Gemm kernels for Intel GPU (#8104)

* Fix an issue with Kernel object reset release when consecutive Kernel::run calls

Kernel::run launch OCL gpu kernels and set a event callback function
to decreate the ref count of UMat or remove UMat when the lauched workloads
are completed. However, for some OCL kernels requires multiple call of
Kernel::run function with some kernel parameter changes (e.g., input
and output buffer offset) to get the final computation result.
In the case, the current implementation requires unnecessary
synchronization and cleanupMat.

This fix requires the user to specify whether there will be more work or not.
If there is no remaining computation, the Kernel::run will reset the
kernel object

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* GEMM kernel optimization for Intel GEN

The optimized kernels uses cl_intel_subgroups extension for better
performance.

Note: This optimized kernels will be part of ISAAC in a code generation
way under MIT license.

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* Fix API compatibility error

This patch fixes a OCV API compatibility error. The error was reported
due to the interface changes of Kernel::run. To resolve the issue,
An overloaded function of Kernel::run is added. It take a flag indicating
whether there are more work to be done with the kernel object without
releasing resources related to it.

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* Renaming intel_gpu_gemm.cpp to intel_gpu_gemm.inl.hpp

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* Revert "Fix API compatibility error"

This reverts commit 2ef427db91.

Conflicts:
	modules/core/src/intel_gpu_gemm.inl.hpp

* Revert "Fix an issue with Kernel object reset release when consecutive Kernel::run calls"

This reverts commit cc7f9f5469.

* Fix the case of uninitialization D

When C is null and beta is non-zero, D is used without initialization.
This resloves the issue

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* fix potential output error due to 0 * nan

Signed-off-by: Woo, Insoo <insoo.woo@intel.com>

* whitespace fix, eliminate non-ASCII symbols

* fix build warning
2017-04-19 12:57:54 +03:00
Pavel Vlasov
30a6cee2fe Instrumentation for OpenCV API regions and IPP functions; 2016-08-19 18:10:03 +03:00
Vladislav Sovrasov
055f5c7395 Change names of some internal functions 2016-06-07 10:58:12 +03:00
Vladislav Sovrasov
a2d0cc878c Implement internal HAL for GEMM and matrix decompositions 2016-06-03 10:38:30 +03:00
Julien Nabet
a29c814bd8 cppcheck: fix some reports
All of these: (performance) Prefer prefix ++/-- operators for non-primitive types.
[modules/calib3d/src/fundam.cpp:1049] -> [modules/calib3d/src/fundam.cpp:1049]: (style) Same expression on both sides of '&&'.
2016-04-29 15:41:39 +02:00
Maksim Shabunin
6e9d0d9a0c Visual Studio 2015 warning and test fixes 2015-10-20 12:48:37 +03:00
Pavel Vlasov
89eee6ca99 Fixes for IPP integration:
dotProd_16s - disabled for IPP 9.0.0;
filter2D - fixed kernel preparation;
morphology - conditions fix and disabled FilterMin and FilterMax for IPP 9.0.0;
GaussianBlur - disabled for CV_8UC1 due to buffer overflow;
integral - disabled for IPP 9.0.0;

IppAutoBuffer class was added;
2015-10-12 10:51:28 +03:00
Pavel Vlasov
14b006e808 IPP_VERSION_X100 was changed to:
IPP_VERSION_MAJOR * 100 + IPP_VERSION_MINOR*10 + IPP_VERSION_UPDATE
to manage changes between updates more easily.

IPP_DISABLE_BLOCK was added to ease tracking of disabled IPP functions;
2015-09-25 17:50:15 +03:00
Vadim Pisarevsky
0746ec7035 fixed http://code.opencv.org/issues/4278 2015-04-29 11:58:49 +03:00
Alexander Alekhin
0a07d780e0 ocl: OpenCL SVM support 2015-01-23 20:37:45 +03:00
Ilya Lavrenov
fc0869735d used popcnt 2015-01-12 10:59:30 +03:00
Ilya Lavrenov
f57136fd79 SSE2 cv::Mat::dot 2014-12-30 00:34:09 +03:00
ElenaGvozdeva
65b8a1cb37 Some small fixes 2014-10-27 14:38:22 +03:00
Elena Gvozdeva
c5a2879ce0 use vectors 2014-10-27 14:38:22 +03:00
Elena Gvozdeva
2d89df1804 use local memory 2014-10-27 14:38:21 +03:00
Elena Gvozdeva
d78bc3c321 naive implementation 2014-10-27 14:38:21 +03:00
vbystricky
8466911ad0 Move _dst.create() to the begining of scaleAdd function 2014-10-24 18:27:47 +04:00
Pavel Vlasov
45958eaabc Implementation detector and selector for IPP and OpenCL;
IPP can be switched on and off on runtime;

Optional implementation collector was added (switched off by default in CMake). Gathers data of implementation used in functions and report this info through performance TS;

TS modifications for implementations control;
2014-10-15 14:24:41 +04:00
Ilya Lavrenov
4babecf3b0 fixes for cv::addWeighted and cv::Mat::dot 2014-10-09 12:55:52 +00:00
Ilya Lavrenov
34a571d37f cv::Mat::dot 2014-09-28 05:00:22 -07:00
Ilya Lavrenov
5d018c090f Neon optimization of cv::scaleAdd (CV_32F) 2014-09-23 21:16:29 +04:00
Leszek Swirski
de806330fd Fix reallocation of D buffer in gemm 2014-08-14 15:54:54 +01:00
Vadim Pisarevsky
257463719b removed optim module; moved its functionality to core and photo modules; moved drawing functions from core to imgproc. Removed FilterEngine etc. from public API 2014-08-14 12:50:07 +04:00
Adil Ibragimov
8a4a1bb018 Several type of formal refactoring:
1. someMatrix.data -> someMatrix.prt()
2. someMatrix.data + someMatrix.step * lineIndex -> someMatrix.ptr( lineIndex )
3. (SomeType*) someMatrix.data -> someMatrix.ptr<SomeType>()
4. someMatrix.data -> !someMatrix.empty() ( or !someMatrix.data -> someMatrix.empty() ) in logical expressions
2014-08-13 15:21:35 +04:00
Alexander Karsakov
713ddb89bd Set minimum matrix size for AmdBlas::gemm to 20 since it works incorrect for small sizes 2014-08-12 18:02:29 +04:00
Vadim Pisarevsky
e2f24f43c9 added some basic functionality needed by the new face module (moved from the old "contrib") 2014-08-10 01:54:16 +04:00
Alexander Alekhin
55188fe991 world fix 2014-08-05 20:12:35 +04:00
Roman Donchenko
ed1c56e063 Merge pull request #2817 from bf:patch-1 2014-06-09 15:06:07 +04:00
Benjamin Flesch
62533d0d26 perspectiveTransform simplify assert() for better debuggin
When using perspectiveTransform in rather complicated settings, it would be easier for developers to have two separate assertions for each part of the boolean expression in order to pinpoint problems more efficiently. In my case I am struggling in Python2.7 with finding out whether scn+1 == m.cols or the depth == CV_32F || depth == CV_64F is making a problem, which is kind of hard.
2014-06-02 00:27:32 +02:00
Ilya Lavrenov
15738bf7ef multiple rows in KF kernel 2014-05-26 12:19:06 +03:00
Ilya Lavrenov
d16e0b377f disabled IPP functions that slower than OpenCV 2014-05-13 15:06:38 +04:00
Ilya Lavrenov
6f9ca3d77c fixed some errors 2014-04-17 11:08:02 +04:00
Ilya Lavrenov
ce0941160e added status check 2014-04-17 11:08:02 +04:00
Ilya Lavrenov
444ab0ef0d fixed (IppiSize&)sz 2014-04-09 00:19:56 +04:00
Ilya Lavrenov
c735594178 cv::scaleAdd 2014-04-09 00:12:48 +04:00
Ilya Lavrenov
fd3a6f0db7 cv::blur 2014-04-09 00:11:28 +04:00
vbystricky
dbdc476b79 Check results of ipp function 2014-04-07 14:31:34 +04:00
vbystricky
1b3651d8ee Undo changes ipp to ippicv prefix of function names 2014-04-07 14:30:03 +04:00
vbystricky
ad23ef2a42 Remove unused #include "ippverdion.h" 2014-04-07 14:26:49 +04:00
vbystricky
01a66a2938 Prepare codes for ippicv library 2014-04-07 14:24:05 +04:00
Ilya Lavrenov
f138b613b7 cv::compare 2014-03-12 13:16:33 +04:00
Ilya Lavrenov
2755ae5df9 experiments 2014-03-11 23:03:55 +04:00
Ilya Lavrenov
fe38aab84a core tapi optimization 2014-02-25 14:14:42 +04:00
Ilya Lavrenov
7f785e0a11 refactored core using new macro 2014-01-24 23:59:00 +04:00
Ilya Lavrenov
6b64257c81 added OpenCL version of cv::scaleAdd 2013-12-29 18:46:25 +04:00
Ilya Lavrenov
fc1f9ab236 removed unnecessary data copying 2013-12-26 17:13:26 +04:00
Ilya Lavrenov
2f34bb9aa0 added cv::gemm to T-API 2013-12-16 19:12:27 +04:00
Roman Donchenko
79457f8f49 Merge pull request #1224 from mbarnach:pca_io 2013-09-03 18:43:54 +04:00
Roman Donchenko
f76dd99299 Merge remote-tracking branch 'origin/2.4' into merge-2.4
Conflicts:
	cmake/OpenCVModule.cmake
	doc/tutorials/calib3d/camera_calibration/camera_calibration.rst
	doc/tutorials/features2d/feature_detection/feature_detection.rst
	doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.rst
	doc/tutorials/features2d/feature_homography/feature_homography.rst
	modules/core/include/opencv2/core/operations.hpp
	modules/core/src/arithm.cpp
	modules/gpu/perf/perf_video.cpp
	modules/imgproc/include/opencv2/imgproc/imgproc.hpp
	modules/java/generator/gen_java.py
	modules/java/generator/src/cpp/VideoCapture.cpp
	modules/nonfree/src/opencl/surf.cl
	modules/ocl/include/opencv2/ocl/ocl.hpp
	modules/ocl/perf/perf_haar.cpp
	modules/ocl/perf/perf_precomp.hpp
	modules/ocl/src/color.cpp
	modules/ocl/src/filtering.cpp
	modules/ocl/test/test_color.cpp
	modules/ocl/test/test_objdetect.cpp
	modules/python/src2/cv2.cpp
	samples/gpu/CMakeLists.txt
	samples/gpu/super_resolution.cpp
2013-08-19 19:02:36 +04:00