Commit Graph

87 Commits

Author SHA1 Message Date
Alexander Alekhin
5869415a57 videoio: drop obsolete backends
- VFW
- QuickTime/QtKit
- Unicap - GPL, no active support: https://github.com/unicap/unicap
- DC1394 (1st version) / CMU1394
2018-11-07 19:49:09 +03:00
WuZhiwen
6e3ea8b49d Merge pull request #12703 from wzw-intel:vkcom
* dnn: Add a Vulkan based backend

This commit adds a new backend "DNN_BACKEND_VKCOM" and a
new target "DNN_TARGET_VULKAN". VKCOM means vulkan based
computation library.

This backend uses Vulkan API and SPIR-V shaders to do
the inference computation for layers. The layer types
that implemented in DNN_BACKEND_VKCOM include:
Conv, Concat, ReLU, LRN, PriorBox, Softmax, MaxPooling,
AvePooling, Permute

This is just a beginning work for Vulkan in OpenCV DNN,
more layer types will be supported and performance
tuning is on the way.

Signed-off-by: Wu Zhiwen <zhiwen.wu@intel.com>

* dnn/vulkan: Add FindVulkan.cmake to detect Vulkan SDK

In order to build dnn with Vulkan support, need installing
Vulkan SDK and setting environment variable "VULKAN_SDK" and
add "-DWITH_VULKAN=ON" to cmake command.

You can download Vulkan SDK from:
https://vulkan.lunarg.com/sdk/home#linux

For how to install, see
https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html
https://vulkan.lunarg.com/doc/sdk/latest/windows/getting_started.html
https://vulkan.lunarg.com/doc/sdk/latest/mac/getting_started.html
respectively for linux, windows and mac.

To run the vulkan backend, also need installing mesa driver.
On Ubuntu, use this command 'sudo apt-get install mesa-vulkan-drivers'

To test, use command '$BUILD_DIR/bin/opencv_test_dnn --gtest_filter=*VkCom*'

Signed-off-by: Wu Zhiwen <zhiwen.wu@intel.com>

* dnn/Vulkan: dynamically load Vulkan runtime

No compile-time dependency on Vulkan library.
If Vulkan runtime is unavailable, fallback to CPU path.

Use environment "OPENCL_VULKAN_RUNTIME" to specify path to your
own vulkan runtime library.

Signed-off-by: Wu Zhiwen <zhiwen.wu@intel.com>

* dnn/Vulkan: Add a python script to compile GLSL shaders to SPIR-V shaders

The SPIR-V shaders are in format of text-based 32-bit hexadecimal
numbers, and inserted into .cpp files as unsigned int32 array.

* dnn/Vulkan: Put Vulkan headers into 3rdparty directory and some other fixes

Vulkan header files are copied from
https://github.com/KhronosGroup/Vulkan-Docs/tree/master/include/vulkan
to 3rdparty/include

Fix the Copyright declaration issue.

Refine OpenCVDetectVulkan.cmake

* dnn/Vulkan: Add vulkan backend tests into existing ones.

Also fixed some test failures.

- Don't use bool variable as uniform for shader
- Fix dispathed group number beyond max issue
- Bypass "group > 1" convolution. This should be support in future.

