From 616957e4844bc11e231f234db88ec5cf194753e8 Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Wed, 1 Nov 2017 19:34:55 +0300 Subject: [PATCH] Add notes about CPU optimizations build options --- CPU-optimizations-build-options.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CPU-optimizations-build-options.md b/CPU-optimizations-build-options.md index b4ef0f0..359e123 100644 --- a/CPU-optimizations-build-options.md +++ b/CPU-optimizations-build-options.md @@ -8,9 +8,11 @@ OpenCV goal is to provide effective processors support, including separate optim Some OpenCV functions contains multiple code paths specialized for different processors features / instruction sets. Selection of executed code path is based on auto-detection of available processor features. -### CMake options +**Note**: Build options described here don't control behavior of CPU-based optimizations from IntelĀ® Integrated Performance Primitives (IntelĀ® IPP, https://software.intel.com/en-us/intel-ipp). -These options are available since OpenCV <next release>. +### Customizing CMake options + +These options are available since OpenCV 3.3 (released in Aug 2017). Build options allow to specify **minimal** and **dispatched** optimization features sets: @@ -18,6 +20,8 @@ Build options allow to specify **minimal** and **dispatched** optimization featu * **Dispatched** optimizations are additional code paths compiled into executable. They will be executed on supported processors only. +By default, OpenCV on x86_64 uses SSE3 as basic instruction set and enables dispatched optimizations for SSE4.2, AVX, AVX2 instruction sets. This configuration provides the best effort on wide range of users platforms. + OpenCV uses these CMake variables to control supported optimization features: * `CPU_BASELINE` - **minimal** set of required optimizations (if they are supported by C++ compiler)