[Examples] Update OpenVINO to 2020.4 version

This commit forces OpenVINO to use OpenMP library instead of TBB.
This is due to the currently missing functionality in Graphene to
correctly initialize TBB (missing /sys/devices/ support).
This commit is contained in:
Vijay Dhanraj
2020-09-03 21:02:35 +00:00
committed by Dmitrii Kuvaiskii
parent c9fc06b9f5
commit dc094fcfaf
3 changed files with 41 additions and 30 deletions
+4 -5
View File
@@ -16,7 +16,7 @@ MODEL_COMMIT ?= acf297c73db8cb3f68791ae1fad4a7cc4a6039e5 # corresponds to ta
MODEL_NAME ?= VGG_VOC0712Plus_SSD_300x300_ft_iter_160000
OPENVINO_DIR ?= $(THIS_DIR)openvino
OPENVINO_COMMIT ?= ba6e22b1b5ee4cbefcc30e8d9493cddb0bb3dfdf # corresponds to tag "2019_R2"
OPENVINO_COMMIT ?= 023e7c2c3f8a8ac83564db09799d2049115d9cf6 # corresponds to tag "2020.4"
# Relative path to Graphene root and key for enclave signing
GRAPHENE_DIR ?= ../..
@@ -53,14 +53,13 @@ $(MODEL_DIR)/$(MODEL_NAME).bin: $(MODEL_DIR)/README.md
--output_dir $(abspath $(MODEL_DIR))
$(OPENVINO_DIR)/README.md:
git clone https://github.com/opencv/dldt.git $(OPENVINO_DIR)
git clone https://github.com/openvinotoolkit/openvino.git $(OPENVINO_DIR)
git -C $(OPENVINO_DIR) checkout $(OPENVINO_COMMIT)
git -C $(OPENVINO_DIR)/inference-engine submodule init
git -C $(OPENVINO_DIR)/inference-engine submodule update --recursive
git -C $(OPENVINO_DIR)/inference-engine submodule update --init --recursive
$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/object_detection_sample_ssd: $(OPENVINO_DIR)/README.md
cd $(OPENVINO_DIR)/inference-engine && mkdir -p build
cd $(OPENVINO_DIR)/inference-engine/build && cmake -DCMAKE_BUILD_TYPE=$(OPENVINO_BUILD) ..
cd $(OPENVINO_DIR)/inference-engine/build && cmake -DTHREADING=OMP -DCMAKE_BUILD_TYPE=$(OPENVINO_BUILD) ../..
$(MAKE) -C $(OPENVINO_DIR)/inference-engine/build
openvino.manifest: openvino.manifest.template
+7 -5
View File
@@ -1,11 +1,11 @@
# OpenVINO
This directory contains a Makefile and a template manifest for the most
recent version of OpenVINO toolkit (as of this writing, version 2019_R2).
recent version of OpenVINO toolkit (as of this writing, version 2020.4).
We use the "Object Detection C++ Sample SSD" (object_detection_sample_ssd)
example from the OpenVINO distribution as a concrete application running
under Graphene-SGX. We test only the CPU backend (i.e., no GPU or FPGA). This
was tested on a machine with SGX v1 and Ubuntu 16.04.
was tested on a machine with SGX v1 and Ubuntu 18.04.
The Makefile and the template manifest contain extensive comments. Please review
them to understand the requirements for OpenVINO/object_detection_sample_ssd
@@ -19,13 +19,15 @@ model from it. **Note:** the model zoo requires ~350MB of disk space.
# Prerequisites
For Ubuntu 16.04, install the following prerequisite packages:
For Ubuntu 18.04, install the following prerequisite packages:
* Install CMake version >= 3.7.2 (on Ubuntu 16.04, this may require installing
* Install CMake version >= 3.11 (on Ubuntu 18.04, this may require installing
Cmake from a non-official APT repository like Kitware).
* Install libusb version >= 1.0.0.
* Install libtbb-dev
* Install packages for Python3:
`pip3 install pyyaml numpy networkx test-generator defusedxml protobuf>=3.6.1`
@@ -39,7 +41,7 @@ make SGX=1
# run original OpenVINO/object_detection_sample_ssd
# note that this assumes the Release build of OpenVINO (no DEBUG=1)
./openvino/inference-engine/bin/intel64/Release/object_detection_sample_ssd -i images/horses.jpg -m model/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.xml -d CPU
./openvino/bin/intel64/Release/object_detection_sample_ssd -i images/horses.jpg -m model/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.xml -d CPU
# run OpenVINO/object_detection_sample_ssd in non-SGX Graphene
./pal_loader openvino.manifest -i images/horses.jpg -m model/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.xml -d CPU
+30 -20
View File
@@ -1,13 +1,13 @@
# OpenVINO (object_detection_sample_ssd) manifest example
#
# This manifest was prepared and tested on Ubuntu 16.04.
# This manifest was prepared and tested on Ubuntu 18.04.
#
# OpenVINO must be run with the pal_loader:
#
# ./pal_loader openvino.manifest -i input/image.bmp -m model.xml -d CPU
# The executable to load in Graphene.
loader.exec = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/object_detection_sample_ssd
loader.exec = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/object_detection_sample_ssd
loader.argv0_override = object_detection_sample_ssd
# Graphene environment, including the path to the library OS and the debug
@@ -92,27 +92,37 @@ sgx.trusted_files.libnsl = file:$(ARCH_LIBDIR)/libnsl.so.1
sgx.trusted_files.libcpp = file:/usr/$(ARCH_LIBDIR)/libstdc++.so.6
sgx.trusted_files.libgcc = file:$(ARCH_LIBDIR)/libgcc_s.so.1
# OpenVINO main libraries
sgx.trusted_files.libformatreader = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libformat_reader.so
sgx.trusted_files.libcpuextension = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libcpu_extension.so
sgx.trusted_files.libinferencenegine = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine.so
sgx.trusted_files.libmkldnnplugin = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libMKLDNNPlugin.so
sgx.trusted_files.libgnapplugin = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libGNAPlugin.so
sgx.trusted_files.libcldnnpplugin = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libclDNNPlugin.so
sgx.trusted_files.libmyriadplugin = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/libmyriadPlugin.so
# OpenVINO OpenCV libraries
sgx.trusted_files.libimgcodecs = file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.1.1_ubuntu16/lib/libopencv_imgcodecs.so.4.1
sgx.trusted_files.libimgproc = file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.1.1_ubuntu16/lib/libopencv_imgproc.so.4.1
sgx.trusted_files.libopencvcore = file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.1.1_ubuntu16/lib/libopencv_core.so.4.1
# OpenVINO TBB libraries
sgx.trusted_files.libtbbmalloc = file:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib/libtbbmalloc.so.2
sgx.trusted_files.libtbb = file:$(OPENVINO_DIR)/inference-engine/temp/tbb/lib/libtbb.so.2
# OpenVINO TBB dependencies
sgx.trusted_files.libtbbmalloc = file:/usr/$(ARCH_LIBDIR)/libtbbmalloc.so.2
sgx.trusted_files.libtbb = file:/usr/$(ARCH_LIBDIR)/libtbb.so.2
$(LIBTBB_DEBUG)
# OpenVINO main libraries
sgx.trusted_files.libformatreader = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libformat_reader.so
sgx.trusted_files.libinferencenegine = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine.so
sgx.trusted_files.libmkldnnplugin = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libMKLDNNPlugin.so
sgx.trusted_files.libgnapplugin = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libGNAPlugin.so
sgx.trusted_files.libcldnnpplugin = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libclDNNPlugin.so
sgx.trusted_files.libmyriadplugin = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libmyriadPlugin.so
sgx.trusted_files.libngraph = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libngraph.so
sgx.trusted_files.libHeteroPlugin = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libHeteroPlugin.so
sgx.trusted_files.libMultiDevicePlugin = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libMultiDevicePlugin.so
sgx.trusted_files.libinferenceengine_onnx_reader = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_onnx_reader.so
sgx.trusted_files.libinferenceengine_ir_reader = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_ir_reader.so
sgx.trusted_files.libinferenceengine_legacy = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_legacy.so
sgx.trusted_files.libinferenceengine_transformations = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_transformations.so
sgx.trusted_files.libinferenceengine_lptransformations = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/libinference_engine_lp_transformations.so
# OpenVINO OpenCV libraries
sgx.trusted_files.libimgcodecs = file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.3.0_ubuntu18/opencv/lib/libopencv_imgcodecs.so.4.3
sgx.trusted_files.libimgproc = file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.3.0_ubuntu18/opencv/lib/libopencv_imgproc.so.4.3
sgx.trusted_files.libopencvcore = file:$(OPENVINO_DIR)/inference-engine/temp/opencv_4.3.0_ubuntu18/opencv/lib/libopencv_core.so.4.3
# OpenVINO OMP libraries
sgx.trusted_files.libiomp5 = file:$(OPENVINO_DIR)/inference-engine/temp/omp/lib/libiomp5.so
# OpenVINO SSD300 model
sgx.trusted_files.pluginsxml = file:$(OPENVINO_DIR)/inference-engine/bin/intel64/$(OPENVINO_BUILD)/lib/plugins.xml
sgx.trusted_files.pluginsxml = file:$(OPENVINO_DIR)/bin/intel64/$(OPENVINO_BUILD)/lib/plugins.xml
sgx.trusted_files.modelxml = file:$(MODEL_DIR)/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.xml
sgx.trusted_files.modelbin = file:$(MODEL_DIR)/VGG_VOC0712Plus_SSD_300x300_ft_iter_160000.bin