Trying to add parallel for loops (with pthread)

- OpenCV lib compiled with PTHREADS_PF=ON
- Copied and tested in esp32/examples/esp_opencv_tests/
- TODO: Problem while linking pthreads :
        undefined reference to `pthread_cond_signal`
This commit is contained in:
Joachim
2020-03-27 09:27:29 +01:00
parent 0284052fae
commit 8fdb3c7679
19 changed files with 14 additions and 8 deletions

View File

@ -604,7 +604,7 @@ ocv_cmake_hook(POST_COMPILER_OPTIONS)
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC.. # CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
if(UNIX) if(UNIX OR ESP32)
if(NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG) if(NOT APPLE_FRAMEWORK OR OPENCV_ENABLE_PKG_CONFIG)
if(CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR} if(CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{PKG_CONFIG_LIBDIR} AND NOT DEFINED ENV{PKG_CONFIG_SYSROOT_DIR}
AND NOT OPENCV_ENABLE_PKG_CONFIG AND NOT OPENCV_ENABLE_PKG_CONFIG

View File

@ -84,7 +84,7 @@ cmake \
-DWITH_IPP=OFF \ -DWITH_IPP=OFF \
-DWITH_TBB=OFF \ -DWITH_TBB=OFF \
-DWITH_OPENMP=OFF \ -DWITH_OPENMP=OFF \
-DWITH_PTHREADS_PF=OFF \ -DWITH_PTHREADS_PF=ON \
-DWITH_QUIRC=OFF \ -DWITH_QUIRC=OFF \
-DWITH_1394=OFF \ -DWITH_1394=OFF \
-DWITH_CUDA=OFF \ -DWITH_CUDA=OFF \

View File

@ -116,10 +116,10 @@
#define HAVE_PNG #define HAVE_PNG
/* Posix threads (pthreads) */ /* Posix threads (pthreads) */
/* #undef HAVE_PTHREAD */ #define HAVE_PTHREAD
/* parallel_for with pthreads */ /* parallel_for with pthreads */
/* #undef HAVE_PTHREADS_PF */ #define HAVE_PTHREADS_PF
/* Qt support */ /* Qt support */
/* #undef HAVE_QT */ /* #undef HAVE_QT */

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -116,10 +116,10 @@
#define HAVE_PNG #define HAVE_PNG
/* Posix threads (pthreads) */ /* Posix threads (pthreads) */
/* #undef HAVE_PTHREAD */ #define HAVE_PTHREAD
/* parallel_for with pthreads */ /* parallel_for with pthreads */
/* #undef HAVE_PTHREADS_PF */ #define HAVE_PTHREADS_PF
/* Qt support */ /* Qt support */
/* #undef HAVE_QT */ /* #undef HAVE_QT */

View File

@ -40,7 +40,7 @@ else
fi fi
CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DESP32=ON -DBUILD_SHARED_LIBS=OFF -DCV_DISABLE_OPTIMIZATION=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_OPENMP=OFF -DWITH_PTHREADS_PF=OFF -DWITH_QUIRC=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_VA_INTEL=OFF -DWITH_EIGEN=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_WEBP=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_LAPACK=OFF -DWITH_ITT=OFF -DWITH_PROTOBUF=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF -DBUILD_LIST=${OPENCV_MODULES_LIST} -DBUILD_JAVA=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DCV_ENABLE_INTRINSICS=OFF -DCV_TRACE=OFF -DOPENCV_ENABLE_MEMALIGN=OFF -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_CMAKE_PATH}" CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release -DESP32=ON -DBUILD_SHARED_LIBS=OFF -DCV_DISABLE_OPTIMIZATION=OFF -DWITH_IPP=OFF -DWITH_TBB=OFF -DWITH_OPENMP=OFF -DWITH_PTHREADS_PF=ON -DWITH_QUIRC=OFF -DWITH_1394=OFF -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DWITH_OPENCLAMDFFT=OFF -DWITH_OPENCLAMDBLAS=OFF -DWITH_VA_INTEL=OFF -DWITH_EIGEN=OFF -DWITH_GSTREAMER=OFF -DWITH_GTK=OFF -DWITH_JASPER=OFF -DWITH_JPEG=OFF -DWITH_WEBP=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DWITH_TIFF=OFF -DWITH_V4L=OFF -DWITH_LAPACK=OFF -DWITH_ITT=OFF -DWITH_PROTOBUF=OFF -DWITH_IMGCODEC_HDR=OFF -DWITH_IMGCODEC_SUNRASTER=OFF -DWITH_IMGCODEC_PXM=OFF -DWITH_IMGCODEC_PFM=OFF -DBUILD_LIST=${OPENCV_MODULES_LIST} -DBUILD_JAVA=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_apps=OFF -DBUILD_PACKAGE=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DCV_ENABLE_INTRINSICS=OFF -DCV_TRACE=OFF -DOPENCV_ENABLE_MEMALIGN=OFF -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_CMAKE_PATH}"
### configure and build opencv ### ### configure and build opencv ###

View File

@ -942,7 +942,7 @@ int cv::getNumberOfCPUs(void)
#endif #endif
// esp32 doesn't support sysconf call. FIXME: add support // esp32 doesn't support sysconf call. FIXME: add support? Return always 2 (only for ESP32D0WD)
#if !defined(_WIN32) && !defined(__APPLE__) && !defined(ESP32) #if !defined(_WIN32) && !defined(__APPLE__) && !defined(ESP32)
static unsigned cpu_count_sysconf = (unsigned)sysconf( _SC_NPROCESSORS_ONLN ); static unsigned cpu_count_sysconf = (unsigned)sysconf( _SC_NPROCESSORS_ONLN );

View File

@ -7,7 +7,13 @@
#include "parallel_impl.hpp" #include "parallel_impl.hpp"
#ifdef HAVE_PTHREADS_PF #ifdef HAVE_PTHREADS_PF
#ifdef __cplusplus
extern "C" {
#endif
#include <pthread.h> #include <pthread.h>
#ifdef __cplusplus
}
#endif
#include <opencv2/core/utils/configuration.private.hpp> #include <opencv2/core/utils/configuration.private.hpp>