Librairie statique OpenVINO

Librairie statique OpenVINO

Il est possible de compiler OpenVINO en tant que librairie statique. Cependant, ceci ne fonctionne le CPU. Selon le site Github https://github.com/openvinotoolkit/openvino/wiki/StaticLibraries , le GPU n’est pas pris en charge .

Voici les étapes pour compiler OpenVINO en statique avec le support CPU uniquement. Cela fonctionne avec Linux.

Obtenez le code source de GitHub, ainsi que les sous-modules :

git clone https://github.com/openvinotoolkit/openvino.git
cd openvino
git submodule update --init --recursive
chmod +x install_build_dependencies.sh
./install_build_dependencies.sh
mkdir build && cd build

Utilisez cmake pour spécifier les paramètres. Pour cet exemple de base, seul le CPU est activé (ENABLE_INTEL_CPU=ON) et nous compilons avec des bibliothèques statiques (BUILD_SHARED_LIBS=OFF)

cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_INTEL_MYRIAD_COMMON=OFF -DENABLE_INTEL_CPU=ON -DENABLE_INTEL_GPU=OFF -DENABLE_INTEL_GNA=OFF DENABLE_INTEL_MYRIAD=OFF -DENABLE_TEMPLATE=OFF -DENABLE_HETERO=OFF -DENABLE_MULTI=OFF -DENABLE_AUTO=OFF -DENABLE_AUTO_BATCH=OFF -DENABLE_OV_ONNX_FRONTEND=OFF -DENABLE_OV_PADDLE_FRONTEND=OFF -DENABLE_OV_TF_FRONTEND=OFF -DENABLE_IR_V7_READER=OFF -DENABLE_GAPI_PREPROCESSING=OFF -DENABLE_OV_IR_FRONTEND=ON -DENABLE_SAMPLES=OFF -DENABLE_SYSTEM_TBB=OFF -DENABLE_CLDNN=OFF -DENABLE_TBBBIND_2_5=OFF -DENABLE_OPENCV=OFF -DTHREADING=SEQ -DBUILD_SHARED_LIBS=OFF ..

Maintenant, compilons et installons les libs :

make --jobs=$(nproc --all)
sudo make install

À ce stade, les bibliothèques seront installées dans /usr/local/runtime/lib/intel64

Voici la commande pour compiler et linker un simple programme helloworld.cpp :

g++ helloworld.cpp -I/usr/local/runtime/include/ -I/usr/local/runtime/include/ie/ -Wl,--whole-archive /usr/local/runtime/lib/intel64/libopenvino.a /usr/local/runtime/lib/intel64/libutil.a /usr/local/runtime/lib/intel64/libpugixml.a /usr/local/runtime/lib/intel64/libopenvino_intel_cpu_plugin.a /usr/local/runtime/lib/intel64/libov_shape_inference.a /usr/local/runtime/lib/intel64/libade.a /usr/local/runtime/lib/intel64/libdnnl.a /usr/local/runtime/lib/intel64/libfluid.a /usr/local/runtime/lib/intel64/libinference_engine_snippets.a /usr/local/runtime/lib/intel64/libitt.a /usr/local/runtime/lib/intel64/libnlohmann_json_schema_validator.a /usr/local/runtime/lib/intel64/libopenvino_c.a /usr/local/runtime/lib/intel64/libngraph_reference.a /usr/local/runtime/lib/intel64/libngraph_builders.a /usr/local/runtime/lib/intel64/libopenvino_ir_frontend.a -Wl,--no-whole-archive -ldl -lpthread -o helloworld