- 27 Dec, 2018 1 commit
-
-
WuZhiwen authored
* dnn/Vulkan: fix GPU hang for heavy convolution tasks Intel i915 driver will declare GPU hang if the compute shader takes too long to complete. See https://bugs.freedesktop.org/show_bug.cgi?id=108947 for details. The idea in this commit is to divide heavy task into several light ones and run compute shader multiple times to make each run take short time enough. TODO: Add more efficient compute shader Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com> * dnn/Vulkan: add a more efficient conv shader
-
- 12 Dec, 2018 1 commit
-
-
Alexander Alekhin authored
-
- 26 Nov, 2018 1 commit
-
-
Wu Zhiwen authored
Use a global dedicated mutex to make sure initialize once and protect command buffer pool and queue. Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com>
-
- 22 Nov, 2018 1 commit
-
-
WuZhiwen authored
* dnn/Vulkan: don't init Vulkan runtime if using other backend/target Don't need to explictly call a init API but will automatically init Vulkan environment the first time to use an VkCom object. Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com> * dnn/Vulkan: depress compilier warning for "-Wsign-promo" Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com>
-
- 15 Nov, 2018 1 commit
-
-
Dmitry Kurtaev authored
-
- 31 Oct, 2018 2 commits
-
-
Wu Zhiwen authored
Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com>
-
Wu Zhiwen authored
Fallback to OPENCV backend and CPU target if catch exception from vkcom backend. Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com>
-
- 30 Oct, 2018 1 commit
-
-
Wu Zhiwen authored
Signed-off-by:
Wu Zhiwen <zhiwen.wu@intel.com>
-
- 29 Oct, 2018 1 commit
-
-
WuZhiwen authored
* 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.
-