* dnn/Vulkan: Fix multiple initialization in one thread.
2018-10-29 17:51:26 +03:00
Hamdi Sahloul
e136c11c7c Avoid detecting dublicate CUDA archs 2018-08-16 17:40:09 +09:00
Alexander Alekhin
000a13b6a3 Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-05-03 14:30:38 +00:00
Alexander Alekhin
56222f35bb cmake: fix CPU_BASELINE_FINAL filling
- remove duplicates
- restore "always on" missing entries
- fix FP16 detection on MSVC
2018-04-26 17:13:42 +03:00
Alexander Alekhin
cd2b188c9a Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-04-24 18:13:06 +03:00
Alexander Alekhin
a2d6fc7ac0 cmake: fix popcnt detection
via GCC/Clang __POPCNT__ define
2018-04-24 12:40:25 +03:00
Vladislav Sovrasov
e7e29cb63c cmake: add compilation test for VTK 2018-04-10 18:09:54 +03:00
Maksim Shabunin
f0c0e0c6fa CPU dispatching: additional AVX-512 check for mingw-w64 2018-02-25 15:12:53 +03:00
Alexander Alekhin
81c5fae56f core(lapack): fix build issues related to 'extern "C"' 2018-01-24 14:53:04 +03:00
Alexander Alekhin
7d67d60fb1 cmake(opt): AVX512_SKX 2017-12-29 07:18:11 +00:00
Sayed Adel
d077778074 Added support for VSX 2017-10-09 00:32:29 +00:00
Alexander Alekhin
602f047fe8 build: replace WIN32 => _WIN32 2017-07-25 13:30:48 +03:00
Alexander Alekhin
2863c9fe19 Merge pull request #9077 from alalek:cmake_enable_cxx11 2017-07-03 16:15:29 +00:00
Alexander Alekhin
3f02f569af cmake: update CXX11 compiler flag 2017-07-03 16:13:12 +03:00
catree
921f06eb6f Fix ffmpeg detection with -D OPENCV_WARNINGS_ARE_ERRORS=ON option. 2017-07-02 01:59:41 +02:00
Alexander Alekhin
3e3e2dd512 android: make optional "cpufeatures", build fixes for NDK r15 2017-06-21 13:34:19 +03:00
Alexander Alekhin
4c2858fd61 cmake: fix POPCNT & SSE4.2 detection code 2017-04-26 18:59:43 +03:00
Alexander Alekhin
c1ade083d9 ffmpeg: add __STDC_CONSTANT_MACROS to check code 2017-04-11 12:35:48 +03:00
Alexander Alekhin
bcac7bd6d2 Merge pull request #8423 from terfendail:vt_ivx_enumupdate 2017-03-22 15:23:34 +00:00
Vitaly Tuzov
5ebf066dd5 Updated OpenVX detector and wrappers to handle Reference attribute names change 2017-03-22 16:50:38 +03:00
Alexander Alekhin
e16227b53c cmake: support multiple CPU targets 2017-02-13 19:52:59 +03:00
Alexander Alekhin
2b44c0b649 cmake: fix lapack
- added compile check with multiple tries for different configurations
- restored find_package(LAPACK)
- avoided modification of OPENCV_LINKER_LIBS
2017-01-17 15:56:42 +03:00
Alexander Alekhin
39ff8a0d26 cmake: cleanup ffmpeg detection 2016-12-01 19:33:27 +03:00
Alexander Alekhin
2ec63e4dd1 fix android pack build 2016-07-20 16:49:57 +03:00
Alexander Alekhin
87bbaa2c27 ocl: OpenCL headers are located in "CL" subfolder (3rdparty/include) 2016-02-11 12:44:45 +03:00
Alexander Alekhin
fe0a17e78f fix build with Win7 SDK 2015-07-30 23:23:01 +03:00
Evgeny Agafonchikov
17d36b7835 Removing unused winrttest.cpp file 2015-03-23 16:56:50 +03:00
Alexander Alekhin
cc69d4631a cmake: detect Direct 3D 11 2013-12-13 15:57:31 +04:00
Alexander Alekhin
cfc3b9abbb ocl: workaround for msvc11 bug
"#error" requires DOS line endings (or fails with fatal error C1004: unexpected end-of-file found)
See: http://connect.microsoft.com/VisualStudio/feedback/details/794991/c-error-directive-and-unix-line-endings-leads-to-an-unexpected-end-of-file
So replace them to #pragma message.
2013-10-18 20:52:36 +04:00
Alexander Alekhin
6344da9ac3 ocl: force to use Khronos OpenCL headers 2013-10-18 15:47:11 +04:00
Alexander Alekhin
212ad97100 ocl: dynamic load of OpenCL libraries
Support functions from OpenCL 1.1 / OpenCL 1.2
2013-10-02 18:32:33 +04:00
Roman Donchenko
3c137f7a04 Converted tabs to spaces. 2013-08-21 18:59:26 +04:00
Roman Donchenko
e9a28f66ee Normalized file endings. 2013-08-21 18:59:25 +04:00
Alexander Smorkalov
63786c389f Warning and review notes fixes.
WITH_WINRT -> ENABLE_WINRT_MODE;
Some temporary char* replaced with Ptr<char>;
Build fix for regular WIN32;
Windows Platform SDK and MSVC search added to cmake;
Warinig fixes.
2013-08-02 04:10:56 -07:00
Alexander Smorkalov
a2561ee0cd Code review notes fixed. 2013-04-03 04:14:40 -07:00
Alexander Smorkalov
09bc99a0c0 HAVE_WIN32UI and HAVE_VFW checks and defines added. 2013-03-27 08:03:51 -07:00