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)