-
Notifications
You must be signed in to change notification settings - Fork 0
CMakeOptionsForCustomCompilation
This document provides description and default values for CMake options that can be used to build a custom OpenVINO runtime using the open source version. For instructions on how to create a custom runtime from the prebuilt OpenVINO release package, refer to the deployment manager documentation. To understand all the dependencies when creating a custom runtime from the open source repository, refer to the OpenVINO Runtime Introduction.
- Disable / enable plugins build and other components
- Options affecting binary size
- Building with custom OpenCV
- Building with custom TBB
- Test capabilities
- Other options
- Inference plugins:
-
ENABLE_INTEL_CPU
enables CPU plugin compilation:-
ON
is default for x86 platforms;OFF
, otherwise.
-
-
ENABLE_INTEL_GPU
enables Intel GPU plugin compilation:-
ON
is default for x86 platforms; not available, otherwise.
-
-
ENABLE_INTEL_GNA
enables GNA plugin compilation:-
ON
is default for x86 platforms; not available, otherwise.
-
-
ENABLE_INTEL_MYRIAD_COMMON
enables Myriad (Myriad and HDDL only) common components build:-
ON
is default.
-
-
ENABLE_INTEL_MYRIAD
enables Myriad plugin components build:-
ON
is default. - Depends on
ENABLE_INTEL_MYRIAD_COMMON
.
-
-
ENABLE_HETERO
enables HETERO plugin build:-
ON
is default.
-
-
ENABLE_MULTI
enables MULTI plugin build:-
ON
is default.
-
-
ENABLE_AUTO
enables AUTO plugin build:-
ON
is default.
-
-
ENABLE_TEMPLATE
enables TEMPLATE plugin build:-
ON
is default.
-
-
ENABLE_AUTO_BATCH
enables Auto Batch plugin build:-
ON
is default.
-
-
- Frontends to work with models from frameworks:
-
ENABLE_OV_ONNX_FRONTEND
enables ONNX frontend plugin for OpenVINO Runtime:-
ON
is default.
-
-
ENABLE_OV_PDPD_FRONTEND
enables PDPD frontend plugin for OpenVINO Runtime:-
ON
is default.
-
-
ENABLE_OV_TF_FRONTEND
enables TensorFlow frontend plugin for OpenVINO Runtime:-
ON
is default.
-
-
ENABLE_OV_IR_FRONTEND
enables OpenVINO Intermediate Representation frontend plugin for OpenVINO Runtime:-
ON
is default.
-
-
-
ENABLE_GAPI_PREPROCESSING
enables G-API preprocessing:-
ON
is default.
-
-
IE_EXTRA_MODULES
specifies path to add extra OpenVINO modules to the build.- See OpenVINO Contrib to add extra modules from.
-
ENABLE_SAMPLES
enables OpenVINO Runtime samples build:-
ON
is default.
-
-
ENABLE_PYTHON
enables Python API build:-
ON
if python requirements are satisfied (auto-discovered by CMake).
-
-
ENABLE_WHEEL
enables Python OpenVINO Runtime and Development wheels build:-
ON
if requirements are satisfied (auto-discovered by CMake).
-
-
ENABLE_TESTS
enables tests compilation:-
OFF
is default.
-
-
ENABLE_IR_V7_READER
enables IR v7 reader:-
ON
is default. Note: must be turnedOFF
when building OpenVINO runtime as static
-
-
ENABLE_OV_CORE_UNIT_TEST
enables ngraph unit tests:- The value is the same as for the
ENABLE_TESTS
option.
- The value is the same as for the
-
ENABLE_DOCS
enables building the OpenVINO documentation:-
OFF
is on Debian (Ubuntu) OSes -
OFF
is in other cases.
-
-
ENABLE_SYSTEM_PUGIXML
builds with system version of pugixml if it is available on the system.-
ON
is default. - OpenVINO thirdparty pugixml is used by default.
-
-
ENABLE_SYSTEM_PROTOBUF
use protobuf installed on the system:-
OFF
is default.
-
-
ENABLE_SYSTEM_TBB
use TBB installed on the system:-
ON
is on Debian (Ubuntu) OSes. -
OFF
is in other cases.
-
-
ENABLE_LTO
boolean option to enable Link Time Optimizations:-
OFF
is default, because it takes longer time to link binaries. -
ON
is enabled for OpenVINO release binaries. - Available on Unix* compilers only like GCC or CLANG.
- Gives 30% decrease in binary size together with other optimization options used to build OpenVINO.
-
-
THREADING
points to the OpenVINO threading interface:-
TBB
is the default option, which enables build with Intel TBB andtbb::static_partitioner
. -
TBB_AUTO
enables building with Intel TBB. -
OMP
enables building with Intel OpenMP. -
SEQ
disables threading optimizations. Can be used in cases when TBB binaries are absent. -
Note: because TBB is a template library, it increases binary size because of multiple instantiations of
tbb::parallel_for
-
-
ENABLE_TBBBIND_2_5
enables prebuilt static TBBBind 2.5 usage:-
ON
is default, because OpenVINO Runtime should be generic out of box.
-
Note: TBBBind 2.5 is needed when OpenVINO inference targets CPUs with:
- NUMA support (Non-Unified Memory Architecture), e.g. to detect a number of NUMA nodes
- Hybrid architecture to separate Performance / Efficiency cores and schedule tasks in the optimal way.
Note: if you build OpenVINO runtime with oneTBB support where TBBBind 2.5 is automatically loaded by TBB in runtime, then set
ENABLE_TBBBIND_2_5
toOFF
-
ENABLE_SSE42
enables SSE4.2 optimizations:-
ON
is default for x86 platforms; not available for other platforms. - Affects only OpenVINO Runtime common part and preprocessing plugin, does not affect the oneDNN library
-
-
ENABLE_AVX2
enables AVX2 optimizations:-
ON
is default for x86 platforms, not available for other platforms. - Affects only OpenVINO Runtime common part and preprocessing plugin, does not affect the oneDNN library
-
-
ENABLE_AVX512F
enables AVX512 optimizations:-
ON
is default for x86 platforms, not available for other platforms. - Affects only OpenVINO Runtime common part and preprocessing plugin, does not affect the oneDNN library
-
-
ENABLE_PROFILING_ITT
enables profiling with Intel ITT and VTune.-
OFF
is default, because it increases binary size.
-
-
SELECTIVE_BUILD
enables Conditional compilation feature.-
OFF
is default.
-
When OpenVINO CMake scripts are run with enabled OpenCV (-DENABLE_OPENCV=ON
which is default), CMake OpenVINO scripts automatically download prebuilt OpenCV
from shared drive, such OpenCV is ABI-compatible with the default compiler of your system. If you have a non-default compiler or want to use custom version of OpenCV, you can pass it via CMake option:
cmake -DOpenCV_DIR=<path to OpenCVConfig.cmake> ...
In this case, default OpenCV will not downloaded and provided one will be used.
When OpenVINO CMake scripts are run with TBB enabled (-DTHREADING=TBB
which is default, or -DTHREADING=TBB_AUTO
), CMake OpenVINO scripts automatically download prebuilt version of TBB which is ABI-compatible with the default compiler of your system. If you have a non-default compiler or want to use custom TBB, you can use:
export TBBROOT=<path to TBB install root>
cmake ...
In this case OpenVINO CMake scripts take TBBROOT
environment variable into account and provided TBB will be used.
Note: if you are building TBB from source files, please install TBB after and use TBBROOT
to point to installation root.
-
ENABLE_SANITIZER
builds with clang address sanitizer support:-
OFF
is default.
-
-
ENABLE_THREAD_SANITIZER
builds with clang thread-sanitizer support:-
OFF
is default.
-
-
ENABLE_COVERAGE
adds option to enable coverage. See dedicated guide how to measure test coverage:-
OFF
is default.
-
-
ENABLE_FUZZING
enables instrumentation of code for fuzzing:-
OFF
is default.
-
-
ENABLE_CPPLINT
enables code style check using cpplint static code checker:-
ON
is default.
-
-
ENABLE_CLANG_FORMAT
enables Clang format code style check:-
ON
is default. - Used only for ngraph component.
-
-
TREAT_WARNING_AS_ERROR
treats all warnings as an error:-
OFF
is default.
-
-
ENABLE_FASTER_BUILD
enables precompiled headers and unity build using CMake:-
OFF
is default.
-
-
ENABLE_INTEGRITYCHECK
builds DLLs with /INTEGRITYCHECK flag:-
OFF
is default. - Available on MSVC compiler only.
-
© Copyright 2018-2022, OpenVINO team
- Home
- General resources
- How to build
-
Developer documentation
- Inference Engine architecture
- OpenVINO Python API
- CPU plugin
- GPU plugin
- HETERO plugin architecture
- Snippets
- Sample for IE C++/C/Python API
- Proxy plugin (Concept)
- Tests