|
|
|
#ifndef OPENCV_CVCONFIG_H_INCLUDED
|
|
|
|
#define OPENCV_CVCONFIG_H_INCLUDED
|
|
|
|
|
|
|
|
/* OpenCV compiled as static or dynamic libs */
|
|
|
|
#cmakedefine BUILD_SHARED_LIBS
|
|
|
|
|
|
|
|
/* OpenCV intrinsics optimized code */
|
|
|
|
#cmakedefine CV_ENABLE_INTRINSICS
|
|
|
|
|
|
|
|
/* OpenCV additional optimized code */
|
|
|
|
#cmakedefine CV_DISABLE_OPTIMIZATION
|
|
|
|
|
|
|
|
/* Compile for 'real' NVIDIA GPU architectures */
|
|
|
|
#define CUDA_ARCH_BIN "${OPENCV_CUDA_ARCH_BIN}"
|
|
|
|
|
|
|
|
/* NVIDIA GPU features are used */
|
|
|
|
#define CUDA_ARCH_FEATURES "${OPENCV_CUDA_ARCH_FEATURES}"
|
|
|
|
|
|
|
|
/* Compile for 'virtual' NVIDIA PTX architectures */
|
|
|
|
#define CUDA_ARCH_PTX "${OPENCV_CUDA_ARCH_PTX}"
|
|
|
|
|
|
|
|
/* AMD's Basic Linear Algebra Subprograms Library*/
|
|
|
|
#cmakedefine HAVE_CLAMDBLAS
|
|
|
|
|
|
|
|
/* AMD's OpenCL Fast Fourier Transform Library*/
|
|
|
|
#cmakedefine HAVE_CLAMDFFT
|
|
|
|
|
|
|
|
/* Clp support */
|
|
|
|
#cmakedefine HAVE_CLP
|
|
|
|
|
|
|
|
/* NVIDIA CUDA Runtime API*/
|
|
|
|
#cmakedefine HAVE_CUDA
|
|
|
|
|
|
|
|
/* NVIDIA CUDA Basic Linear Algebra Subprograms (BLAS) API*/
|
|
|
|
#cmakedefine HAVE_CUBLAS
|
|
|
|
|
|
|
|
/* NVIDIA CUDA Deep Neural Network (cuDNN) API*/
|
|
|
|
#cmakedefine HAVE_CUDNN
|
|
|
|
|
|
|
|
/* NVIDIA CUDA Fast Fourier Transform (FFT) API*/
|
|
|
|
#cmakedefine HAVE_CUFFT
|
|
|
|
|
|
|
|
/* DirectX */
|
|
|
|
#cmakedefine HAVE_DIRECTX
|
|
|
|
#cmakedefine HAVE_DIRECTX_NV12
|
|
|
|
#cmakedefine HAVE_D3D11
|
|
|
|
#cmakedefine HAVE_D3D10
|
|
|
|
#cmakedefine HAVE_D3D9
|
|
|
|
|
|
|
|
/* Eigen Matrix & Linear Algebra Library */
|
|
|
|
#cmakedefine HAVE_EIGEN
|
|
|
|
|
|
|
|
/* Geospatial Data Abstraction Library */
|
|
|
|
#cmakedefine HAVE_GDAL
|
|
|
|
|
|
|
|
/* Halide support */
|
|
|
|
#cmakedefine HAVE_HALIDE
|
|
|
|
|
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.
6 years ago
|
|
|
/* Vulkan support */
|
|
|
|
#cmakedefine HAVE_VULKAN
|
|
|
|
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
|
|
#cmakedefine HAVE_INTTYPES_H 1
|
|
|
|
|
|
|
|
/* Intel Integrated Performance Primitives */
|
|
|
|
#cmakedefine HAVE_IPP
|
|
|
|
#cmakedefine HAVE_IPP_ICV
|
|
|
|
#cmakedefine HAVE_IPP_IW
|
|
|
|
#cmakedefine HAVE_IPP_IW_LL
|
|
|
|
|
|
|
|
/* JPEG-2000 codec */
|
|
|
|
#cmakedefine HAVE_OPENJPEG
|
|
|
|
#cmakedefine HAVE_JASPER
|
|
|
|
|
|
|
|
/* IJG JPEG codec */
|
|
|
|
#cmakedefine HAVE_JPEG
|
|
|
|
|
|
|
|
/* libpng/png.h needs to be included */
|
|
|
|
#cmakedefine HAVE_LIBPNG_PNG_H
|
|
|
|
|
|
|
|
/* GDCM DICOM codec */
|
|
|
|
#cmakedefine HAVE_GDCM
|
|
|
|
|
|
|
|
/* NVIDIA Video Decoding API*/
|
|
|
|
#cmakedefine HAVE_NVCUVID
|
|
|
|
#cmakedefine HAVE_NVCUVID_HEADER
|
|
|
|
#cmakedefine HAVE_DYNLINK_NVCUVID_HEADER
|
|
|
|
|
|
|
|
/* NVIDIA Video Encoding API*/
|
|
|
|
#cmakedefine HAVE_NVCUVENC
|
|
|
|
|
|
|
|
/* OpenCL Support */
|
|
|
|
#cmakedefine HAVE_OPENCL
|
|
|
|
#cmakedefine HAVE_OPENCL_STATIC
|
|
|
|
#cmakedefine HAVE_OPENCL_SVM
|
|
|
|
|
|
|
|
/* NVIDIA OpenCL D3D Extensions support */
|
|
|
|
#cmakedefine HAVE_OPENCL_D3D11_NV
|
|
|
|
|
|
|
|
/* OpenEXR codec */
|
|
|
|
#cmakedefine HAVE_OPENEXR
|
|
|
|
|
|
|
|
/* OpenGL support*/
|
|
|
|
#cmakedefine HAVE_OPENGL
|
|
|
|
|
|
|
|
/* PNG codec */
|
|
|
|
#cmakedefine HAVE_PNG
|
|
|
|
|
|
|
|
/* Posix threads (pthreads) */
|
|
|
|
#cmakedefine HAVE_PTHREAD
|
|
|
|
|
|
|
|
/* parallel_for with pthreads */
|
|
|
|
#cmakedefine HAVE_PTHREADS_PF
|
|
|
|
|
|
|
|
/* Intel Threading Building Blocks */
|
|
|
|
#cmakedefine HAVE_TBB
|
|
|
|
|
|
|
|
/* Ste||ar Group High Performance ParallelX */
|
|
|
|
#cmakedefine HAVE_HPX
|
|
|
|
|
|
|
|
/* TIFF codec */
|
|
|
|
#cmakedefine HAVE_TIFF
|
|
|
|
|
|
|
|
/* Define if your processor stores words with the most significant byte
|
|
|
|
first (like Motorola and SPARC, unlike Intel and VAX). */
|
|
|
|
#cmakedefine WORDS_BIGENDIAN
|
|
|
|
|
|
|
|
/* VA library (libva) */
|
|
|
|
#cmakedefine HAVE_VA
|
|
|
|
|
|
|
|
/* Intel VA-API/OpenCL */
|
|
|
|
#cmakedefine HAVE_VA_INTEL
|
|
|
|
|
|
|
|
/* Lapack */
|
|
|
|
#cmakedefine HAVE_LAPACK
|
|
|
|
|
|
|
|
/* Library was compiled with functions instrumentation */
|
|
|
|
#cmakedefine ENABLE_INSTRUMENTATION
|
|
|
|
|
|
|
|
/* OpenVX */
|
|
|
|
#cmakedefine HAVE_OPENVX
|
|
|
|
|
|
|
|
/* OpenCV trace utilities */
|
|
|
|
#cmakedefine OPENCV_TRACE
|
|
|
|
|
|
|
|
/* Library QR-code decoding */
|
|
|
|
#cmakedefine HAVE_QUIRC
|
|
|
|
|
|
|
|
#endif // OPENCV_CVCONFIG_H_INCLUDED
|